预防无限循环的机制设计
针对任务执行失控问题,ZipAgent提供多层级防护:
- Grundlegender Schutz: in
Runner.run()
aufstellenmax_turns
参数(默认20轮) - 异常捕获:框架预定义了
MaxTurnsError
等异常类型 - 工具级防护:每个工具调用都有超时机制(默认30秒)
完整的安全方案实现:
try:
result = Runner.run(
agent,
"复杂任务指令",
max_turns=5, # 严格限制轮次
tool_timeout=10 # 工具超时(秒)
)
except MaxTurnsError as e:
print(f"超过{e.details['max_turns']}轮对话限制")
except ToolTimeoutError:
print("工具执行超时")
深度优化建议::
1. 为递归性工具添加call_depth
参数跟踪调用层级
2. 在工具描述中明确说明适用场景避免误用
3. 监控context.usage
阻止token超额消耗
4. 设置allow_recursion=False
禁止工具自调用
Diese Antwort stammt aus dem ArtikelZipAgent: ein leichtgewichtiges Python-Framework zur Erstellung exklusiver KI-Assistenten in 5 MinutenDie