Tutorials
TEN-Agent 中的中断机制
概述
TEN-Agent 中的中断机制由两个主要部分组成:中断检测和中断响应。本文档详细介绍了这两个部分,并解释了中断命令如何在 AI 智能体的图中传播。
第 1 部分:中断检测
当前中断检测的实现
当前的(interrupt_detector_python)扩展实现了一种基于文本的中断检测机制:
def on_data(self, ten: TenEnv, data: Data) -> None:
text = data.get_property_string(TEXT_DATA_TEXT_FIELD)
final = data.get_property_bool(TEXT_DATA_FINAL_FIELD)
# 当文本为 final 或达到阈值长度时触发中断
if final or len(text) >= 2:
self.send_flush_cmd(ten)中断检测器在以下情况下触发:
- 当接收到最终文本时 (
is_final = true) - 当文本长度达到阈值时(≥ 2 个字符)
自定义中断检测
要实现您自己的中断检测逻辑,您可以参考interrupt_detector_python的实现作为示例,并根据您的特定需求自定义中断条件。
第 2 部分:中断响应
AI 智能体图中的链式处理
在典型的 AI 智能体图中,中断命令 (flush) 遵循链式处理模式:
中断检测器
↓
LLM/ChatGPT
↓
TTS
↓
agora_rtc链中的每个扩展在接收到 flush 命令时都遵循两个关键步骤:
- 清理其自身的资源和内部状态
- 将
flush命令转发到下游扩展
这确保:
- 扩展按正确的顺序清理
- 没有残留数据流经系统
- 每个扩展在下一个操作之前都返回到干净状态
结论
TEN-Agent 的中断机制使用链式处理模式来确保 AI 智能体图中所有扩展的有序清理。当发生中断时,每个扩展首先清理自身的状态,然后将 flush 命令转发到下游扩展,从而确保后续操作的系统状态干净。
在 GitHub 上编辑
最后更新