跳转到主要内容
按用途查找 Agent SDK 的函数或类型,再找到它在你所用语言中的名称。用法展示了这些部分如何组合在一起。TypeScript 是参考设计;某种语言缺少某项功能时,对应单元格会注明。

创建智能体

根据定义创建一个智能体。定义中的步数上限作用于每次运行或继续调用。

定义字段

Rust 用方法而不是字段构建定义:先 AgentDefinition::new(id, model),再调用 .instructions(text)、.tool(tool)(每个工具调用一次)、.max_steps(limit)、.model_retries(count, backoff) 和 .human_review(callback)。Java 的 AgentDefinition 是一个 record,有 10 个、13 个和 19 个参数的构造函数。 在 TypeScript 中,model、instructions 和采样参数既可以是固定值,也可以是动态的。

定义工具

工具列出了所有工具字段。

连接到 Phaseo Gateway

输出与重试列出了各语言的客户端选项。

在本地捕获运行

参见 DevTools。

停止条件

Go 和 Java 返回 StopCondition;C# 返回 Func<StopState, (bool Stop, string Reason)>;PHP 返回 callable;Ruby 返回 lambda。Rust 没有停止条件,只有步数上限。参见停止条件。

运行与继续

运行和继续都返回运行结果:TypeScript 中为 Promise<AgentRunResult>,Go 中为 (RunResult, error),C# 中为 Task<RunResult>,Rust 中为 Result<RunResult, AgentError>,其他语言直接返回运行结果。流式方法会立即返回一个流结果。

运行选项

PHP 和 Ruby 以命名参数或关键字参数接收这些选项;Java 的 RunOptions 是按位置传参的 record,顺序为 input, client, context, model, preset, maxSteps, modelRetry, toolExecution, onEvent, devtools,之后是可选的 state。 Python 的 run() 也接受 stop_when,但会忽略它;请在定义上设置停止条件。PHP 的 stream() 和 Ruby 的 stream 只接收 input、client、context 和 state。Rust 用 RunOptions::new(input) 创建默认值。

继续选项

继续选项接收上面的运行覆盖项,另外还有: Java 的 ContinueOptions 顺序为 run, client, context, model, preset, maxSteps, humanInput, modelRetry, toolExecution, onEvent, devtools,然后是 approvals, rejections, toolOutputs,最后是 runId, state。除了这个 16 参数的形式,还有只接收前 11 个或前 14 个参数的构造函数,其余参数默认为空列表或 null。Rust 用 ContinueOptions::new(result) 创建默认值。

流结果

消费者会从头重放,所以多个消费者可以读取同一个运行。它们的行为有所不同:

运行结果

该类型在 TypeScript 和 Python 中为 AgentRunResult,在其他语言中为 RunResult。TypeScript 还增加了 stepResults(规范化的步骤结果)和 items(按顺序排列的消息、推理、工具活动、错误和最终输出;参见条目)。在 Rust 中,output 是 serde_json::Value,RunResult、RunRecord、RunStep、Message、ToolCall、HumanPause、PendingToolCall、ToolDecision、ToolOutput 和 UsageSummary 都可以用 Serde 序列化。

运行记录

Rust 的 RunRecord 还会保存实际使用的模型和步数上限。TypeScript 还增加了包含网关错误详情的 errorDetails。 运行状态有 queued、running、waiting_for_tools、waiting_for_human、completed、stopped 和 failed。TypeScript 还增加了 cancelled。

步骤记录

除 TypeScript 和 Python(AgentStepRecord)外,该类型在所有语言中都是 RunStep。

用量汇总

inputTokens、outputTokens、cachedTokens、totalTokens、cost(TypeScript、Java);input_tokens、output_tokens、cached_tokens、total_tokens、cost(Python、PHP 和 Ruby 的键,Rust);InputTokens、OutputTokens、CachedTokens、TotalTokens、Cost(Go、C#)。该类型在 TypeScript 和 Python 中为 AgentUsageSummary,在 Go、C#、Java 和 Rust 中为 UsageSummary。PHP 和 Ruby 使用数组或 Hash。关于 cost 的注意事项,参见可观测性。

暂停与决定

字段名遵循各语言的风格:toolCallId(TypeScript、PHP、Java)、tool_call_id(Python、Ruby、Rust)、ToolCallID(Go)和 ToolCallId(C#)。Rust 的 ToolDecision 只用于批准。参见状态与审批。

传给工具的运行时上下文

状态访问器

模型客户端

实现一个模型客户端,即可通过其他传输方式发送模型轮次,或包装网关客户端。 在 Rust 中,ModelRequest 包含智能体 ID、实际使用的模型、指令、当前消息、工具规范(ToolSpec:id、description、JSON Schema parameters)和应用上下文。ModelResponse 包含 message、usage、request_id、provider、model 和 finish_reason。Message 有 role、content、tool_calls、tool_call_id、name 和 is_error,并提供 Message::user(content) 和 Message::assistant(content) 构造函数;ToolCall 有 id、name 和 JSON 格式的 input。

事件与错误

TypeScript 还导出了 agentErrorIsRetryable()、agentRetryAfterMs() 和 agentErrorIsContextOverflow() 用于对错误分类,repairToolHistory(messages) 用于回应缺少结果的工具调用并丢弃不对应任何调用的结果,以及 truncateToolOutput(text, limit) 用于保留长文本的开头和结尾,并附上被截掉内容的说明。参见生命周期钩子和事件与错误。
最后修改于 2026年11月5日