Skip to main content
复制本页的 curl 示例前,先选择 Cloud 区域。需要认证的调用必须使用与密钥同一区域的地址。下方示例都使用 MIROBODY_API_BASE:
SDK 示例中如果写有全球区的完整地址,中国区账户须换成对应的中国区地址。参阅区域。 Agent API 运行两类工具:
  1. 内置服务端工具:平台的健康数据工具。它们在服务端运行,你从不需要自己执行;平台只把运行轨迹报告给你,不会把执行工作交给你。
  2. 客户端 function 工具:你在请求上声明的工具。模型需要调用工具时,响应会以 function_call 交接给你;你执行工具后,这轮运行继续。

内置服务端工具

agent 始终持有针对 Subject 数据的平台工具集(与 Answers API 同一目录):
  • query_health_data:检索并聚合 Subject 的记录
  • list_family_members:解析 Subject 有权查询的关爱圈成员
  • search_medical_evidence:检索文献、指南/共识与注册试验(供给 citations)
  • read_source:按检索返回的 ref 读取一条结果;不支持任意 URL 抓取
/v1 agent 的领域工具只读。它还会运行内部的规划与分析工具。每次服务端工具运行都落在响应对象的顶层 tool_steps 扩展里,绝不作为 output item(以免官方 SDK 解析未知类型);流式下则通过 response.mirobody_tool_call 旁路事件返回。

声明客户端工具

规则(违反即显式 400,绝不静默丢弃):
安全提示: agent 持有访问 Subject 健康数据的工具。Subject 隔离已把每次调用限定在该开发者自己的数据内,但你的工具描述与结果同属提示面,因此不要未经审查地把不可信的第三方文本灌进去。

交接

模型调用你的工具时,响应以一个 function_call output item 完成(status: "completed":响应已经结束,对话还在等你):
流式下,同一交接以 response.output_item.added → response.function_call_arguments.delta / .done → response.output_item.done 事件组到达(见流式传输)。 执行工具后,用两种方式之一续运行:

路径 1 —— 有状态续运行(previous_response_id)

只发送 function_call_output item,并引用交接响应。服务端恢复暂停的 agent 线程(无需重发历史):
要求:输出必须恰好覆盖所有待处理 call_id(并行调用 → 每个一条 function_call_output);续运行时不得混入 message item;一次交接只能续运行一次(重复续运行会显式失败)。交接响应必须已被存储(store=true,即默认值)。

路径 2 —— 无状态全量回放

openai-agents 的默认做法是:把完整的 item 转录重发在 input 中,包含 function_call / function_call_output 对,且不带 previous_response_id:
这些成对 item 会被重建为对话历史,运行按新一轮继续。全程可配 store=false。

openai-agents 端到端

SDK 会处理整个闭环,从声明、交接、执行到回放:
所有会触达 Mirobody 工具的 agents-SDK agent,都必须通过 model_settings=ModelSettings(extra_body={"user": ...}) 传入 Subject。不传时,这次运行读到的是账户默认 Subject,而不是你想要的那个用户。
模型用内置服务端工具读取 Subject 的真实血糖数据,再交接给你的 book_appointment,由 SDK 在本地执行并自动回放转录。

续运行错误

另见