扩展运行时#

当某项行为属于请求生命周期内部时,才应该使用扩展:恢复历史记录、重塑上下文、添加工具、向用户提问,或发出 UI 事件。如果只是用于展示的回调,请改用AgentEventDispatcher。你永远不需要继承Agent,也不必再写一个模型循环。

编写第一个扩展

注册工具、转换输入、发出事件并清理。

编写你的第一个扩展
内置扩展

会话、压缩、子智能体、审批、技能、MCP 等。

组合内置扩展
生命周期钩子

每个钩子边界,以及针对具体任务应该覆盖哪一个。

生命周期钩子参考
中间件

按文档说明的顺序包装每次模型提供商请求或工具调用。

中间件
事件与外部输入

发布通知,并把响应送回正在运行的请求。

发出事件并接收用户输入
状态与清理

在一个实例服务多个会话时,保证各请求数据的安全。

状态、并发与清理
模型适配器

添加模型提供商,或规范化内置实现未覆盖的协议。

实现模型适配器
服务端工具

声明模型提供商托管的工具,例如网页搜索或代码执行。

注册服务商托管的工具
存储适配器

把原始历史记录和压缩检查点持久化到你自己的存储中。

实现存储适配器

建议的路径:先编写第一个扩展,了解事件通道,然后加入状态与取消处理。只有当现有的模型提供商或存储适配器无法满足你的应用边界时,才去实现新的。