Инструменты агента¶
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 на платформе 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 МиБ. Обрезка не влияет на саму команду: она выполняется полностью, сокращается только текст, который видит модель.
Как управлять инструментами¶
В интерфейсе можно настроить политику для разных действий.
Обычно используются три режима:
- автоматически — агент выполняет действие без отдельного запроса;
- с подтверждением — агент сначала показывает намерение и ждёт вашего решения;
- выключено — агент не использует этот тип действий.
Если вы только осваиваетесь, самый безопасный рабочий вариант — оставлять подтверждение для изменений файлов и запуска команд.
Для пользователя здесь важнее всего не список внутренних названий инструментов, а прозрачность: что именно агент собирается сделать сейчас и почему.
Если агент использует слишком много действий¶
Если кажется, что он читает лишнее, уходит слишком широко или предлагает больше шагов, чем нужно, попробуйте:
- сузить область задачи;
- указать конкретные папки или файлы;
- перевести чувствительные действия в режим подтверждения;
- попросить работать по одному шагу за раз.