open-responses
Open Responses
Open Responses is an open-source specification defining a unified HTTP protocol for multi-provider LLM interactions. It standardizes how clients and servers communicate — messages, tool calls, streaming, multimodal inputs, reasoning — so that code written against one provider works with any compliant provider.
This is the protocol standard itself, not any specific SDK. Open Responses is provider-agnostic. Any LLM provider (OpenAI, Anthropic, Gemini, Databricks, Hugging Face, Ollama, etc.) can implement a compliant API.
Stateless by default, stateful where needed. The core protocol does not require server-side session persistence. Multi-turn conversations can be threaded via
previous_response_id, which instructs the server to reconstruct context from prior responses. However, providers may offer stateful features (e.g., server-side storage, conversation objects) as extensions. The spec notes that item states "do not necessarily mean they are stateful in the sense of being persisted to disk or stored long-term."
Design Principles
- Multi-provider compatibility — one schema, any provider
- Stateless-first protocol — context reconstruction via
previous_response_id; providers may optionally offer persistence - Polymorphic items — all model outputs share a common item structure discriminated by
type - Semantic streaming — SSE events map directly to state machine transitions
- Extensible without fragmentation — vendor-prefixed extensions prevent namespace collisions
Specification: https://www.openresponses.org/specification