Перейти к содержимому

Инструменты

Ниже приведён полный список инструментов, которые агент Kodik может использовать в своей работе. Доступные инструменты зависят от текущего режима. Доступ к файлам регулируется правилами .kodikignore.

ИнструментНазначениеПримечания
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 секунд.
todo_writeУправление списком задачСоздаёт и обновляет элементы списка задач для многошаговых сессий.
memoryСохранение заметок в памятиЗаписывает заметки в рабочую или глобальную память. См. Память.
sub_agentДелегирование подзадачи субагентуЗапускает дочернего агента с отдельным контекстом. См. Субагенты.
Инструменты MCPЛюбые инструменты из MCP-серверовЗависят от подключённых серверов. См. MCP.

Параметр ranges принимает массив объектов {start_line, end_line} и позволяет читать только нужные части большого файла. Если файл превышает допустимый размер (зависит от контекстного окна модели), read_file вернёт сообщение с рекомендациями использовать rg или ranges вместо полного чтения.

read_file("src/server.ts", ranges=[{start_line: 1, end_line: 50}])

Для долгих процессов (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)

Использует векторный индекс, создаваемый автоматически. Поиск не зависит от точных ключевых слов — можно искать по смыслу. Требует наличия индекса; подробнее — в разделе Индексирование.

Открывает headless-браузер, загружает страницу и возвращает её содержимое в формате Markdown. Вывод обрезается до 60 КБ. Не работает с plain HTTP (кроме localhost).

Инструменты read_file, rg, shell и другие проверяют .kodikignore перед доступом к файлам. Файлы, совпадающие с шаблонами в .kodikignore, недоступны агенту. Подробнее — в разделе Игнорируемые файлы.