OpenAI tool call은 output item이야
Responses API에서 function calling은 response output item을 돌리는 loop야. JSON Schema 기반 function definition을 tools로 주면, 모델이 function_call item을 낸다. 애플리케이션은 그걸 실행하고 같은 call_id로 function_call_output item을 다시 넣어준다.
실전에서 중요한 최신 디테일은 run에 아직 필요한 response output item을 보존하는 거야. tool-call state를 날려놓고 두 번째 호출이 기억상실처럼 군다고 놀라면 안 돼. 작은 디테일인데 버그밭이야.
Strict schema가 애매함을 줄인다
도구 계약이 명확하면 strict: true, additionalProperties: false를 써. 모델의 출력 공간이 줄어들고 executor validation도 쉬워진다. parameter description은 장식이 아니라 모델이 보는 action surface의 일부야.
모델 선택도 run contract야
현재 OpenAI 문서는 복잡한 reasoning/coding의 기본 출발점으로 gpt-5.5를 권하고, latency와 cost가 더 중요하면 gpt-5.4-mini나 gpt-5.4-nano 같은 작은 variant를 고르라고 해. 옛 예제의 model string을 복붙하지 마. 왜 그 모델을 쓰는지 적어야 한다.
Output은 machine-readable하게
작고 안정적인 field를 가진 JSON string을 돌려줘. raw API dump는 피하자. 더 자세한 정보가 필요하면 모든 걸 tool result에 욱여넣지 말고 read_full_record나 fetch_url 같은 next-step hint를 줘.