Anthropic 说 agent 要透明,那摊开的东西谁来读?
Anthropic 在 2024 年 12 月发表了〈Building Effective Agents〉,写给打造 AI agent 的人。文章的总结列出三个原则,其中一个是透明。这篇要谈的是这个原则的另一端:agent 把步骤摊开之后,总得有人去读。
透明是 agent 要做到的事,读是你要做的事。Anthropic 要求开发者把 agent 的规划步骤摊开;对大多数在驱动 coding agent 的人来说,这些步骤最后会变成一份 Markdown 文件,要有人在对的时间点读它。
指南里写了什么
Erik S. 与 Barry Zhang 在总结里这样写:
“When implementing agents, we try to follow three core principles: Maintain simplicity in your agent's design. Prioritize transparency by explicitly showing the agent’s planning steps. Carefully craft your agent-computer interface (ACI) through thorough tool documentation and testing.”
(实作 agent 时,我们尽量遵守三个核心原则:让 agent 的设计保持简单;优先重视透明度,明确展示 agent 的规划步骤;通过完整的工具文件与测试,仔细打造 agent 与电脑之间的接口(ACI)。)
这些是写给开发 agent 的人的设计原则,不是给使用者的操作指示。原则要求把步骤摊开,但没有说谁来读。
同一篇也描述了 agent 拿到任务之后会做什么:“Once the task is clear, agents plan and operate independently, potentially returning to the human for further information or judgement.”(任务明确之后,agent 会自己规划、独立运作,必要时回头找人类要更多信息或判断。)还有:“Agents can then pause for human feedback at checkpoints or when encountering blockers.”(Agent 可以在检查点或遇到阻碍时暂停,等待人类反馈。)注意用词:potentially(必要时)和 can(可以)。检查点是 agent 可以有的设计,不是一定要有。
大部分的检查,不是你在做
这里很容易讲过头,所以先看指南真正放在前面的是什么。agent 会拿外界的结果来检查自己:“During execution, it's crucial for the agents to gain “ground truth” from the environment at each step (such as tool call results or code execution) to assess its progress.”(执行过程中,agent 必须在每一步从环境取得“ground truth”,例如工具呼叫的结果或程序执行的结果,用来评估自己的进度。)这句话里的 ground truth 指的是测试结果和工具输出,不是人。
指南对风险也讲得很直接:“The autonomous nature of agents means higher costs, and the potential for compounding errors.”(Agent 的自主性意味着更高的成本,以及错误不断累积的可能。)它给的解方是在沙盒环境里大量测试、加上适当的防护,并没有说“要读得更仔细”。
人真正出场,是在附录谈 coding agent 的段落:“However, whereas automated testing helps verify functionality, human review remains crucial for ensuring solutions align with broader system requirements.”(然而,自动化测试虽然有助于验证功能,但要确保解法符合更广泛的系统需求,人工审阅仍然至关重要。)这句讲的是代码。不过它点出的落差,用过 agent 的人都不陌生:测试能告诉你东西能动,不能告诉你那是不是你要的。
摊开的步骤,最后去了哪里
以下是我们的解读,不是 Anthropic 的主张。
如果你每天都在用 coding agent,它的规划步骤通常不会出现在什么仪表板上,而是变成文件:plan.md、一份有勾选框的待办清单、一个 agent 一直在改写的进度档,最后再来一份总结。从你这边看,透明的意思就是要读的东西变多了。
把步骤摊开,是 agent 那一半的责任。另一半,是有人在关键时刻读它:数据库迁移执行之前、分支合并之前、接受“做完了”之前。一个 agent 把所有东西都写进一份 600 行、没人打开的文件,纸面上很透明,实际上没人在看。
Harrison Chase 在 2024 年也讲过类似的话,不过他谈的是 agent 框架该怎么设计,不是文件:“You’ll want the ability to observe what is going on inside, since the exact steps taken may not be known ahead of time.”(你会希望能观察系统内部发生了什么,因为它实际采取的步骤事先可能无法得知。)他讲的是给开发 agent 的人用的工具。如果你是驱动 agent 的那个人,它一直在写的那份纯文字档,常常就是你看得到的部分。
以上几位作者都没有提到 MarsDawn,也没有推荐 MarsDawn 或任何 Markdown 工具。
比看起来难读
文件很长,重要的地方很少在最上面。说明这次改动的那张图,是一段 Mermaid 原始码,不是图(想在 Mac 上看到排好的样子,可以先看在 Mac 上怎么看 Markdown 文件)。你读到一半,agent 可能正在改写它。文件常常不只一份,有时还分散在不同的分支或 worktree。等你真的找到问题,说“缓存那段怪怪的”,agent 只能用猜的。完整的说明在读懂 agent 交回来的 Markdown。
MarsDawn 帮得上、帮不上的地方
MarsDawn 是为这种阅读做的 Mac app。它不会让 agent 变得更透明,里面也没有 AI 模型:它不会帮你摘要计划,也不会告诉你计划对不对。它做的是:
- 文件很长:“显示方式 ▸ 显示侧边栏”(⌃⌘S)打开“大纲”标签页,列出所有标题,点一下就跳过去。
- 图表和数学式:原始码和排好的页面并排(⌘2),两边一起卷动,Mermaid 和 KaTeX 直接画出来。图表写错时,预览会显示它的原始码,下方附上错误信息。
- 读到一半被改写:agent 改写文件时,MarsDawn 会重新加载,停在你原本读到的位置,前提是你自己没有未储存的修改。
- 好几个文件:用“文件 ▸ 打开文件夹⋯”(⇧⌘O)打开 agent 工作的文件夹,新文件大约一秒内就会出现在“文件”标签页;如果是 git 检出,清单上方会标出分支或工作树。
- 指出是哪一行:“编辑 ▸ 拷贝引用”(⌥⌘C)把目前位置拷贝成
docs/plan.md:42,“拷贝给 AI”(⌃⌥⌘C)会在下面附上你选取的文字,直接贴给 agent 就好。
读的人还是你。MarsDawn 负责让一份又长又会变的文件,在你读的时候保持好读。
试试看
MarsDawn 已在 Mac App Store 上架。另外还有免费的 marsdawn 命令行工具:
brew install redtear1115/tap/marsdawn
它不需要 app 就能把 Markdown 导出成 PDF。
命令行工具 · 买之前先看:MarsDawn 做不到的事
接下来
- agent 的产出为什么难读,以及一份检查清单:读懂 agent 交回来的 Markdown。
- 那份清单一步一步来,附实际例子:五分钟审完一份 agent 计划。
- 不同类型的 agent 会交给你什么文件:四种 agent 设计模式,各自会交给你什么文件。
- 为什么 AI 写的东西需要人读,短一点的版本:为什么 AI 写的东西还是需要人读过。
资料来源
- Erik S. 与 Barry Zhang,〈Building Effective Agents〉,Anthropic,2024 年 12 月 19 日:https://www.anthropic.com/engineering/building-effective-agents (引文依 2026-09-26 的线上版本;该文现已注明,文中提到的工具生态自 2024 年 12 月以来已有很多改变)
- Harrison Chase,〈What is an agent?〉,LangChain,2024 年 6 月 28 日,存档版本:http://web.archive.org/web/20240724003401/https://blog.langchain.dev/what-is-an-agent/ (原网址现在显示的是 2026 年的另一篇文章)