Как устроен Codex: тонкий harness вместо тяжёлого агента
CodexИИ-агентыархитектура ПО
Codex держится на тонкой обвязке
Меня здесь цепляет главное: Codex устроен не как монолитный агент, а как модель плюс сравнительно тонкий harness. В публикации Pragmatic Engineer «Building Codex with Tibo Sottiaux» ключевыми элементами названы открытый Codex CLI на Rust, поддержка моделей разных провайдеров и обвязка, отвечающая за безопасность, надёжность и эффективность.
На момент публикации CLI был открыт, а продукт не замыкался на одном поставщике моделей. Выбор Rust я читаю как ставку на производительность, переносимость и предсказуемое поведение локального инструмента. Открытый код заодно снижает недоверие к агенту, который получает доступ к репозиторию и выполнению команд.
Самая сильная идея материала не в языке реализации. Harness развивается вместе с моделями и становится тоньше, когда они лучше планируют, выбирают инструменты и удерживают задачу. Жёстко зашитые агентные сценарии быстро превращаются из страховочной сетки в потолок, который мешает более способной модели.
Но тонкий не означает простой. Контекст нужно сжимать без потери рабочего состояния, а поведение разных моделей приходится нормализовать внутри общего цикла. Добавление разговорного интерфейса усложняет картину ещё сильнее: выполнение кода, диалог и автономная работа агента должны сосуществовать без конфликтов.
Команда, согласно материалу, применяет Codex не только для генерации фрагментов кода. В список входят ревью, сопровождение и переархитектура. Это важный сигнал: продукт проектируется вокруг полного инженерного процесса, а не вокруг эффектной демонстрации автодополнения.
Что меняется для архитектуры агентов
Вывод практический: тяжёлые фреймворки для агентов начинают проигрывать компактной и устойчивой обвязке. Чем сильнее модель, тем дороже обходятся лишние уровни планирования, маршрутизации и заранее придуманных ролей.
- Логика смещается в модель. Harness сохраняет контроль инструментов, безопасность и восстановление после сбоев, но не пытается диктовать каждый шаг.
- Мульти-модельность требует дисциплины. Свобода выбора провайдера приносит интеграционную сложность: одинаковый интерфейс ещё не означает одинаковое поведение.
- Контекст становится частью архитектуры. Качество агента зависит не только от модели, но и от того, какое состояние переживает очередной цикл.
Для меня это не новый универсальный рецепт, а полезная смена приоритета: меньше магии в orchestration, больше внимания к границам доступа, состоянию и сбоям. Граница между полезным harness и лишней опекой модели теперь и есть главный архитектурный риск.