结构化输出
自由文本回答适合聊天,但当你的 agent 要为另一个程序供数时,你需要的是带类型、经过校验的结果,而不是需要解析的散文。设置 outputSchema(一个 Zod object schema),运行的最终答案就会被强制通过它:SDK 注册一个以你的 schema 为参数的 final_answer 工具,指示模型在完成时恰好调用一次,校验入参,并将其暴露为 result.output。
用法
query() 接受相同的选项。它的生成器 resolve 出 LiteAgentResult,如果需要 result.output,请手动驱动它:
工作原理
- 注册一个
final_answer工具,以你的 schema 作为其入参 schema,因此模型只能产出结构上合法的参数。 - 向系统提示词追加一个
## Final answer小节:模型必须在任务完成时恰好调用一次final_answer,且只有这次调用会被读取为答案。 - 工具 handler 为当前 session 记录校验后的参数;运行结束时,它们被附加为
result.output。
LiteAgentResult 的类型是 RunResult & { output?: unknown } —— 只有设置了 outputSchema 且模型产出了最终答案时,output 才存在。