介绍工具 Ordewell:先让 Agent 输出只读任务计划供人工审核,再执行;解决了 Agent 不等确认就擅自修改代码的问题。
事先声明:本文所介绍的工具是我自己开发的。它采用 Apache-2.0 协议免费使用,所以我关注的点是"有人觉得有用",而不是"有人给我钱"。
让我走上这条路的这个失败经历大概很多人都熟悉。我给 Agent 一个多步骤目标:重构这个模块、更新 README、添加测试。前几步都一切顺利,直到第 4 步——在那里我才发现它在最初的时候就把第 1 步搞错了。等到了那一步,文件已经写好了。计划已经没法纠正了,因为计划只存在于模型的脑子里。剩下的只有可以撤销的东西。
这就是核心问题:计划是会话的副产物,而不是你可以检查和编辑的产物。本文要讲的是我最终确定的、设计上的决策——让计划成为你需要批准的东西,而不是你只能期待的东西。
这个工具以只读方式读取你的代码仓库,然后返回一个有序的任务列表。每个任务携带四元元数据:运行器(Claude Code、Codex 或 OpenCode)、模型、思考投入量,以及模式。这不是装饰——这四个字段就是任务实际运行时的样子。你可以重写任何提示词,添加或删除任务,重新连接依赖关系(任务 4 依赖任务 2),或者单独某个任务上更换模型。已完成的工作保持完成状态。在你编辑的时候没有任何 AI 往返通信。
一个自然的问题是:"为什么不用 plan 模式?" 原因有二。
其一,plan 模式是在将要执行任务的会话内部做规划的——计划是咨询性质的,模型可以偏离它。而这里的计划是由一个独立进程生成的,该进程在物理上就不能向你的代码仓库写入文件。它的探索是严格只读的;任何会写入的命令在审批提示出现之前就会被拒绝,所以不存在什么可以点击"本次允许"的"允许一次"按钮。变更属于运行器,不是规划器。
其二,按任务分配模型。一个安全重构和一个 README 更新不值得用同一个模型。规划器在整个计划层面公开做出这个组合决策,在你还一分钱执行费用都没花出去之前——而且你可以覆盖其中的任何部分。
我最在乎的部分发生在后面。Agent 不擅长给自己打分——更糟糕的是,它们会在一个根本编译不过的构建上宣布成功。所以这里的任务只有在运行器输出中出现了其独特的完成标记时才会被标记为完成,同时退出码作为独立证据被保留在旁边。模型永远不是平局时的裁决者。如果会话结束了并声称工作完成了,但那个标记没有出现,那就大声失败。
如果你见过一个 Agent 说"完成了"然后打开的文件还是坏的那就是全部的动机。
规划器仍然是一个 LLM,有时候会写出糟糕的计划。这里的论点不是说它总是对的——而是一个你能看到并编辑的糟糕计划耗费一分钟,一个你看不到的糟糕计划耗费一下午。完成标记证明的是会话结束了并声称完成了工作,而不是代码正确。
另外:TUI 在每个平台上都需要 tmux(Windows 上意味着需要 WSL)。CLI 和 VS Code 扩展则原生运行,不需要它。
npm install -g ordewell && ordewell
把它指向一个你熟悉的代码仓库,阅读它给你的计划。这第一个计划就是全部的论点。
GitHub: github.com/ordewell/ordewell
Apache-2.0,免费,没有付费档位。
很乐意回答任何问题,包括"为什么不直接做 X"。