场景背景
用户说,“检查数据库配置。”
模型根据常见经验先:
read_file("config.py")
真实项目结构:
project/
├── README.md
├── app/
│ └── main.py
└── config/
└── config.py
第一次 Action
{
"name": "read_file",
"arguments": {
"path": "config.py"
}
}
Tool Result
{
"ok": false,
"tool": "read_file",
"error_type": "FileNotFoundError",
"error": "config.py",
"retryable": false,
"suggestion": "请先 list_files 或 search_files"
}
注意:
retryable = false
这里非常关键。
因为同一路径重试没有意义。
第二轮 Reason
模型看到:
路径猜错
于是:
应该先获取真实项目结构
Action:
list_files()
Observation:
README.md
app/main.py
config/config.py
第三轮 Reason
模型发现:
config/config.py
Action:
read_file("config/config.py")
成功。
第四轮
读取:
DATABASE_URL = "mysql://..."
完成任务。
结果
用户看到:
数据库配置位于 config/config.py。
DATABASE_URL 已在该文件中定义。
复盘
这个案例包含了真正自主纠错的四个核心环节:
错误被结构化
↓
错误进入 Context
↓
模型改变策略
↓
新动作得到真实反馈
这里没有:
if config.py 不存在,
就固定去 config/config.py
所以它不是写死的 Workflow。
是 Agent 根据 Observation 重新决策。
迁移
同样逻辑可以迁移到:
入口文件找不到
测试命令不存在
依赖文件路径不同
配置名不一致
日志位置未知
只要错误是可恢复的,就可以让 Agent继续探索。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END

















请登录后查看评论内容