Чому codex exec зависає, коли його викликає агент
Автор статті викликав codex exec з середовища ШІ-агента й понад 10 хвилин не отримував відповіді, хоча промпт ішов аргументом і синтаксис був правильний. У Codex CLI 0.164.0 причина виявилась у stdin: агент передавав туди pipe і не закривав його.
За документацією OpenAI, якщо stdin — pipe і є аргумент-промпт, аргумент стає інструкцією, а pipe — додатковим контекстом. Codex читає його до EOF, а EOF не приходить. Автор пише, що не знайшов у документації ні згадки про зависання, ні обходу. Ознака — рядок у stderr Reading additional input from stdin.... Якщо після нього все стоїть, Codex, імовірно, не думає, а чекає EOF.
Що це означає для бізнесу: якщо запускаєте codex exec зі скриптів, CI чи агентів, закривайте stdin або не передавайте pipe взагалі. Якщо працюєте лише в терміналі, нічого робити не треба.
Продукти: Курс