Два движка.
Один бот.
Claude Code и Codex работают как сменные силовые установки внутри общего контура CCB. Бот отвечает за права, память и доставку, а движок — за рассуждение и выполнение задачи.
Общая схема
Бот оркестрирует.
Движок исполняет.
Ветвление происходит в одной точке. Всё до и после неё остаётся общим, поэтому Telegram, права, интеграции и доставка файлов не зависят от выбранной модели.
01 · Вход
02 · Оркестратор CCB
users.enginesessions.engineClaude Code
Нативный поток уже говорит на внутреннем языке бота.
- Запуск
claude -p - Память
--resume - Инструкции
CLAUDE.md - Интеграции
--mcp-config
Codex
Его события переводятся адаптером в общий формат CCB.
- Запуск
codex exec - Память
exec resume - Инструкции
AGENTS.md - Интеграции
config.toml
04 · Единый выход
Переключение
Выбор меняет будущее,
но не переписывает прошлое.
Переключатель доступен командой /engine в Telegram и в настройках панели. Он влияет только на новые диалоги.
Пользователь выбрал Claude Code. Новый диалог A создаётся с отметкой engine = claude.
Меняет users.engine — предпочтение для следующего чистого старта.
Новый диалог копирует выбор в собственное поле sessions.engine.
Reply или возврат в старый диалог запускает именно его родной движок.
Техническая карта
Одинаковая роль,
разные адаптеры.
То, что действительно различается, собрано на границе движка и не протекает в остальные части продукта.
claude -pcodex exec --json--resume <id>exec resume <thread>CLAUDE.mdAGENTS.md из того же канонаconfig.toml