Рабочий процесс
Как передать задачу из Claude Code в Codex, не потеряв контекст
Лимит Claude закончился на середине рефакторинга, или вам нужно второе мнение. Вот что должно попасть к следующему агенту, и три способа это передать.
Короткий ответ
Ни один из агентов не загружает переписку другого, поэтому задача переносится через сводку: цель и ваша последняя инструкция, план, затронутые файлы и состояние git, а сам код лежит на диске. Держите общие правила в AGENTS.md, закоммитьте незавершённую работу или сделайте git stash create, а затем напишите сводку сами, сгенерируйте её инструментом вроде hop или позвольте приложению вроде Maude собрать её при переключении.
Переключиться с Claude Code на Codex посреди задачи можно, не начиная заново, но ни один агент сам не подхватит разговор другого. Задачу переносит короткая сводка: цель, план, затронутые файлы, состояние git и ваша последняя инструкция плюс код на диске. Эту сводку можно написать вручную, сгенерировать небольшим инструментом или воспользоваться приложением, которое соберёт её за вас при переключении.
Зачем передавать задачу между агентами
- Вы упёрлись в лимит. Это самая частая причина. На тарифе Claude закончилось использование посреди рефакторинга, а на тарифе ChatGPT место ещё есть. Ожидание сброса стоит часов, а новый старт в Codex — контекста.
- Второе мнение. Один агент ходит по кругу вокруг бага. Другая модель, читающая тот же код с чистым контекстом, часто замечает то, что первая перестала видеть. Попросить одного агента проверить diff другого перед коммитом тоже недорого.
- Разные сильные стороны. Кто-то использует одного агента для планирования, а другого для длинных механических правок, или держит одного для языка или фреймворка, с которым он у них хорошо справляется. Кто в чём лучше, меняется с каждым релизом моделей, так что считайте это своим суждением, а не правилом.
Может ли Codex прочитать сессию Claude Code?
Сам по себе — нет. Оба агента хранят полные переписки в JSONL-файлах на диске. Claude Code пишет их в ~/.claude/projects/<project>/<session>.jsonl (документация Claude Code), а Codex — в датированные файлы rollout-*.jsonl в ~/.codex/sessions/. Каждый возобновляет свои сессии (claude --resume, codex resume), но ни один не описывает загрузку чужих. Команда /import в Claude Code переносит конфигурацию другого агента — файлы инструкций, MCP-серверы и skills. Разговор она не переносит.
Можно указать новому агенту на сырой файл переписки. На практике это плохая сводка: он длинный, забит выводом инструментов и прячет единственное, что нужно новому агенту, — где вы сейчас и что дальше.
Какой контекст нужно передать
| Контекст | Почему это важно | Откуда он берётся |
|---|---|---|
| Цель и последняя инструкция | Новый агент должен знать, что значит «готово», и что вы просили последним | Ваш последний запрос, слово в слово |
| План / список задач | Не даёт агенту заново планировать уже размеченную работу | Список задач уходящего агента |
| Затронутые файлы | Подсказывает агенту, что прочитать перед правками | Правки в переписке плюс git status |
| Состояние git | Ветка, HEAD и незакоммиченные изменения. Без них новый агент может переделать работу или закоммитить поверх неё | git status, git diff --stat |
| Решения и тупики | Чтобы новый агент не повторял подход, который уже провалился | Последние сообщения или письменное резюме |
Соглашения проекта, например команды сборки и стиль кода, в сводке вообще не нужны. Им место в файлах инструкций, которые оба агента и так читают.
Своими силами: общие инструкции в AGENTS.md и CLAUDE.md
Codex собирает инструкции из файлов AGENTS.md — из ~/.codex/ и от корня git до вашей рабочей папки (документация Codex по AGENTS.md). Начиная с v2.1.277 Claude Code тоже читает AGENTS.md, но по умолчанию только если в рабочей папке или выше нет CLAUDE.md или CLAUDE.local.md (документация Claude Code по памяти). Простейшая схема, которую читают оба агента: держите общие правила в AGENTS.md, а если нужны правила только для Claude, начните CLAUDE.md с импорта:
@AGENTS.md
## Claude Code
Use plan mode for changes under src/billing/.
В обратную сторону тоже работает. Настройка project_doc_fallback_filenames в ~/.codex/config.toml позволяет Codex читать дополнительные имена файлов, если AGENTS.md нет.
Своими силами: документ передачи и git
Перед переключением попросите уходящего агента написать сводку, пока контекст ещё у него, — если у него осталось использование:
Write HANDOFF.md for another coding agent taking over this task:
the goal, what is done, what is in progress or broken, decisions
and dead ends, files touched, and the exact next steps.
Don't change any other file.
Затем сделайте состояние кода однозначным. Самый понятный вариант — закоммитить незавершённую работу в ветку. Если коммитить не хочется, git stash create записывает незакоммиченные изменения отслеживаемых файлов как объект коммита, не трогая рабочую копию, — так у вас будет фиксированная точка для сравнения, если следующий агент что-то испортит. Запустите другого агента в той же папке и скажите ему прочитать HANDOFF.md и перечитывать файлы перед правками.
Инструменты, которые это автоматизируют
hop (MIT) делает это одной командой: hop codex — из Claude Code в Codex, hop cc — обратно. Он читает файлы сессий исходного агента напрямую, поэтому работает, даже когда у того закончилась квота. ! hop codex можно запустить прямо из застрявшей сессии Claude Code. Он пишет документ передачи с вашими инструкциями, веткой git и последними сообщениями в пределах заданного объёма (по умолчанию 48 KB) и открывает другого агента в новой вкладке терминала. Похожие проекты — cli-handoff и session-handoff.
| Подход | Работает без квоты | Усилия на переключение | Переносит разговор |
|---|---|---|---|
| Только общий AGENTS.md | Да | Никаких, но переносит соглашения, а не состояние задачи | Нет |
| HANDOFF.md от агента + git | Только если уходящий агент ещё отвечает | Один запрос и коммит | В виде резюме |
| hop и похожие CLI | Да | Одна команда | Последние ходы, в пределах объёма |
| Приложение со встроенным переключением | Да | Одно касание | Зависит от приложения |
Как передача работает в Maude
Maude запускает ваших агентов на вашем собственном сервере, и сессия не привязана к одному агенту. Пока сессия простаивает, её можно переключить с телефона, скажем, с Claude Code на Codex (или OpenCode, Grok Build, Antigravity). Демон на сервере собирает сводку из собственной записи сессии, а не из резюме, написанного в спешке:
- вводная, сообщающая новому агенту, что он принимает задачу, что источник истины — файлы на диске и что перед правками их нужно перечитать
- ваша последняя инструкция, закреплённая отдельно
- текущий план или список задач
- затронутые файлы — по правкам агента плюс файлы, которые git показывает как изменённые
- состояние git: ветка, HEAD, краткий статус и diff stat. Незакоммиченная работа к тому же сохраняется снимком через
git stash createи хранится под ref, не трогая рабочую копию - последние сообщения дословно, примерно до 120 000 символов
- ссылка на полную переписку, экспортированную в markdown в
.maude/handoff/внутри проекта и исключённую изgit status
Сводка ставится перед вашим следующим сообщением новому агенту, а в чате появляется разделитель, который можно развернуть и прочитать, что именно было отправлено. Поскольку сводка собирается из записи сессии, она не зависит от того, может ли уходящий агент ответить, — а это важнее всего, когда он только что упёрся в лимит.
Обратное переключение устроено иначе. Если агент, к которому вы возвращаетесь, уже работал в этой сессии и поддерживает возобновление, Maude возобновляет его собственный разговор и отправляет только то, что произошло в его отсутствие. Второй полной сводки он не получает.
Maude — не единственное приложение, которое так умеет. Happier позволяет сменить движок посреди разговора и даёт новому агенту инструменты для чтения предыдущей переписки. AgentsRoom при смене поставщика собирает сводку из изменённых файлов, активности сессии и последнего ответа. Компромиссы мы сравниваем в статье Maude и Happier. Каких агентов сочетать, поможет решить статья Claude Code, Codex или OpenCode.
Часто задаваемые вопросы
Может ли Codex прочитать сессию Claude Code?
~/.claude/projects/, и Codex их не загружает. Задача переносится через сводку: напишите её сами, сгенерируйте инструментом вроде hop или используйте приложение, которое собирает её при переключении.Конфликтуют ли AGENTS.md и CLAUDE.md?
AGENTS.md, только если нет CLAUDE.md. Чтобы пользоваться одним файлом, держите правила в AGENTS.md и поставьте @AGENTS.md в начало CLAUDE.md. Codex читает AGENTS.md нативно.Что делать, если лимит Claude закончился посреди задачи?
Потеряю ли я незакоммиченные изменения при смене агента?
git stash create, у вас будет фиксированная точка для сравнения, если следующий агент что-то испортит.