Generation & ToolSpan
通常通过 AgentRun 的方法间接使用这两个类,但也可以直接操作其实例。
Generation
通过 run.startNamedGeneration() 返回。
generation.appendText(text: string): void
追加输出文本。
ts
const gen = run.startNamedGeneration("summary", { model: "openai/gpt-4.1-mini" })
gen.appendText("这是摘要内容")generation.appendReasoning(text: string): void
追加推理过程。
ts
gen.appendReasoning("分析中...")generation.end(opts?): void
结束 generation。
ts
gen.end({
output: "最终输出",
usage: { input: 50, output: 10, total: 60 },
cost: 0.005,
})ToolSpan
通过 run.startTool() 返回。
tool.end(opts?): void
结束 tool span。
ts
// 成功
tool.end({ output: { data: [...] } })
// 失败
tool.end({ error: "连接超时" })选项
ts
{
output?: unknown // 工具输出
error?: string // 错误信息(成功时不传)
}WARNING
无论工具是否成功,都必须调用 tool.end()。 如果 run 结束时 tool span 未关闭,SDK 会自动将其标记为: span leaked: run ended before tool completed