thread_id from the conversation_info event.
document and objective return JSON null with HTTP 200 until the agent has written
one, which distinguishes “not written yet” from “written but empty”. A turn the agent answers
conversationally, without editing the artifact, leaves them null. Check before subscripting.See it in a full loop
A Python example that runs two turns and reads the document back afterwards.