01 / DECIDE
Architecture decision
Use it for new OpenAI integrations that need state choices, hosted tools, custom tools, or multimodal inputs.
Typed input and output items let messages, reasoning, tool calls, and tool results remain distinct across a multi-step request. Map input, output, state, and side effects as one observable path before deciding which layer owns use responses as the agentic application boundary.
02 / BUILD
Three-step implementation
- 01
Frame the contract
Write down the caller, data classification, success condition, timeout, cancellation, and ownership. Use it for new OpenAI integrations that need state choices, hosted tools, custom tools, or multimodal inputs.
- 02
Build one narrow path
Implement one end-to-end path with request correlation, typed state, and reversible failure handling. Typed input and output items let messages, reasoning, tool calls, and tool results remain distinct across a multi-step request.
- 03
Prove the outcome
Turn acceptance into a repeatable fixture, contract test, or browser test. Contract tests parse every expected output item, refusal, incomplete result, and tool terminal state.
03 / BOUND
Production boundary
Choose storage and deletion deliberately; convenience state is not a substitute for the product database or retention policy.
04 / PROVE
Acceptance evidence
Contract tests parse every expected output item, refusal, incomplete result, and tool terminal state.
SOURCE / HTTP
Reproducible source probe
curl -fsSI 'https://developers.openai.com/api/docs/guides/migrate-to-responses' | sed -n '1,5p'