Claude Certified Architect 是什么

先说考试本身。Claude Certified Architect 是 Anthropic 推出的首个官方技术认证,Foundations 等级的代码为 CCAR-F,由 Pearson VUE 以线上监考或考场形式进行。共 60 题、120 分钟,计分区间为 100 至 1000 分,及格线 720 分,资格有效期十二个月。
这是不能带书、也不能用 AI 的闭卷考试,涵盖智能体架构、MCP 集成、Claude Code 工作流、提示工程与上下文管理。
但这篇文章要谈的不是证书。重点在于:就算你不打算考,这份题目清单本身也有用。讲者的理由很简单——Anthropic 是最清楚人们如何使用、又在哪里弄坏自家系统的公司。这样一家公司出题,题目清单就等于现场会出问题的清单。
讲者自己教了三十多年计算机科学。他说,在必须告诉学生「计算机科学学位不再保证就业」的处境下,他一边找能交到学生手上的东西,一边遇到了这场考试。
为什么先看错误答案 —— 反模式目录
这场演讲底下埋着一套方法论:不从该做什么出发,而从不该做什么出发。
他引用的先例是九十年代初的软件设计模式运动。随着面向对象编程站稳脚跟,「这样做就对了」的模式目录出现了;几乎同时,「别这样做」的反模式目录也一起出现。在实务中,失败清单比成功清单见效更快。
他认为现在需要的正是这个:智能体的反模式目录。关于怎么把智能体做好的建议满地都是,关于什么会让它悄悄坏掉的清单却很少。
他引的爱迪生那句话很贴切:「我没有失败,我只是找到了一万种行不通的方法。」下面五个,就是那一万种里最常被踩到的五个。
分数占比先说明了一切 —— 设计是最大的一块
以下是考试蓝图中的五个领域及其占比。数字取自演讲幻灯片。
| 领域 | 占比 |
|---|---|
| 智能体架构与编排 | 27% |
| Claude Code 配置与工作流 | 20% |
| 提示工程与结构化输出 | 20% |
| 工具设计与 MCP 集成 | 18% |
| 上下文管理与可靠性 | 15% |
循环被补上的那一刻 —— 1966 年的证明
在进入反模式之前,演讲先回到了 1966 年,用来解释为什么智能体如今忽然给人不一样的感觉。
计算的早期,编程语言急剧增加,人们争论谁的语言能做更多事。1966 年,科拉多·伯姆与朱塞佩·雅可比尼用一个证明结束了争论:任何计算只需要三样东西——按顺序执行、按条件分支,以及循环。
把如今的 AI 代进去,画面就清晰了。抛出一次提示、拿到一个回答,那是顺序;加上条件分支,很多人也已经在做。缺的是循环——把回答再喂回去,再拿一个,再喂回去。
智能体之所以感觉不同,一部分是模型变强了,但从结构上说,正是这第三件被补上的时刻。所以第一个反模式讲的就是循环。
反模式一 —— 别直接用回答,先看它为什么停下
先看最常见的错误:调用模型,拿到回答,原样使用。
这里有个误解要先拆掉。LLM 无法执行工具。除了按概率预测下一个词,它什么也做不了。就算把工具交给它,它也执行不了,只能告诉你「用这些参数调用这个工具」。真正去调用的是你的代码。
所以回应到达时,不是拿答案就用,而是先看 stop_reason,也就是模型为什么停下。是 tool_use,就执行工具、把结果喂回去、再转一圈;是 end_turn,就跳出循环。
还有一种。因为 token 用尽而停下时,回应照样会来,而且读起来也像模像样,但那是被截断的答案。不看 stop_reason,你会把它当成完整答案拿去用。悄悄出错的地方就在这里。
跳出循环之后,也正是人该介入的位置。看一下置信度,够好就留下,不够就交给人。
while True:
resp = client.messages.create(
model="claude-opus-5",
messages=messages,
tools=tools,
)
# 用答案之前,先看它为什么停下
if resp.stop_reason == "tool_use":
result = run_tool(resp) # 调用工具的是你的代码
messages.append(result) # 把结果喂回去,再转一圈
continue
if resp.stop_reason == "max_tokens":
raise RuntimeError("答案被截断了 —— 不要当成完整答案")
break # end_turn 就跳出
反模式二 —— 别把规则堆进一个文件,放到它生效的位置
第二个说的是用 Claude Code 生成代码时的情况。你会把「希望它知道的事」写进一个叫 CLAUDE.md 的 markdown 文件,而常见的反模式,就是把所有规则都堆进这一个文件。
Anthropic 建议按层级拆开。家目录里的 CLAUDE.md 对所有项目生效,项目根目录的只对该仓库生效,某个目录里的则只在你于那个文件夹中工作时生效。三者都会加载并合并,冲突时最具体的那个文件胜出。
全塞进一个文件,只在某个文件夹才需要的指令就会跟着你进入毫不相干的工作,然后悄悄相撞。它不会以失败的形式浮现,而是结果微妙地偏掉,你也看不出冲突发生在哪里。
这一段与本站此前的《怎样写出 Claude 真正会遵守的 CLAUDE.md》相接。那篇讲的是一个文件怎么写,这里讲的是文件该放在哪。
反模式三 —— 别把工具全挂上去,把智能体拆开

