案例分析一:Coding Agent 读取配置文件失败,如何从错误中自己找到真实路径?

场景背景

用户说,“检查数据库配置。”

模型根据常见经验先:

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
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容