Пульт: выключатель инструментов, помощь с git, память прошлого ответа

Три вещи, которых не хватало по сравнению с пультом DeepShim, — теперь
здесь, и DeepShim можно закрывать.

1. Выключатель инструментов. Снят — приставка, дерево папки и напоминание
   про NEED/LIST/FIND не едут вовсе, круг ровно один: обычное "спросил
   по этим файлам, получил ответ". Замер на одной задаче: 229 символов
   вопроса против 1886. В консоли это флаг --no-tools.

2. Помощь с git: ряд всплывает, только если в папке нет репозитория или
   в .gitignore не хватает строк. Главная - backup/, куда ложатся прежние
   версии файлов перед записью. Перенесено из пульта DeepShim.

3. "Помнить прошлый ответ": галочка, по которой прошлый ответ уезжает
   вместе со следующим вопросом. Разговор из нескольких вопросов, которого
   раньше не было: стенограмма велась внутри одного вопроса и на этом всё.

Попутно два дефекта, оба найдены при проверке:

- Разбор флагов съедал аргумент после булева флага: "deepwork --apply вопрос"
  превращался в apply="вопрос", а вопрос пропадал. Молчало, пока булев флаг
  стоял последним. Та же грабля уже ловилась в ask.mjs; добавлен BOOL_FLAGS.

- Блок-запрос вплотную к прозе не распознавался. DeepSeek регулярно пишет
  "Запрашиваю поиск константы.=== FIND: MAGIC ===" одной строкой, разбор
  требовал начала строки, и круг уходил впустую. Якорь начала снят, якорь
  конца оставлен: упоминание формата посреди фразы запросом не считается.
  От запросов внутри === FILE: === бережёт вырезание этих блоков, а не якорь.

Проверено вживую: без инструментов - 229 символов, один круг, верный ответ;
с инструментами - FIND распознан, два круга, верный ответ; git - repo:false
и пять недостающих строк, после кнопки repo:true и missing пуст; память -
"удвой это число" вернуло 80834 против бессмыслицы без галочки.
--selftest дополнен двумя случаями на разбор запросов.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Alex Cube
2026-08-26 14:13:57 +03:00
co-authored by Claude Opus 5
parent f34e07e807
commit 263ad14810
3 changed files with 223 additions and 28 deletions
+45
View File
@@ -128,6 +128,19 @@ node deepwork.mjs --check
- ход работы построчно: видно, что DeepSeek запросил и сколько это заняло;
- у каждого пришедшего файла кнопка «Записать».
Три переключателя рядом с кнопкой «Спросить»:
| | Что делает |
|---|---|
| **инструменты** | разрешить модели самой запрашивать файлы. Снимите — получится обычный «спросил по этим файлам, получил ответ»: один круг, без беготни по папке. См. [когда выключать](#когда-выключать-инструменты) |
| **шагов** | сколько кругов позволить. Без инструментов не нужен и гаснет |
| **помнить прошлый ответ** | прошлый ответ уедет вместе со следующим вопросом. Так можно вести разговор: «а теперь перепиши это на async» |
Внизу слева иногда всплывает ряд про **git** — он появляется, только если
в папке нет репозитория или в `.gitignore` не хватает строк. Главная из них —
`backup/`: туда ложатся прежние версии файлов перед записью, и однажды они
уедут в коммит.
Пульт открывается в браузере **по умолчанию**, а не в том, которым управляет
`deepseek-api`: иначе он занял бы там вкладку, и вкладка с чатом потерялась бы.
Порт 8787.
@@ -150,10 +163,23 @@ node C:\#Projects\deepwork\deepwork.mjs "почему падает загруз
| `--files a.js,b.js` | положить эти файлы в вопрос сразу |
| `--steps 6` | сколько кругов позволить (по умолчанию 4) |
| `--apply` | записать пришедшие файлы на диск (без него только покажет) |
| `--no-tools` | не давать модели инструменты: один круг, только отмеченные файлы |
| `--chat search` | режим с поиском в интернете вместо обычного |
| `--check` | проверить связку и выйти |
| `--selftest` | внутренние проверки, ничего не отправляя |
### Когда выключать инструменты
Инструменты хороши, когда **непонятно, что читать**: «почему падает загрузка»
в чужом проекте. Модель сама найдёт нужное.
Выключать стоит, когда вы **точно знаете нужные файлы**. Тогда:
- ответ приходит за один круг вместо двух-трёх;
- вопрос выходит вчетверо короче — приставка, дерево папки и напоминание
не едут вовсе (замер: 229 символов против 1886 на той же задаче);
- модель не ходит по папке без нужды, и наружу не уезжает лишний код.
### Чего ожидать по времени
Один круг — 7–15 секунд. Обычная задача укладывается в два-три круга, то есть
@@ -374,6 +400,25 @@ DeepSeek видел, что данные неполные.
живут в его `browser.mjs`. Отсюда остаётся одно требование — **не сворачивать
окно браузера**.
### Блок-запрос вплотную к прозе, 26.08.2026
DeepSeek регулярно дописывает запрос в конец фразы, без перевода строки:
```
Мне нужны данные для ответа. Запрашиваю поиск константы MAGIC.=== FIND: MAGIC ===
```
Разбор требовал, чтобы блок начинал строку, и такой запрос не видел: цикл
решал, что запросов нет, и заканчивал работу догадкой. Круг впустую.
Якорь начала строки снят, якорь конца оставлен: упоминание формата посреди
фразы («верни `=== NEED: файл ===` и я пришлю») запросом по-прежнему не
считается. От запросов внутри блоков `=== FILE: ===` бережёт не якорь,
а вырезание этих блоков перед разбором — так было и раньше.
Проверено на живой задаче: до правки — один круг и «запросов нет»; после —
`FIND: MAGIC`, второй круг, верный ответ.
### Переезд на deepseek-api, 26.08.2026
Раньше `deepwork` вызывал мост `ask.mjs` из проекта DeepShim дочерним процессом