Claude Code и Codex могут работать над одним проектом через Istok. Задачи, история и доказательства у них общие, а разговоры — нет. Здесь описано, как различать агентов, как передавать работу и что делать, если агент пропал посреди задачи.
Дайте каждому агенту идентификатор
Каждое MCP-подключение работает от имени одного исполнителя. --actor-id, который вы задаёте при подключении агента, — постоянный идентификатор этого исполнителя, а --actor-name — имя, под которым он отображается:
istok mcp --actor-id codex --actor-name "Codex"
Исполнитель указан в запусках, проверках и записях истории, поэтому на странице задачи видно, что первую попытку сделал Codex, а вторую — Claude Code. Давайте разным агентам разные идентификаторы. Переменные окружения ISTOK_AGENT_ID и ISTOK_AGENT_NAME задают то же самое.
Если не указать --actor-id, Istok создаёт новый идентификатор для каждого MCP-процесса и показывает его как «MCP Agent». Это работает, но перезапущенный агент считается другим исполнителем и не сможет продолжить свой открытый запуск.
Идентификатор фиксируется при старте MCP-сервера. Посреди сессии агент не может стать другим исполнителем.
Передайте работу
Отдельный документ для передачи работы писать не нужно. В задаче уже есть описание, заметки о прогрессе, комментарии, прошлые запуски и их проверки. Попросите текущего агента оставить задачу в порядке:
Запиши, что ты выяснил по задаче 18, и прекрати над ней работать. Дальше её возьмёт Claude Code.
Агент добавит заметку и завершит свой запуск — задача освободится. Затем скажите другому агенту:
Возьми задачу 18 в Istok. Сначала прочитай, что выяснила прошлая попытка.
Новый агент берёт задачу, и начинается второй запуск с контекстом, собранным под текущее состояние кода. Обе попытки остаются на странице задачи.
Если запуск остался без агента
У активного запуска есть аренда. Каждый сигнал активности (heartbeat) от агента её продлевает; по умолчанию аренда длится 15 минут. Если сессия упала или вы закрыли её, не закончив работу, сигналы прекращаются, аренда истекает, и запуск становится зависшим. Задача при этом по-прежнему числится в работе.
Выхода три:
- Продолжить тем же агентом. Откройте новую сессию того же агента и попросите продолжить. Исполнитель совпадает, поэтому агент может восстановить запуск и работать дальше с новой арендой.
- Дать задачу другому. Когда любой агент берёт задачу, Istok закрывает зависший запуск со статусом
abandoned(«прерван») и начинает новую попытку. - Прервать запуск вручную. Нажмите Abandon в веб-интерфейсе или выполните
istok run abandonв терминале. Задача освобождается, а запуск остаётся в истории.
Продолжи задачу 20. Твоя прошлая сессия упала.
Чтобы прервать запуск, аренда не нужна, поэтому это работает, даже когда агента уже нет. Интерфейс не даст прервать запуск, агент которого ещё посылает сигналы активности. Через MCP прерывать запуски могут только агенты, запущенные с --profile supervisor или admin; в стандартной настройке этой возможности нет.
Параллельная работа
Istok не даёт параллельным агентам столкнуться на одной задаче: задачу с живым запуском нельзя взять повторно, даже тому же агенту. Помогают и зависимости. Если задача #19 зависит от #10, никто не сможет взять #19, пока #10 не выполнена, и в списке готовых к работе задач она не появится.
Покажи задачи, которые готовы к работе.
Несколько сессий одного агента используют общий идентификатор исполнителя. Это нормально: каждый раз, когда агент берёт задачу, создаётся отдельный запуск со своей арендой, так что попытки не смешиваются.
Как связаны взятие задачи, аренда и состояния запуска, описано в разделе Задачи и запуски.