А король-то голый! Как написать свой Claude Code в 200 строках кода
- Базовая архитектура описана как цикл: сообщение пользователя → ответ LLM с вызовом инструмента → выполнение инструмента программой → передача результата обратно LLM.
- Минимальный набор инструментов в примере: чтение файла, получение списка файлов в директории и редактирование файла (создание или замена первой найденной строки).
- Инструменты регистрируются в словаре, а их описание для LLM генерируется из docstring и сигнатуры функций через inspect.
- Системный промпт задаёт формат вызова: одна строка вида tool: TOOL_NAME({JSON_ARGS}) с компактным JSON в двойных кавычках.
- Пример использует клиент
anthropic и переменную окружения ANTHROPIC_API_KEY, а вызов модели указан как claude-sonnet-4-20250514.
Почему это важно: Материал снимает ощущение «магии» вокруг кодинг-помощников и показывает границу ответственности между LLM и исполняющим кодом. Такой цикл «LLM → инструменты → контекст» делает поведение агента более объяснимым и проверяемым. Также видно, какие части можно наращивать до продакшен-уровня: контекст, ошибки, UX и набор инструментов.
На что обратить внимание: В описании подчёркивается, что все действия с файлами выполняет локальная программа, поэтому именно она задаёт права и ограничения. Протокол на основе текстового парсинга строк tool: и JSON требует аккуратного разбора и обработки ошибок. В примере редактирование зависит от поиска old_str и заменяет только первое совпадение, а при отсутствии строки возвращает статус. Для продакшен-уровня отдельно перечислены более умное управление контекстом, потоковые ответы, дополнительные инструменты и процедуры подтверждения для деструктивных операций.
Коротко
- Паттерн разделяет ответственность: LLM предлагает шаги, а доступ к файлам и реальные изменения остаются в коде инструмента — это упрощает контроль и аудит.
- Если вызовы инструментов передаются строками и JSON, устойчивость к ошибкам парсинга и неожиданным форматам становится частью качества агента.
- В тексте подчёркнуто, что подробные docstring важны: модель опирается на них, выбирая инструменты и аргументы во время беседы.
- Минимальный набор функций работает, но автор отдельно перечисляет, что для «продакшена» обычно добавляют управление контекстом и подтверждения опасных действий.
- Архитектура не привязана к одному провайдеру: меняется клиент API, а логика цикла «запрос → инструменты → результат» остаётся той же.
FAQ
Зачем это важно понимать тем, кто использует кодинг-агентов: какой ключевой принцип работы Claude Code и похожих инструментов объясняет текст?
Автор сводит «магию» к циклу: LLM запрашивает инструменты, локальный код исполняет операции и возвращает структурированный результат в контекст.
Какие три инструмента автор считает достаточными для базового кодинг-агента и какие действия они покрывают в описанном примере кода?
Чтение файла, список файлов в директории и редактирование файла: создание при пустой old_str или замена первого вхождения old_str на new_str.
Как в примере LLM узнаёт о доступных инструментах и в каком формате она должна запрашивать их выполнение во время диалога?
Описание собирается из docstring и сигнатуры функций и вставляется в системный промпт. Запрос инструмента должен быть одной строкой вида tool: TOOL_NAME({JSON_ARGS}) с компактным JSON.
Чем предложенная реализация отличается от продакшен-инструментов вроде Claude Code, если опираться на перечень улучшений в тексте?
В тексте перечислены обработка ошибок, потоковые ответы, более умное управление контекстом, дополнительные инструменты и процедуры подтверждения для деструктивных операций.
Читайте также
Как я локально тестировал новый Qwen 3.6 и Gemma 4
Как тимлид заменил десятки вкладок на файловую систему и Claude Code
Когда, зачем и как правильно начинать новую сессию в Claude Code
Как писать промпты для разработки: опыт, который экономит часы
Claude Code изнутри: как устроены ИИ-агенты для разработки
- Базовый цикл кодинг-агента: LLM как оркестратор, инструменты как исполнитель: Минимальная архитектура кодинг-агента строится как повторяющийся цикл: пользователь формулирует задачу, LLM отвечает структурированным запросом инструмента, локальная программа выполняет действие и возвращает результат обратно в контекст LLM. Ключевой момент: модель не взаимодействует с файловой системой напрямую и не «делает изменения сама» — все права, ограничения и фактические операции определяются инструментами и кодом-исполнителем.
[AI-агенты и автоматизация разработки]
Зарегистрированные пользователи видят только два тезиса.
Зарегистрироваться
В статье показано, как собрать простой кодинг-агент наподобие Claude Code примерно в 200 строках Python: LLM запрашивает действия, а локальная программа выполняет их и возвращает результат. Главная мысль — модель не работает с файловой системой напрямую, она лишь просит инструменты.