跳转到主要内容
向运行或继续操作传入一个事件处理函数,即可在运行开始、每个模型轮次开始和结束、每个工具运行、运行暂停以及运行结束时收到事件。用它来更新你的界面、写入审计记录,或输送到你现有的遥测系统。

处理函数放在哪里,接收什么

运行时发出的事件

下面的详情键以 snake_case 列出;TypeScript 使用 camelCase 形式。 Rust 0.2 对部分事件使用自己的名称: 因停止条件而结束的运行,在 TypeScript 中会发送 run.stopped,在 Python、Go、C#、PHP、Ruby 或 Java 中不会发送终止事件;请改为读取运行的状态。在 TypeScript 中,step.completed 会在该步骤创建检查点之后发送,所以持久化和遥测消费者可以把它当作一个稳定的边界。

流式事件

使用流式传输时,同样的生命周期事件会与模型的 response.* 事件一起到达。在 TypeScript、Python、Go、C# 和 Java 中,处理函数会收到它们;在 PHP 和 Ruby 中,它们还会出现在 fullStream() / full_stream 中。Rust 没有流式传输。流的消费方式见流式传输。

让处理函数保持快速

运行时会等待处理函数完成后再继续,所以请尽快返回,把缓慢的存储或网络操作移到队列中。在事件离开你的进程之前,请对敏感的工具输入和输出进行脱敏。

为产品界面选择事件

用 response.output_text.delta 显示实时回答文本,用工具事件显示工具调用卡片和进度指示器,用 run.waiting_for_human(Rust:run.paused)显示审批或输入控件,用运行的终止事件结束加载状态。如果要在开发期间在本地记录完整的运行,请使用 DevTools。
最后修改于 2026年11月5日