Перейти к содержанию

Инструменты агента

Сила агентского режима в том, что он умеет не только рассуждать, но и действовать в пределах доступных ему возможностей. Именно поэтому он может продвигаться по задаче, а не просто предлагать идеи.

При этом важна не столько точная внутренняя классификация инструментов, сколько понимание: что агент вообще умеет делать от вашего имени и где лучше оставлять подтверждение за собой.

Что агент умеет делать

Обычно инструменты агента покрывают несколько практических сценариев.

Читать и изучать проект

Это особенно полезно в начале задачи, когда нужно сначала понять, как всё устроено.

Предлагать и вносить изменения

Именно на этом этапе особенно важно держать под контролем чувствительные или большие изменения.

Правки применяются в фоне: редактирование и создание файлов не переключают активный редактор и не открывают новые вкладки — ваш курсор, выделение и несохранённый текст в текущем файле не меняются. Открыть изменённый файл можно в любой момент, кликнув по нему в чате. Изменения сохраняются на диск и поддерживают обычные Ctrl + Z / Ctrl + Shift + Z (на macOS — ⌘Z / ⇧⌘Z).

Если автоматическое применение изменений выключено, правка edit_file открывается в редакторе как diff и ждёт вашего решения — принять или отклонить, — даже когда сам инструмент разрешён к запуску без подтверждения. Клик по имени файла в заголовке завершённой правки в истории чата открывает diff именно этой правки: содержимое файла до и после неё, только для чтения.

Использовать внешний контекст

В зависимости от настроек агент может обращаться к документации и другим внешним источникам, если это помогает решить задачу точнее.

Если вы заранее знаете, какие данные нужны, добавьте их сами через @. Чем контекст-провайдеры отличаются от инструментов, описано в разделе «Провайдеры и инструменты агента».

Запускать команды

Для некоторых задач агенту бывает полезно выполнить команду: например, чтобы проверить результат, посмотреть вывод или воспроизвести проблему. Это одна из самых чувствительных зон, поэтому её обычно разумно оставлять с подтверждением.

Составные команды

В VS Code агент корректно выполняет составные команды: цепочки через && и ||, перенаправления (>), многострочные команды и вложенные подоболочки. Состояние терминала сохраняется между командами: смена директории (cd), переменные окружения (export) и активированные окружения (например, virtualenv) действуют и в следующих командах.

Удалённые окружения

В WSL, Dev Containers и Remote SSH команды выполняются на удалённой стороне — там же, где открыт проект. При удалённом запуске IDE на платформе JetBrains IntelliJ команды выполняются на машине с IDE. Об особенностях работы — на странице «Удалённые окружения».

Большой вывод команды не теряется: как он ограничивается и восстанавливается, описано в разделе «Большой вывод инструментов».

Инструменты в Koda

Koda предоставляет набор встроенных инструментов для работы с проектом:

Инструмент Описание
read_file Чтение содержимого файлов
edit_file Редактирование файлов с заменой текста
create_new_file Создание новых файлов
run_terminal_command Выполнение команд в терминале
grep_search Поиск по коду с помощью ripgrep
file_glob_search Поиск файлов по маске
ls Просмотр содержимого директорий
codebase_tool Поиск по индексу кодовой базы
fetch_url_content Получение содержимого веб-страниц
docs_search Поиск по документации библиотек
search_web Поиск информации в интернете
read_skill Загрузка навыков
run_subagent Запуск исследовательского субагента
update_plan Публикация и обновление плана задачи

update_plan в режиме планирования

Инструмент update_plan доступен и в режиме планирования, и в режиме агента. В режиме планирования он используется для публикации готового плана, а в режиме агента — для отслеживания прогресса по шагам.

Субагенты

Инструмент run_subagent позволяет агенту делегировать подзадачу отдельному субагенту. Субагент работает в изолированном контексте: по умолчанию ему доступны только «читающие» инструменты, но в настройках можно разрешить ему поиск, изменение файлов, выполнение команд и MCP-инструменты. Задачи выполняются в фоне и параллельно, а результат приходит в основной диалог автоматически. Агент может запускать как универсального субагента, так и субагента с именованной ролью. Если субагент упал, исчерпал лимит шагов или нужны дополнительные детали, агент может продолжить ту же сессию с сохранённой историей. Подробнее — в разделе Субагентность.

Большой вывод инструментов

Результат одного вызова инструмента ограничен 2000 строк или 50 КиБ — как в Koda CLI. Ограничение действует для всех инструментов: встроенных, HTTP и MCP-серверов, а также на суммарный результат, если агент выполнил несколько вызовов одного инструмента за один шаг.

Если вывод не помещается в лимит:

  • в чате показывается сокращённая часть с сообщением об обрезке;
  • для команд в терминале сохраняется конец вывода — обычно именно там находится итог или ошибка;
  • для остальных инструментов сохраняется начало вывода;
  • полный текст записывается в локальный временный файл, и путь к нему добавляется к результату.

Агент может прочитать полный вывод из сохранённого файла постранично инструментом read_file — без повторного запуска команды. Это экономит время и лимиты: например, длинный лог сборки или большой JSON-ответ не нужно получать заново.

Хранение полных результатов

Сохранённые выводы лежат во временном каталоге операционной системы и удаляются автоматически: файлы старше 48 часов или при превышении общего объёма 100 МиБ. Обрезка не влияет на саму команду: она выполняется полностью, сокращается только текст, который видит модель.

Как управлять инструментами

В интерфейсе можно настроить политику для разных действий.

Обычно используются три режима:

  • автоматически — агент выполняет действие без отдельного запроса;
  • с подтверждением — агент сначала показывает намерение и ждёт вашего решения;
  • выключено — агент не использует этот тип действий.

Если вы только осваиваетесь, самый безопасный рабочий вариант — оставлять подтверждение для изменений файлов и запуска команд.

Для пользователя здесь важнее всего не список внутренних названий инструментов, а прозрачность: что именно агент собирается сделать сейчас и почему.

Если агент использует слишком много действий

Если кажется, что он читает лишнее, уходит слишком широко или предлагает больше шагов, чем нужно, попробуйте:

  • сузить область задачи;
  • указать конкретные папки или файлы;
  • перевести чувствительные действия в режим подтверждения;
  • попросить работать по одному шагу за раз.