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

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

v0.2.0

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

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

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

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

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

v0.2.0

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

При чтении файла или просмотре директории Koda подключает к результату инструкции проекта, которые к ним относятся, — включая файлы KODA.md и AGENTS.md из вложенных директорий. Так агент получает правила конкретного модуля только тогда, когда начинает с ним работать. Подробнее — в разделе «Инструкции во вложенных директориях».

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

v0.2.0

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

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

При изменении открытых в редакторе файлов Koda синхронизирует правки с буфером документа IDE. Это обеспечивает мгновенное обновление синтаксического дерева и фонового анализатора кода, исключая расхождения между текстом на диске и в памяти среды разработки. При сборе диагностических сообщений после правок плагин дожидается завершения фонового анализа файла: устаревшие ошибки от предыдущей версии кода отсекаются, что защищает агента от ложных повторных исправлений и зацикливания.

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

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

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

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

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

v0.2.0

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

Агент корректно выполняет составные команды: цепочки через && и ||, перенаправления (>), многострочные команды и вложенные подоболочки.

Локальный проект

v1.2.6

Команды не выполняются в вашем терминале IDE: они не открывают новых вкладок терминала и не попадают в историю команд. Каждый вызов запускается в новой оболочке, поэтому смена директории (cd), переменные окружения (export) и активированные окружения (например, virtualenv) не переносятся в следующий вызов. Если шаги зависят друг от друга, объединяйте их в одну команду: source .venv/bin/activate && pytest.

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

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

Стандартный ввод недоступен

У команды нет терминала и пустой стандартный ввод, поэтому всё, что ждёт ответа от вас, — пароль, подтверждение, вопрос об отпечатке ключа SSH, интерактивный редактор — завершается ошибкой, а не ожиданием. Используйте неинтерактивные режимы: npx --yes, apt-get -y, git commit -m, ssh -o BatchMode=yes с аутентификацией по ключу.

Ограничение по времени

Таймаут задаётся в секундах: по умолчанию 120 секунд; при необходимости агент сам может указать больший срок — до 1800 секунд (30 минут). Когда время истекает, команда и запущенные ею процессы завершаются, а результат помечается как прерванный по таймауту. В результате команды также указывается идентификатор запущенного процесса (PID).

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

Как выглядит команда в чате

v1.0.0

Команда отображается отдельным блоком, а не как обычный фрагмент кода:

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

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

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

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

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

v1.1.0

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

Субагенты

v1.2.0

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

Управление компьютером

v1.3.0

Инструмент computer_use позволяет агенту видеть окна приложений на вашем компьютере и действовать в них: нажимать кнопки, заполнять поля, переключать вкладки. Он доступен только в режиме агента, только на локальном компьютере и только с моделью, которая понимает изображения. По умолчанию действия в окнах требуют подтверждения. Подробнее — на странице «Управление компьютером».

Ошибки поиска

v1.0.0

Если поиск по содержимому или список файлов не удалось выполнить, Koda возвращает причину как ошибку вызова инструмента. Агент видит её и может исправить запрос или путь, а не считает, что совпадений нет.

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

v1.2.4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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