-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Open
Copy link
Description
🎯 Goal
OpenAI-Compatible Responses API (Limited: built-in search & scrape tools)
📖 Context
We want a drop-in Responses API compatible with OpenAI’s request/response semantics and streaming behavior, but intentionally scoped. Instead of shipping a full assistants/tooling surface (code interpreter, retrieval, etc.), we’ll provide two built-in tools—search and scrape—with strong safety, rate limits, and deterministic outputs. This keeps the surface area small while enabling high-value “grounded” responses.
✅ Scope
-
Endpoints & semantics
POST /v1/responses(JSON + SSE streaming)GET /v1/responses/{id}to retrieve prior outputs (if persistence enabled)
-
Streaming
- SSE events for:
response.created,response.output_text.delta,response.tool_call,response.completed,response.error
- SSE events for:
-
Built-in tools (server-hosted)
searchscrape
-
Tooling policy & safety
- Allow/deny domain lists, per-org; rate limits & timeouts per tool; concurrency caps
- Tool call audit trail (who, when, which URL/query); signed logs
-
Usage & errors
usagecounters for tokens; optionaltool_units/tool_calls_count- Consistent error envelopes with actionable codes (e.g.,
tool_timeout,disallowed_domain,rate_limited)
❌ Out of Scope
- Non-text outputs (audio/image), function-calling beyond
search/scrape - Code interpreter, retrieval over private corpora, SQL/tools beyond the two built-ins
- Batch/async job APIs and multi-step agents (covered by Conversations/Runs goal)