Инструменты
Ниже приведён полный список инструментов, которые агент 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. |
Детали отдельных инструментов
Заголовок раздела «Детали отдельных инструментов»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).
.kodikignore
Заголовок раздела «.kodikignore»Инструменты read_file, rg, shell и другие проверяют .kodikignore перед доступом к файлам. Файлы, совпадающие с шаблонами в .kodikignore, недоступны агенту. Подробнее — в разделе Игнорируемые файлы.