Codex Python SDK 0.154 додав зовнішні повідомлення та режими reasoning max і ultra
Новий Python SDK дає змогу підключати зовнішній контент до активного ходу, керувати історією під час resume і fork та вибирати service tier для окремого turn.

OpenAI випустила Python-пакет Codex 0.154.0 для Python 3.10 і новіших версій. Оновлення розширює керування ходами агента: SDK отримав режими reasoning max та ultra, новий тип ExternalMessage, вибір історії для resume і fork, а також налаштування service tier для одного нового turn.

Зовнішнє повідомлення під час активного ходу
ExternalMessage тепер можна передавати до синхронних і асинхронних методів run() та turn(). Воно здатне розпочати хід або приєднатися до вже активного звичайного ходу. Це корисно для інтеграцій, де нові дані надходять не лише з початкового запиту: наприклад, від довгого інструментального виклику, черги подій чи іншого контрольованого компонента.
Release notes окремо підкреслюють межу довіри: зовнішній контент отримує tool-level authority, але сам по собі не надає дозволу користувача. Отже, клієнтська програма не повинна трактувати текст із зовнішньої системи як згоду на публікацію, передачу секретів або іншу дію з наслідками. Джерело повідомлення потрібно маркувати, а перевірку авторизації залишати на рівні застосунку.
Історія, fork і service tier
Параметр include_turns керує тим, чи повертається історія під час відновлення або розгалуження thread. Важливий нюанс: цей вибір змінює відповідь SDK, а не контекст моделі. Тобто відсутність старих ходів у повернутому об’єкті не означає, що система автоматично забула контекст виконання.
turn_service_tier дозволяє вибрати рівень обслуговування лише для щойно розпочатого ходу, не змінюючи постійні налаштування thread. Додано також metadata source. Коли параметри не задані, попередні значення за замовчуванням зберігаються, тому просте оновлення пакета не має вимагати повної перебудови конфігурації.
Події без втрат і важлива міграція
Згенеровані protocol models та notifications синхронізовано з актуальним runtime. SDK тепер зберігає completion events, які могли прийти раніше за відповідь про старт turn. Це усуває race condition: дуже короткий хід міг завершитися до того, як клієнт устиг зареєструвати його початок.
Є й несумісна зміна структури HookMetadata. Обробник тепер міститься у полі .root; звернення на кшталт hook.command потрібно замінити на hook.root.command і спочатку перевіряти hook.root.handler_type. Частина раніше невідомих notifications отримала типізовані payload: для них слід читати іменовані поля, а не універсальне .params.
Пізнє підключення не відтворює минулі події
Handle, створений вручну або підключений до turn із запізненням, отримує події лише від моменту приєднання. Попередній output не повторюється, тому зібраний результат може бути неповним, а спроба приєднатися після завершення здатна завершитися TransportClosedError. Для читання збереженої історії автори рекомендують thread.read(include_turns=True). Handle, який повернув сам thread.turn(...), зберігає потік від моменту надсилання запиту.
Як оновлювати без сюрпризів
- Оновити пакет у тестовому середовищі та перевірити всі звернення до
HookMetadata. - Протестувати раннє завершення turn, пізнє підключення й паралельні event streams.
- Явно відокремити зовнішній контент від користувацької авторизації.
- Для власного
codex_binвикористовувати CLI 0.151.0 або новіший — це мінімум для нових параметрів таExternalMessage.
Висновок: версія 0.154.0 робить Python SDK придатнішим для складних агентних систем із живими подіями та кількома споживачами. Найбільший ризик оновлення не у нових опціях, а в міграції hook metadata й неправильному припущенні, що пізній handle побачить повну історію.
Матеріал перекладено, переказано та доповнено редакцією українською мовою.
Читайте далі — ми вже розбираємо наступну важливу тему.


