Инструменты
Ниже приведён полный список инструментов, которые агент Kodik может использовать в своей работе. Доступные инструменты зависят от текущего режима. Доступ к файлам регулируется правилами .kodikignore.
Включение и отключение инструментов
Заголовок раздела «Включение и отключение инструментов»Каждый инструмент стоит контекста: его описание и параметры входят в список инструментов модели, а правила его использования — в системный промпт, и всё это отправляется с каждым запросом. Если вы инструментом не пользуетесь, эти токены тратятся впустую. Отключение убирает инструмент и из списка инструментов, и из системного промпта — освобождая контекст для вашего кода и истории диалога.
В списке «Инструменты» раздела Agents настроек Kodik перечислены все инструменты агента — по одному переключателю на каждый, включая базовые (чтение, редактирование, поиск, shell). Любой инструмент можно отключить; учтите, что отключение чтения, редактирования, поиска или shell серьёзно ограничивает агента. Возле инструментов, доступных только в определённых режимах, стоит бейдж режима (например, generate_plan — только в режиме Plan, check_understanding — только в Educator, а инструменты редактирования и браузер — только в Code и Debug). Разрешениями на выполнение без запроса управляет отдельный раздел Auto Approve.
Отключённый инструмент полностью убирается у агента: модель не получает его в списке инструментов, а все упоминания о нём удаляются из системного промпта; его переключатели авто-одобрения при этом неактивны. У инструментов с под-действиями (операциями) можно отключать отдельные действия, не выключая весь инструмент: встроенный браузер раскрывается в переключатель на каждое действие (можно, например, оставить браузер включённым, но запретить скриншоты (screenshot) или выполнение JavaScript (eval)), семантический поиск — на проверку и перестроение индекса (status/reindex), а редактирование ноутбуков — на вставку, изменение и удаление ячейки (insert/edit/delete). Отключённое действие убирается из enum схемы инструмента (и из его описания), а при попытке вызова отклоняется. Отключение целого инструмента действует и для субагентов и применяется со следующего запроса агента — даже посреди задачи. Устаревшая настройка kodik.browser.enabled продолжает действовать, пока вы не воспользуетесь новым переключателем браузера.
Таблица инструментов
Заголовок раздела «Таблица инструментов»| Инструмент | Назначение | Примечания |
|---|---|---|
read_file | Чтение содержимого файла | Поддерживает диапазоны строк через параметр ranges. Файлы, превышающие контекстное окно модели, не читаются напрямую. Уважает .kodikignore. |
edit_file | Редактирование одного файла | Использует поиск-замену. После редактирования проверяет диагностику линтера. |
edit_files | Редактирование нескольких файлов за один вызов | Атомарные правки нескольких файлов. Также проверяет диагностику линтера. |
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-серверов, сборщиков и других долгих процессов. |
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 | Управление встроенным браузером | Доступен в Code и Debug, если инструмент включён в разделе Agents настроек. Открывает страницы, может использовать уже открытые вкладки, запускать dev-сервер, делать скриншоты, читать консоль, инспектировать, менять размер, переходить по страницам и взаимодействовать с UI. |
todo_write | Управление списком задач | Создаёт и обновляет элементы списка задач для многошаговых сессий. |
memory | Сохранение заметок в памяти | Записывает заметки в рабочую или глобальную память. См. Память. |
sub_agent | Делегирование подзадачи субагенту | Запускает дочернего агента с отдельным контекстом. См. Субагенты. |
| Инструменты MCP | Любые инструменты из 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
Заголовок раздела «shell и command_status»Для долгих процессов (dev-серверы, watcher-ы, стриминг логов) запускайте команду с block_until_ms: 0 — она немедленно вернёт terminal_id. Используйте command_status с этим ID, чтобы периодически получать новый вывод без перезапуска процесса.
# Запуск dev-сервера в фонеterminal_id = shell("npm run dev", block_until_ms=0)
# Получение логовcommand_status(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, недоступны агенту. Подробнее — в разделе Игнорируемые файлы.