curl 示例前,先选择 Cloud 区域。需要认证的调用必须使用与密钥同一区域的地址。下方示例都使用 MIROBODY_API_BASE:
POST /v1/responses 变成一个裸推理后端:一个兼容 OpenAI、带客户端 function 工具的 LLM,但没有服务端 agent 运行时、工具、规划或存储状态。如果编排由你自己的 agent 框架(LangChain、openai-agents、自定义循环)负责、Mirobody 只当「模型」用,就用 backbone 模式。
默认(mode: "agent")是完整的 Mirobody agent:服务端运行时、内置健康数据工具、规划与存储的对话。
只有当编排由你掌控时才用 backbone 模式。如果你想要基于 Subject 真实健康数据的有据可循的回答,请留在默认的 agent 模式,内置工具就在那里。
/v1 接口共用一个 base URL,按你账户使用的集群选择:
/v1,它暴露的是自己的 /api/* 路由与一个 /mcp 端点,见自部署 Mirobody。
日本与欧盟集群正在筹备中,见区域。模型提供方与定价可能因区域不同,请从实际调用的集群读取 GET /v1/models。
mode
store=true 时,model 模式仍持久化响应对象(GET /v1/responses/{id} 可取),但对话被标记为 model 模式:后续对它发 previous_response_id 会得到明确的 400(「重放 transcript 续运行」),而非静默 resume 一个空线程。
Model 模式是无状态的。续运行要在
input 里重发完整的 item transcript(无状态全量回放路径,也是 openai-agents 的默认做法)。previous_response_id、session_id 与 MCP 工具都会返回 400。builtin_tools
query_health_data · list_family_members · search_medical_evidence · read_source
外部证据层只接受 search_medical_evidence 与 read_source。系统不提供任意 URL 抓取能力:read_source 只接受检索结果返回的 pmid:、pmc:、nct: 或 doi: ref,不接受模型构造的 URL。
服务端的编排原语(
write_todos、文件系统、task、eval)属于 agent 模式本体,在本参数作用域之外,但仍可能出现在 tool_steps 中。要零服务端工具轨迹,请用 mode:"model"。
tool_choice
tool_choice 遵循 OpenAI 语义,model 模式在此之上提供 agent 运行时无法给出的硬保证:
tool_choice:"none" 禁用一切工具(含内置,OpenAI 语义),内部降级为 model 模式纯文本生成。旧行为(只清空客户端工具、内置工具照旧运行)已废除。强制工具调用的保证
required / 指名某个工具是硬保证,而非建议:若无法满足,你会得到 502,绝不静默降级。流式下,强制调用会被合成为标准事件序列(response.output_item.added → response.function_call_arguments.delta/.done → response.output_item.done),与非流式行为一致。
LangChain create_agent 的 ToolStrategy(...)(自动发 tool_choice:"required")与 ProviderStrategy(...) 两者都适用。
Provider 错误分类(model 模式)
model 模式下,provider 异常按可重试性分类,不再统一502:
另见
- 结构化输出:
text.format(仅 model 模式)。 - Function calling:声明客户端工具与两种续运行路径。
- 流式传输:
response.*事件,含服务端工具旁路通道。 - 限流与配额:按 key 限流与按账户的月度配额。