← Diagram Lab

Claude 官方博客的「架构图 / 代码图」研究

样本:anthropic.com/news、anthropic.com/research、claude.com/resources/articles 共 389 篇文章,去重后 1,591 张配图。 筛选:先按主题词(agent / MCP / system / pipeline / code / SDK / sandbox…)收窄到 420 张技术类图,再人工剔除评测基准、准确率曲线、问卷结果这类「结果图」,留下 78 张架构、系统、代码与流程类图解。 结论先说:他们画得最好的是带边界和泳道的系统图,不是插画;最差的是直接导出的泳道图和过度简化的方块图。整体信息设计水平很高,但缺少统一制图规范,质量随作者波动。


一、先分清三种「图」

类型 长什么样 用在哪 占比感受
结果图 柱状、折线、误差棒、热力图、ROC 评测、经济指数、模型对比 最多,但和架构表达无关
系统图 方块、泳道、嵌套容器、箭头 agent 架构、MCP、沙箱、上下文 技术文章的主力
装饰插画 陶土橙底 + 黑色手绘线稿、摄影 产品发布、品牌页 很少,集中在 Claude Design 等营销页

值得研究的是第二类。它又分成四种稳定图式:

  1. 泳道 + 信任边界:User / Claude Code / Sandbox / 外部,四段横向排开。
  2. 嵌套容器 / 层级:外层是系统,内层是组件,用底色深浅表示「谁在谁里面」。
  3. 拓扑对比:同一套方块语法,只换连线,四张图讲四种多智能体协作方式。
  4. 时序 / 阶段门控:纵向时间轴、Stage 1/2、退出条件、回退箭头。

二、四种图式的具体做法

1. 泳道 + 信任边界(最成熟)

代表:Beyond permission prompts 的 Claude Code Sandboxing 图。

可复用点:把「策略」画成节点,把「判定」画成有颜色的 chip,把「参数」写在线上。

2. 嵌套容器 / 层级

代表:Agent + Skills + Virtual Machine、5 layers / 1 loop、High-level Architecture of Advanced Research。

可复用点:层级靠背景色 + 边框 + 内边距表达,不靠阴影;跨层只画一条「语义箭头」。

3. 拓扑对比

代表:Multi-agent coordination patterns 系列(Orchestrator-Subagent / Agent Teams / Message Bus / Shared State)。

可复用点:系列图不要每张重新设计,锁定一套 token,只改变量。对比图是最好的教学单位。

4. 时序 / 阶段门控

代表:Programmatic tool calling 的纵向时序图、两阶段分类流水线。


三、视觉语法(可以直接抄的参数)

按 400 张抽样统计,约三分之一的图使用米色纸面底;纯色满版封面约 30 张,其中陶土橙为主。

项 取值
画布底色 #FBFAF7 近白;容器 #F5F1E8 米色
主文字 #1F1E1C(近黑,不用纯黑)
强调色 #D97757 陶土橙(标题、关键节点、错误)
调度/主流程 淡蓝 #A8C4E5,描边略深
执行/子任务/允许 薄荷绿 #A9D6C0
拒绝/风险 淡红 #E8A6A0
画布圆角 外层 16–24px,节点 8–10px
线 1.5px 深灰,直角折线,小三角箭头
字号 图标题 28–34;节点 14–16;注释 11–12
图例 基本不用,靠颜色语义 + 线上标签自解释

一个很关键的细节:节点里的文字是名词,连线上的文字是动词或参数。比如 Orchestrator → Subagent A 是名词,dispatches / allowed:443 是动词或参数。


四、做得好的六点

  1. 边界即信息。 allowed:443 / unknown:80 这类标签让图自带解释力,读者不用回正文。
  2. 一图一变量。 拓扑系列和 workflow 系列都只改一个维度,学习成本极低。
  3. 颜色有语义且跨文章一致。 蓝=调度,绿=执行/允许,珊瑚=重点/拒绝,米色=容器。
  4. 双面板叙事。 左边真实输入,右边系统内部,把「用户看到什么」和「系统做了什么」分开。
  5. 代码图不截 IDE。 他们画 SKILL.md 的 YAML + Markdown 结构、目录树、接口表;只有终端输出才用截图。
  6. 保留品牌温度。 像素螃蟹图标、珊瑚色描边、圆角容器,让架构图不像 Visio。

五、明显的问题

  1. 箭头语义不严谨。 双向箭头滥用(<--> 同时表示请求、响应、共享),回传边没有标签,读者只能猜。
  2. 导出型泳道图不可读。 131 号图(Multi-agent System Process Diagram)绿底绿框、字号过小、箭头交叉,明显是工具直接导出,没有二次排版。
  3. 过度简化。 290 号图只有一个方块、一个圆、一个文件图标,信息量接近于零,属于「为了有图而有图」。
  4. 风格不统一。 同一家公司,不同文章的圆角、字重、色值都在变;有的像 Figma 手工排的,有的像 Mermaid 默认主题。
  5. 移动端不可用。 大量图内字号 < 12px,缩到 375px 宽直接糊掉;他们没有为图做移动版。
  6. 缺图例与数据流说明。 颜色含义靠上下文猜,跨文章没有统一的 legend。

六、如果要做「AI 自动画架构图」,建议这样设计

不要让模型直接输出 SVG / HTML。 先让它输出一个 scene graph,再由固定渲染器排版,才能保证一致性和可读性。

{
  "canvas": {"preset": "architecture-4x3", "theme": "claude-paper"},
  "lanes": [
    {"id": "user", "label": "User"},
    {"id": "agent", "label": "Claude Code"},
    {"id": "sandbox", "label": "Sandbox"}
  ],
  "nodes": [
    {"id": "u", "lane": "user", "label": "User", "role": "actor"},
    {"id": "cc", "lane": "agent", "label": "Bash (python foo.py)", "role": "process"},
    {"id": "sb", "lane": "sandbox", "label": "bash -c 'python foo.py'", "role": "process"},
    {"id": "d1", "lane": "sandbox", "label": "Allow", "role": "decision", "state": "allow"}
  ],
  "edges": [
    {"from": "u", "to": "cc", "verb": "submit", "payload": "command"},
    {"from": "cc", "to": "sb", "verb": "exec"},
    {"from": "sb", "to": "d1", "verb": "write", "payload": "~/.bashrc", "result": "deny"}
  ]
}

建议的约束:


七、文件