Исследователи из компаний Meta и Гарвард представили агента для программной инженерии Confucius Code Agent (CCA) — это инженер-программист с открытым исходным кодом, созданный на основе Confucius SDK. Он предназначен для работы с репозиториями программного обеспечения промышленного масштаба и длительных сеансов.
Система ориентирована на реальные проекты GitHub, сложные цепочки тестирования во время оценки и воспроизводимые результаты на таких бенчмарках, как SWE Bench Pro и SWE Bench Verified, предоставляя разработчикам полный набор инструментов.
Confucius SDK: платформа для разработки агентов
Confucius SDK — это платформа для разработки агентов, которая рассматривает создание каркаса как основную проблему проектирования, а не просто тонкую оболочку вокруг языковой модели. Она организована по трём осям:
* Agent Experience (опыт агента) — контролирует то, что видит модель, включая расположение контекста, рабочую память и результаты работы инструментов.
* User Experience (опыт пользователя) — фокусируется на читаемых трассировках, различиях кода и средствах защиты для инженеров-людей.
* Developer Experience (опыт разработчика) — фокусируется на наблюдаемости, настройке и отладке самого агента.
SDK вводит три основных механизма:
* унифицированный оркестратор с иерархической рабочей памятью;
* система постоянного ведения заметок;
* модульный интерфейс расширения для инструментов.
Метаагент автоматизирует синтез и уточнение конфигураций агентов с помощью цикла «создание, тестирование, улучшение». Агент Confucius Code — это одна из конкретных реализаций этого каркаса для программной инженерии.
Иерархическая рабочая память для долгосрочного кодирования
Реальные задачи по программированию на SWE Bench Pro часто требуют рассуждений над десятками файлов и множеством шагов взаимодействия. Оркестратор в Confucius SDK поддерживает иерархическую рабочую память, которая разделяет траекторию на области, суммирует прошлые шаги и сохраняет сжатый контекст для последующих шагов.
Этот дизайн помогает удерживать подсказки в пределах ограничений контекста модели, сохраняя при этом важные артефакты, такие как патчи, журналы ошибок и решения. Ключевым моментом является то, что для эффективных агентов на основе инструментов нужна явная архитектура памяти, а не просто скользящее окно предыдущих сообщений.
Постоянные заметки для обучения между сессиями
Второй механизм — это система ведения заметок, которая использует выделенного агента для написания структурированных заметок Markdown из трассировок выполнения. Эти заметки фиксируют стратегии, специфичные для задач, соглашения репозитория и распространённые режимы сбоев, и они хранятся как долговременная память, которую можно повторно использовать в разных сеансах.
Исследовательская группа дважды запускала Confucius Code Agent на 151 экземпляре SWE Bench Pro с Claude 4.5 Sonnet. В первом запуске агент решает задачи с нуля и генерирует заметки. Во втором запуске агент читает эти заметки. В этих условиях среднее количество ходов снижается с 64 до 61, использование токенов — с примерно 104 тыс. до 93 тыс., а Resolve@1 улучшается с 53,0 до 54,4. Это показывает, что заметки — это не просто журналы, они функционируют как эффективная память между сессиями.
Модульные расширения и сложность использования инструментов
Confucius SDK предоставляет инструменты в виде расширений, например, редактирование файлов, выполнение команд, запуск тестов и поиск кода. Каждое расширение может поддерживать своё состояние и настройку подсказок.
Исследовательская группа изучает влияние сложности использования инструментов, используя удаление на подмножестве из 100 примеров SWE Bench Pro. С Claude 4 Sonnet переход от конфигурации без расширенных функций контекста к конфигурации с расширенными функциями контекста повышает Resolve@1 с 42,0 до 48,6. С Claude 4.5 Sonnet простая конфигурация использования инструментов достигает 44,0, а более сложная обработка инструментов — 51,6, с 51,0 для промежуточного варианта. Эти цифры показывают, что выбор и последовательность инструментов агентом имеют значение почти так же, как и выбор базовой модели.
Метаагент для автоматического проектирования агентов
Помимо этих механизмов, Confucius SDK включает в себя метаагент, который принимает на вход спецификацию агента на естественном языке и итеративно предлагает конфигурации, подсказки и наборы расширений. Затем он запускает агент-кандидат на задачах, проверяет трассировки и метрики и редактирует конфигурацию в цикле «создание, тестирование, улучшение».
Агент Confucius Code, который оценивает исследовательская группа, создан с помощью этого метаагента, а не только путём ручной настройки. Этот подход превращает часть самого процесса проектирования агентов в задачу оптимизации, управляемую LLM.
Результаты на SWE Bench Pro и SWE Bench Verified
Основная оценка использует SWE Bench Pro, который содержит 731 проблему GitHub, требующую модификации реальных репозиториев до тех пор, пока тесты не пройдут. Все сравниваемые системы используют одни и те же репозитории, инструментальную среду и механизм оценки, поэтому различия обусловлены каркасами и моделями.
На SWE Bench Pro сообщается о следующих оценках Resolve@1:
* Claude 4 Sonnet со SWE Agent — 42,7.
* Claude 4 Sonnet с Confucius Code Agent — 45,5.
* Claude 4.5 Sonnet со SWE Agent — 43,6.
* Claude 4.5 Sonnet с Live SWE Agent — 45,8.
* Claude 4.5 Sonnet с Confucius Code Agent — 52,7.
* Claude 4.5 Opus с каркасом системы карточек Anthropic — 52,0.
* Claude 4.5 Opus с Confucius Code Agent — 54,3.
Эти результаты показывают, что сильный каркас с моделью среднего уровня, такой как Claude 4.5 Sonnet с Confucius Code Agent (52,7), может превзойти более мощную модель со слабым каркасом, например, Claude 4.5 Opus (52,0).
На SWE Bench Verified Confucius Code Agent с Claude 4 Sonnet достигает Resolve@1 74,6, по сравнению с 66,6 для SWE Agent и 72,8 для OpenHands. Мини-вариант SWE Agent с Claude 4.5 Sonnet достигает 70,6, что также ниже, чем у Confucius Code Agent с Claude 4 Sonnet.
Исследовательская группа также сообщает о производительности в зависимости от количества отредактированных файлов. Для задач, редактирующих от 1 до 2 файлов, Confucius Code Agent достигает 57,8 Resolve@1, от 3 до 4 файлов — 49,2, от 5 до 6 файлов — 44,1, от 7 до 10 файлов — 52,6, и более чем для 10 файлов — 44,4. Это указывает на стабильное поведение при внесении изменений в несколько файлов в крупных кодовых базах.
Ключевые выводы
* Каркас может перевесить размер модели: Confucius Code Agent показывает, что со сильным каркасом Claude 4.5 Sonnet достигает 52,7 Resolve@1 на SWE-Bench-Pro, превосходя Claude 4.5 Opus со слабым каркасом на 52,0.
* Иерархическая рабочая память необходима для долгосрочного кодирования: оркестратор Confucius SDK использует иерархическую рабочую память и сжатие контекста для управления длинными траекториями в крупных репозиториях, а не полагается на простую скользящую историю.
* Постоянные заметки действуют как эффективная память между сессиями: при работе с 151 задачей SWE-Bench-Pro с Claude 4.5 Sonnet повторное использование структурированных заметок сокращает количество ходов с 64 до 61, использование токенов — с примерно 104 тыс. до 93 тыс., и увеличивает Resolve@1 с 53,0 до 54,4.
* Конфигурация инструментов существенно влияет на успешность: при работе с подмножеством из 100 задач SWE-Bench-Pro переход от простого к более богатому использованию инструментов с Claude 4.5 Sonnet увеличивает Resolve@1 с 44,0 до 51,6, что указывает на то, что изученные стратегии маршрутизации инструментов и восстановления являются основным фактором производительности, а не просто деталью реализации.
* Метаагент автоматизирует проектирование и настройку агентов: метаагент итеративно предлагает подсказки, наборы инструментов и конфигурации, затем оценивает и редактирует их в цикле «создание, тестирование, улучшение», а производственный агент Confucius Code сам генерируется с помощью этого процесса, а не только путём ручной настройки.
1. Какие основные механизмы включает в себя Confucius SDK и как они способствуют улучшению работы агентов в программной инженерии?
В Confucius SDK введены три основных механизма:
* унифицированный оркестратор с иерархической рабочей памятью;
* система постоянного ведения заметок;
* модульный интерфейс расширения для инструментов.
Эти механизмы способствуют улучшению работы агентов в программной инженерии за счёт автоматизации синтеза и уточнения конфигураций агентов, а также за счёт более эффективного управления памятью и взаимодействия с инструментами.
2. Как иерархическая рабочая память в Confucius SDK помогает агентам в решении сложных задач по программированию?
Иерархическая рабочая память в Confucius SDK помогает агентам в решении сложных задач по программированию за счёт разделения траектории на области, суммирования прошлых шагов и сохранения сжатого контекста для последующих шагов. Это позволяет удерживать подсказки в пределах ограничений контекста модели, сохраняя при этом важные артефакты, такие как патчи, журналы ошибок и решения.
3. Какие результаты были получены при использовании Confucius Code Agent на SWE Bench Pro и SWE Bench Verified?
На SWE Bench Pro Confucius Code Agent с Claude 4 Sonnet достигает Resolve@1 52,7, что превосходит результаты других систем. На SWE Bench Verified Confucius Code Agent с Claude 4 Sonnet достигает Resolve@1 74,6, что также выше, чем у других систем. Это показывает, что Confucius Code Agent может эффективно решать задачи в крупных кодовых базах.
4. Как использование структурированных заметок влияет на производительность Confucius Code Agent?
Использование структурированных заметок в Confucius SDK позволяет фиксировать стратегии, специфичные для задач, соглашения репозитория и распространённые режимы сбоев. Это действует как эффективная память между сессиями, что сокращает количество ходов и использование токенов, а также увеличивает Resolve@1.
5. Какую роль играет метаагент в процессе проектирования и настройки агентов в Confucius SDK?
Метаагент в Confucius SDK играет роль в автоматизации проектирования и настройки агентов. Он итеративно предлагает подсказки, наборы инструментов и конфигурации, затем оценивает и редактирует их в цикле «создание, тестирование, улучшение». Это позволяет оптимизировать процесс проектирования агентов и повысить их производительность.