第三个是关于同时使用多个智能体。演讲里的比喻很准确:你叫了个木匠到家里,他带着水管工具、木工工具和电工工具出现,宣称自己什么都能做。你多半不想要这个人,你想要的是一个像样的木匠。
幻灯片上的基准线是四到五个工具,讲者口头说的是一两个。无论取哪个,方向一致:越过那条线,推理质量会下降,工具选择会变得不稳定。所以与其把工具带做大,不如把智能体拆开,让每一个只做一件事。这就是函数式编程里「函数只做一件事」的老规矩,被原样搬了过来。
与此并行的,是别让子智能体的上下文渗回主上下文。上下文就是 token,token 就是钱;但更要紧的是,上下文越多,模型越糊涂,答案越不准。
演讲中最令人印象深刻的代码是一个 critic 智能体——用来检查此前工作的智能体——而它收到的东西正好两样:主张,与证据。得出该主张的思考过程被刻意拿掉了。
给负责验证的智能体更少的信息,听上去是反的,理由是群体思维。让多个智能体聚在一起互相交谈,它们会收敛到同一个结论。就像在派对上大家都想吃披萨、只有你不想,为了不扫兴你也跟着去了。智能体也是这样。所以每个智能体只拿到属于自己的那一片。
反模式四 —— 把长输出隔离出去,变大了就压缩
第四个是任由上下文无限增长。
处方有两个。一是隔离子任务的输出。像把所有日志翻一遍找错误这种输出量大的工作,放进单独的上下文里去做。演讲称之为 fork。冗长的输出留在里面,回到主对话的只有摘要。
二是压缩长会话。数一下 token,超过阈值就执行压缩。演讲代码里写的阈值是 15 万 token。
省着用上下文的理由有两个。上下文就是 token,token 就是钱,这是其一。其二是上下文越多,模型越糊涂,答案越不准。
很容易觉得既然开了百万 token 的窗口,那就全塞进去吧。恰恰相反:限制放进去的东西,才会准。
反模式五 —— 在 CI 里别用对话模式调用
最后一个是在流水线里运行时的情况,这个反模式有点好笑。用对话模式调用智能体,它会停在询问权限的那一步——「我可以这么做吗?」——等一个永远不会有人给的回答。在没有人的地方等人。
要用非交互方式运行,并让输出以 JSON 返回,流水线才读得懂。
这里还多了一条:Batch API。把提示和任务打包成批次提交,token 成本减半,结果承诺在 24 小时内返回。如果这件事并不需要马上要答案,那才是它该去的地方。
今天可以试的一件事
贯穿五条的只有一件事:答案全都是给得更少。工具、上下文、信息,都更少。
「会用智能体」常被说成是能挂上更多东西的能力,而这场考试选的答案正好相反——是知道什么不该给。
如果今天只挑一件事来查,就挑第三条。打开你正在用的智能体、自定义 GPT 或 MCP 配置,数一数挂了几个工具。超过四五个,有一半很可能一次都没用过。把那一半摘掉,再让它做同样的事,答案会不一样。
接着是 CLAUDE.md。如果一个文件里堆了超过二十行,挑出只在某个文件夹才需要的那几行,搬进那个文件夹的 CLAUDE.md。不是删掉,是换个位置。
