Шесть ключевых компонентов кодингового ИИ-агента
Anthropic
OpenAI
Себастьян Рашка разбирает устройство кодинговых агентов на примере своего Mini Coding Agent. Он выделяет шесть компонентов: живой контекст репозитория, оптимизация промпта с кешированием, структурированные инструменты с проверкой, контроль раздувания контекста, управление памятью и трансляциями, а также делегирование суб-агентам. Автор подчёркивает, что обвязка (harness) играет не меньшую роль, чем сама модель.
Себастьян Рашка, автор книг по созданию LLM, в своей статье разбирает архитектуру кодинговых агентов — систем, которые оборачивают языковую модель в прикладной слой для эффективной работы с кодом. Он отмечает, что в последнее время прогресс во многом достигается не за счёт улучшения самих моделей, а за счёт грамотного окружения: работы с инструментами, контекстом и памятью. В качестве примера Рашка приводит свой мини-агент Mini Coding Agent, реализованный на чистом Python. Он выделяет шесть основных компонентов такого агента. Первый — живой контекст репозитория (live repo context): агент заранее собирает информацию о текущем Git-репозитории, ветке, проектных файлах вроде README, чтобы не стартовать с нуля. Второй — форма промпта и кеширование: стабильная часть промпта (инструкции, описания инструментов, сводка по репозиторию) кешируется и не пересобирается каждый раз, а динамическая часть (запрос пользователя, недавняя история) обновляется. Третий — структурированные инструменты, валидация и разрешения: агент предлагает заранее определённый набор инструментов (чтение файла, запуск команды и т.п.) с проверкой аргументов, путей и запросом одобрения пользователя; это снижает риск ошибок и повышает надёжность. Четвёртый — минимизация раздувания контекста: агент использует обрезку, фильтрацию, чтобы в промпт попадала только релевантная информация. Пятый — управление сессиями, памятью и возобновлением работы: ведётся запись всех действий (transcript), есть краткосрочная память и возможность сохранять и восстанавливать состояние сеанса. Шестой — делегирование и ограниченные суб-агенты: агент может поручать подзадачи специализированным суб-агентам. Рашка подчёркивает, что хорошая обвязка может сделать модель значительно более эффективной, чем при использовании в простом чате, и что LLM сейчас становятся всё более похожими по «ванильным» возможностям, так что именно harness становится фактором дифференциации.
- Сокращения
- LLM = Large Language Model — большая языковая модель
Источник: Sebastian Raschka —
оригинал
