扩展运行时#
当某项行为属于请求生命周期内部时,才应该使用扩展:恢复历史记录、重塑上下文、添加工具、向用户提问,或发出 UI 事件。如果只是用于展示的回调,请改用AgentEventDispatcher。你永远不需要继承Agent,也不必再写一个模型循环。
编写第一个扩展
注册工具、转换输入、发出事件并清理。
内置扩展
会话、压缩、子智能体、审批、技能、MCP 等。
生命周期钩子
每个钩子边界,以及针对具体任务应该覆盖哪一个。
中间件
按文档说明的顺序包装每次模型提供商请求或工具调用。
事件与外部输入
发布通知,并把响应送回正在运行的请求。
状态与清理
在一个实例服务多个会话时,保证各请求数据的安全。
模型适配器
添加模型提供商,或规范化内置实现未覆盖的协议。
服务端工具
声明模型提供商托管的工具,例如网页搜索或代码执行。
存储适配器
把原始历史记录和压缩检查点持久化到你自己的存储中。
建议的路径:先编写第一个扩展,了解事件通道,然后加入状态与取消处理。只有当现有的模型提供商或存储适配器无法满足你的应用边界时,才去实现新的。