Кодинг-агент
Кодинг-агент с набором инструментов и агентным циклом для автоматизации задач программирования
Цель проекта
Собрать собственного консольного кодинг-агента — и через это понять изнутри, как устроен Claude Code. Лучший способ разобраться в инструменте — построить его уменьшенную копию своими руками. Да, кодинг-агента вы будете писать с помощью кодинг-агента.
К концу у вас будет агент, который принимает задачу на естественном языке, сам читает и правит файлы, запускает команды, работает в цикле до результата — и умеет то же, что вы видели на лекциях: подхватывает контекст проекта, грузит знания по требованию, выносит подзадачи в изолированный контекст.
Как это устроено
Это итоговый проект на обе лекции про Claude Code. Вехи 1–4 закрывают первую лекцию, 5–6 — вторую. Срок — к началу блока про SDD.
- Стройте агента через Claude Code (или другого агента) — это часть задания. Пока строите, вы вживую практикуете plan mode, CLAUDE.md,
/rewindна реальном проекте. - Язык и стек — любые. Модель — тоже любая: локальная из прошлой лабы, Claude, OpenAI.
- Ведите
NOTES.md: по каждой вехе пара строк — что получилось и что удивило.
Дальше — вехи, а не пошаговая инструкция. Что агент должен уметь и какой механизм за этим стоит — задано; как именно вы это реализуете — на ваше усмотрение.
Веха 1. Цикл агента
Сердце агента — тот самый цикл, который мы видели на лекции про агентов: получить задачу → спросить модель → модель просит вызвать инструмент → выполнить → результат обратно в контекст → повторить, пока задача не решена.
Начните без инструментов: простой консольный диалог в цикле, где на каждом ходу вся история собирается заново и уходит модели. Здесь важно своими глазами увидеть, как контекст растёт с каждым шагом, — то самое окно, которое в Claude Code показывает /context.
В NOTES.md: как вы храните историю диалога и что в неё кладёте.
Веха 2. Инструменты — руки агента
Дайте агенту минимум: Read, Write, Update, Delete, List, Execute (команда в терминале). Модель сама решает, какой инструмент вызвать и с какими аргументами; ваш код выполняет и возвращает результат обратно в цикл.
У большинства API для этого есть структурированный вызов инструментов (tool use / function calling) — но можно и разобрать ответ модели руками, как мы пробовали через регулярку на лекции про агентов. С этого момента агент уже реально пишет код в файлы и запускает его.
В NOTES.md: какие инструменты сделали, как описали их модели и где агент ошибался с аргументами.
Веха 3. AGENTS.md — контекст проекта
Научите агента перед первым ходом читать файл AGENTS.md из рабочей папки и класть его в системный промпт. Это ровно то, что Claude Code делает с CLAUDE.md: агент с нуля не знает ни стек, ни конвенции, ни где что лежит — а так получает это ещё до вашего первого сообщения. (AGENTS.md — общий формат такого файла, его понимают разные инструменты.)
В NOTES.md: что вы положили в AGENTS.md своего тестового проекта и как изменились ответы агента после этого.
Веха 4. Skills — знание по требованию
Положить все правила в AGENTS.md — значит раздувать контекст: он целиком уходит модели на каждом ходу. Скиллы решают это иначе.
Сделайте набор скиллов: каждый — файл с коротким описанием (когда его применять) и телом (как делать что-то конкретное). Агент видит только описания; тело нужного скилла он подгружает в контекст по требованию, а не держит всё сразу. Это та же экономия окна, ради которой скиллы есть в Claude Code.
В NOTES.md: какой скилл сделали и по какому сигналу агент решил его подтянуть.
Веха 5. Субагент — изолированный контекст
Дайте агенту инструмент, который запускает субагента — отдельный экземпляр вашего же агента с чистым контекстом — на подзадачу и возвращает наружу только результат. Например: «изучи структуру проекта и верни краткий отчёт». Разведка не засоряет основной диалог техническими деталями — наружу приходит выжимка.
В NOTES.md: сравните размер основного контекста на одной задаче с субагентом и без — разница и есть смысл изоляции.
Веха 6. Разрешения и полировка
Агент сам запускает команды и удаляет файлы — это страшновато. Добавьте подтверждение перед опасным: Execute, Delete, Write. Это ровно модель разрешений из Claude Code — чтение идёт само, действие спрашивает.
Когда базовый агент работает — добавьте хотя бы одно своё улучшение на вкус.
Со звёздочкой (по желанию)
Одно из:
- Хуки: на событии (например, после
Write) запускать шелл-скрипт — автоформат или линтер. - Шаг планирования: агент сперва показывает план и ждёт подтверждения, и только потом действует (= plan mode).
- Параллельные субагенты на независимых подзадачах.
- Команда агентов, где запущенные агенты могут общаться между собой.
Результат
Репозиторий с агентом, CLAUDE.md, скиллами и NOTES.md. Добавьте ссылку в поле «Ваш результат» и нажмите «Отправить на проверку».