一句话答案:一个 AI 编码 Agent 在同一个问题上绕圈时,先判断前面的对话是资产还是负担:思路对、只是不够深,就换更强的模型或调高推理强度;前文有用但这个 Agent 走偏了,就换一个 Agent,并把关键对话和结论带过去;前文已经被错误尝试带偏,就开新会话、只带一张「排错结论卡」;拿不准哪条路对,就用 git worktree 分成两份各试一条,最后看 Diff 选。
直答:先看「前面的对话」值不值得留,再决定换什么。
你看到的情况 | 更可能的原因 | 建议 |
|---|---|---|
方向是对的,就是边界条件总差一点 | 推理不够深 | 同一个 Agent 换更强的模型,或调高推理强度 |
前面排查出的线索都有用,但它一直在同一个错误假设上打转 | 这个 Agent 的「思路惯性」 | 换一个 Agent,把关键对话和结论带过去 |
对话里堆满了失败的尝试和被推翻的结论 | 上下文本身被污染了 | 开新会话,只带「结论 + 已排除的方向」 |
有两种修法,拿不准哪种对 | 需要对比,而不是接力 | 分成两份各走一条路,看完 Diff 再选 |
一个简单的判断:自己重读一遍对话,如果觉得「新来的人看了会少走弯路」,就带着它换;如果觉得「看了反而会被带偏」,就开新会话。
做法:先试成本最低的「换模型」
# Claude Code / Codex 的交互界面里都可以用斜杠命令切换模型
/model
# Codex 也可以在启动时指定推理强度(配置项名称以你安装的版本文档为准)
codex -c model_reasoning_effort=high直答:代码改动在磁盘上,谁接手都看得到;对话不会自动跟过去,各家 CLI 的会话各存各的;规则文件、模型、权限设置也都是各家自己的。
东西 | 换工具后 | 怎么处理 |
|---|---|---|
已经改了的代码 | 在 | 新 Agent 直接读文件;换之前 |
之前的对话 | 不在 | 把有用的部分整理成结论卡(见下文),或导出对话文本作参考 |
项目规则文件 | 看新工具读哪个文件 | Claude Code 读 |
模型、推理强度 | 换成新工具的 | 在新工具里重新选 |
权限 / 审批设置 | 换成新工具的 | 对不熟的 Agent,先用「只规划、不执行」或逐条审批的模式 |
账号和费用 | 换成新厂商的 | 各家按自己的订阅或 API 计费 |
就算有工具能把对话一起带过去,也只是把内容交给新 Agent,不等于两个 Agent 共享记忆:前面定下的关键约束(不能动的目录、必须过的测试),换的那一轮最好再说一遍。
直答:别带整段对话,带一张「排错结论卡」:现象、复现方式、已经排除的方向和理由、当前怀疑、不能动的东西、验收标准。重点是「已排除的方向」,它能让新会话不再重走老路。
做法:结论卡模板(放在 .git/info/exclude 忽略的文件里,或直接贴进新会话的第一条消息)
# 排错结论卡
## 现象
- 输入 xxx 时,函数 yyy 返回 zzz,期望是 www
## 复现
- 命令:npm test -- path/to/case.test.ts
- 最小用例:……
## 已排除的方向(以及为什么)
- 不是缓存问题:清缓存后仍复现
- 不是时区问题:固定 TZ=UTC 仍复现
## 当前怀疑
- 边界值 0 被当成 false 处理
## 不能动的东西
- 公共 API 签名、数据库迁移文件
## 验收标准
- 上面的用例通过,且全量测试不新增失败新会话的第一句话可以是:「先读这张结论卡,复述你认为的根因,再动手;不要尝试『已排除的方向』里的修法。」
直答:给每种修法一个独立的 worktree 和分支,各开一个 Agent,最后分别看 Diff、跑测试,再决定留哪个。
# 从当前进度开出两条线
git add -A && git commit -m "wip: 分叉前检查点"
git worktree add ../app-fix-a -b fix-a
git worktree add ../app-fix-b -b fix-b
# 两个目录里各跑一个 Agent,给它们不同的方向
cd ../app-fix-a && claude # 方向 A:在解析层修
cd ../app-fix-b && codex # 方向 B:在调用方兜底
# 对比结果
git diff main...fix-a --stat
git diff main...fix-b --stat
# 选定一个合并,另一个整个丢掉
git merge --no-ff fix-a
git worktree remove ../app-fix-b && git branch -D fix-b两个 Agent 千万别同时改同一个目录,否则谁的改动留下来全看运气。
直答:多数 CLI 都能恢复本地保存的会话,不用重讲。
# Claude Code
claude --continue # 继续当前目录最近一次会话(-c)
claude --resume # 从列表里选一个历史会话(-r)
# Codex
codex resume # 打开最近会话的选择列表
codex resume --last # 直接回到当前目录最近一次会话恢复的只是同一个工具自己的会话;想换成另一个 Agent 接着做,还是要靠上面的结论卡或分支。
直答:不管中间换了几个 Agent,最后都看同一份 Diff、跑同一组测试,而不是看哪个 Agent 的总结写得更自信。
git diff main...你的分支 看这条线上的全部改动,逐个文件确认有没有没要求的修改;如果不想每次手写结论卡、手动开分支,也有桌面工具把多个命令行 Agent 的任务放到一个界面,比如 Caravel(免费使用,支持 macOS / Windows):同一个任务里,这一轮可以换用别的 Agent 或模型继续,之前的对话内容会一起带过去;想对比两种修法可以分叉会话(视 Agent 是否支持),原任务保持不变;最后都在同一个 Diff 里验收。用法见手册:https://caravel-site.pages.dev/zh-CN/docs/chat/
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。