Субагенты
Субагенты позволяют Кодику делегировать сфокусированную работу дочерним задачам. Каждый субагент работает в собственном контекстном окне и возвращает результат родительскому агенту. Это сохраняет контекст родителя чистым, пока исследование или реализация выполняются параллельно или последовательно.
Встроенные агенты
Заголовок раздела «Встроенные агенты»Kodik поставляется с двумя встроенными профилями субагентов:
research — исследователь только для чтения. Ограничен инструментами read_file, glob, rg и web_fetch. Не может редактировать файлы, выполнять команды оболочки или порождать другие субагенты. Используется для сбора информации, составления карты кодовой базы или перекрёстных ссылок до того, как родитель примет решение.
implement — исполнитель с возможностью записи. Получает полный набор инструментов по умолчанию: read_file, edit_file, edit_files, edit_notebook, shell, command_status, codebase_search, rg, glob, web_fetch, read_lints и todo_write. Инструмент sub_agent запрещён, поэтому он не может рекурсивно порождать другие субагенты. Субагенты с возможностью записи доступны только в режимах Code и Debug, а Kodik запрашивает подтверждение перед запуском такого делегирования.
Оба встроенных агента неинтерактивны: они не могут напрямую задавать вопросы пользователю.
Инструмент sub_agent
Заголовок раздела «Инструмент sub_agent»Агент вызывает субагентов через инструмент sub_agent. Каждый вызов указывает:
- agent — какой профиль использовать (например,
research,implementили идентификатор пользовательского агента). - goal — описание задачи, которую получает субагент.
- scope — необязательный путь или область, в которой нужно оставаться.
- expectedDeliverables — необязательное описание того, что субагент должен вернуть.
Субагент запускается как реальная дочерняя задача со своей историей сообщений и API-вызовами. Результаты возвращаются родителю в виде отчёта в формате markdown. Полный справочник по инструментам см. в разделе Инструменты.
Пользовательские профили агентов
Заголовок раздела «Пользовательские профили агентов»Вы можете определять собственные профили субагентов в виде файлов .md с заголовком YAML.
Поля заголовка
Заголовок раздела «Поля заголовка»---name: my-agentdescription: Однострочное описание, отображаемое главному помощнику.tools: read_file, glob, rg, web_fetchdisallowedTools: shell, edit_file
---
Вы — субагент my-agent. Опишите поведение и ограничения здесь.Тело файла используется дословно как системный промпт агента.| Поле | Описание |
|---|---|
name | Короткий идентификатор (используется как id агента). |
description | Показывается главному помощнику при решении о делегировании. |
tools | Явный список разрешённых инструментов. Пропустите для наследования широкого набора по умолчанию. Пустое значение означает отсутствие инструментов. |
disallowedTools | Список запрещённых инструментов, применяемый до сужения разрешённого списка. |
Где размещать файлы агентов
Заголовок раздела «Где размещать файлы агентов»| Область | Расположение | Примечания |
|---|---|---|
| Проект | .kodik/agents/*.md в корне рабочего пространства | Добавляется в систему контроля версий; все участники команды получают одинаковых агентов. |
| Пользователь (глобально) | ~/Documents/Kodik/Agents/*.md | Личные агенты, не привязанные к проекту. |
| Плагин | <корень плагина>/agents/*.md | Распространяются через систему плагинов. |
Kodik также распознаёт .agents/agents/*.md как нейтральное расположение, совместимое с другими инструментами.
При совпадении имён агентов приоритет имеет .kodik/agents/ над .agents/agents/.
Именование и идентификаторы
Заголовок раздела «Именование и идентификаторы»- Агенты проекта имеют пространство имён
project:<name>. - Пользовательские агенты имеют пространство имён
user:<name>. - Агенты плагинов имеют пространство имён
<pluginId>:<name>.
Передайте полный идентификатор с пространством имён инструменту sub_agent, если хотите вызвать конкретный пользовательский агент.
Ограничения
Заголовок раздела «Ограничения»Все субагенты — встроенные и пользовательские — имеют следующие ограничения:
- Неинтерактивность — они не могут задавать вопросы пользователю и использовать инструменты вроде
ask_questionsилиcheck_understanding. - Запрет рекурсивного делегирования — инструмент
sub_agentвсегда запрещён внутри субагента, независимо от поляtoolsпрофиля. - Запрет инструментов управления задачами —
generate_plan,new_taskиreport_bugзарезервированы для родителя. - Режимы только для чтения остаются только для чтения — в режимах Ask, Plan и Educator можно делегировать встроенному профилю
research, но не профилям с возможностью записи. - Вызовы инструментов остаются структурированными — вызовы инструментов субагента используют ту же нативную нормализацию аргументов, что и родительские вызовы, включая пакетные ходы. Само делегирование не обрывается по фиксированному таймауту; если список файлов или текстовый поиск субагента выполняется слишком долго, Kodik возвращает ошибку инструмента, чтобы он сузил запрос вместо зависания всего запуска.
Когда использовать субагенты
Заголовок раздела «Когда использовать субагенты»Субагенты наиболее полезны, когда:
- Нужно собрать широкий контекст из нескольких областей кодовой базы до того, как родитель вносит изменения.
- Чётко ограниченная задача реализации может выполняться изолированно, не затрагивая файлы, которые также редактирует родитель.
- Вы хотите, чтобы родитель координировал несколько параллельных исследований и синтезировал результаты.
Для небольших сфокусированных задач, когда у агента уже достаточно контекста, вызов субагента добавляет накладные расходы без пользы.