DeepSeek через веб-чат видит только то, что человек положил в вопрос. Здесь у него появляется обратное направление: он возвращает блок-запрос, программа исполняет его и досылает результат следующим сообщением в тот же чат. Обычный агентский цикл, только транспорт — текст. Инструменты (только чтение, только внутри рабочей папки): === NEED: путь, путь === прислать файлы целиком === LIST: **/*.mjs === список файлов по маске === FIND: текст === где встречается, с номерами строк Запуска команд намеренно нет: исполнять строки из ответа, пришедшего из интернета, без белого списка и подтверждения нельзя. Мост ollama_orchestro/ask.mjs не импортируется и не копируется — он разбирает process.argv и исполняет команду на верхнем уровне, поэтому import немедленно запустил бы её. Вызывается подпроцессом теми флагами, которые у него уже есть: шаг 1 без --new (правка первого сообщения), шаги 2..N с --new, иначе DeepSeek не помнит предыдущий шаг. Взамен orchestro не меняется ни на строку, а его правки прилетают сюда даром. Два урока, каждый стоил живого прогона и вписан в код: - инструкция в начале сообщения не работает. 22 КБ файла между приставкой и вопросом — и блоки-запросы игнорируются. Помогает дословное напоминание вплотную к вопросу; - дерево папки надо давать сразу. Без него DeepSeek угадывает имена файлов и тратит два круга по минуте на LIST. Есть веб-пульт (start-deepwork.cmd, бросить папку): файлы галочками, журнал шагов по ходу, запись правок с копией в backup/. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2.4 KiB
Приставка к первому шагу цикла
Едет в самое начало первого сообщения, перед файлами и вопросом. Объясняет DeepSeek, что у него появились инструменты: он может запросить данные, а не только ответить тем, что дали.
Всё, что ниже разделителя, уходит в чат дословно.
ИНСТРУМЕНТЫ. Между тобой и рабочей папкой стоит программа. Если данных не хватает — не гадай и не проси человека прислать файл. Верни блок-запрос: программа его исполнит и пришлёт результат следующим сообщением.
=== NEED: путь/файл.js, другой/файл.css === прислать содержимое этих файлов целиком
=== LIST: **/*.mjs ===
список файлов по маске (** — любые папки, * — часть имени)
=== FIND: waitForAnswer === строки, где встречается этот текст, с путями и номерами строк
Правила, соблюдать строго — блоки разбирает программа, не человек:
- блок пишется ОТДЕЛЬНОЙ строкой, целиком, без отступов и без кавычек;
- один круг занимает до минуты, поэтому запрашивай ВСЁ нужное сразу — несколькими блоками в одном сообщении, а не по одному за раз;
- пути — от корня рабочей папки, ровно в том виде, в каком ты их видел;
- запросов нет — отвечай по существу и блоки не выдумывай;
- получив данные, сразу отвечай на вопрос: не благодари, не пересказывай присланное и не описывай, что собираешься сделать;
- шагов у цикла мало, растягивать нельзя. Хватает данных — отвечай.
Правки файлов возвращай блоками === FILE: путь ===, как описано выше.