中断与取消
AbortSignal 为运行中的智能体调用提供协作式取消机制。它能干净地终止 LLM 流式传输和工具执行。
基本用法
中断后发生什么
LLM 流式传输期间
- 流式连接被终止
- 已接收的内容会被保留
- 运行时产生内部截断补丁,包含:
partial_content— 中断前已接收的内容abort_reason— 你提供的原因
- ReAct 循环通过终结路径退出
工具执行期间
- 正在运行的工具被取消(asyncio 任务取消)
- 对每个被取消的工具,运行时产生内部取消补丁,包含:
tool_call_id— 被取消的调用 IDtool_name— 正在运行的工具名称abort_reason— 取消原因
- 这确保对话记录在结构上保持有效(每个工具调用都有对应结果)
一致性保证
中断操作始终产生有效的最终状态。对话记录不会遗留悬空的工具调用或不完整的消息。内部对话记录补丁确保了结构一致性。在 @llm_function 中使用
用法相同:TUI 集成
内置的@tui 装饰器自动处理中断——按 Ctrl+C 即可触发信号: