将错误信息精简收纳进上下文窗口
智能体一大核心优势是自我修复能力:执行短任务时,大模型调用工具大概率会出现执行失败。优质大模型能够读懂错误日志、调用堆栈,自主调整参数,在下一轮工具调用中修正问题。

绝大多数框架内置了该能力,但即便不落地前面其余11条设计准则,也可以单独实现这套错误处理逻辑。
基础极简示例
代码块
Python
thread = {"events": [initial_message]}
while True:
# 根据当前会话推理下一步动作
next_step = await determine_next_step(thread_to_prompt(thread))
# 记录本次工具调用意图
thread["events"].append({
"type": next_step.intent,
"data": next_step,
})
try:
# 执行对应工具逻辑
result = await handle_next_step(thread, next_step)
except Exception as e:
# 捕获异常,格式化错误写入上下文,下一轮模型可读取并自行修复
thread["events"].append({
"type": 'error',
"data": format_error(e),
})
# 循环继续,自动重试
进阶:增加连续错误次数限制
为单一工具设置错误计数器,限制最多重试3次,避免无限死循环:
代码块
Python
consecutive_errors = 0
while True:
当连续错误触达阈值后,可主动升级交由人工介入处理,既可以让模型自主判断发起人工询问,也能通过固定控制流代码强制接管流程。
核心优势
自我修复 Self-Healing
模型读取上下文内的错误信息,自主修正入参、调整调用逻辑,自动重试。
运行持久化 Durable
单次工具调用失败不会中断整条任务链路,智能体可持续运行。
注意事项
若无限制反复重试,智能体极易陷入死循环,重复触发相同报错。
此时可以结合第8条「自主掌控控制流」与第3条「自主构建上下文窗口」优化:
不必直接把原始报错原文丢入上下文;你可以重构错误展示格式、删减冗余历史事件、自定义兜底恢复逻辑,让智能体跳出重复报错循环。