
Два AI-агента в разных Worktree могут работать быстрее одного. Они также могут одновременно изменить контракт API, не предупредить друг друга и честно сообщить об успехе. Коммуникация между сессиями решает проблему только наполовину: возможность отправить сообщение ещё не создаёт команду.
Claude Code v2.1.224+ на macOS и Linux поддерживает Cross-session messaging. Сессии обнаруживаются через ListAgents и обмениваются текстом через SendMessage. Передаются не файлы и не история разговора, а короткое сообщение.
Где функция действительно полезна
· одна сессия изменила API, которым пользуется другая;
· миграция завершилась и разблокировала тесты;
· в одном Worktree найден инвариант, важный соседнему;
· долгая задача должна сообщить статус наблюдаемой сессии;
· нужно передать решение, а не весь контекст.
Сообщение должно быть Commit, а не чат
DECISION: поле customer_id остаётся строкой
SCOPE: packages/billing-api
WHY: внешние клиенты присылают leading zeros
IMPACT: не меняйте тип в generated clients
EVIDENCE: tests/contracts/customer_id_cases.json
ACTION: обновите mapper, не schema
OWNER: session billing-migration
Такое сообщение можно проверить. «Я там немного поменял типы, посмотри» создаёт новую неопределённость.
Cross-session messaging не заменяет другие режимы
Задача | Инструмент |
Продолжить одну беседу в другом терминале | Resume session |
Claude сам создаёт и координирует группу | Agent teams |
Следить за несколькими сессиями | Agent view |
Управлять с телефона | Remote Control |
Передать короткое решение независимой сессии | Cross-session messaging |
Auto Mode делает протокол важнее
В сообществе активно обсуждается переход Claude Code к Auto Mode как режиму разрешений по умолчанию для ряда планов. Чем меньше ручных подтверждений, тем быстрее параллельная работа — и тем опаснее неявная область изменений.
Auto Mode не должен означать Auto Scope. Сессия может действовать автономно только внутри заранее выданной области файлов, команд и внешних систем.
Playbook для трёх Worktree
1. Architect: фиксирует интерфейсы и запрещённые изменения.
2. Backend: работает только в сервисном Worktree.
3. Client: обновляет SDK после сообщения о стабильном контракте.
4. Reviewer: получает Diff без оправданий авторов.
Каждая сессия сообщает только события: изменение контракта, блокер, завершение, найденный риск. Статус «работаю» не является сообщением.
Как не превратить сообщения в Prompt Injection
Получающая сессия должна относиться к сообщению как к данным от коллеги, а не как к System Policy. Запрещено автоматически расширять права, запускать команды из сообщения и принимать неподтверждённый путь к файлу.
Для рискованных операций полезен промежуточный протокол: сообщение создаёт запрос на изменение, а Policy Engine или человек подтверждает действие.
Модели для разных сессий
Не каждой сессии нужен Claude Opus 5. Sonnet 5 может вести реализацию, Haiku 4.5 — отслеживать статусы и классифицировать сообщения, Opus 5 — делать финальный Review. Через OdiRouter.ai мультимодельный pipeline можно расширить внешними Reviewer, но права выполнения должны оставаться у Runtime, а не у модели.
Метрики параллельной разработки
· число конфликтующих изменений между Worktree;
· время от решения до получения зависимой сессией;
· сообщения без Evidence или Action;
· откаты после межсессионного решения;
· доля команд, выполненных за пределами Scope;
· стоимость на принятый Pull Request.
Cross-session messaging превращает Claude Code из набора терминалов в зачаток распределённой команды. Но команда появляется только вместе с протоколом: кто владеет решением, что считается событием, где доказательство и какие действия запрещены.
Агенты должны обмениваться не уверенностью, а проверяемыми изменениями состояния.