Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
9.9 KiB
9.9 KiB
Глава 5 · Кодинг-агент и генерация кода
Код — это «инструмент, создающий новые инструменты», мета-способность универсального агента. На примере промышленного кодинг-агента показывается полная реализация этого самого мощного универсального инструмента.
← К оглавлению · 📖 Читать главу
Как читать эксперименты
В основном тексте короткие скелеты механизмов объясняют поток управления; в каталогах экспериментов находятся полные адаптеры SDK, журналы, тесты и приёмочные доказательства. Читать каждый файл построчно не требуется.
- Starter: Начните с цели, минимальной команды и условий приёмки; начните с coding-agent;
- Builder: Проследите точку входа, основной цикл, схему состояния/сообщений, инструменты и проверяющий модуль.
- Maintainer: Затем изучите тесты, манифесты доказательств, обработку сбоев, откат и адаптеры провайдеров.
При первом чтении можно пропустить ключи, слой представления и совместимость провайдеров; вернитесь при воспроизведении чисел.
Сопутствующие проекты
| Эксп. | Проект | Тип | Описание |
|---|---|---|---|
| 5-1 | code-for-math | ✅ | Сравнивает режимы «чистая цепочка рассуждений» и «с помощью кода» на одной модели и одном наборе олимпиадных задач по математике. Во втором режиме задачи формализуются в Python (sympy/numpy/scipy) и исполняются через function calling в песочнице-подпроцессе, заменяя ошибочный устный счёт точным вычислением, что заметно повышает точность. |
| 5-2 | code-for-logic | ✅ | Превращает логические головоломки «рыцари и лжецы» в задачи удовлетворения ограничений (CSP). Агент через python-constraint определяет переменные и биусловные ограничения, затем вызывает решатель. Сравнивает точность чисто языкового рассуждения и режима с помощью кода на наборе головоломок K&K. |
| 5-3 | small-model-codified-rules | ✅ | Контролируемый эксперимент на сценарии авиа-поддержки τ-bench: после переноса сложных бизнес-политик (правил возврата) из промптов на естественном языке в код/инструменты доля выполненных задач и соблюдение политик у малой модели резко выросли. Проверка кода внутри инструмента в реальном времени перехватывает ошибочные убеждения модели. |
| 5-4 | paper-to-ppt | ✅ | Переосмысляет «создание презентации» как задачу генерации кода: Предложитель пишет код Slidev (Markdown+HTML), Рецензент рендерит каждую страницу в PNG и через Vision LLM проверяет проблемы вёрстки, итеративно внося правки по структурированной обратной связи. Такое разделение труда двух агентов даёт заметно меньший пиковый размер контекста. |
| 5-5 | paper-to-video | ✅ | Развивая «статья → презентация», генерирует разговорный сценарий закадрового текста для каждого слайда, синтезирует речь через TTS, а затем с помощью ffmpeg постранично синхронизирует скриншот каждого слайда с аудио, создавая видео-объяснение с озвучкой. |
| 5-6 | video-edit | ✅ | По многосценовому видео и запросу на естественном языке агент через «двухшаговую Vision-локализацию» (грубое-к-точному извлечение и чтение кадров) определяет временные границы целевой сцены. После нарезки фрагмента Рецензент извлекает ключевые кадры получившегося клипа для проверки, повторяя при неудовлетворительном результате. |
| 5-7 | adaptive-log-parser | ✅ | Самоэволюционирующая система разбора логов: встречая новый, не разбираемый формат, она не выдаёт ошибку, а передаёт неудачный образец и сообщение об ошибке агенту генерации кода, чтобы получить функцию parse. После успешного авто-теста функция горячо обновляется и регистрируется в движке разбора — весь процесс без участия человека. |
| 5-8 | log-diagnosis | ✅ | Диагностический агент читает реальные HTTP-траектории, архитектурные документы и PRD, генерирует регрессионные тесты и воспроизводит их до и после исправления; официальный прогон создаёт реальный Issue через официальный GitHub MCP и сохраняет обезличенные квитанции. |
| 5-9 | dynamic-form | ✅ | Столкнувшись с неполным запросом, агент не задаёт вопросы по одному, а динамически генерирует самодостаточную HTML-форму с каскадной логикой, позволяя пользователю разом заполнить всю недостающую информацию. Фронтенд агрегирует данные формы в JSON и возвращает агенту для продолжения задачи. |
| 5-10 | erp-agent | ✅ | Переводит запросы на естественном языке в SQL для исполнения в базе, сразу показывая результирующую таблицу. В основе — паттерн artifact: LLM генерирует лишь SQL-артефакт, не перемещая сами данные, что экономит токены и исключает ошибки ручного счёта. Даже результаты в десятки тысяч строк возвращаются мгновенно. |
| 5-11 | conversational-ui | ✅ | Пользователь на естественном языке формулирует запросы на кастомизацию UI (цвет/шрифт/текст/вёрстка). Агент самостоятельно находит и изменяет исходный код фронтенда на React. Благодаря горячей замене модулей (HMR) в Vite изменения применяются мгновенно, с поддержкой многораундовой итеративной кастомизации. |
| 5-12 | permission-embedded-data-objects | ✅ | Хранилище объектов поверх PostgreSQL принудительно применяет авторизацию, валидацию и ссылочную целостность ниже динамически генерируемого кода приложения. |
| 5-13 | agent-creator | ✅ | Метапрограммирующий агент сравнивает адаптацию проверенной эталонной реализации с генерацией агента с нуля; обе ветви компилируются, тестируются и проверяются реальным API Kimi K3 с вызовами инструментов. |
Типы проектов
| Значок | Тип | Значение |
|---|---|---|
| ✅ | Автономный | Полный код в этом репозитории, запускается после настройки API-ключа |
| 📖 | Гайд по воспроизведению | Подробный документ, зависящий от внешних репозиториев через git clone |
| 🚧 | Проектный документ | Только архитектура/план реализации, рабочий код ещё в разработке |