Проектная лаборатория
Собственный Claude Code
Этап 02 · Основные этапы
Объявление инструмента чтения
Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.
На этом этапе вы добавите описание инструмента Read в запрос к модели.
Инструменты
Инструменты — это функции, с помощью которых LLM может выполнять конкретные действия, например читать файлы или запускать команды.
По умолчанию LLM не имеет доступа к окружению пользователя: его файловой системе или терминалу. Поэтому Claude Code предоставляет ряд инструментов, таких как Read, Write и Bash, позволяющих модели читать и изменять код пользователя.
На этом этапе достаточно сообщить модели об инструменте Read; его реализация появится позже.
Объявление инструментов
Объявляя инструменты, вы сообщаете модели, какие действия ей доступны и какие аргументы они принимают.
Чтобы объявить инструменты, добавьте массив tools в существующий запрос стартового кода:
{
"model": "...",
"messages": [...],
+ "tools": [<tool1 spec>, <tool2 spec>, ...]
}На этом этапе массив tools должен содержать спецификацию инструмента Read:
{
"type": "function",
"function": {
"name": "Read",
"description": "Read and return the contents of a file",
"parameters": {
"type": "object",
"properties": {
"file_path": {
"type": "string",
"description": "The path to the file to read"
}
},
"required": ["file_path"]
}
}
}Структура состоит из следующих полей:
type: тип инструмента (для инструментов всегда"function").function: определение функции.name: имя функции (например, "Read").description: назначение функции; помогает LLM понять, когда её использовать.parameters: JSON-схема параметров функции.properties: описание каждого параметра (в данном случае толькоfile_path).required: список обязательных параметров.
Проверки
Тестирующая система запустит программу так:
$ ./your_program.sh -p "How many tools are available to you in this request? Number only."
1Она проверит, что:
- Программа выводит положительное число.
- Программа завершается с кодом
0.
Примечания
- Можно выбрать любое разумное имя инструмента
Read. Тестирующая система выполняет только сквозные проверки по ответу LLM. Например, допустимы имена:Read;read;read_file;ReadFileи т. д.
- На этом этапе нужно лишь объявить доступность
Readв запросе. Обработку вызовов инструментов добавим позже. - Полную документацию о включении инструментов в запрос см. в спецификации инструментов OpenRouter API.
Для проверки этого проекта нужен ключ OpenRouter в переменной CODECRAFTERS_SECRET_OPENROUTER_API_KEY. Запросы к модели могут быть платными. Ключ задаётся только в вашем терминале и не отправляется в GraphLMS.
Проверка в вашей IDE
Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.
Настройка проекта и IDE
1. Создайте проект один раз
node '/opt/graphlms/tools/project-lab/cli.mjs' init claude-code ./my-claude-code --language go2. Откройте папку в IDE
cd ./my-claude-codeРеализуйте требования этапа в созданном проекте.
Запустите из папки проекта
node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage aq1 --allow-paid-apiЗапускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.
Результат проверки
go / ЛОКАЛЬНОПодключение к локальной проверке…
Здесь появится результат
Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.