Субагенты
Субагенты позволяют Кодику делегировать сфокусированную работу дочерним задачам. Каждый субагент работает в собственном контекстном окне и возвращает результат родительскому агенту. Это сохраняет контекст родителя чистым, пока исследование или реализация выполняются параллельно или последовательно.
Встроенные агенты
Заголовок раздела «Встроенные агенты»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 запрещён, поэтому он не может рекурсивно порождать другие субагенты. Наследует режим подтверждения родителя — в режиме по умолчанию запрашивает подтверждение перед каждым редактированием или командой; в режиме автопилота выполняет их автоматически.
Оба встроенных агента неинтерактивны: они не могут напрямую задавать вопросы пользователю.
Инструмент 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_filemodel: haikucolor: blue---
Вы — субагент my-agent. Опишите поведение и ограничения здесь.Тело файла используется дословно как системный промпт агента.| Поле | Описание |
|---|---|
name | Короткий идентификатор (используется как id агента). |
description | Показывается главному помощнику при решении о делегировании. |
tools | Явный список разрешённых инструментов. Пропустите для наследования широкого набора по умолчанию. Пустое значение означает отсутствие инструментов. |
disallowedTools | Список запрещённых инструментов, применяемый до сужения разрешённого списка. |
model | haiku, sonnet, opus или полный идентификатор модели. Используйте inherit (или пропустите) для той же модели, что и у родителя. |
color | Цветной чип в заголовке транскрипта. Одно из: red, blue, green, yellow, purple, orange, pink, cyan. |
Где размещать файлы агентов
Заголовок раздела «Где размещать файлы агентов»| Область | Расположение | Примечания |
|---|---|---|
| Проект | .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зарезервированы для родителя.
Когда использовать субагенты
Заголовок раздела «Когда использовать субагенты»Субагенты наиболее полезны, когда:
- Нужно собрать широкий контекст из нескольких областей кодовой базы до того, как родитель вносит изменения.
- Чётко ограниченная задача реализации может выполняться изолированно, не затрагивая файлы, которые также редактирует родитель.
- Вы хотите, чтобы родитель координировал несколько параллельных исследований и синтезировал результаты.
Для небольших сфокусированных задач, когда у агента уже достаточно контекста, вызов субагента добавляет накладные расходы без пользы.