Skip to main content
Valar speaks the OpenAI Responses and Chat Completions APIs, so your SDK works unchanged. Two things to know.

Set store: false for an agent loop

Reasoning then comes back with encrypted_content, your SDK replays it on the next turn, and the model keeps the thinking it already did. Leave store unset and that thinking is lost from the second step onward — the usual cause of “my agent forgets what it was doing”. Pass encrypted_content back unchanged and do not parse it. store is not a retention control.

Fields Valar ignores

Every request is answered from the content you send in input — there is no server-side thread to point at. These fields are removed rather than rejected, so your request still runs; it just does not see the turn they name: Send the conversation on every turn instead — every OpenAI-compatible SDK does this by default.