Parent: #64227
Refs #62854
Refs #47213
Summary
Add an opt-in embedded Pi execution contract that keeps GPT-5-style runs acting through plan-only turns, and revise update_plan so it behaves like a structured progress tool instead of a chatty completion surface.
PR 1 is intentionally GPT-5-first: it only activates the strict-agentic contract for embedded Pi openai and openai-codex GPT-5-family runs.
Scope
- add
agents.defaults.embeddedPi.executionContract: default | strict-agentic
- add matching per-agent override
- stop default OpenAI/Codex auto-enable of
update_plan
- auto-enable
update_plan only for explicit tools.experimental.planTool or supported strict-agentic GPT-5 runs
- make
update_plan non-chatty and tolerant of extra step fields
- treat
update_plan as non-progress in strict-agentic retry logic
- resolve strict-agentic behavior through explicit-agent-aware lookup so no-session-key contexts use the right agent config
- retry plan-only / filler-only GPT-5 turns under strict-agentic
- surface an explicit blocked state after retry cap
Non-goals
Acceptance
- config schema accepts
executionContract
update_plan gating semantics match the contract and precedence rules
update_plan emits no filler text and tolerates extra step fields
- strict-agentic only auto-enables on supported OpenAI/OpenAI Codex GPT-5-family runs unless
planTool is explicitly set
- explicit
agentId / no-session-key flows resolve the correct contract
- strict-agentic retries plan-only turns and fail-closes after the retry cap
Parent: #64227
Refs #62854
Refs #47213
Summary
Add an opt-in embedded Pi execution contract that keeps GPT-5-style runs acting through plan-only turns, and revise
update_planso it behaves like a structured progress tool instead of a chatty completion surface.PR 1 is intentionally GPT-5-first: it only activates the strict-agentic contract for embedded Pi
openaiandopenai-codexGPT-5-family runs.Scope
agents.defaults.embeddedPi.executionContract: default | strict-agenticupdate_planupdate_planonly for explicittools.experimental.planToolor supported strict-agentic GPT-5 runsupdate_plannon-chatty and tolerant of extra step fieldsupdate_planas non-progress in strict-agentic retry logicNon-goals
Acceptance
executionContractupdate_plangating semantics match the contract and precedence rulesupdate_planemits no filler text and tolerates extra step fieldsplanToolis explicitly setagentId/ no-session-key flows resolve the correct contract