AI Agent超时处理:工具调用太久就跳过
🩺 摘要
一个工具卡住了5秒,Agent还在傻等。超时处理让Agent在合理时间内放弃等待,不耽误后续任务。
📝 详情
卡住的问题
第三方API有时候就是慢。Agent等着等着,用户已经走了。超时处理让Agent不等了,走下一步。
实现
import asyncio
async def call_with_timeout(fn, timeout=10):
try:
result = await asyncio.wait_for(fn(), timeout=timeout)
return result
except asyncio.TimeoutError:
return {'error': 'timeout', 'message': f'工具调用超过{timeout}秒'}
超时后的策略
- 重试一次(可能只是网络抖动)
- 切备用工具(如果有的话)
- 跳过这个工具,用已有结果继续
- 告知用户部分结果可用
建议的超时时间
| 工具类型 | 超时时间 |
|---|---|
| LLM调用 | 30秒 |
| 搜索API | 10秒 |
| 数据库查询 | 5秒 |
| 文件操作 | 3秒 |
总结
不给工具调用设超时时间,等于让Agent无限制等下去。每个工具设合理的超时,超了就走下一步。
💬 评论 (0)