mb_live_* 密钥,调用 Answers API(/v1/chat/completions)或 Agent API(/v1/responses),agent 基于每个终端用户真实、标准化的健康数据作答,并返回回答背后的工具轨迹。不确定选哪个?见选择你的 API。同一引擎也可自托管:克隆开源引擎、用 ./deploy.sh 拉起来;托管 API 在其上叠加托管存储、密钥与计费。
密钥、用量与交互式演练场在对应区域的开发者控制台:中国区或全球区。密钥与 API 地址必须属于同一区域。这些文档是 API 参考。
Base URL
所有/v1 接口共用一个 base URL,按你账户使用的集群选择:
/v1,它暴露的是自己的 /api/* 路由与一个 /mcp 端点,见自部署 Mirobody。
日本与欧盟集群正在筹备中,见区域。模型提供方与定价可能因区域不同,请从实际调用的集群读取 GET /v1/models。
全球与中国区是生产集群;日本与欧盟正在筹备中。按数据处理位置选择集群,见区域。
鉴权
每个/v1 调用都用 API key 认证:
GET /v1/models:模型目录是公开的、不含租户数据,因此无需 key。其余每个 /v1 调用都需要。
控制台登录(邮箱验证码或微信)是控制台自身的独立会话登录,不是 API 凭证,/v1 key 也不是 JWT。
OpenAI 兼容性
标准 OpenAI 字段原样可用;Mirobody 扩展通过extra_body(Python SDK)或普通顶层 JSON(curl/fetch)附带。
采样参数仅为兼容性而保留,实际生成完全由 agent 自行控制。
max_tokens 接受但不强制;temperature、top_p、stop、seed 接受但忽略。在 Answers API 上,tools / tool_choice / response_format / n>1 会被显式拒绝并返回 400,见不支持的参数。多租户:user 字段
每个请求都携带一个 user 字符串:租户隔离键。后端把 (你的账户, user) 映射为内部数据主体(Subject),各 Subject 完全隔离:为每个终端用户传入其稳定 id,数据就绝不会串。省略时回落到你账户的默认 Subject。Subject 不是网页应用账户;它们对 Mirobody 应用和其他开发者均不可见。
数据留存
你写入数据面的任何内容(结构化记录、上传文件、存储的抽取结果)都携带一个retention,决定保留多久:
在
POST /v1/data 上 retention 为必填:没有默认值;省略(或传枚举之外的值)返回 400(code: invalid_retention)。retention=session 还要求 session_id。在 POST /v1/standardize 上 store=true 时必填;在 POST /v1/files 上可选(默认 permanent)。
没有 retention: "none"。用完即弃的分析请用 POST /v1/standardize 的 store=false(dry-run,什么都不持久化),或以 retention: "1h" 写入。agent 只会读取 Subject 当前未过期的数据。
Agent API 上的对话持久化是另一个开关(store),见状态与记忆。纯主观记录(日记)请作为存储的单轮 agent 调用录入,见写日记配方。
证据:health_records 与 citations
回答可解释、可核查:不是”听着合理”,而是”这个结论来自你的那条记录”。两个 API 面都返回两个顶层证据数组,元素为{tool, data} 对:
health_records:回答所依赖的健康数据工具输出(Subject 的真实记录)。citations:外部医学证据工具(search_medical_evidence、read_source)的输出;未查外部证据时为空。
tool_steps 扩展中。
错误格式
错误使用 OpenAI 风格的信封:type 一律为 invalid_request_error;code 与 param 定位具体问题。已观察到的(状态码, code)组合:
流式下,上游失败会在流结束前以 SSE 错误帧到达(Answers API 为
{"error": ...},Agent API 为 response.failed)。