处理函数放在哪里,接收什么
运行时发出的事件
下面的详情键以 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。