Инструменты
Ниже приведён полный список инструментов, которые агент Kodik может использовать в своей работе. Доступные инструменты зависят от текущего режима. Доступ к файлам регулируется правилами .kodikignore.
Включение и отключение инструментов
Заголовок раздела «Включение и отключение инструментов»Каждый инструмент стоит контекста: его описание и параметры входят в список инструментов модели, а правила его использования — в системный промпт, и всё это отправляется с каждым запросом. Если вы инструментом не пользуетесь, эти токены тратятся впустую. Отключение убирает инструмент и из списка инструментов, и из системного промпта — освобождая контекст для вашего кода и истории диалога.
Политика доступности инструментов находится в разделе Harness настроек Kodik — это единая точка для всех 23 встроенных инструментов и подсказок промпта, тогда как Agents отвечает за поведение ассистента и суммаризацию. Единственный переключатель инструмента изменяет выбранный режим; структурно недоступные инструменты перечисляются как недоступные. Разрешениями на выполнение без запроса управляет отдельный раздел Auto Approve.
Отключённый инструмент полностью убирается у агента в выбранном режиме: модель не получает его схему, а связанный текст системного промпта также исчезает. Аккордеоны действий доступны только для просмотра и показывают операции, разрешённые обязательной политикой режима. Изменение действует и для субагентов и применяется со следующего запроса агента — уже выполняющийся запрос не переписывается.
Таблица инструментов
Заголовок раздела «Таблица инструментов»| Инструмент | Назначение | Примечания |
|---|---|---|
read_file | Чтение содержимого файла | Поддерживает диапазоны строк через параметр ranges. Файлы, превышающие контекстное окно модели, не читаются напрямую. Уважает .kodikignore. |
edit_file | Редактирование одного файла | Изменяет один существующий файл одним или несколькими точными заменами. Перед правкой файл нужно прочитать; для нескольких файлов используется по одному последовательному вызову на файл. После правки проверяет диагностику линтера. |
create_file | Создание одного файла | Создаёт один новый файл с полным содержимым и отказывается перезаписывать существующий путь. Для нескольких файлов используется по одному последовательному вызову на файл. |
delete_file | Удаление одного файла | Удаляет один существующий файл. Для удаления нескольких файлов используется по одному последовательному вызову на файл. |
edit_notebook | Редактирование Jupyter-ноутбука | Поддерживает операции insert, edit, delete для ячеек типа code и markdown. Языки: Python, JS, TS, R, Julia, SQL. Изменённые ноутбуки учитывают настройку отображения изменений файлов; открытые редакторы ноутбуков обновляются и сохраняются после правок инструмента, а ноутбуки с несохранёнными изменениями сначала нужно сохранить или сбросить. |
shell | Выполнение команды в терминале | Параметр block_until_ms: 0 запускает команду в фоне и немедленно возвращает terminal_id для опроса через command_status. Фоновая команда выполняется в собственном терминале и не блокирует следующие команды. |
command_status | Получение вывода фонового процесса | Принимает terminal_id, возвращённый командой shell. Используется для опроса dev-серверов, сборщиков и других долгих процессов. |
kill_terminal | Остановка фонового процесса | Принимает terminal_id, возвращённый командой shell. Завершает фоновую команду и освобождает её терминал — для очистки или перезапуска dev-сервера или watcher-а. Одобряется автоматически. |
glob | Поиск файлов по шаблону | Поддерживает шаблоны вида **/*.ts. |
rg | Полнотекстовый поиск (ripgrep) | Поиск по регулярному выражению с поддержкой опций ripgrep. Уважает .kodikignore. |
codebase_search | Семантический поиск по кодовой базе | Использует локальный индекс — см. Индексирование. |
read_lints | Чтение диагностики линтера | Возвращает ошибки и предупреждения из VS Code для одного или нескольких файлов (или всего рабочего пространства). |
web_fetch | Загрузка содержимого URL | Только HTTPS (plain HTTP разрешён только для localhost). Возвращает страницу в формате Markdown. Таймаут — 30 секунд. |
web_search | Поиск в интернете | Только на провайдере Kodik. Возвращает ранжированные результаты (заголовок, URL, фрагмент) и, как правило, синтезированный ответ. Каждый поиск оплачивается из баланса кредитов. |
browser | Управление встроенным браузером | Доступен в режимах, где его разрешает политика режима, если инструмент включён в Harness. Открывает страницы, может использовать уже открытые вкладки, запускать dev-сервер, делать скриншоты, читать консоль, инспектировать, менять размер, переходить по страницам и взаимодействовать с UI. |
todo_write | Управление списком задач | Создаёт и обновляет элементы списка задач для многошаговых сессий. |
memory | Сохранение заметок в памяти | Записывает заметки в рабочую/глобальную память или в session memory текущей задачи. См. Память. |
sub_agent | Делегирование подзадачи субагенту | Запускает дочернего агента с отдельным контекстом. С background: true возвращается сразу, а «ребёнок» отчитывается после завершения. См. Субагенты. |
agent_status | Проверка фонового субагента | Принимает agent_id из подтверждения фонового запуска sub_agent. Сообщает статус, цель и время работы; wait: true блокирует до завершения и возвращает полный отчёт. См. Субагенты. |
ask_questions | Уточняющие вопросы | Задаёт короткие вопросы, когда неоднозначность запроса меняет план работы. |
check_understanding | Проверка понимания | Проводит короткую проверку понимания в режиме обучения. |
create_lesson | Создание уроков | Создаёт интерактивный HTML-урок и открывает его во встроенном браузере в режиме обучения. |
generate_plan | Создание плана | Создаёт проверяемый план реализации в режиме планирования. |
| Инструменты MCP | Любые инструменты из MCP-серверов | Зависят от подключённых серверов. См. MCP. |
Подключённые MCP-инструменты добавляются в общий список Harness после встроенных. Их переключатель выбранного режима действует со следующего запроса, а конфигурацией сервера и инструмента управляют настройки MCP. В подсказки промпта и итоговые суммы входят только активные MCP-инструменты.
Детали отдельных инструментов
Заголовок раздела «Детали отдельных инструментов»read_file
Заголовок раздела «read_file»Параметр ranges принимает массив объектов {start_line, end_line} и позволяет читать только нужные части большого файла. Если файл превышает допустимый размер (зависит от контекстного окна модели), read_file вернёт сообщение с рекомендациями использовать rg или ranges вместо полного чтения.
read_file("src/server.ts", ranges=[{start_line: 1, end_line: 50}])shell, command_status и kill_terminal
Заголовок раздела «shell, command_status и kill_terminal»Для долгих процессов (dev-серверы, watcher-ы, стриминг логов) запускайте команду с block_until_ms: 0 — она немедленно вернёт terminal_id. Используйте command_status с этим ID, чтобы периодически получать новый вывод без перезапуска процесса. Фоновая команда занимает собственный терминал, поэтому следующие команды агента не блокируются, а kill_terminal останавливает её, когда она больше не нужна или требует перезапуска.
Kodik выполняет эти команды в настоящем встроенном терминале. Shell integration — это протокол отслеживания команд терминалом: если выбранная оболочка его поддерживает, Kodik получает точные границы команды и код выхода. Если интеграция недоступна, Kodik всё равно запускает команду и собирает её вывод, но показывает Завершение не подтверждено, а не выдумывает успех или ошибку. Результат всегда относится только к породившей его команде; если фоновый процесс завершается во время активного хода, модель получает его реальный код выхода (когда он доступен) и финальный вывод.
Фоновый процесс оставляет свой терминал занятым. Следующий вызов shell открывает ещё один встроенный терминал, поэтому npm run dev продолжает работать, пока ls, тесты или HTTP-проверки выполняются параллельно. После завершения команды свободный терминал может использоваться повторно.
# Запуск dev-сервера в фонеterminal_id = shell("npm run dev", block_until_ms=0)
# Получение логовcommand_status(terminal_id=terminal_id)
# Остановка процессаkill_terminal(terminal_id=terminal_id)codebase_search
Заголовок раздела «codebase_search»Использует векторный индекс, создаваемый автоматически. Поиск не зависит от точных ключевых слов — можно искать по смыслу. Требует наличия индекса; подробнее — в разделе Индексирование.
web_fetch
Заголовок раздела «web_fetch»Открывает headless-браузер, загружает страницу и возвращает её содержимое в формате Markdown. Вывод обрезается до 60 КБ. Не работает с plain HTTP (кроме localhost).
web_search
Заголовок раздела «web_search»Позволяет агенту находить актуальную информацию, на которую у него нет ссылки: свежие версии библиотек и их API, незнакомые сообщения об ошибках, breaking changes, страницы официальной документации. Поиск выполняется на стороне сервера через бэкенд Kodik — ключи поискового провайдера никогда не попадают на вашу машину. Каждый успешный поиск списывает фиксированную сумму с того же баланса кредитов, что и использование моделей; неудачные поиски не оплачиваются. Агент комбинирует два веб-инструмента: ищет через web_search, затем читает самый перспективный результат целиком через web_fetch.
Доступен только на провайдере Kodik. На Ollama и кастомных провайдерах (со своим ключом) инструмент не предлагается — там поиск невозможно выполнить и оплатить. У подтверждения есть собственный переключатель авто-одобрения (webSearch) — см. Авто-Одобрение.
browser
Заголовок раздела «browser»Управляет тем же Integrated Browser, который видите вы в Kodik. Агент может открыть предпросмотр по URL, при необходимости сначала запустить команду dev-сервера и дождаться ответа URL, а затем закрыть предпросмотр и остановить запущенный им сервер.
Используйте browser для всего, что рендерится в браузере. Инструмент умеет получать список уже открытых вкладок и фокусироваться на вкладке, которую видите вы, делать скриншоты, читать консоль, менять размер до мобильного/планшетного/десктопного брейкпоинта, переходить по страницам, перезагружать их, идти назад и вперёд, инспектировать HTML/стили/размеры элемента, читать accessibility snapshot, кликать, вводить текст, наводить курсор, перетаскивать элементы и выполнять выражения на странице.
Открытие произвольных URL, запуск dev-серверов, взаимодействие со страницей и выполнение скриптов подчиняются вашим настройкам авто-подтверждения. Скриншоты, сделанные агентом, показываются прямо в чате; нажмите на миниатюру, чтобы открыть полное изображение во вкладке редактора.
.kodikignore
Заголовок раздела «.kodikignore»Инструменты read_file, rg, shell и другие проверяют .kodikignore перед доступом к файлам. Файлы, совпадающие с шаблонами в .kodikignore, недоступны агенту. Подробнее — в разделе Игнорируемые файлы.