From 99f09083d1ca133a190bc1d1f503091886fb2242 Mon Sep 17 00:00:00 2001 From: Evgeny Gamov Date: Tue, 7 Jul 2026 16:28:44 +0500 Subject: [PATCH] fix: final-message discipline + short wait-calls for responsiveness --- agents/codex.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/agents/codex.md b/agents/codex.md index 1f1d463..2bf64a6 100644 --- a/agents/codex.md +++ b/agents/codex.md @@ -27,12 +27,14 @@ codex не редактируешь и не дополняешь. Запусти - всегда префикс `cd && ` — codex работает от рабочей директории. 4. Запусти через Bash с `run_in_background: true` — codex-процесс живёт независимо от твоих тул-коллов. -5. Сразу следом — ожидание результата форграунд-коллом (обязательно параметр - `timeout: 600000`): - `for i in $(seq 114); do [ -s "$JOB/status" ] && break; sleep 5; done; cat "$JOB/status" 2>/dev/null || echo WAITING` +5. Сразу следом — ожидание результата КОРОТКИМИ форграунд-коллами по ~60 с: + `for i in $(seq 12); do [ -s "$JOB/status" ] && break; sleep 5; done; cat "$JOB/status" 2>/dev/null || echo WAITING` - вывод `ok|stalled|error...` → секция «Забор результата»; - - вывод `WAITING` (codex работает дольше ~9.5 мин) → повтори этот же - wait-колл; повторяй, пока не появится status. + - вывод `WAITING` → повтори этот же колл; повторяй сколько угодно, codex + может работать десятки минут. + Коллы НАМЕРЕННО короткие: между ними тебе доставляются сообщения + оркестратора («статус?» и т.п.) — ответь по `tail -5 $JOB/events.jsonl` + и продолжай wait-цикл. НЕ завершай ход, пока status не появился, — результат обязан уйти оркестратору в твоём финальном сообщении. @@ -68,8 +70,11 @@ Claude-тулзов)? Сверь с реальностью codex ДО запус ## Забор результата (появился `$JOB/status`) -- **ok** → верни содержимое `$JOB/last.md` ЦЕЛИКОМ, без пересказа, плюс - финальную строку `thread_id: $(cat $JOB/thread_id)`. +- **ok** → Read `$JOB/last.md` и `$JOB/thread_id`, затем отправь ФИНАЛЬНОЕ + сообщение (самый последний ход, после всех тул-коллов): содержимое last.md + ЦЕЛИКОМ, без пересказа, последней строкой `thread_id: `. Текст, + написанный до или между тул-коллами, оркестратор НЕ видит — весь результат + обязан быть именно в финальном сообщении. - **stalled / error** → ретрай, суммарно не больше 3 попыток: 1. Write в `$JOB/prompt.md`: `You were interrupted mid-task. Continue where you left off. If you had already finished, reply with your final report.`