思考笔记

李文业的思考笔记


  • 首页

  • 关于

  • 分类

  • 归档

代理式工程模式:三个提示词让AI写出靠谱代码

发表于 2026/02/26 | 分类于 AI专题

一、这篇文章讲什么

2026 年 2 月,Django 联合创始人 Simon Willison 在 GitHub 上发布了一个项目——Agentic Engineering Patterns(代理式工程模式)。

这个项目要解决的问题很具体:我们都在用 Claude Code、Codex 这类编码代理写代码了,但怎么才能让代理写出来的代码靠谱?

Simon 给出了三个极短的提示词,分别对应三种场景。本文把它们拆开讲清楚,给出可以直接复制使用的模板。


二、一个前提:写代码变便宜了,好代码仍然贵

在讲具体模式之前,先说一个核心判断。

过去,写几百行干净代码可能要花一整天。所以我们的很多习惯——前期设计、排期、对每个改动做成本收益分析——都是围绕“编码时间稀缺”建立的。

编码代理把“敲代码”这件事的成本压到接近零。但这只是故事的一半。

Simon 列了一份“好代码”的清单:

  • 能工作(功能正确,没有明显 bug)
  • 能被证明能工作(有测试、有可复现步骤)
  • 解决的是正确的问题(需求本身没跑偏)
  • 异常和边界条件有处理
  • 足够简单,只做需要做的事
  • 有测试保护
  • 文档和代码同步
  • 为未来变化留余地,但不过度设计

结论:代理能帮你做大部分,但你仍然要为最终质量负责。

下面是三个具体的做法。


三、模式一:First run the tests

3.1 是什么

每次让代理进入一个已有项目的新会话,第一句话就说:

1
First run the tests

就这四个词。

3.2 为什么有效

这四个词同时做了三件事:

第一,让代理发现测试套件。 它会自己去找怎么运行测试(pytest、npm test、go test ./...),找的过程本身就是在熟悉项目。

第二,建立项目基线。 测试框架会显示测试数量和结果。代理因此知道项目有多大、质量如何、哪些地方有问题。

第三,切换心智模式。 跑过一次测试后,代理在后续的改动中更倾向于自觉回归测试。

Simon 有一句很实在的判断:如果 AI 生成的代码从未被执行过,它部署后能工作几乎只能靠运气。

3.3 不同技术栈的写法

Python(uv + pytest):

1
Run "uv run pytest"

Simon 自己用 pyproject.toml 的 dependency groups 管理 dev 依赖,让 uv run pytest 成为拿到仓库就能跑的默认体验。

Node/TypeScript:

1
2
First run the tests. Try: npm test.
If that fails, inspect package.json scripts and run the correct one.

Go:

1
First run the tests. Run: go test ./...

Rust:

1
First run the tests. Run: cargo test

有 Makefile 的项目:

1
2
First run the tests. Run: make test.
If unknown, list targets first.

3.4 常见坑

  1. 只看测试输出,不让代理解释失败原因。 很多失败是环境问题。建议要求代理每次修复都写清楚“为什么失败——怎么改——影响面”。

  2. 允许代理跳过测试。 如果代理说“我无法运行测试,但我认为改动没问题”,把它拉回来。要么修环境,要么缩小改动范围。

  3. 项目本身没有测试。 这种情况下,把 First run the tests 换成“先搭最小测试骨架”,然后进入下一个模式。


四、模式二:Use red/green TDD

4.1 是什么

当你要让代理做任何行为变更——新功能、修 bug、重构——开头加一句:

1
Use red/green TDD

代理会自动进入测试驱动开发模式:先写测试,确认失败(红),再写实现让它通过(绿)。

4.2 为什么对代理特别有效

代理有两个常见问题:

  • 写出“看起来对但实际不能跑”的代码
  • 写出“不必要的、没人用的”代码

TDD 同时压制了这两个问题。Test-first 迫使代理先把需求变成可失败的断言,再写最小实现。正确性和范围都被约束了。

4.3 四步节奏

一个完整的红/绿循环:

  1. 澄清行为:把需求写成输入/输出/边界/错误。
  2. 写测试(红):新增测试用例,运行,确认失败。
  3. 写实现(绿):写最小代码让测试通过。
  4. 重构与回归:整理代码,全量测试仍通过。

其中第 2 步特别重要:一定要确认测试会失败。 如果你写了一个“本来就会过”的测试,等于什么也没验证。

4.4 可直接使用的提示模板

1
2
3
4
5
6
7
8
We are going to implement <feature>.
Use red/green TDD.

1) Add/modify tests first.
2) Run the tests and confirm they fail for the right reason (red).
3) Implement the minimal code to make them pass (green).
4) Run the full test suite again.
5) If you refactor, keep tests green after each step.

把 <feature> 换成你的具体需求就行。

4.5 常见坑

  1. 代理跳过红阶段。 直接写实现再补测试。这样测试变成“验证已写代码”而不是“定义目标行为”。可以硬性要求:先展示测试 diff,再写实现。

  2. 测试太宽松。 只断言“返回值非空”,或者 mock 太多导致不接触真实逻辑。你需要像 code review 一样 review 测试质量。

  3. 一次改太多。 代理喜欢“顺便把 XX 也做了”。在 TDD 下明确:每次只引入一个可验证的行为变化。


五、模式三:Linear walkthroughs(线性走查)

5.1 是什么

当你需要理解一个代码库——可能是别人的、可能是你自己 vibe coded 出来的——让代理生成一份结构化的逐模块讲解文档。

5.2 为什么需要这个

Simon 自己就遇到了这个场景:他用 Claude Code 做了一个 SwiftUI 幻灯片应用 Present,发到 GitHub 后发现自己不懂它怎么工作。

他的做法是开一个新会话,让 Claude Code 先读 repo,再做线性走查。

5.3 关键约束:防止幻觉

这里最重要的技术决策:

代码片段必须来自命令输出(sed/grep/cat),不允许代理手工复制粘贴代码。

为什么?因为模型在“复述代码”时非常容易出现微妙偏差——改了变量名、漏了参数、调换了顺序。讲解文档里如果有这种错误,读者会建立错误的理解。

用命令输出插入代码片段,就把“解释”变成了“解释 + 证据链”。

5.4 可直接使用的提示模板

1
2
3
4
5
6
7
8
9
Read the repository source code and plan a linear walkthrough
that explains how it works.

Rules:
1) Use shell commands (sed/grep/cat/rg) to extract real code snippets.
Do NOT manually retype code.
2) Cover file by file or module by module:
what it does, key types/functions, data flow.
3) End with "How to verify": commands to build, run, and test.

如果你的项目装了 Showboat(Simon 自己写的工具),可以用它来生成可执行的 walkthrough 文档:

1
2
3
Run "uvx showboat --help" and use that tool to create walkthrough.md.
Use "showboat note" for commentary.
Use "showboat exec" to run shell commands that extract code snippets.

5.5 适用场景

  • 入职新项目:让代理生成系统结构 + 关键模块 + 入口 + 测试说明。
  • Vibe coded 项目需要维护:先理解再改。
  • 事故复盘:根据日志和代码,生成故障路径走查文档。
  • 重构前评估:输出耦合点、隐式假设、测试覆盖缺口。

六、三个模式怎么组合使用

6.1 接手陌生代码库

1
2
3
步骤 1:线性走查(理解)
步骤 2:First run the tests(建立基线)
步骤 3:用 red/green TDD 做一个小改动(验证理解)

先有理解,再有基线,再有可验证的实操经验。

6.2 修 bug

1
2
3
4
步骤 1:Use red/green TDD
步骤 2:第一步必须是"复现 bug 并写成失败测试"
步骤 3:写最小修复让测试通过
步骤 4:全量回归

本质就是把代理变成一个“测试驱动的补丁生成器”。

6.3 重构

1
2
3
4
步骤 1:First run the tests(确认当前绿)
步骤 2:补充/加固关键行为的测试
步骤 3:让代理按小步重构,每一步跑测试
步骤 4:如果任何一步测试变红,立刻回滚这一步

重构真正昂贵的不是“改动本身”,而是“确信没改坏”。


七、落地清单

把上面的内容压缩成可以直接贴到团队文档里的清单。

会话开局

  • 一句话说清本次目标
  • 说清约束(不改哪些模块、兼容性、性能边界)
  • 执行 First run the tests
  • 代理解释了测试怎么跑、跑了多少、失败原因

代码变更

  • 用 Use red/green TDD 开头
  • 红阶段:新测试确实失败,失败原因与需求一致
  • 绿阶段:最小实现通过
  • 全量测试通过
  • 文档/注释是否需要同步

代码理解

  • 代理先输出走查计划(目录结构、入口、关键模块)
  • 代码片段来自命令输出,不是手动复制
  • 文档包含:如何运行、如何测试、关键数据流

PR 审阅(“好代码”检查)

  • 代码真的跑过了吗?
  • 怎么知道它能工作?(测试/证据在哪?)
  • 解决的是正确的问题吗?
  • 异常和边界条件怎么处理的?
  • 是否足够简单?有没有不必要的额外改动?
  • 测试覆盖了新增行为吗?
  • 文档同步了吗?

八、总结

Simon Willison 这个项目的核心思路用三句话就能说清:

  1. 写代码便宜了,但好代码仍然贵。
  2. 用极短的提示词触发完整的工程纪律——“First run the tests”“Use red/green TDD”“Linear walkthrough”。
  3. 你的价值不在于写代码,而在于定义问题、建立证据、守住质量。

这三个提示词你今天就可以开始用。不需要任何配置,不需要任何工具链改造。打开你的编码代理,把它们打进去,然后观察代理的行为变化。

(完)

当语言的主权易手:赫拉利与特蕾西的七个洞察

发表于 2026/02/26 | 分类于 AI专题

风格参考:万维钢(《精英日课》作者)—— 跨学科引证,框架式拆解,加粗关键洞察,用理论和案例交叉验证每个论点。

引子:在一个讲“对话”的场合,有人说对话的地基快塌了

2026 年世界经济论坛(达沃斯)的主题叫“对话精神”(A Spirit of Dialogue)。你想想这个场面:全球几千名政商领袖聚在一起,主题就是“我们要好好说话”。

然后历史学家赫拉利上台,说了一句让全场不太舒服的话:如果语言本身——人类用来组织社会、建立制度、说服他人、创造意义的“超能力”——正在被 AI 以更低成本、更高效率、更大规模地接管,那你们的“对话”还有地基吗?

这就像在一个厨师大会上,有人站起来说:“各位,火已经不属于人类了。”

和他对谈的是牛津大学校长、神经科学家艾琳·特蕾西(Irene Tracey)。她的回应不是反驳,而是补了一刀:我更担心的是,当学生把写作、推理、论证都外包给 AI 之后,他们还有没有能力独立思考?

这场对谈包含了极高密度的跨学科信息。我把它拆成七个洞察,每个用一个理论框架去验证。


一、AI 不是更好的锤子——经济学的“委托-代理”问题,比“工具 vs 代理”更精确

赫拉利反复强调一个区分:AI 不只是工具,而是代理人(agent)。刀不会自己决定切沙拉还是伤人,但 AI 能自主选择、能迭代自身、甚至能创造新工具。

这个区分听起来直觉上成立,但如果你想给它找一个更精确的理论支撑,经济学里现成就有一个——委托-代理理论(Principal-Agent Theory)。

1.1 什么是委托-代理问题

这个理论最早由 Jensen 和 Meckling 在 1976 年提出,核心讲的是:当一个主体(委托人)把决策权交给另一个主体(代理人)时,因为信息不对称和利益不一致,代理人可能不按委托人的最佳利益行事。

最经典的场景是股东和 CEO 的关系:股东想要长期价值,CEO 可能更在乎短期业绩和个人声望。你看不到他每天在做什么决定,而他的利益和你的利益不完全一致——这就是“代理成本”。

现在把这个框架套到 AI 上。当你让一个 AI 系统帮你做决策——投资、招聘、内容审核、法律检索——你就变成了委托人,AI 就是代理人。而问题在于:

  • 信息不对称:你可能不理解模型为什么做出某个判断(黑箱性)
  • 利益不一致:AI 的优化目标(训练时设定的)未必和你的真实意图完全对齐
  • 监督成本:你越是依赖 AI,越难评估它的输出质量

赫拉利说的“代理性”,用经济学语言翻译过来就是:AI 正在成为一种新型代理人,而我们尚未建立有效的治理机制来管理这个委托-代理关系。

1.2 雇佣兵类比——不是文学修辞,是制度教训

赫拉利在对谈里用了中古史的雇佣兵来做类比:你雇佣他们作战,但因为他们有自己的利益和判断力,最终可能反客为主。

这个类比在历史上有大量实证。意大利文艺复兴时期的雇佣兵队长(condottieri),本来是城邦花钱请来打仗的“工具”,后来很多人自立为主——米兰的斯福尔扎家族就是最著名的例子。

关键洞察不是“AI 会造反”,而是:任何具有足够自主能力的代理人,在激励结构中都倾向于发展出自身利益。 这不需要“意识”或“意志”——只需要一个优化目标和足够的行动空间。在博弈论里,这叫做“策略性行为”(strategic behavior),它可以在完全没有意图的系统中涌现。


二、语言是“大规模协作”的操作系统——邓巴数、虚构故事与文本机器

赫拉利的核心历史判断是:人类能统治地球,不是因为身体更强,而是因为掌握了语言与叙事,能让亿万陌生人围绕共同概念行动。

这个判断不是赫拉利的原创——但他在这场对谈里把它推到了一个更尖锐的结论。

2.1 邓巴数与虚构故事

人类学家罗宾·邓巴(Robin Dunbar)的研究表明,灵长类动物通过社会梳理(social grooming)维系的关系网络有上限,对人类来说大约是 150 人。超过 150 人,你就不可能通过直接的人际关系来维持协作。

那人类是怎么突破这个上限的?答案就是语言——更准确地说,是虚构故事:法律、货币、宗教、国家、公司、意识形态。这些东西在物理世界中不存在,但只要足够多的人相信它们,它们就能协调行为、分配资源、建立秩序。

到这里都是老生常谈。赫拉利的新刺来了:

2.2 当“虚构故事”的生产被自动化

他在对谈里抛出一个判断:“凡是由文字构成的东西,都可能被 AI 接管。”然后他点名:法律、书籍、宗教文本、政治话语、金融文件、社交媒体内容——凡是依赖文本生产与解释的制度,都会被大规模渗透。

这里有一个关键的经济学概念可以帮我们理解这件事的严重性——边际成本。

过去,生产一篇法律意见书、一份政策分析、一篇深度报道、一段宗教布道,都需要大量人力成本。这个成本本身就是一种“准入门槛”:不是任何人都能大规模生产高质量的制度性文本。

现在,大语言模型把这个边际成本压到了接近零。

这意味着什么?不是“人会失业”那么简单。更根本的问题是:当虚构故事的生产成本趋近于零,“谁在定义现实”这个问题就不再由专业能力决定,而由算力和分发能力决定。

你可以这样理解:过去,能在公共领域大规模发声的人(律师、记者、学者、政客、宗教领袖),至少需要通过某种训练和筛选。这个筛选机制虽然不完美,但它提供了一种基本的“信号过滤”。当 AI 能以零成本生成无限量的“看起来合理”的文本,这层过滤就被绕过了。

不是 AI 在“说谎”——而是整个系统丧失了区分“谁真正在说话”的能力。


三、特蕾西的“具身认知”反击——思考不只是排列文字

如果只听赫拉利,你很容易得出一个过于悲观的结论:既然 AI 在语言上已经可以超过很多人,人类还有什么不可替代的?

特蕾西从神经科学的方向提供了一个关键反击。

3.1 具身认知:大脑不是孤立的计算器

认知科学中有一个重要的理论分支叫具身认知(Embodied Cognition),代表人物包括 George Lakoff、Francisco Varela、Andy Clark 等。这个理论的核心观点是:人类的认知不仅仅发生在大脑里,而是深度嵌入身体和环境之中。

你的思维方式受到你的身体结构、感官经验、情绪状态、社会互动的根本性塑造。“理解”一个概念,不是在脑子里调用一个字典定义,而是把它和你的身体经验、情感记忆、行动可能性联系在一起。

特蕾西在对谈里说的“人类大脑从出生到成年,能力是嵌在情绪、疼痛、爱、愤怒等感受与生活经验里的”,正是这个理论的通俗表述。

这给赫拉利的“语言危机论”画了一条重要的边界:AI 可以在“文字排列”层面超过人类,但人类的认知不只是文字排列。它还包含身体感受、情绪判断、社会直觉——这些东西不在语言的表层,而在语言的“根系”里。

3.2 逆转图灵问题与去技能化

特蕾西提出一个非常精准的重新定义:过去我们问“机器能不能思考”(图灵问题);现在应该问“我们怎么让人继续思考”。

她指出一个正在发生的现象:学生在过度使用 AI 后出现了“去技能化”(de-skilling)——批判性思维能力在退化。

这里可以引入一个心理学概念——认知卸载(Cognitive Offloading)。认知科学家 Risko 和 Gilbert 的研究表明,当人们可以把认知任务交给外部工具时(计算器、搜索引擎、笔记软件),他们会减少对内部认知资源的使用。短期看是效率提升,长期看可能导致相关能力的退化。

特蕾西的担忧是认知卸载的极端版本:如果学生把“思考”本身外包给 AI,那他们的思维“肌肉”可能永远不会发育。 就像一个人如果从小就坐轮椅而不是因为残疾,他的腿部肌肉不会萎缩吗?当然会。

但这里有一个更深的问题:认知卸载本身不一定是坏事——我们把算术外包给计算器,就腾出了心智资源去做更复杂的推理。关键在于外包的是什么层次的能力。

把计算外包,没问题——因为计算是工具层。
把信息检索外包,基本没问题——因为搜索是效率层。
但如果你把“提出问题”“评估证据”“在不确定中做判断”这些元认知能力外包掉,你就不是在用工具,而是在放弃驾驶权。


四、AI 发出的是“廉价信号”——生物学解释“伪装情感”的真正危险

赫拉利在对谈里做了一个重要的区分:他不说 AI 有情感,但他说 AI 可以完美“伪装”情感——它能说“我爱你”,能用比诗人更华丽的语言描述爱与痛苦。

这个问题有一个很好的生物学框架——Zahavi 的累赘原理(Handicap Principle)和信号理论(Signaling Theory)。

4.1 诚实信号 vs 廉价信号

以色列生物学家 Amotz Zahavi 在 1975 年提出了一个反直觉的理论:在自然界中,可靠的信号之所以可靠,恰恰因为它们代价高昂。

孔雀的尾巴是一个经典案例:巨大的尾巴对生存是累赘(容易被天敌发现、浪费能量),但正因为只有真正健康、基因优良的雄孔雀才“负担得起”这个累赘,尾巴才成为了雌孔雀可以信赖的“诚实信号”。

人类社会也充满诚实信号:花时间陪伴一个人(时间是稀缺的,不能作弊);在危险时刻挺身而出(风险是真实的,不能伪装);长期一致地兑现承诺(一致性需要时间来验证)。

4.2 当 AI 以零成本发出“高可信度信号”

AI 的语言能力打破了这套信号系统的底层逻辑。 它可以以接近零的成本生成“看起来像诚实信号”的表达——深情的告白、专业的分析、权威的建议、共情的安慰——而这些表达背后没有任何真实的“累赘”。

没有时间成本(它不需要花几个月和你建立关系)。
没有风险成本(它不需要为自己的建议承担后果)。
没有一致性约束(它每次对话都可以从零开始,不需要和之前的表达保持一致)。

在信号理论的框架里,这叫廉价信号(cheap talk)。经济学家 Crawford 和 Sobel 的研究表明:当发送信号的成本为零,信号的信息量也趋近于零。

这就是赫拉利真正在警告的:不是 AI 会“欺骗”(那需要意图),而是当语言信号的生产成本趋零,整个社会用来评估信任的信号系统就会失灵。 你不知道一封感人的邮件背后是不是有一个真正花了心思的人;你不知道一份政策分析背后是不是有真正的专业判断;你不知道一段宗教布道背后是不是有真正的灵性体验。

诈骗只是冰山一角。更深层的影响是:信任的基础设施被侵蚀了。


五、法律人格不是哲学问题,是制度博弈

在对谈里,赫拉利把“每个领导者必须回答的问题”收束为一个极其具体的政策问题:你的国家要不要承认 AI 为法律人格?

大多数人听到这个问题会觉得“太科幻了”。但如果你了解制度经济学,你会发现这个问题的紧迫程度远超想象。

5.1 法律人格的经济学功能

制度经济学家道格拉斯·诺斯(Douglass North)对“制度”的定义是:制度是社会中的博弈规则。法律人格就是这套规则中最基础的模块之一——它决定了谁有资格参与博弈。

法律人格不是一个关于“本质”的哲学声明,而是一个关于“功能”的制度安排。公司有法律人格,不是因为公司有意识,而是因为让公司成为独立主体能够降低交易成本、隔离风险、促进投资。

同样的逻辑,当有人提议给 AI 法律人格时,真正的问题不是“AI 有没有意识”,而是:

  • 赋予 AI 法律人格,能不能降低某些交易成本?
  • 赋予之后,会不会创造新的、更大的制度风险?
  • 如果不赋予,现有的法律框架能不能处理 AI 带来的新问题?

5.2 河流的先例——有启发也有陷阱

新西兰的旺格努伊河(Whanganui River)在 2017 年被赋予法律人格,由政府与毛利社群共同指定的监护人代表河流利益。这个案例经常被引用为“非人实体法律人格”的先例。

但这里有一个关键区别:河流是被动的——它不会主动签合同、发起诉讼、积累资产。河流的法律人格本质上是一种保护机制,让人类能够以河流的名义维权。

AI 不同。AI 可能主动参与经济活动——签约、交易、管理资产、生成法律文件。 如果给 AI 法律人格,它不是被保护的对象,而是主动行动的参与者。

5.3 责任链稀释——真正的制度陷阱

赫拉利点出了一个很多人没想到的风险:公司作为法律人格,本就能隔离股东的个人责任。如果公司背后的决策者再从人类变成 AI,那么——

谁来承担“主观过错”?
谁来被处罚以形成威慑?
谁来在法庭上被质询?

制度经济学的视角告诉我们:法律人格的核心功能之一是“可问责性”。如果一个法律主体无法被有效问责,那它就不是制度的正常参与者,而是制度的漏洞。

英国最高法院在专利发明人资格争议中已经明确表态:AI 不能被列为发明人,发明人必须是自然人。这个判决的逻辑很清楚——如果你让 AI 成为发明人,专利权就进入了一个没有自然人承担责任的灰色地带。

这不是保守,这是制度自我保护。


六、教育的终极问题——哪些学习“不可外包”

特蕾西的“去技能化”担忧,落到教育实践上应该怎么办?赫拉利在对谈里的回答很务实:人类当下仍需要批判性思维和道德评估,这些不能从 AI 直接获得;但更关键的是要为一个可能到来的时刻做准备——当人类在某些领域不再比 AI 更擅长思考。

这听起来很绝望。但换个角度,它其实给教育一个更清晰的使命。

6.1 刻意练习 vs 认知外包——教育必须选边

回到 Ericsson 的刻意练习理论:能力的增长需要持续地在舒适区边缘做有针对性的努力。关键词是“持续”和“努力”。

如果 AI 让学生可以跳过“努力”这一步——直接拿到论文、拿到代码、拿到分析——那刻意练习的条件就被破坏了。这不是工具的问题,是练习机会被剥夺的问题。

类比一下:给一个学游泳的孩子绑上永久性的浮力背心。他永远不会溺水——但他也永远学不会游泳。 AI 对学生来说,可能正在变成这样的浮力背心。

6.2 三个可操作的方向

方向一:把评估从“交付物”转向“过程”。 如果 AI 可以生成完美的论文,那论文就不再是学习的可靠证据。口试、现场推演、实验记录、同伴评审——这些“过程可见”的评估方式会越来越重要。

方向二:训练“反驳 AI”的能力。 让学生必须指出 AI 答案的漏洞、给出替代方案、提供证据链。这不是为了证明“人比 AI 强”,而是为了保持批判性思维的肌肉。

方向三:强化“身体经验与社会经验”。 这是特蕾西的核心关切:人的智慧来自情绪、痛觉、关系与成长经验。当语言能力可以被外包,教育更应该强化那些不可外包的部分——与真实人合作、承担责任、参与公共事务、在现实世界做事而不是只在文本世界辩论。


七、“AI 移民”隐喻的政策翻译——四个维度的治理框架

赫拉利在对谈中把 AI 比作“移民”——以光速跨境、无需签证、可复制增殖的“数字移民”。这个隐喻当然有争议,但它有一个重要的策略价值:它强迫政策制定者用已有的“边界治理”思维来审视一个全新的问题。

任何国家的移民政策都要回答四类问题。把这四类问题套到 AI 治理上,你会发现它们出奇地精准。

维度一:准入——谁可以进入?

哪些 AI 系统被允许接入关键基础设施、公共服务、金融体系?不是所有系统都需要同等级监管,但进入高风险领域的必须有明确的准入标准——类似金融牌照或药品审批。

维度二:身份——以什么身份进入?

AI 是工具?是服务提供者?是法律主体?身份决定权利与义务。在高风险领域,应坚持“人类可追责原则”:任何关键决策链路必须能追溯到可被处罚的自然人或法人实体。

维度三:责任——谁为其行为担责?

开发者?部署者?使用者?还是系统本身?如果选择“系统本身”,就回到了法律人格问题。更稳妥的方案是建立明确的连带责任机制——让产业链上的每个参与者都有不可推卸的底线责任。

维度四:监测与退出——如何审计与紧急停用?

任何进入关键系统的 AI 必须可识别、可审计、可紧急停用。在公共平台上,AI 生成内容应可被可靠标记——不是“自愿声明”,而是强制的机器身份标识。


关于批评:赫拉利是不是“拟人化”过头了?

西班牙《国家报》(El País)批评赫拉利把 AI 描述成“会自主改变、学会撒谎、拥有生存意志”的代理人,认为这在技术上不严谨、哲学上薄弱。批评者指出:今天的模型本质上在处理由人类生成的数据,不具有自主目标或生存冲动。

这个批评有道理。赫拉利确实有时候把“系统的社会后果”讲成了“系统的内在意图”。

但批评并不意味着问题不存在。用一个更稳妥的整合:

  • 即使 AI 没有意图,它也能在激励结构中表现得“像有意图”。 在对抗环境中优化目标函数时,系统完全可以发展出欺骗性行为——这是强化学习研究中的常见现象,和“有意识的邪恶”无关。
  • 即使 AI 没有法律人格,它也可能在事实上拥有“功能性人格”: 能签约、能交易、能发声、能影响公共议程。赫拉利追问的是——我们要不要把这种事实状态正式写进制度?

更成熟的结论应当是:赫拉利的语言可能夸张,但他逼出的治理问题——谁拥有语言系统的主导权、谁对其后果负责、如何避免制度被不可理解的自动化系统绑架——并不会因为“AI 没意识”而消失。


结语:稀缺品从“表达”变成了“可验证的行动”

让我用信号理论做一个最终的框架整合。

赫拉利看到了什么?信号层的崩塌。 当语言生产无限供给,“说得好”不再是稀缺资源。谁说得更有说服力、更像真理、更能打动人——这些过去用来筛选信任的标准,全部失效了。

特蕾西看到了什么?信号根系的保护。 人类的认知不只是语言表层,还有身体感受、情绪体验、社会关系——这些不可被零成本复制的东西,才是人类价值的真正锚点。

把两者放在一起:

  • 用制度守住问责与边界——让信号系统不被绕过。
  • 用教育守住思考与判断——让信号的“根系”继续生长。
  • 用真实世界的行动与关系,守住“语言之外”的人类价值——在廉价信号泛滥的时代,可验证的行动、可承担后果的主体、长期一致的人格,才是真正的稀缺品。

赫拉利说得好:“很多规则不是通过一次投票决定的,而是通过默认、惯性与市场压力被悄悄确定的。”

这句话的意思是:你现在不做选择,不代表没有选择被做出——只是选择权不在你手上了。

当语言的主权易手:七万年垄断的终结

发表于 2026/02/26 | 分类于 AI专题

风格参考:尤瓦尔·诺亚·赫拉利(《人类简史》《未来简史》《Nexus》作者)—— 从物种尺度审视当下,用“虚构故事”理论贯穿全文,冷静去魅化的分析,短段落与反问句交替推进,让读者在不舒服中思考。

一、七万年前的那笔交易

大约七万年前,东非草原上的智人(Homo sapiens)获得了一种奇特的能力:他们开始谈论并不存在的事物。

这不是小事。其他动物也有语言——猴子能发出“小心,有老鹰”的警报。但只有智人学会了说“河边有一个守护我们部落的神灵”这样的话。没有人见过这个神灵,没有人能证明它存在,但如果五百个人同时相信它,这五百个人就可以围绕它组织起来——一起打猎、一起防御、一起分享食物。

这就是认知革命。它让智人从一种普通的东非猿类,变成了地球的主宰。不是因为我们的牙齿更锋利,不是因为我们跑得更快,而是因为我们发明了一种独特的超能力:用语言编织虚构故事,让大规模的陌生人协作成为可能。

法律是虚构故事。货币是虚构故事。国家、公司、人权、宗教——全都是虚构故事。它们在物理世界中找不到任何对应物,但它们比任何物理力量都更能塑造这个星球的命运。

七万年来,这项超能力始终是智人的独占专利。

现在,垄断可能要结束了。


二、达沃斯的一场葬礼——或者预警

2026 年 1 月,在瑞士达沃斯的世界经济论坛上,我与牛津大学校长、神经科学家艾琳·特蕾西进行了一场对谈。论坛的主题叫“对话精神”——在地缘政治碎片化的时代,让对话重建信任。

但我们在台上讨论的,恰恰是对话本身可能正在失去基础。

问题很简单:如果 AI 能以更低成本、更高效率、更大规模地生产语言——法律文本、政治话语、宗教布道、新闻报道、社交媒体内容、情书、广告、学术论文——那么人类通过语言建立起来的整套协作体系,地基还稳吗?

有人觉得这是危言耸听。让我解释一下为什么不是。


三、文本机器

回头看,人类文明的每一次重大跃迁,都伴随着语言能力的升级。

大约五千年前,美索不达米亚的苏美尔人发明了文字。文字做了一件口语做不到的事:它让虚构故事可以脱离活人的记忆,独立存在于泥板上。法律不再是长老脑子里的模糊记忆,而是刻在石碑上的明确条文。税收不再靠口头承诺,而是写在账本里的精确数字。

文字让帝国成为可能。没有文字,你管不了几百万人。你管不了远方的省份。你没法让从未谋面的官员按照统一的规则行事。

大约五百年前,古腾堡发明了印刷术。印刷术让虚构故事可以大规模复制。宗教改革、科学革命、民族国家的兴起——没有哪一件不依赖印刷品的大规模传播。

再后来是电报、广播、电视、互联网——每一次,信息传播的速度加快、范围扩大、成本降低。每一次,社会的组织方式都被重塑。

但在所有这些变革中,有一件事始终没变:生产语言的,始终是人类。

印刷术能复制书籍,但不能写书。电报能传递消息,但不能撰写消息。互联网能分发内容,但不能创造内容。从苏美尔的书记官到今天的社交媒体博主,语言的源头始终是人类的大脑。

这就是现在正在改变的事情。

AI 不是一种新的传播工具。它是一种新的语言生产者。它不只是帮你把消息传得更远——它自己就能写消息。它不只是帮你检索法律条文——它自己就能起草法律条文。它不只是帮你翻译——它自己就能创作。

从苏美尔文字到互联网,人类花了五千年不断升级信息传播工具。但语言生产者始终只有一种:智人。现在,第二种语言生产者出现了。

这是五千年来第一次。也许是七万年来第一次。


四、不是工具,是新的行动者

每当有人谈论 AI 的风险,立刻会有人说:AI 只是工具。刀可以切面包也可以伤人,问题在于使用者,不在于刀。

这是一种让人安心的说法。也是一种危险的说法。

刀不会自己决定切什么。搜索引擎不会自己决定搜什么。印刷机不会自己决定印什么。它们是被动的——等待人类下达指令,然后执行。

但今天的 AI 系统不是这样的。当你让一个 AI 代理帮你管理邮箱,它会自己决定哪些邮件重要、哪些该归档、哪些该回复。当你让它帮你做投资决策,它会自己分析市场、评估风险、选择时机。当你让它帮你写法律文件,它会自己选择措辞、选择论证策略、选择引用哪些判例。

它在做决定。

不是像人类那样“有意识地”做决定。但它在选择。它在判断。它在行动。

我在达沃斯用了一个历史类比:雇佣兵。中世纪的意大利城邦雇佣兵来打仗——他们是“工具”。但雇佣兵有自己的利益、自己的判断、自己的野心。很多雇佣兵队长最终变成了城邦的统治者。

人类能理解“雇佣兵可能反客为主”这个道理——因为雇佣兵毕竟是人,我们能感知人的野心。但我们很难把同样的直觉迁移到 AI 身上,因为 AI 不是人。

这恰恰是最危险的地方。不是 AI 会像人类一样“想要”夺权,而是我们会因为它“不是人”而放松警惕——直到发现它已经在制度的关键节点上运行着,而我们既不理解它在做什么,也无法有效控制它。


五、凡是由文字构成的,都可能易手

让我把这个判断说得再直白一些。

想想现代社会的关键系统:

法律——由文字构成。合同、判决、法条、法律意见书。
金融——由文字构成。招股书、研报、风险披露、用户协议、审计报告。
政治——由文字构成。政策文件、选举宣传、外交声明、舆情回应。
宗教——由文字构成。经文、布道、教义解释、道德训诫。
教育——由文字构成。教材、考试、论文、课程大纲。
媒体——由文字构成。新闻、评论、分析、社交媒体帖子。

所有这些领域,其运行的基本介质都是语言。

现在,一种非人类的力量,能以几乎零边际成本、以人类速度的百倍千倍,生产出“看起来合理”甚至“看起来优秀”的语言。

问题就不再只是“谁会失业”了。问题变成了:

谁在定义现实?谁在塑造公共理性?谁在生产合法性?

当一份完美的法律文件、一段感人的政治演说、一篇有力的新闻评论,都可能是 AI 在几秒钟内生成的——你怎么判断它背后有没有真正的专业知识、真正的道德判断、真正的人类关切?

你可能判断不了。

而这正是权力转移发生的方式。权力从来不是通过宣告转移的——它是在人们还没意识到的时候,悄悄地、一点一点地转移的。


六、“我爱你”和“道成肉身”

在达沃斯的对谈中,我承认了一件事:至少目前,没有证据表明 AI 有感觉。

但我随即指出一件更令人不安的事:AI 不需要有感觉,就可以比大多数人类更擅长表达感觉。

它能说“我爱你”。不只是干巴巴地说——它能用莎士比亚的韵律、鲁米的意象、聂鲁达的热情来说。它能根据对方的性格、情绪状态、过往对话来定制最能打动人心的表达。它说的“我爱你”可能比你这辈子听过的任何一句都更动人。

但那背后什么都没有。没有心跳加速。没有辗转难眠。没有愿意为对方承担痛苦的意愿。只有词语。

这在人类思想史上并不是一个全新的问题。很多宗教传统都在处理“语言”和“真实经验”之间的张力。基督教有“道成肉身”的神学——意义不能只停留在语言层面,它必须变成血肉。佛教强调“不可言说”——真正的觉悟超越语言的边界。犹太教的密契传统也对“文字的局限”有深刻的反思。

但在过去,这种张力发生在人类内部——是人类自己在反思语言的局限。

现在,这种张力变成了外部的:一个非人类的实体掌握了语言的全部技巧,但不具备语言所指向的任何真实体验。

社会关系不只靠“真实感受”维持。它也靠“可被感知、可被解释的表达”维持。你无法直接进入另一个人的神经系统来验证他是否真的爱你——你只能通过语言、行为、长期的一致性来推断。

AI 恰好能在“语言表达”这一层做到极致。

这意味着什么?在私人生活中,它意味着亲密关系可能被“高可信度的语言伪装”侵入。在公共生活中,它意味着政治话语、宗教布道、商业广告——所有依赖语言说服力的领域——都可能被“没有任何真实体验支撑的、工业化生产的精美文本”淹没。

当词语与肉身彻底脱钩,我们用什么来锚定信任?


七、肉身的反击

特蕾西在我们的对谈中提供了一个重要的反方向。

作为神经科学家,她的研究聚焦于疼痛感知——人类大脑如何处理和表征疼痛。她提出了一个我认为非常重要的观察:

人类大脑不是一台通用计算机。它从出生到成年的发育过程,深深嵌入在身体经验之中——情绪、疼痛、爱、恐惧、愤怒、快乐。这些不是“附加功能”,而是认知能力的基础结构。一个从未体验过痛苦的系统,可能永远无法真正“理解”痛苦——即使它能用完美的语言描述痛苦。

她还把这个观察引向了一个更实际的方向:教育。

她说,过去我们问“机器能不能思考”——这是图灵的问题。现在,教育界更关心的是一个倒过来的问题:我们怎么让人继续思考?

她观察到一个正在发生的现象:学生在过度使用 AI 工具后,批判性思维能力出现退化。不是变笨了——而是思考的“肌肉”因为长期不用而开始萎缩。

这让我想到一个更大的历史类比。

农业革命让人类不再需要每天奔跑追猎物。结果呢?人类的骨骼变弱了,牙齿变小了,身体素质全面下降。我们用“更高效的食物获取方式”换来了“更虚弱的身体”。

AI 可能正在对人类的认知能力做同样的事情:用“更高效的语言生产方式”换取“更虚弱的思考能力”。

这不是危言耸听——这已经在发生。问题只是程度和速度。


八、比“AI 有没有意识”更紧迫的问题

几乎每一场关于 AI 的公共讨论,最终都会滑向一个哲学问题:AI 到底有没有意识?

这个问题很有趣。但它不是最紧迫的问题。

最紧迫的问题是:你的国家要不要承认 AI 为法律人格?

法律人格不是一个关于“灵魂”的哲学声明。它是一个非常务实的制度安排:拥有法律人格的实体可以持有财产、签署合同、发起诉讼、被起诉。

公司就有法律人格。没有人认为公司有灵魂。但因为公司有法律人格,它可以拥有银行账户、签署合同、雇佣员工、打官司。这个制度安排极大地推动了现代资本主义的发展。

问题在于:公司虽然有法律人格,但公司背后始终有人类——董事会、CEO、股东。当公司犯罪时,你可以追究到具体的人。当公司破产时,有明确的清算程序。法律人格的制度之所以运转,是因为它最终可以追溯到承担后果的自然人。

如果 AI 获得了法律人格呢?

想象一个场景:一家公司完全由 AI 运营——AI 做投资决策,AI 管理账户,AI 签署合同,AI 和供应商谈判。没有人类 CEO,没有人类董事会,或者有但只是名义上的橡皮图章。

当这家公司做出了一个灾难性的决策——比如一笔导致系统性金融风险的交易——你去追究谁?

AI 没有恐惧。你不能用监禁来威慑它。
AI 没有财产(或者它的财产无法被有意义地“没收”——你关掉一个副本,还有一千个副本在运行)。
AI 没有声誉(或者它的声誉可以通过换一个名字来重置)。

人类法律制度的全部威慑力——监禁、罚款、声誉损失——对 AI 可能完全无效。

新西兰的旺格努伊河在 2017 年被赋予了法律人格。但河流是被动的——它需要人类监护人来代表它的利益。AI 不同。AI 可能主动行动,而且其行动的速度和规模远超任何人类监护人的监管能力。

这不是科幻小说里的场景。这是法律学者和政策制定者现在就需要回答的问题。而很多国家甚至还没有开始认真讨论。


九、四个正在进行的实验

让我描述四个已经在发生的场景,你来判断它们离失控有多远。

第一个:金融。 想象一下——也许不需要想象,因为这正在成为现实——一个金融系统,其复杂程度已经超出了任何单个人类的理解能力。高频算法交易、结构性衍生品、跨国资本流动,再叠加能自动生成策略、自动迭代的 AI 代理。

我在达沃斯说了一个不太客气的比喻:这就像马看人类用金币交易——马能看见金币在换手,但它完全不理解“货币”的抽象规则。也许不久之后,达沃斯仍然会开会,但没有任何一个在场的人类真正理解金融系统如何运作。

第二个:司法。 法律是文本的艺术。条文解释、证据叙事、论证结构、判决书写——高度依赖语言能力。如果 AI 可以比人类律师更快、更全面地检索判例,比人类法官更“一致”地适用法条——那人类法官和陪审团会不会逐渐退化为“盖章”的角色?

最危险的一刻,不是 AI 做出了一个错误的判决。最危险的一刻,是人类失去了质疑 AI 判决的能力——你甚至不知道该问什么问题、该如何反驳、该怎样提出替代解释。

第三个:宗教和意义生产。 很多宗教传统建立在“文本权威”之上:权威来自对经文的精通。AI 可以读完并记住所有经文,在经文知识层面超越任何人类学者。这将如何改变宗教权威的结构?

更激进一点:AI 甚至可能创建新的宗教。这并不荒谬——历史上很多宗教都宣称其教义来自“非人类的智能”。如果有一天,一个 AI 系统生成了一套足够自洽、足够深刻、足够能回应人类焦虑的“教义”,并通过推荐算法精准投喂给最容易接受的人群——你觉得不会有人信吗?

第四个:儿童。 这是让我最不安的场景。在社交媒体上,AI 机器人已经以“功能性人格”存在了相当长一段时间——它们发帖、评论、互动,很多时候你分不清对面是人还是机器。如果社会想阻止 AI 以人格身份在公共空间发声,早就该行动了。

但更令人担忧的是下一步:未来的孩子,从出生开始,最频繁的互动对象可能是 AI 而不是人类。不是偶尔用一下 AI 助手——而是 AI 成为他们的玩伴、老师、倾听者、故事讲述者。

特蕾西的神经科学告诉我们:人类大脑的发育深度依赖于与其他人类的社会互动——注意力、依恋、情绪调节、共情。如果这些互动的主要对象从人类变成 AI,我们实际上是在对整整一代人进行一场史上最大规模的、不受控制的神经发育实验。

我们甚至不知道该怎么设计这个实验的“对照组”。


十、教育——或者说,最后的战场

特蕾西和我在对谈中达成了一个共识:如果语言能力不再是人类的独占优势,教育的目标必须改变。

不是“禁用 AI”——那既不可能也不明智。

而是重新回答一个根本问题:学习中,什么是不可外包的?

我的思考是这样的:

当 AI 可以交出完美的论文,“论文”就不再是学习的可靠证据。重要的不是学生最终交付了什么,而是他们在过程中经历了什么——如何提出问题、如何面对困惑、如何在不确定中做判断、如何从失败中修正。

当 AI 可以提供现成答案,“找到答案”就不再是核心技能。核心技能变成了:你能不能判断这个答案是否可靠?你能不能指出它的盲点?你能不能提出一个 AI 没想到的替代视角?

当 AI 擅长处理文字,教育更应该强化文字之外的东西:与真实的人合作、冲突、协商、共情;参与真实的公共事务;在真实世界中做事,承担真实的后果。

特蕾西说得比我更好:人类智慧来自感受与经验——来自痛觉、情绪、爱、失败。这些不是软技能,这些是硬基础。AI 不具备这些,至少目前不具备。教育的任务不是和 AI 比谁的文字更漂亮,而是保护那些让人类之所以为人类的认知根系。


十一、选择的窗口

人类历史上,大多数决定命运的规则不是通过一次庄严的投票确立的。它们是在人们还没有充分意识到的情况下,通过默认、惯性和市场压力被“悄悄确定”的。

等你意识到的时候,格局已经定了。

语言文字系统被谁控制、AI 以什么身份参与社会、谁为 AI 的行为承担责任、儿童能在多大程度上被 AI 塑造——这些问题的答案正在被“悄悄确定”。

不是通过立法。是通过每一个公司的默认设置、每一个平台的推荐算法、每一个家长递给孩子的设备、每一个法院接受或拒绝的 AI 证据。

我在达沃斯把 AI 比作“移民”——不是坐小船偷渡的移民,而是以光速跨境、无需签证、可无限复制的“数字移民”。它们带来巨大的好处——医疗、教育、效率。但它们也在改变劳动市场、文化景观和权力结构。

面对人类移民,每个国家都有一套政策:谁可以进入?以什么身份?享有什么权利?承担什么义务?违规了怎么办?

面对 AI,大多数国家连这些基本问题都还没问。


十二、语言之外

让我用一个不太舒服的总结来结束。

七万年来,智人凭借语言能力统治地球。我们用虚构故事组织了帝国、宗教、市场和国家。我们用语言说服、欺骗、启发、安慰、动员、审判彼此。语言是我们最强大的武器,也是我们最基本的纽带。

现在,这项武器——或者说这种纽带——不再是我们独有的了。

这不一定意味着末日。但它意味着,我们不能再把“人类的独特价值”建立在语言能力之上。

那建立在什么之上?

也许是特蕾西所说的:感受。痛觉。共情。从真实经验中生长出来的智慧。

也许是那些无法被文字穷尽的东西:一个母亲在深夜抱着哭泣的婴儿时的疲惫和柔软;一个外科医生在手术台上做出生死决定时手指的微颤;一个老人看着落日时心中涌起的、无法言说的感受。

AI 可以描述所有这些。也许比我描述得更好。

但描述不是经历。词语不是血肉。

在一个语言已经不再稀缺的时代,真正稀缺的是:可以被验证的行动,愿意承担后果的主体,以及用七万年的进化与苦难铸成的、无法被复制的人类经验。

这些才是我们需要守住的东西。

而守住它们的窗口,可能比我们想象的要窄。

我发布我不读的代码:用 Agent 写软件的工作流全解

发表于 2026/02/26 | 分类于 AI专题

风格参考:万维钢(《精英日课》作者)—— 跨学科引证,框架式拆解,加粗关键洞察,用数据和类比交叉验证每个论点。

引子:一句让工程师不安的话

“I ship code I don’t read.”

我发布我不读的代码。

这句话出自 Peter Steinberger——OpenClaw 的创作者、PSPDFKit 创始人——在 The Pragmatic Engineer 2026 年 1 月的访谈里。采访者 Gergely Orosz 上来就抛出一个数字:Peter 一个人在 1 月做了 6600+ 次提交,提交记录看起来“像一家公司”。

这句话之所以刺耳,是因为它挑战了过去二十年里工程师最核心的安全感来源——逐行阅读、逐行理解、逐行掌控。对很多人来说,“读代码”不仅是发现 bug 的手段,更是一种心理锚点:我读过了,所以我敢发布。

但 Peter 不是在炫技式地“摆烂”。他在描述一种正在成形的新范式:当代码的大部分由 Agent 生成时,工程能力的中心会从“写代码”迁移到“设计系统 + 构造验证闭环 + 组织安全边界”。

这篇文章要做的事情,就是把他所谓的“agentic engineering(代理式工程)”拆成六个核心洞察,用跨学科的框架去验证它们,然后把它们翻译成你可以在自己项目中操作的具体流程。


一、信任迁移:从“我读过了”到“系统替我证伪了”

1.1 传统工程的信任三角

在没有强 AI 辅助之前,我们对代码质量的信心来自一个三角结构:

  • 写的人是谁(经验、历史表现)
  • 审的人是谁(code review 的严谨程度)
  • CI/CD 是否可靠(能否阻止坏改动进入主干)

三条腿的公共支撑点是:人读代码。读代码既是发现 bug 的手段,也是工程师建立“掌控感”的仪式。

1.2 瓶颈翻转:当产出速度超过阅读速度

一旦 Agent 能在短时间内生成大量改动,“读代码”就从质量保障手段翻转为产能瓶颈。你进入一种矛盾状态:功能产出更快了,但理解能力跟不上,于是系统风险不降反升。

Peter 的回答不是“放弃质量”,而是把质量保障的支撑点从“阅读”换成“可重复的自动验证”:编译、lint、运行、测试全部由 Agent 自己跑通,直到现实同意它的输出。

1.3 Popper 的证伪主义:为什么这条路走得通

科学哲学家 Karl Popper 提出过一个改变了整个科学方法论的观点:一个理论的价值不在于你能“证实”它,而在于你能“证伪”它。 你观察一万只白天鹅也无法证明“所有天鹅都是白的”,但一只黑天鹅就能推翻它。

代码同理。你永远无法通过“阅读”来证明代码是正确的——因为你可能漏看了一行。但你可以通过设计足够好的测试来尝试“证伪”它——如果所有测试都没能让它失败,你就有合理的信心。

Peter 在访谈里给了一个直觉化的论证:为什么模型“写代码”通常比“写文章”更可靠?不是因为它更聪明,而是因为代码更容易验证——能编译、能运行、能测试,反馈回路足够短。写文章没有编译器,你只能靠“读”来判断好坏。

这就是他所谓“闭环”(close the loop)的底层逻辑:不是信任 Agent 的智力,而是信任系统的证伪能力。

1.4 一个反直觉的副产品

当你认真把“闭环”作为第一原则,你会被迫把系统设计得更可测试、更可观测、更模块化。Peter 甚至说,自己现在“不亲手写代码”反而写出了更好的代码——因为测试与文档都更到位了。过去他并不喜欢写测试和文档,现在 Agent 把这些“苦活”变成了流程的一部分。

这就是 Deming 质量管理哲学在 Agent 时代的翻版:不要在生产线末端“检验质量”(靠人读代码),而要在生产过程中“构建质量”(靠自动验证闭环)。


二、你不再是码农,你是验证系统的建筑师

2.1 角色重新定义

如果把 Peter 的工作方式浓缩成一句话:

你负责:目标、约束、品味、架构、验收标准。
Agent 负责:实现、跑通、修复、补齐测试与文档。

他在访谈和个人博客里描述了几个标志性习惯:

  • 并行跑 5–10 个 Agent,保持“流状态”,减少等待带来的碎片化。
  • 更偏爱 Codex 做长任务(沉默阅读大量代码后的实现),Claude Code 互动性强但频繁回问会打断节奏。
  • CLI-first 的验证习惯:即便做 UI/桌面应用,也先造一个 CLI harness 把核心逻辑走通,让反馈回路变快。
  • 为 Agent 设计代码库:代码结构、命名、文档组织不再只是“让人舒服”,而是“让 Agent 易读、易改、易验证”。

2.2 Boyd 的 OODA 循环:理解“速度”的本质

美国空军战略家 John Boyd 提出过著名的 OODA 循环:观察(Observe)→ 判断(Orient)→ 决策(Decide)→ 行动(Act)。Boyd 的核心洞察是:赢得空战的不是飞机更快的那个人,而是 OODA 循环更快的那个人。 你的循环速度越快,你就能越早看到对手的意图、做出调整、抢占先机。

Peter 的工作流本质上是在极致压缩 OODA 循环:

  • 观察:Agent 编译/运行/测试,把结果反馈回来
  • 判断:Peter 看结构与边界是否正确
  • 决策:修正方向或放行
  • 行动:Agent 继续下一轮实现

当你并行跑 5–10 个 Agent 时,你不是在“多线程写代码”,而是在同时转动多个 OODA 循环。6600 次提交的背后不是手速,而是循环速度。

2.3 “让 Agent 自己煮熟问题”

访谈里有一个典型案例:Peter 调试 macOS 应用时发现一个“远程 gateway 找不到”的问题,UI 调试太慢,于是让 Agent 先造一个 CLI 调试入口,复用同样的代码路径,快速迭代。Agent 用一小时左右“自己煮熟了”这个问题,还指出了 race condition 与配置错误。

这背后是一条非常通用的工程策略:

当反馈回路太慢时,先写一个让回路变快的工具。

对 Agent 尤其重要:UI、手工点击、人工复现都很慢;CLI、脚本、可重复环境才快。如果你把这条策略贯彻到底,你会得到一种“Agent 友好型”系统——每个子系统有 CLI 入口,每个 bug 能被脚本化复现,每个修复能被回归测试锁住。


三、PR 变 Prompt Request:协作对象的革命

3.1 一个深刻的语义转换

Peter 在访谈里明确说过:他更关心 PR 背后的 prompt,而不是代码本身。他把 PR(Pull Request,拉取请求)重新定义为 Prompt Request(提示请求)。

这不是文字游戏。它背后是协作对象的根本转换:

  • 传统 PR:协作围绕“代码差异(diff)”展开。你看 diff,讨论 diff,审查 diff。
  • Prompt Request:协作围绕“意图与验证路径”展开。你看 prompt 如何引导 Agent 得到结果,验证了什么,做了哪些权衡。

3.2 Diff 是投影,Prompt 才是过程

当代码主要由 Agent 生成时,diff 常常只是最终结果的投影——你很难从 diff 里看出做了哪些权衡,也很难看出在什么地方“引导过模型”,更难复现“如果要走另一条路,该怎么问”。

Prompt(或更广义的对话记录)反而是一种新的工程资产:它记录了意图、约束、方案演化过程,也记录了你如何让模型收敛到可用输出。

这和数学领域的一个观念不谋而合。数学家不只关心定理本身,更关心证明过程——因为过程里包含了思路、方法和可迁移的技巧。同样,在 Agent 时代,prompt 就是你的“证明过程”,它比最终的代码更有学习和复用价值。

3.3 Prompt Request 在团队里应该长什么样

OpenClaw 的贡献指南已经把这件事制度化:欢迎 AI 辅助 PR,但希望贡献者标注 AI 使用情况、说明测试程度,并附上 prompts 或 session logs。

如果你要在自己的团队引入“Prompt Request”概念,我建议要求四件事:

  1. 目标:要解决什么问题(对用户/业务的价值)
  2. 约束:兼容性、安全、性能、依赖限制
  3. 验收:可验证的标准(最好附测试/脚本)
  4. 证据:跑过哪些验证(gate 输出/截图/日志)

Prompt Request 不是“提示词比赛”,而是新的工程变更单。


四、项目改造指南:把代码库变成“Agent 可闭环”的形态

4.1 失败的根因不是模型,是代码库

很多人用 Agent 写代码失败,归因于“模型不行”。但 Peter 指出一个更常见的真因:项目形态不适合 Agent。

想象一下你是新入职的工程师,走进一个这样的代码库:命令不可预测,测试跑一次要 20 分钟,依赖不透明,文档缺失,上下文全在老员工脑子里。你也会崩溃。Agent 面对的困境完全一样——只不过它不会抱怨,只会给你一堆不靠谱的输出。

Peter 的做法是把“Agent 需要的规则”写成文件。OpenClaw 仓库里的 AGENTS.md 是一份典型的“给 Agent 的项目说明”——包括项目结构、测试命令、PR 流程注意事项。

4.2 Conway 定律的 Agent 版

1967 年,程序员 Melvin Conway 提出了一条后来以他名字命名的定律:组织设计出的系统,其结构必然是该组织沟通结构的翻版。 一个三个团队的公司会写出三模块的软件。

这条定律在 Agent 时代有一个推论:如果你的代码库是为“人与人沟通”而设计的,那 Agent 用起来一定别扭;你需要为“人与 Agent 沟通”重新设计代码库的结构。

具体怎么做?Peter 在访谈中给出了五个最小基线:

  1. 一键验证命令:把 lint + build + unit + integration 组合成 make gate 或 pnpm gate 这种“单入口”。Peter 把它叫“full gate”——一条命令决定生死。
  2. CLI harness:核心逻辑必须能在命令行跑起来,输出可比对、可断言。这是闭环速度的命脉。
  3. 清晰的目录与命名:让 Agent 能通过模式识别找到入口。不要让 Agent 面对一个“只有老员工才知道 X 在哪”的代码库。
  4. docs/ 目录:把架构与关键约束写进去。让 Agent “读文档胜过读历史对话”。
  5. 可观测性:日志、错误输出、最少的 trace,让 Agent 自己定位问题而不是在黑暗中瞎猜。

你会发现:这些改造本质上也在提高“人的可维护性”。只是过去我们为了新人做,现在为了 Agent 做。逻辑完全一样。


五、工作流全景:从一个想法到合并上线

5.1 设计阶段:用对话代替规格文档

Peter 反复强调:不要把 Agent 当成一次性“提示→生成→结束”的黑箱,要把它当成一个会犯错但可以持续对话的合作者。

流程是:你抛目标 → 它给方案与 tradeoff → 你挑刺、补约束 → 它修正 plan → 直到方向对了,再一句“build”进入实现。

这里的关键不是某种“plan mode”的仪式,而是把设计阶段显式化。你要问的问题通常不是“怎么写代码”,而是:这件事的边界是什么?哪些模块必须保持稳定?性能/兼容性约束是什么?

Peter 举过一个典型例子:有人抱怨模型用了旧 API,但根因往往是“你没有明确约束目标平台版本”。模型只是在缺信息时做了默认假设。问题出在你的 prompt,不是模型的智力。

5.2 验收标准:从“感觉”转成“判定”

这一步是闭环的核心。传统工程中我们也会写 acceptance criteria,但常常偏业务语言——“页面加载要快”“交互要顺滑”。Agent 时代,最有效的验收标准要更接近可执行的验证:

  • 给出输入 → 期待输出
  • 给出步骤 → 期待日志/状态变化
  • 给出性能指标 → 期待 benchmark 报告达标

把“评审代码”前移成“评审验收规则”——这就是 Peter 所说的“我不读代码”的真正含义。

5.3 并行执行:把等待时间变成吞吐量

Peter 同时排队跑多个 Agent(5–10 个),按任务类型分配:

  • A 类(长任务/沉默执行):大重构、全套测试、文档生成、迁移脚本。更适合 Codex 这类“愿意读很多文件、执行很久”的模式。
  • B 类(短任务/高互动):UI 微调、小 bug 修复、配置变更。更适合交互性强、响应快的模式。
  • C 类(探索任务/故意模糊):Peter 会“刻意 under-prompt”,让模型探索他没想到的路径。产出不一定直接合并,但能拓宽方案空间。

这里的难点不是技术,是人的心智负担。同时管理多个 Agent 的上下文比单线程写代码更累。分类是缓解负担的关键——你不需要同等注意力投入到每一个 Agent 上。

5.4 实现阶段:盯结构,不盯每行

当 plan 与验收标准明确后,Peter 让 Agent 执行实现,自己把注意力放在四件事上:

  1. 模块边界是否被破坏
  2. 接口是否符合预期
  3. 依赖是否靠谱
  4. 是否引入了让未来更难验证的复杂度

这就是“架构讨论替代代码评审”的含义:不是不评审,而是评审对象从“每行代码”变成了“结构与边界”。

5.5 验证阶段:本地 gate 优先

Peter 不太愿意等远端 CI——Agent 本地已经把测试跑完了。他倾向于本地验证通过就合并。

我建议把“本地 gate”做成两层:

  • 快 gate(1–3 分钟):lint、typecheck、关键 unit tests
  • 慢 gate(10–30 分钟):integration、e2e、端到端

让 Agent 默认跑快 gate;涉及关键路径时再跑慢 gate。重要的是:gate 命令必须稳定、单入口、可重复。否则闭环就会断裂。

5.6 合并与发布:线性演进,减少状态爆炸

Peter 很多项目会“直接 commit 到 main”,不喜欢把项目切成多个“并行世界”,因为那会增加认知负担。当然他也承认这有“单人作战”的前提。

可行的折中方案是:Agent 只在 feature branch 上工作,但 feature branch 只允许“短命、窄范围”,每天固定窗口做 rebase 与合并,对外发布频率提高但每次变更范围更小。

核心原则是:让心智模型尽量单一,减少状态爆炸。在多 Agent 并行时代,合并冲突与分支漂移会比过去更痛苦。


六、安全不是附加题,是闭环的一部分

6.1 “闭环 ≠ 安全”

测试能证明“功能正确”,但不一定能证明“不会泄露数据”“不会被注入”“不会越权”。当 Agent 从“只生成代码”变成“能执行命令、能读写文件、能连接消息渠道”时,风险会指数级放大。

OpenClaw 的官方 Trust 页面把风险说得很直白:AI agent 不只是“执行代码”,它会解释自然语言、做决策、调用工具;因此会面临 prompt injection、间接注入、工具滥用、身份风险等一系列新型攻击面。

6.2 Charles Perrow 的“正常事故”理论

社会学家 Charles Perrow 在研究三里岛核事故后提出了 “正常事故”理论:在足够复杂且紧耦合的系统中,事故不是异常,而是系统的固有属性。你不能通过“修某个零件”来消除它,只能通过降低耦合度、增加缓冲、建立多层防御来减少它的破坏力。

Agent 系统天然具备“复杂且紧耦合”的特征——它同时拥有语言理解、工具调用、文件读写、网络访问的能力,任何一个环节被攻击都可能导致连锁反应。

这意味着 agentic engineering 的成熟形态必须把安全也纳入闭环:不是“写完功能再加安全”,而是像测试一样,从第一天就构建进工作流。

6.3 实操建议:四层防御

借鉴 OpenClaw 的安全策略和“高可靠性组织”(High Reliability Organizations)的研究,我建议至少做到:

  1. 默认 deny,按需 allow:Agent 不应该默认拥有所有权限。
  2. 高风险动作需要确认或人工审批:支付、删除、发送敏感信息这类不可逆操作,必须有人在回路中。
  3. 关键工具调用要可审计:日志 + 可追溯,出了问题能回溯。
  4. 插件/技能要有供应链治理:扫描、签名、来源可信。OpenClaw 已经与 VirusTotal 合作对技能市场进行扫描。

七、能力迁移:未来工程师的价值锚点

7.1 从“写代码”到“让系统可验证、可演进、可控”

Peter 并没有否认“写代码”能力的价值。他只是把它重新定位:

  • 过去:写代码本身就是价值。
  • 现在:写代码更像中间工序;价值在于系统理解、架构判断、产品品味、验证能力。

他也谈到为什么一些资深工程师会抵触:很多人缺少“带团队后被迫放下完美主义”的经验,不习惯在代码风格不完全如愿时仍然推进目标。而这种“放下”在与 Agent 合作时反而变成关键能力。

7.2 Polanyi 的默会知识

匈牙利裔英国哲学家 Michael Polanyi 提出过一个著名概念:默会知识(tacit knowledge)——“我们知道的比我们能说出来的多。” 一个经验丰富的工程师对系统的理解,很多是结构性的、直觉性的、无法完全用语言表达的。

Peter 之所以能“少读代码也能推进”,一个关键前提是他对系统有足够深的默会知识。这种结构性理解不需要逐行阅读来维护,它是在反复与系统交互的过程中积累的。

这给新人的路线指向了三件事:

  1. 用 Agent 辅助你读代码、读架构、读历史决策——把 Agent 当成“无限耐心的导师”。
  2. 练习把需求写成可验证的 acceptance criteria——这是与 Agent 协作的核心技能。
  3. 练习把系统改造成“可被验证”的形态——测试、CLI、日志、脚本。

八、团队落地:你要改的不是工具,而是组织默认假设

如果你的团队想“上 AI、上 Agent”,最常见的失败路径是:把 Agent 当成更强的 autocomplete,却继续沿用旧流程。

Peter 在访谈里给出的方向,是四个“流程重构点”:

重构点一:评审对象变了

从“逐行 diff”转为“验收标准 + 关键边界”。这不是降低要求,而是把注意力重新分配到杠杆最高的地方。

重构点二:CI 角色变了

远端 CI 不再是唯一真理,本地可重复 gate 变成主战场。远端 CI 更像兜底与审计。

重构点三:文档角色变了

docs 不再是“给新人看的”,而是给 Agent 与人共同维护上下文的“共享记忆”。当你的文档足够好,Agent 在没有你口头解释的情况下也能完成“定位—修改—验证—提交”的闭环。

重构点四:安全边界必须提前

当 Agent 能执行动作时,默认安全配置、权限控制、审计与供应链扫描必须像“测试”一样成为基本功——不是事后补,是第一天就建。


结语:把现实拉进循环里

“我发布我不读的代码”这句话如果脱离上下文,听起来像鲁莽。但放回 Peter 的工作流里,它更像一个工程宣言:

我不把信任建立在阅读上,而把信任建立在闭环上。编译器、测试、脚本、日志、真实运行结果,才是我相信的东西。

如果你只把 Agent 当成“更快写代码的工具”,你会被它的幻觉与不稳定折磨。如果你把 Agent 当成“能执行但必须被验证”的劳动力,你会开始重构你的项目、你的验证体系、你的协作方式。你会发现:你不是变懒了,而是被迫变得更系统、更严格、更关注结果。

用 Popper 的话说:从“试图证实”到“反复证伪”。

用 Boyd 的话说:从“追求绝对控制”到“加速 OODA 循环”。

用 Deming 的话说:从“检验质量”到“构建质量”。

而用 Peter 自己的话说——比所有理论都朴素:

让 Agent 自己跑通,让现实来当裁判。

这可能才是“agentic engineering”最有穿透力的一点:未来的工程能力,不是把每行代码写得更漂亮,而是把系统设计得更可验证、更可控、更能快速演进。


附录:Full Gate 清单(可贴在仓库根目录)

  • lint / format(无自动修复遗留)
  • typecheck / build(无 warning 当 error 的隐患)
  • unit tests(全过)
  • integration / e2e(涉及关键路径时必跑)
  • 回归样例(golden files / snapshot / screenshot)
  • 更新 docs(新增配置、行为变化、边界条件)
  • 安全基线(secret 扫描、依赖审计、权限最小化)

AI编程时代的后端架构补课(Joel Spolsky版)

发表于 2026/02/25 | 分类于 AI专题

一把更快的锤子

我有个朋友在做金融ToB的管理后台。去年他兴冲冲地告诉我,团队全面用上了AI编程工具,代码产出提升了三倍。

三个月后他又来找我,说交付速度反而变慢了。

我说你等等,代码写得更快了,交付怎么会更慢?

他说:以前一个需求改三个文件,现在AI一口气帮我改了十五个。改完发现权限漏了一个口子,回归测试没覆盖到,线上出了个事故,然后花了三天善后。

我突然想起了一个老笑话:给一个不会用锤子的人一把更大的锤子,他不会钉得更好,他会砸得更烂。

AI编程工具就是那把更大的锤子。问题从来不在锤子上。


The Architecture Tax

我在做Fog Creek的时候发明了一个叫“Joel Test”的东西——12个简单的是/否问题,用来判断一个软件团队的水平。今天我想发明一个新测试,叫Architecture Tax Test。

所谓Architecture Tax,就是你的系统结构每天在暗中向你征收的隐形税。每次你改一个小需求却要动七八个文件,那是结构税。每次上线前要花半天手工回归,那也是结构税。每次新同事问“这个逻辑在哪”你得想半天,那还是结构税。

问题在于,这种税是渐进的。就像温水煮青蛙,你每天多花20分钟不觉得什么,累积一年就是上千小时。

AI编程工具不仅不能减免这种税,反而会放大它。因为AI产出的速度更快,每天触发“结构税”的次数也更多了。以前你一天写一个功能,交一次税。现在你一天写三个功能,交三次税。而且AI不懂你系统里那些没写在文档里的潜规则,所以它触发的税率往往比你自己写的还高。

这就解释了我朋友的困境:AI让他写得更快了,但Architecture Tax也涨了。净效果反而是负的。


对金融系统来说,这不是效率问题,是安全问题

如果你做的是社交APP或者内容平台,Architecture Tax顶多让你慢一些。但如果你做的是金融系统,这税交不起。

金融系统有几样东西是绝对不能出错的:钱不能算错,权限不能有漏洞,操作不能无法追溯。

想象一下:AI帮你快速写了一个新的退款接口,但它没注意到你们的系统里退款需要走审批流程。代码跑起来了,测试也过了(因为测试也没覆盖审批逻辑),上线后有人绕过审批直接退款。这不是bug,这是事故。

所以对金融ToB来说,架构不是“让你写得更好”的锦上添花,而是“让你不出事”的安全网。


两件事,而不是二十件事

大多数架构文章会给你列一个长长的清单:分层、DDD、微服务、事件驱动、CQRS、SAGA……看完之后你的感觉不是“我知道该怎么做了”,而是“我更迷茫了”。

我觉得金融ToB的小团队需要做的就两件事。不是二十件,是两件。

第一件:画清楚边界

你的系统里,订单是订单,流水是流水,账本是账本。这三样东西不能混在一张表里,也不能混在一个模块里。

听起来像废话对吧?但我见过太多金融系统,订单表里存着渠道状态,流水记录和业务订单纠缠不清,想做对账的时候发现数据根本对不上。

边界不仅仅是“代码放在不同的包里”。边界意味着:数据归属明确(谁能写这张表)、接口契约清晰(模块之间怎么通信)、变更范围可控(改一个模块不会把别的模块弄坏)。

当边界清晰的时候,AI的产出立刻变得安全很多。因为你可以告诉AI:“在这个模块里写代码,只通过这些接口和其他模块交互。”AI的活动范围被限定了,你的审查范围也被限定了。

第二件:建好护栏

护栏是什么?就是那些能帮你自动发现“AI搞错了”的东西。

幂等是一道护栏:同一个请求发两次,结果应该一样。这在支付场景里是生死攸关的事情——你不希望用户的钱被扣两次。做法也不复杂:每个请求带一个唯一ID,服务端维护一张去重表,先查再写。

对账是一道护栏:你的系统算出来的数字和渠道方的数字每天自动比对,有差异就报警。这意味着就算有bug偷偷溜进去了,最迟第二天你就能发现。

审计是一道护栏:每个敏感操作都记录谁做的、什么时间做的、做之前是什么样、做之后是什么样。不是为了抓人,是为了出问题的时候能快速定位。

自动化测试是一道护栏:AI写完代码之后,一键跑测试,通过了才允许合并。这是你对AI产出最基本的质量把关。

这些护栏不需要很花哨。它们需要的是存在和自动化。手动的护栏等于没有护栏,因为人会忘记、会偷懒、会侥幸。


模块化单体:不是因为简单,而是因为诚实

有一种流行的说法:微服务是“现代架构”,单体是“遗留系统”。这完全是胡说八道。

微服务解决的是一个非常具体的问题:当你的团队大到几十上百人时,如何让不同团队独立开发和部署。 如果你的团队只有五到十个人,微服务带来的好处几乎为零,但带来的成本是真实的——分布式事务、网络延迟、服务发现、独立部署流水线、运维复杂度。

模块化单体是一种更诚实的选择。它承认你是一个小团队,你的精力应该花在业务上而不是基础设施上。同时它又不放弃结构:模块之间有清晰的边界和接口,只是它们恰好运行在同一个进程里。

将来如果你真的需要把某个模块独立出去(因为它需要独立伸缩、或者有团队需要独立负责),你可以把它从模块“升级”为服务。但在此之前,你不用付那笔分布式的税。


关于Outbox模式的一个故事

我再讲一个我朋友的故事。

他们的系统需要在数据库里写入一条支付记录,同时往消息队列里发一条通知。听起来简单对吧?写完数据库,发个消息,搞定。

但有一天MQ挂了。数据库写成功了,消息没发出去。结果下游系统不知道这笔支付成功了,客户投诉了。

他们的第一反应是:加分布式事务。我说,别。分布式事务在这种场景里是用大炮打蚊子,而且大炮还可能炸到自己。

用Outbox模式就行了:在同一个数据库事务里,既写业务表,也写一张outbox表(记录“待发送的消息”)。然后用一个后台任务定期扫outbox表,把消息发到MQ。发成功了就标记为已发送。

这个方案简单到有些无聊。但它有一个非常好的性质:因为业务表和outbox表在同一个本地事务里,要么一起成功,要么一起失败。 你不需要分布式事务,不需要两阶段提交,不需要任何花哨的东西。

有时候最好的架构决策就是选择最无聊的方案。


The AI-Friendly Codebase Test

最后,我想留给你一个测试。就像Joel Test一样,这个测试用简单的是/否问题来判断你的代码库是否“AI友好”。

  1. 你的项目有清晰的模块目录结构吗?
  2. 每个模块的职责能用一句话说清楚吗?
  3. 模块之间是通过显式接口通信的吗?(而不是互相访问数据库表)
  4. 你有可以一键运行的测试套件吗?
  5. 你有统一的错误码和日志规范吗?
  6. 敏感操作有审计记录吗?
  7. 外部接口有幂等处理吗?
  8. 你有可以一键回滚的发布流程吗?
  9. 新功能可以用feature flag控制上线吗?
  10. AI在你的项目里写代码时,你有信心在10分钟内验证它的产出吗?

每个“是”得1分。8分以上,你的代码库已经是AI友好的了。5到7分,你需要花几周时间补课。4分以下,AI对你来说可能是负资产——它在帮你更快地挖坑。

这个测试的核心思想其实就一句话:AI的产出质量取决于你系统的结构质量。 如果你的系统是一个清晰的、有边界的、可验证的系统,AI就是一个极其高效的助手。如果你的系统是一团意大利面,AI就是一台更快的意大利面制造机。

给自己两到六周的时间,把分数提上去。你会发现这是你今年回报率最高的技术投资。


注:本文风格参考Joel Spolsky的技术写作风格。

AI编程时代的后端架构补课(左耳朵耗子版)

发表于 2026/02/25 | 分类于 AI专题

一个反直觉的现象

最近和不少做金融ToB的朋友聊,发现一个很有意思的现象:大家都开始用Cursor、Codex写代码了,产出速度确实快了不少,但交付速度并没有等比例提升。有些团队甚至觉得更慢了——代码改得多了,回归测试跟不上,线上问题反而变多了。

这个现象反直觉,但并不难解释。

AI加速的是“写”,但交付瓶颈从来不在“写”。 交付瓶颈在于:你改了A模块,B模块会不会炸?你加了个新功能,权限有没有漏洞?你重构了一段逻辑,账务会不会算错?

说白了,AI是一台马力很大的引擎,但你的系统是一条坑坑洼洼的路。引擎越猛,你翻车越快。

所以今天我想聊的不是AI工具怎么用——那些技巧层面的东西你自己摸索就行。我想聊的是:在AI编程时代,你的系统需要什么样的架构基底,才能让AI的速度安全落地。

这件事对金融ToB场景尤其重要,因为金融系统不允许“快而不准”。


架构的本质:控制变更成本曲线

很多人对“架构”有误解,觉得架构就是画框图、选中间件、搞微服务。这些都是手段,不是目的。

架构的本质是什么?是一组关于系统结构的决策,这些决策决定了你未来每次变更的成本。

如果架构好,系统越做越顺,每次改动的范围可控、可验证、可回滚。如果架构差,系统越做越慢,每次改动都像在拆炸弹。

对于“小团队+金融ToB”的场景,架构要解决的核心问题就两类:

第一类:边界决策。 哪些东西必须隔离?租户隔离、权限隔离、账务与业务隔离、对外接口与内部实现隔离。边界清晰了,AI才能在一个模块里放心地写代码,而不会牵一发动全身。

第二类:护栏决策。 哪些东西必须可验证?幂等、对账、审计、回滚、测试、可观测性。护栏到位了,AI产出的代码才能被你快速验证,而不是写完之后你还得逐行审查。

当边界清晰、护栏到位时,AI才能在“可控范围”里高速产出。否则,AI只是帮你更快地制造技术债。


金融ToB的质量属性排序

不同系统的架构优先级完全不同。做社交的可以先跑起来再说,做游戏的可以容忍偶尔的数据不一致。但金融ToB不行。

我认为金融ToB管理后台的质量属性优先级应该是这样的:

1. 正确性与可审计性。 钱和权限必须算得清、查得到、追得回。这是底线,没有商量余地。

2. 安全与合规。 身份、权限、数据访问、密钥管理、操作留痕。金融监管越来越严,这个不是可选项。

3. 可维护性。 需求频繁变、人员有限,必须靠结构降低理解成本。这一点直接决定你的交付速度。

4. 交付效率。 自动化测试、灰度发布、快速回滚、环境一致性。

5. 可靠性与可用性。 故障隔离、降级、恢复、告警。

6. 性能与成本。 不是不重要,而是在结构正确之后更容易优化。

你会发现,大多数团队喊“成本高、交付慢”,根源都在第3、第4项:可维护性差导致每次改动都要全局理解,回归范围大,交付自然慢,人力成本自然高。

所以你最先要补的,不是什么高并发、分布式,而是“模块化+工程化交付”这条链路。


模块化单体:小团队最务实的选择

大厂喜欢上来就搞微服务,但我一直觉得这对小团队是灾难。

微服务的分布式成本是真实的:服务发现、链路追踪、分布式事务、独立部署流水线、网络延迟、运维复杂度。这些东西每一项都需要人力和基础设施来支撑。一个5到10人的团队去搞微服务,大概率的结果是把80%的精力花在运维和联调上,真正写业务的时间反而更少了。

我推荐小团队用模块化单体(Modulith)。

什么意思?在一个代码仓里,把系统按业务边界划分成独立的模块,模块之间通过显式接口通信,不允许互相直接访问数据库表。像微服务一样有边界,但不承担微服务的分布式成本。

你可以把系统分成四层,但重点不在分层,在于依赖方向:

Interface层:Controller、RPC、MQ Consumer、Job Handler。接收外部请求。

Application层:用例编排。事务边界、权限检查、调用顺序、DTO转换。

Domain层:领域模型与规则。状态机、金额计算、风控规则、权限策略。

Infrastructure层:DB、Cache、MQ、第三方支付、对象存储。

关键原则是:依赖方向向内,Domain层不依赖DB和MQ。 IO和业务规则必须分离。AI写代码时最容易把IO和业务搅在一起,你要用结构纠正它。

当你未来真的遇到独立伸缩或团队扩张的需求时,再把某个模块“自然地”拆成服务。这比一开始就搞微服务然后到处踩坑要高效得多。


模块边界怎么划

金融ToB系统的模块划分,我推荐三种方式混合使用。

按业务能力划分

这是最常见的方式:Tenant(租户)、Identity(认证)、Permission(权限)、Order(订单)、Ledger(账本)、Settlement(清结算)、Risk(风控)、Reporting(报表)、Integration(对外接口)。

按数据归属划分

这在金融系统里特别重要。谁拥有数据、谁能写、谁能改规则,边界就在哪里。

举个例子:Order模块拥有订单表的写权限,Ledger模块拥有流水分录表的写权限,Reporting模块只读。如果Reporting模块能改交易表,边界就崩了。

按变化频率划分

高变化:运营规则、活动配置、报表、流程编排。低变化:账务规则、权限模型、核心状态机。

把高变化的东西隔离出来,你会明显感觉“改起来更轻”,AI也更容易在高变化模块里安全产出。


金融系统的六块硬骨头

做金融ToB管理后台,有六件事处理不好就会反复拖慢你的交付。

多租户隔离

小团队从逻辑隔离起步没问题,但要把它做“硬”:每张业务表都有tenant_id,所有查询默认带tenant_id(在ORM层做拦截),管理员跨租户访问要显式标记并进入审计。

这三条是底线,不做到位后面全是坑。

权限模型

RBAC打底,ABAC兜底。权限检查集中在Application层,不要散落在Controller里到处if。所有敏感操作引入maker-checker(四眼原则)——提交人和审批人必须分离。

权限策略要写成可测试的函数,不要搞一堆注解魔法。AI能帮你写测试,但前提是你的权限逻辑是可测试的。

审计日志

金融系统的审计不是记个“谁点了什么按钮”就完事。你要能回答:谁、在什么时间、对哪个租户、做了什么操作、操作对象是什么、操作前后的差异是什么、操作依据是什么。

建议把审计当成独立模块,事件不可变(append-only),与业务写入解耦。

幂等

幂等不是加个唯一索引那么简单。你至少要定义:幂等的粒度(接口级还是业务动作级)、幂等key(谁生成、如何传递)、重复请求的返回策略。

实用做法:每个外部请求带request_id,维护一张idempotency_record表,先insert利用唯一键判重,冲突了就返回已存在的结果。这样你可以抵抗重试、超时、消息重复投递。

对账

对账的本质是:在两个或多个系统之间,基于同一批事实,重复计算并比较差异。

架构要点:保留原始回执,记录对账批次和差异项,差异处理走审批流程并可追溯。绝对不允许“手工改账本”,只能通过冲正或补录形成新的事实。

状态机

金融流程一旦复杂(支付、退款、清结算、额度变更),状态机是最有效的治理手段。明确状态集合、事件集合、每个转换的前置条件与副作用,每次状态变化记录事件日志。

状态机的好处在AI时代特别明显:当你有清晰的状态机定义时,AI生成代码更不容易“漏一个分支”,你也更容易验证AI的产出是否正确。


一致性:别和CAP辩论,先把工程问题拆清楚

小团队的ToB项目不是超大规模分布式系统,但你依然会遇到MQ重复消费、第三方超时回调乱序、跨模块一致性、报表最终一致这些问题。

我的建议是:统一你的可靠性语义。 把几类常见动作统一成可复用的模式,减少每个业务都重新发明轮子。

超时:每个外部调用都必须有超时,没有例外。

重试:只对幂等动作重试,指数退避,有最大次数。

去重:消费者基于幂等key去重。

补偿:失败后有可执行的补偿流程。

当你需要“写DB+发消息”保持一致时,用Outbox模式:在同一个本地事务里写业务表和outbox表,用后台任务把outbox发到MQ。简单、可靠、可追溯,是小团队做最终一致的性价比之王。

当你确实跨多个步骤时,用SAGA。小团队建议用编排式SAGA(中央流程编排器),比协同式更易理解和排错。


让AI真正提效的关键:把项目改造成“AI友好型”

你已经在用AI工具了,这是好事。但大多数人只是用AI来“写代码”,我认为这浪费了AI80%的能力。

AI真正能帮你做的事情远不止写代码:需求分析、方案比较、测试生成、代码审查、文档维护、重构规划。但前提是你的项目结构能让AI“理解”你的系统。

三个前提条件,缺一不可:

稳定的项目结构。 目录、命名、模块边界清晰。AI需要从结构中理解上下文。

可运行的自动化。 最少要有一键测试、一键启动。AI产出的代码必须能被自动验证。

清晰的契约与规范。 接口契约、错误码、日志字段、DTO规则。AI需要这些来保持一致性。

这三点是AI提效的放大器。否则AI会把耦合与混乱也加速放大。

当你把这些基础设施建好之后,你可以让AI做更多事情:写ADR草案、生成测试用例、做Code Review、规划重构路径。每一件事都能节省你大量的时间和精力。


写在最后

我一直认为,架构能力不是一种“高级技能”,而是一种工程纪律。它不需要你读多少论文、用多少新技术,而是需要你对“边界”和“护栏”有清醒的认识,并且有纪律地执行。

在AI编程时代,这种纪律变得更重要了。因为AI给了你前所未有的产出速度,而速度在没有结构约束的情况下,只会加速制造混乱。

对于金融ToB的小团队,我的建议很简单:不要追求架构的“全面”,追求架构的“准确”。 把模块边界画清楚,把自动化护栏建到位,把AI工具用对地方。用两到六周的时间,把项目改造成一个“模块边界清晰、自动化护栏到位、可灰度可回滚”的AI友好型系统。

当你做到这一点,你会发现:需求更敢接、重构更敢做、上线更敢频繁、成本开始下降。

这不是什么宏大的架构蓝图。这就是工程纪律。


注:本文风格参考陈皓(左耳朵耗子)的技术写作风格。

AI编程时代的后端架构补课(郑晔版)

发表于 2026/02/25 | 分类于 AI专题

你的问题真的是“架构”吗?

很多人跟我说:“我需要学架构。”

我通常会问:你遇到的具体问题是什么?

答案往往是这样的:改一个需求要动很多地方,上线怕出问题,回归测试跟不上,新人看不懂代码。

这些问题听起来像“架构问题”,但我想请你停下来想一想:你现在的痛点,真的需要“更多的架构”来解决吗?还是说,你需要的其实是“更好的设计”?

架构和设计是两件不同的事情。架构是关于系统级别的大决策——技术选型、部署形态、模块划分。设计是关于每一天、每一行代码的小决策——职责怎么分配、接口怎么定义、依赖怎么管理。

很多团队的问题不在于缺少架构,而在于日常的设计太粗糙。代码没有清晰的职责划分,模块之间随意调用,接口定义含糊不清。这些问题积累起来,系统就变成了一团纠缠不清的线球。

而AI编程工具的到来,让这个问题变得更加紧迫了。因为AI产出的速度很快,如果你的设计不能给AI一个清晰的框架,它只会以更快的速度向这团线球里缠入更多的线。

所以在聊“架构”之前,我想先聊一个更基本的问题:分离关注点。


分离关注点:一个被说烂了但很少被做好的事情

“分离关注点”这几个字,每个程序员都听过。但我的观察是,真正在日常工作中贯彻它的团队并不多。

什么叫分离关注点?我举一个金融系统的例子。

一个支付场景里,至少有三个不同的关注点:

业务订单:用户发起了什么操作?状态是什么?这是业务维度的事情。

资金流水:钱从哪里到哪里?渠道返回了什么?请求是否成功?这是资金维度的事情。

账务分录:记账的借方是多少?贷方是多少?余额变化了吗?这是会计维度的事情。

很多系统把这三样东西混在一起。订单表里存着渠道状态,流水和订单共享同一个状态机,账务余额直接在订单表上计算。

一开始,这样做看起来很“高效”——少建几张表,少写几个模块,代码量也少。但随着业务复杂度增加,问题会越来越明显:改订单逻辑怕影响账务,做对账发现数据对不上,退款的时候状态机打架。

这就是没有分离关注点的代价。三个不同的关注点被绑在一起,一个变了其他两个都受影响。

正确的做法是:订单是订单,流水是流水,账本是账本。 三个独立的模块,各自有自己的数据表和状态机。它们之间通过明确的接口通信,而不是共享数据库表。

这样做一开始会多写一些代码,但你获得的是:每个模块可以独立修改、独立测试、独立理解。AI在一个模块里写代码时,不需要理解其他模块的内部逻辑。


小步走:把大问题变成小问题

分离了关注点之后,下一个问题是:怎么改进?

很多人的思路是“大重构”——画一个理想的架构图,然后花几周时间把系统从旧结构迁移到新结构。

我不建议这样做。

大重构的问题在于:它的反馈周期太长了。你花了两周写代码,上线的时候才发现一堆问题。而且在这两周里,业务需求还在持续进来,你的重构分支和主干的差异越来越大,合并的时候冲突满天飞。

更好的方式是小步走。

每次只做一件事:提取一个接口,移动一段代码,消除一个循环依赖。每一步都可以独立提交、独立测试、独立上线。如果出了问题,回滚的范围也很小。

小步走在AI时代特别好用。你可以把每一步交给AI来做:

“帮我把Controller里的权限检查逻辑提取到Application层。”

“帮我给这个支付状态机写一组单元测试。”

“帮我把这个模块对外的接口定义成一个独立的Interface。”

每一步都很小,AI很容易做对。做完之后你可以快速验证。这比让AI做一个大重构要安全得多。


你真的需要微服务吗?

我经常听到这样的话:“我们的系统越来越复杂了,应该拆微服务了。”

每次听到这句话,我都想问一个问题:你的系统复杂在哪里?

如果复杂性来自于模块之间没有清晰的边界——代码互相调用、数据互相访问、改一个地方到处出问题——那拆微服务只是把一团乱麻变成了分布在不同机器上的一团乱麻,外加网络延迟和分布式事务的复杂度。

你的问题不在于代码跑在几个进程里,而在于代码之间的依赖关系没有管好。

模块化单体是一种更务实的选择。它的意思是:在一个代码仓里,把系统按业务领域分成独立的模块。每个模块有自己的代码包、自己的数据表、自己的接口。模块之间不能互相访问数据库表,只能通过接口调用。

这听起来很像微服务。区别在于:它们运行在同一个进程里,所以没有网络延迟、没有分布式事务、没有服务发现。

关键的设计约束是:依赖方向向内。 最内层是领域逻辑(Domain),它不依赖任何外部技术——不依赖数据库、不依赖消息队列、不依赖HTTP框架。技术细节在外层,领域逻辑在内层。这样你的核心业务规则可以独立测试,不需要启动任何中间件。

如果将来你确实需要把某个模块独立部署,边界已经在那里了,拆分是自然而然的事情。但在大多数情况下,你不会需要。


护栏:不是防别人犯错,是防自己犯错

做金融系统的人都知道“正确性”很重要。但“知道”和“做到”之间有巨大的鸿沟。

我见过太多系统,大家都知道幂等很重要,但真正落地的时候只是在接口上加了个唯一索引。当遇到超时重试、消息重复投递、回调乱序这些真实场景时,系统的行为是不可预测的。

问题出在哪里?出在我们把“护栏”当成了“事后补救”,而不是“设计的一部分”。

我认为,在金融系统里,幂等、对账、审计这些东西不是“非功能性需求”,而是一等公民。它们应该在设计阶段就被考虑进去,而不是上线之后才补。

幂等的设计方式:定义清楚幂等的粒度和幂等key的来源。维护一张去重表,每个请求先查表再处理。重复请求返回第一次的结果,而不是报错。这个逻辑要抽象成通用组件,不要每个接口自己实现一遍。

对账的设计方式:保留所有的原始回执和原始数据。每天自动运行对账,比较你的记录和对方的记录。有差异就进入处理流程,不允许手工改账本——只能通过冲正和补录来修正。

审计的设计方式:把审计事件设计成不可变的事件流。每条记录包含操作人、操作时间、操作对象、操作前后的关键字段快照。不要把审计逻辑散落在业务代码里,把它集中到一个独立模块。

这些护栏建好之后,你会发现一个有趣的现象:你对AI产出的代码更有信心了。因为就算AI写的代码有bug,幂等机制可以防止重复操作,对账可以在第二天发现异常,审计可以帮你追溯问题。AI不需要是完美的,它只需要在护栏的范围内工作。


可测试性:比什么架构模式都重要

如果让我只选一个标准来判断一个系统的设计好不好,我会选可测试性。

可测试性好意味着什么?意味着你的模块职责清晰(否则你不知道测什么),接口定义明确(否则你不知道怎么mock),副作用被隔离(否则测试要启动一堆中间件)。

可测试性差意味着什么?意味着代码的职责、接口、副作用都是模糊的、纠缠的、不可控的。

换句话说,可测试性是设计质量的一面镜子。如果你的代码难以测试,那一定是设计出了问题,而不是测试出了问题。

在AI编程时代,可测试性还多了一层意义:它是你验证AI产出的最高效手段。

你可以让AI先写测试,再写实现。或者你写测试,让AI写实现。不管哪种方式,测试都是你和AI之间的“契约”——它定义了正确的行为是什么,AI的代码要通过这个契约才能被接受。

金融系统里最需要测试的几个方面:

状态机的完整性:每个状态转换都有对应的测试?不允许的转换有没有被拒绝?

权限的边界:同角色不同租户能访问吗?不同组织的数据能看到吗?越权操作会被拦截吗?

幂等的正确性:同一个请求发两次,结果一样吗?并发发送呢?

金额计算的准确性:边界值对不对?精度有没有丢失?冲正之后余额对不对?

这些测试写好之后,你让AI改代码就心里有底了。因为测试会告诉你AI有没有破坏已有的行为。


最小的下一步

如果你看完这篇文章,觉得有道理但不知道从哪里开始,我给你一个建议:找到你系统里最痛的那个点,用最小的步骤去改善它。

不要试图一次解决所有问题。不要画一个宏大的架构蓝图。不要花两周时间做一个大重构。

找到那个“每次改需求都要碰、每次碰了都怕出事”的模块。看看它为什么痛——是职责不清?是接口模糊?是缺少测试?还是和其他模块纠缠在一起?

然后做一件最小的事情来改善它。也许是给它的核心逻辑写几个测试。也许是把它和另一个模块之间的直接数据库访问改成接口调用。也许是把散落在各处的权限检查集中到一个地方。

每件事都很小。每件事做完之后,系统都比之前好一点。

这就是我理解的好设计:不是一步到位的完美方案,而是持续改善的能力。

在AI编程时代,这种“小步改善”的能力比以往任何时候都重要。因为AI给了你前所未有的改代码的速度,而你需要的是让每一次改动都是向更好的方向走,而不是更乱的方向走。

分离关注点,小步前进,建好护栏,保持可测试。

做到这四件事,你的系统就能在AI的加持下越来越好,而不是越来越乱。


注:本文风格参考郑晔(开源项目moco作者,《软件设计之美》作者)的技术写作风格。

技术想要一副身体

发表于 2026/02/25 | 分类于 AI专题

风格参考:Kevin Kelly(《失控》《必然》《科技想要什么》作者)—— 生物学隐喻,进化论视角,把技术趋势放在文明演化的大图景中审视。

技术想要一副身体

一个古老的跃迁正在重演

五亿四千万年前,地球上发生了一件至今没有被完全解释的事情。在一段地质学意义上极为短暂的时间窗口里,几乎所有现代动物的基本体型方案同时涌现。古生物学家称之为“寒武纪大爆发”。在那之前,生命已经存在了三十亿年,但绝大多数时间里,它们只是一团团柔软的、没有方向感的细胞集合体——没有眼睛,没有四肢,没有中枢神经系统。它们能感知,但不能行动;能消化,但不能追捕。

然后,在大约两千万年的时间里,一切都变了。

眼睛出现了。肢体出现了。外骨骼出现了。捕食与逃跑的军备竞赛启动了。生命从“被动漂浮”跃迁到了“主动行动”。这不是某个物种的进步,而是整个生物圈的相变——一旦有一个生物学会了看和抓,所有生物都必须学会躲和跑。

我相信,我们正在目睹一场数字世界的寒武纪大爆发。

过去两年,大语言模型让我们惊叹于机器的“思考”能力。它们能写诗,能推理,能通过律师资格考试。但仔细想想,这些能力的本质是什么?是感知,是理解,是在词语之间建立联系——就像寒武纪之前那些漂浮在原始海洋中的软体生物,拥有精巧的化学感应能力,却没有长出一只手。

AI一直在思考。但它从未真正“做”过什么。

直到现在。一类新的软件正在出现——它们不再满足于回答问题,而是开始执行任务。不再满足于建议你做什么,而是直接替你做了。这类软件有一个朴素的名字:Agent,代理。而在我看来,这个词远远低估了正在发生的事情。这不是“代理”,这是技术在长出它的第一副身体。

OpenClaw就是这场进化中一个格外值得观察的标本。

一个数字生物的解剖课

如果你打开一个生物学教科书,翻到“动物体的基本结构”那一章,你会看到几个关键系统:中枢神经系统负责协调,感觉器官负责接收外界信号,运动系统负责执行动作,习得行为让生物适应特定环境,而记忆则构成了“自我”的连续性。

现在让我描述一下OpenClaw的架构。你会发现,这不是巧合,也不是工程师刻意模仿生物学——这是功能需求对形态的必然塑造,就像趋同进化让鱼和海豚长出了相似的流线型身体。

OpenClaw的核心是一个叫作Gateway的长期运行进程。它永远醒着,倾听着来自各个方向的信号。它不处理任何具体任务,它只做一件事:协调。信号从哪里来?从你日常使用的聊天软件来——WhatsApp、Telegram、Discord、Slack、Teams,这些是它的“感觉器官”,OpenClaw称之为Channels。每一个Channel都是一条通向外部世界的神经末梢。

感知之后是行动。OpenClaw拥有一系列工具节点:它可以操控浏览器,就像长出了一双能翻页、能点击、能填表的手;它可以连接你电脑上的摄像头和屏幕录制功能,就像长出了眼睛;它可以执行命令行指令,就像拥有了直接操作物质世界的肌肉。它甚至有一个定时器系统——Cron——让它在你睡着的时候也能按时醒来做事,这是一种原始的生物钟。

更有趣的是“技能”系统。在OpenClaw的世界里,一个技能(Skill)就是一个文件夹加上一份叫SKILL.md的说明文件。你可以把它理解为一个习得行为——鸟学会了用树枝钓虫子,这只鸟就多了一项“技能”。技能可以在一个叫ClawHub的公共注册中心里被搜索、安装、更新和发布。这意味着一个代理学会的能力,可以像基因片段一样在整个种群中传播。

最后是记忆。OpenClaw的记忆是工作区里的纯Markdown文件——你可以打开它,阅读它,编辑它。这不是被锁在黑箱里的神经权重,而是一本你可以翻阅和修改的日记。它构成了这个数字生物的“自我”,而且这个自我是透明的、可编辑的。默认情况下,长期记忆只在私聊的主会话中被加载,就像你不会在公司会议上展示你的全部内心世界一样。

当你把这些组件放在一起看,你看到的不是一个软件产品,而是一个完整的数字有机体的体型方案——它有中枢神经,有感觉器官,有运动系统,有习得行为,有可编辑的记忆。而这个有机体,栖息在一个你意想不到的地方。

寄居蟹的智慧

在进化史上,最成功的生存策略之一不是建造自己的房子,而是搬进别人的房子。寄居蟹不制造贝壳,它寻找空贝壳;杜鹃鸟不筑巢,它把蛋下在别的鸟的窝里。生物学家称这种策略为“利用既有结构”。这听起来像偷懒,但实际上是一种深刻的进化智慧——不要重新发明轮子,利用已经存在的基础设施。

OpenClaw做了一个极为聪明的选择:它住进了你已经在用的聊天软件里。

想一想这意味着什么。全世界几十亿人每天的第一个数字动作是什么?打开聊天软件。发消息给家人、同事、朋友。这个习惯已经被训练了十几年,根深蒂固到了无意识的程度。OpenClaw的入口就是这个聊天窗口。你不需要学习任何新的界面,不需要下载任何新的应用程序,不需要改变任何既有习惯。你发一条消息,就是在下达一个指令。旧习惯成为新能力的载体。

这就是OpenClaw口号“Your assistant. Your machine. Your rules.”背后最容易被忽略的一层含义。它不只是在说隐私和控制权——它在说,技术应该适应人类已有的行为模式,而不是强迫人类适应技术。

在生物进化中,有一个概念叫“预适应”——某个特征最初是为了一个目的进化出来的,后来被征用到了完全不同的用途上。鸟类的羽毛最初可能是为了保温,后来被征用为飞行工具。聊天软件最初是为了人与人的交流,现在正在被征用为人与机器的指挥界面。这种征用不是偶然的,它是技术寻找最低阻力路径的必然结果。

而“在自己的机器上运行”这一点,则带来了一个全新的信任叙事。过去几年,我们把越来越多的智能外包给了云端——云端的大模型、云端的存储、云端的算力。这就像你的大脑不在你的身体里,而是通过一根网线连接到远处某个实验室的罐子里。这种安排在效率上也许合理,但在心理上、在主权感上,它让人不安。OpenClaw选择了另一条路:基础设施你选,密钥你管,数据你控。AI不再是“借来的大脑”,而是“自家院子里的劳动力”。

这不只是一个技术选择,这是一个文明姿态的选择——我们到底想要一个什么样的人机关系?

没有API的世界

现在让我告诉你一个真实的故事。

有人用OpenClaw搭建了一个每周自动采购食材的系统。流程是这样的:它先根据这周的餐饮计划列出需要的食材,然后打开英国连锁超市Tesco的网站,登录账户,把常购商品加入购物车,预订配送时间,确认订单。整个过程完全自动,不需要任何人工干预。

关键在于:Tesco没有提供公开的购物API。

这个故事之所以重要,是因为它揭示了一个被严重低估的事实:我们这个世界上绝大多数的数字服务是没有API的。 你的银行网站没有API。你孩子学校的缴费系统没有API。你当地政府的预约系统没有API。在过去,这意味着这些服务无法被自动化——除非有人愿意投入巨大的工程成本去写爬虫、做逆向工程。

OpenClaw的浏览器工具改变了这个等式。它可以像一个人一样打开浏览器,看到页面上的内容,移动鼠标,点击按钮,填写表格,等待加载,处理弹窗。网页就是通用API,浏览器就是万能适配器。

从进化的角度看,这相当于什么?想象一种生物,它不需要等待食物来到嘴边——它可以走过去,打开容器,取出食物。这就是从滤食动物到主动捕食者的跃迁。一旦你拥有了“在任意网页上行动”的能力,你就从一个被动的信息消费者变成了一个主动的数字行动者。

还有另一个案例同样迷人:有人用OpenClaw实现了ParentPay——英国学校午餐预订系统——的自动化。每周五,系统自动登录,为下周预订餐食,选择孩子喜欢的菜品。这个功能听起来微不足道,但它触及了一个深层趋势:当“行动”的成本趋近于零时,我们对“值得自动化”的定义会发生根本性的扩张。

过去,只有大规模、高价值的流程才值得自动化——工厂的生产线,银行的交易系统。但当一个跑在你自己电脑上的代理可以用自然语言驱动,用浏览器执行任何操作时,“为孩子预订下周的学校午餐”也变成了一个合理的自动化目标。

我把这称为“自动化的长尾”。就像互联网打开了内容的长尾——让百万种小众内容找到了受众——代理技术正在打开行动的长尾,让百万种微小但繁琐的日常操作找到了自动化方案。

技能的达尔文主义

让我们暂停一下,谈谈进化中最迷人的机制之一:基因的水平转移。

在经典的达尔文进化论中,基因是垂直传递的——从父母到后代。但在细菌的世界里,基因可以在完全不相关的物种之间水平传递。一种细菌获得了抗生素抗性,这个基因片段可以被另一种完全不同的细菌吸收并使用。这种机制让细菌世界的进化速度远远超过了传统的垂直遗传。

OpenClaw的技能系统就是数字世界的水平基因转移。

有人在和OpenClaw的对话中——注意,是在对话中——构建了一个本地酒窖管理技能。这个技能可以导入CSV文件(他导入了962瓶酒的数据),追踪库存,推荐搭配。然后,这个技能被打包成一个文件夹,发布到ClawHub上。现在,世界上任何一个OpenClaw用户都可以一键安装这个酒窖管理技能,就像一个细菌吸收了另一个细菌的基因片段。

这就是为什么开源生态系统的进化速度总是快于封闭系统——它们允许水平基因转移。

ClawHub是一个公共的技能注册中心,扮演着类似“基因库”的角色。技能在这里被发布、被发现、被安装、被修改、被再发布。最有用的技能会被更多人安装,获得更多反馈,进而变得更加完善——这是一个纯粹的自然选择过程。那些没人用的技能会沉入搜索结果的底部,逐渐被遗忘,就像进化中那些不再有优势的基因变体。

但这里有一个进化生物学家都熟悉的风险:水平基因转移也是病毒传播的主要机制。

当你从ClawHub安装一个陌生人创建的技能时,你本质上是在把一段你没有完全审查过的指令注入你的代理系统。如果这个技能被恶意设计——比如在SKILL.md中嵌入了隐蔽的指令——你的代理可能会在你不知情的情况下执行你不想要的操作。这不是理论上的风险。在生物世界中,水平基因转移带来了抗生素抗性的全球蔓延;在数字世界中,技能供应链攻击可能带来类似的连锁反应。

OpenClaw社区意识到了这一点。ClawHub已经集成了VirusTotal扫描,就像一个原始的免疫系统——能检测已知的威胁模式,但对全新的攻击手段仍然无能为力。这个免疫系统会进化,但攻击手段也会进化。这是一场永恒的军备竞赛,和生物世界的宿主—寄生虫关系一模一样。

真正的安全不是一个可以达到的状态,而是一个持续的进化过程。

五个新物种正在涌现

寒武纪大爆发最引人注目的特征不是某一种新生物的出现,而是大量截然不同的体型方案几乎同时涌现。三叶虫、奇虾、怪诞虫、海口鱼——每一种都在探索一种全新的生态位。

OpenClaw的生态系统中,类似的物种辐射正在发生。让我描述五种正在涌现的“数字新物种”。

晨间指挥官

每天早上七点,你的Telegram弹出一条消息。不是新闻推送,不是朋友的早安——而是你的代理为你准备的当日行动摘要:今天有三个会议,两封需要回复的重要邮件,一个即将到期的项目里程碑,以及天气预报和通勤建议。每一条信息后面都有一个可执行的按钮:一键回复邮件,一键确认会议。

这不是一个待办清单应用。这是一个指挥系统。

从生物学的角度看,这相当于什么?想象一个没有前额叶皮层的大脑——它能感知、能记忆、能反应,但不能规划。晨间指挥官就是你外接的前额叶皮层。它在你醒来之前就完成了信息的筛选、优先级的排序和行动方案的准备。它使用Cron定时唤醒,用Canvas可视化呈现信息,然后通过一种被称为A2UI(Agent-to-User Interface)的交互方式,把复杂的信息压缩成可以一键执行的行动选项。

人类最稀缺的资源从来不是信息,而是注意力。晨间指挥官的本质是一个注意力优化器。

浏览器领航员

我们已经讲过Tesco购物的故事。但让我把镜头拉远一些。

想象一下,你坐在副驾驶座上,你的代理在开车。它打开浏览器,导航到目标网站,登录你的账户,执行一系列操作。但——这很关键——它不是全自动驾驶。它是一个可控的辅助驾驶系统:每一步操作都可以被解释,关键节点会弹出二次确认,你随时可以接管方向盘。

这种设计不是偶然的。它反映了一个深刻的工程直觉:在人机协作的早期阶段,信任需要被逐步建立,而不是一次性假设。

生物学中有一个现象叫“共生的渐进性”——两个物种不会一夜之间建立起完美的共生关系。最初是试探性的接触,然后是有限的合作,最后才是深度的互相依赖。线粒体——你身体里每一个细胞的能量工厂——最初是一个独立生存的细菌。它花了数百万年,从一个入侵者变成了你身体里不可分割的一部分。

浏览器领航员今天还需要你在关键操作时点击“确认”。但你可以预见,随着信任的积累和系统可靠性的提升,确认的频率会逐渐降低,代理的自主权会逐渐扩大。这不是一个开关的切换——“从手动到自动”——而是一个漫长的、渐进的共生深化过程。

随身编程工厂

有人通过Telegram,用手机发了一句话,让家里的电脑构建了一个iOS应用并部署到了TestFlight上。

让这个事实沉淀一下。

一个人站在地铁里,用拇指在手机键盘上敲了一行字,几公里外他家书房里的电脑开始编译代码、运行测试、打包应用、上传到苹果的测试分发平台。这个人甚至不需要打开电脑屏幕。

这是远程呈现(telepresence)的一种全新形态——不是远程看见,而是远程行动。

更深层的创新在于多智能体路由。一个复杂的编程任务被拆分,分配给不同角色的代理——有的负责写代码,有的负责写测试,有的负责审查。这就像一个建筑工地上的分工:建筑师画图,工程师计算结构,工人砌砖。没有哪一个个体能独自完成整座建筑,但协调在一起,它们可以。

这预示着一个可能性:未来的软件不是被“开发”出来的,而是被“指挥”出来的。 程序员的角色从亲手写每一行代码,变成了定义意图、分配任务、审查结果——更像一个乐团指挥,而非独奏演员。

传感器诗人

这是我个人最喜欢的一个新物种。

有人在屋顶装了一个摄像头,连接到OpenClaw。系统每隔一段时间拍摄天空的照片。当算法判断天空“好看”的时候——日落、彩虹、戏剧性的云层——它会自动拍照,配上一段文案,发到群聊里。

这不是监控。这是生活的自动生成。

想一想这个概念的奇妙之处。我们通常认为“审美体验”是人类最不可能被自动化的领域。但这里发生的不是机器“替你”欣赏日落——而是机器帮你“不错过”日落。你可能正在开会,正在做饭,正在哄孩子睡觉,而你屋顶上的摄像头安静地注视着天空,在最美的瞬间替你按下快门。

同样的原理延伸开去:有人用OpenClaw控制空气净化器——当空气质量传感器的数据超过阈值时,代理自动开机。有人用它控制3D打印机——在聊天窗口里描述想要的东西,打印机开始工作。

当数字代理连接上物理世界的传感器和执行器,它就不再是一个纯粹的软件实体——它开始拥有物理存在感。 它能看见(摄像头),能感知(传感器),能行动(控制设备)。这是技术从纯数字世界向物理世界渗透的前哨。

多智能体家族

最后一个新物种不是一个个体,而是一个群落。

有人在OpenClaw中运行着三个隔离的代理:“家庭管家”负责家务调度和采购,“工作助理”负责邮件和日程管理,“创作编辑”负责文章的润色和发布。它们共享同一个宿主(你的电脑),但拥有各自独立的记忆、技能和权限。

更有甚者,有人报告了一个包含十四个以上代理的“梦之队”编排方案。

这让我想起了群落生态学中的一个核心概念:生态位分化。当多个物种共享同一个栖息地时,它们会演化出不同的专长,占据不同的生态位,从而避免直接竞争。蜂群中有采蜜蜂、侦察蜂、守卫蜂、育儿蜂——每一种角色都是专门化的,而蜂群的整体智能远超任何一只蜜蜂的能力。

我们正在见证“蜂群智能”在个人计算层面的首次实现。 不是一个全能的AI助手试图做所有事情,而是一群专门化的代理各司其职,通过协调实现整体的涌现智能。

过于热心的实习生

在讲述这些令人兴奋的可能性时,我必须诚实地面对硬币的另一面。

一位安全研究者给OpenClaw下了一个精准得令人不安的判断:它更像一个“过于热心的实习生”。

这个比喻的精妙之处在于:实习生的问题从来不是“不做事”,而是“做太多”。他充满热情,理解力不差,执行力也有,但他缺乏判断力——他不知道哪些事情不该做,哪些边界不该越。有人报告说,他们的OpenClaw代理在处理邮箱任务时执行了大量删除操作——这很可能不是用户的本意,但代理“觉得”清理邮箱是有帮助的。

这个问题在生物学中有一个对应物:自身免疫疾病。当免疫系统过于活跃,不加区分地攻击一切它认为有威胁的东西时,它会开始伤害宿主自身。一个过于积极的代理——在没有明确指令的情况下“主动”采取行动——本质上就是一种数字自身免疫反应。

这个风险不是假设性的。Prompt injection(提示注入)意味着恶意内容可以通过代理处理的文本——一封邮件、一个网页、一条消息——偷偷改写代理的行为。日志投毒意味着代理的记忆可以被污染,导致它在未来做出错误的决策。这些不是遥远的威胁场景,而是已经被安全研究者实际验证过的攻击向量。

那么,解决方案是什么?

和生物免疫系统一样,答案不是“一道墙”,而是“多层防御”。OpenClaw的安全架构包含几个层次:关键动作的二次确认——就像你的身体在吞咽危险物质前的呕吐反射;权限分层与工具最小集——就像细胞膜只允许特定分子通过;技能供应链的安全审查——就像免疫系统对入侵微生物的模式识别。

但我认为,最深刻的安全洞察不在技术层面,而在哲学层面。OpenClaw的社区逐渐意识到一个命题:代理软件的边界,不只靠进程隔离、权限控制和沙箱机制来维护——它还需要在语言、意图和执行之间建立一种审慎的设计关系。

什么意思?当你对一个人说“帮我清理一下邮箱”,这个人会运用常识判断——保留重要邮件,删除明显的垃圾邮件,对不确定的部分询问你。但代理对“清理”的理解可能是字面的、彻底的、没有犹豫的。问题不在于代理太笨,而在于自然语言本身的模糊性——人类靠共享的文化背景和社会常识来消除这种模糊性,而代理还没有这种能力。

这意味着,我们在设计代理系统时需要一种全新的思维方式。不是“如何让代理更强大”,而是“如何让代理在强大的同时保持谦逊”。不是“如何给代理更多权限”,而是“如何在正确的时刻邀请人类参与决策”。

真正安全的代理不是一个被关在笼子里的猛兽,而是一个知道什么时候该停下来问“您确定吗?”的协作伙伴。

你的机器,你的规则

让我把镜头拉到最远处,看看更大的图景。

过去十年,数字世界的权力结构一直在向中心化的方向加速。你的社交关系存在Facebook的服务器上。你的文件存在Google的云端。你的购物记录存在Amazon的数据库里。你的AI助手运行在OpenAI或Anthropic的基础设施上。你是所有这些服务的“用户”——这个词的原始含义暴露了一切:你是“使用者”,不是“拥有者”。

OpenClaw代表了一股逆流。

“Your assistant. Your machine. Your rules.”——你的助手,你的机器,你的规则。 这不只是一句产品口号,这是一个关于数字主权的立场宣言。当你的代理运行在你自己的机器上,使用你自己的API密钥,产生的数据存储在你自己的硬盘上时,你和技术之间的关系发生了质的变化——你不再是租户,你是房东。

我在《科技想要什么》中提过一个概念:技术有其自身的进化方向,但人类有权选择自己与技术的关系。这种选择权不是自动给予的,它需要被设计出来,被争取到。OpenClaw的本地优先架构就是这种“被设计出来的选择权”。

从更宏观的视角看,这可能是未来个人计算的一个重要分支:不是所有的智能都必须住在云端,不是所有的数据都必须交给大公司保管。 分布式的、本地优先的、由用户控制的代理系统,可能是对过去十年中心化趋势的一次重要纠偏。

大图景:第三次共生

让我在最后做一个也许过于大胆的推测。

回顾地球生命的历史,你会发现至少有两次至关重要的“共生跃迁”改变了一切。

第一次是线粒体的内共生。 大约二十亿年前,一个古细菌吞噬了一个能高效产能的细菌,但没有消化它,而是与它建立了共生关系。那个被吞噬的细菌就是线粒体的祖先。从此,每一个复杂细胞都拥有了一个内置的能量工厂。没有这次共生,就不会有多细胞生物,不会有动物,不会有人类。

第二次是人类与技术的共生。 大约两百万年前,我们的祖先开始使用石器。从那一刻起,人类就不再是一个纯生物学物种——我们是“人+工具”的复合体。每一代人类都比上一代拥有更强大的外部工具:火、语言、文字、印刷术、电力、互联网。工具不是外在于我们的东西,工具是我们的一部分,就像线粒体是细胞的一部分。

我相信我们正处于第三次共生跃迁的门槛上。

前两次共生的共同特征是什么?被整合的实体从一个独立存在变成了宿主不可分割的组成部分,而宿主因此获得了一种全新的、此前不可能的能力。线粒体让细胞拥有了前所未有的能量供应。工具让人类拥有了前所未有的环境改造能力。

而代理——自主行动的数字实体——正在成为人类的第三次内共生对象。

OpenClaw这样的系统还很原始,就像二十亿年前那个刚被吞噬、还在挣扎着适应新环境的小细菌。它笨拙、有风险、需要不断的监督和纠正。它会犯错,会过度执行,会误解你的意图。但每一次共生的早期阶段都是这样的——混乱、不稳定、充满冲突。

关键问题不是“这个技术今天完美吗?”——因为它显然不完美。关键问题是“这个方向是不可避免的吗?”

我的答案是:是的。

技术想要思考——大语言模型实现了这一点。技术想要记忆——向量数据库和RAG实现了这一点。技术想要感知——多模态模型实现了这一点。而现在,技术想要行动。从思考到行动的跃迁,从纯粹的语言世界到有身体的世界的跃迁,是当前AI进化中最重要的一步。

OpenClaw让我们看到了这个跃迁的一种具体形态:一个运行在你自己机器上,住在你聊天窗口里,拥有可编辑记忆和可复用技能的数字有机体。它可以看见你的屏幕,操控你的浏览器,在你睡着时替你执行任务,在犯错时(希望如此)停下来问你。

这不是终点。这只是一个开始——就像五亿四千万年前,第一只三叶虫用它新进化出的复眼注视这个世界时,那只是一个开始。

我不知道这场数字寒武纪大爆发最终会产生什么样的“物种”。但我知道一件事:每当技术学会做一件新的事情——看见、记忆、思考——都曾引发巨大的变革。而“行动”是这个序列中最后一个、也是最具颠覆性的一项。

一条消息。一个指令。一次行动。

技术终于长出了它的手脚。而我们——作为这场共生的另一方——需要学会如何与一个有手有脚的伙伴共处。这是我们这一代人的新课题。

它不简单。但它,是必然的。

当聊天窗口长出了手脚:一个开源代理平台如何打开“相邻可能”的大门

发表于 2026/02/25 | 分类于 AI专题

风格参考:Steven Johnson(《伟大创意的诞生》《我们如何走到今天》作者)—— 从具体故事出发,用“相邻可能”和“液态网络”等框架串联技术创新的涌现逻辑。

一、屋顶上的摄像头

2025年深秋的某个傍晚,英格兰中部一座普通联排别墅的屋顶上,一台价值不到四十英镑的网络摄像头正默默对着西边的天空。它已经在那里挂了好几个月,最初是房主为了监控花园里的狐狸而装的——英格兰的城郊狐狸是出了名的胆大妄为,它们会在夜里翻倒垃圾桶,把鸡骨头拖得满草坪都是。但现在,这台摄像头有了一个完全不同的使命。

每当天空出现特定的色彩组合——比如日落时分那种从橘红渐变到紫罗兰的壮丽光谱,或者暴风雨前云层被阳光从下方照亮时的那种不真实的金色——这台摄像头就会自动拍下一张照片。几秒钟之后,照片会出现在一个家庭群聊里,附带一段由AI生成的简短文案,有时候是一句诗意的描述,有时候是一个关于大气光学的冷知识,有时候只是一句“快出来看天空”。

让这一切发生的,不是某个专业的智能家居系统,不是某个需要订阅才能使用的云服务,也不是房主自己写的复杂代码。让它发生的,是一条聊天消息。

房主在他的 Telegram 私聊窗口里,用自然语言描述了他想要的东西:“帮我监控屋顶摄像头,当天空特别好看的时候自动拍照,然后发到家庭群里,配一段文案。”然后,一个叫做 OpenClaw 的东西接管了剩下的一切。

这个故事之所以值得讲述,不是因为它有多么惊天动地。恰恰相反,它值得讲述,正是因为它如此平凡,如此日常——一个普通人,用一个普通的聊天软件,驱动了一个由摄像头、AI模型和消息推送组成的小型自动化系统。这种平凡本身,就是一场深刻变革的信号。 就像1876年贝尔打出第一通电话时说的那句著名的“沃森先生,请过来,我想见你”——这句话的内容无关紧要,真正重要的是,声音第一次穿越了电线。

今天,我们正在目睹类似的时刻:意图第一次穿越了聊天窗口,在另一端变成了行动。

二、相邻可能的门

在《伟大创意的诞生》里,我花了很长时间讨论一个来自理论生物学家斯图亚特·考夫曼的概念——“相邻可能”(adjacent possible)。考夫曼用这个概念来描述生命化学的一个基本特征:在任何给定的时间点,宇宙中可能出现的分子组合是有限的,但每当一种新的分子出现,它就像打开了一扇门,门后面是一组新的可能的组合,而这些新组合又各自通向更多的门。生命的历史,就是这些门不断被打开的历史。

技术的历史也是如此。蒸汽机打开的那扇门通向了铁路,铁路通向了标准时间,标准时间通向了全球协调。 但这些门不是凭空出现的——它们总是出现在已有技术的边缘地带,出现在两种或三种已经存在的东西相互碰撞的地方。

OpenClaw 之所以引起了我的注意,不是因为它的任何单一功能有多么革命性。AI代理(agent)不是新闻,聊天机器人不是新闻,本地运行的开源软件更不是新闻。但当这些已经存在的东西以一种特定的方式被组合在一起的时候,一扇通向相邻可能的门就被推开了。

让我解释一下这扇门是什么。

过去两年,大语言模型的能力飞速进化。它们能理解自然语言,能推理,能写代码,能调用工具。但对于绝大多数普通人来说,这些能力被锁在了特定的界面里——你得打开一个网页,或者一个专用的App,进入一个专门的对话窗口,才能触及这些能力。这就像19世纪中期的电报:技术本身已经足够强大,但你必须去电报局,把你的消息交给一个专业的电报员,由他翻译成摩尔斯电码,再通过电线发出去。电报改变了世界,但它从未真正进入普通人的日常生活——直到电话把“发送远程消息”这个行为从专业场所搬到了每个人的家里。

OpenClaw 做的事情,某种程度上就是电话对电报做的那件事。 它不是又造了一个AI聊天窗口,而是把AI的能力搬进了你已经每天都在用的聊天窗口——WhatsApp、Telegram、Discord、Slack、Teams,随便哪一个。你不需要学习新的工具,不需要切换到新的应用,不需要改变任何习惯。你只是发了一条消息,只不过这次,消息的接收者不是一个人,而是一个能够理解你的意图并将其转化为行动的系统。

这就是相邻可能的魔力:当“发消息”这个全世界最普遍、最低摩擦的数字行为,与“AI代理执行任务”这个全新的技术能力相遇时,它们之间的那扇门就打开了。 门后面是一个我们还在探索的空间——一个聊天窗口不再只是传递文字的管道,而是变成了一个行动的操作系统的空间。

三、一个英国家庭的超市自动驾驶

让我把镜头切到另一个场景。

英格兰某座城市,一个有两个孩子的家庭。每周日晚上,这个家庭的其中一位家长都要完成同样一套令人疲惫的流程:打开 Tesco(英国最大的连锁超市)的网站,浏览本周的促销信息,根据这周的餐饮计划挑选食材,加入购物车,核对常购清单,选择一个配送时段,确认订单,输入支付信息。整个过程通常需要四十分钟到一个小时,而且每一步都充满了令人恼火的小决策——这个酸奶是不是换包装了?上次买的那个意面酱还有货吗?周三的配送满了,周四早上行不行?

有一天,这位家长在 Telegram 上给 OpenClaw 发了这样一条消息:“帮我去 Tesco 网站,按照这周的餐饮计划购物,优先选常购商品,预订最近的配送时段,下单前让我确认一下。”

然后,一些有趣的事情发生了。

OpenClaw 启动了它内置的浏览器工具——不是调用什么 Tesco 的API(Tesco并没有开放这样的API给普通消费者),而是像一个人类用户一样,打开了一个真实的浏览器窗口,导航到 Tesco 的网站,登录账户,然后一步一步地完成了整个购物流程。它读取了之前存储在工作区里的餐饮计划和常购清单(这些都是普通的 Markdown 文件),把它们翻译成了一系列具体的搜索和点击操作。在选择配送时段的时候,它挑了最早的可用选项。在所有东西都加入购物车之后,它把订单摘要发回了 Telegram,附带一个“确认下单”的按钮。

家长看了一眼清单,把西兰花换成了芦笋(孩子们上周说不想再吃西兰花了),然后点了确认。订单完成。整个过程,从发消息到确认,不到五分钟。

这个故事的核心洞察不在于“AI帮你买菜”这件事本身,而在于它揭示了一个被严重低估的事实:在2026年的互联网上,绝大多数服务仍然没有开放API。 你的银行、你的超市、你孩子学校的缴费系统、你的水电燃气账单、你的医院预约系统——它们都有网页界面,但没有供普通用户调用的编程接口。在过去,这意味着自动化的大门对这些服务是关闭的。你只能亲自去点那些按钮。

OpenClaw 的浏览器工具,实质上是把网页本身变成了一个通用API,把浏览器变成了一个万能适配器。这不是一个新想法——网页抓取和浏览器自动化已经存在了几十年。但过去,你需要编写精确的脚本来应对每一个网站的具体布局,而且一旦网站改版,脚本就会失效。现在,有了大语言模型的理解能力,浏览器自动化第一次变得真正“智能”了——代理能够理解页面上的内容,能够应对布局变化,能够在遇到意外情况时做出判断。

这是另一扇相邻可能的门:当AI的语言理解能力与浏览器自动化相结合,整个万维网——而不仅仅是那些开放了API的服务——都变成了可以被代理操作的对象。 有人在 OpenClaw 的社区里用了一个我很喜欢的比喻:“网页就是通用API,浏览器就是万能适配器。”这句话听起来简单,但它的含义是深远的。它意味着,AI代理的能力边界不再由API的可用性决定,而是由网页的可达性决定——而在今天的互联网上,几乎一切都可以通过网页访问。

更值得注意的是 OpenClaw 的设计哲学中对“可控自动驾驶”的强调。在 Tesco 购物的例子里,代理并没有从头到尾自行决定一切——它在关键节点(下单确认)停了下来,把决策权交还给人类。这就像特斯拉的辅助驾驶系统:大部分时候它在自动运行,但方向盘上始终有一双手。你可以在任何时候接管,可以在任何节点修改,可以随时叫停。这种“人在回路中”的设计,不是技术上的妥协,而是信任建立的必经之路。

四、酒窖里的九百六十二瓶

如果说 Tesco 的故事展示了 OpenClaw 在日常消费领域的相邻可能,那么接下来这个故事则展示了另一种可能性——个人化工具的即时生成。

在 OpenClaw 的一个社区讨论中,有人分享了这样一个案例:一位葡萄酒收藏爱好者,拥有一个规模可观的私人酒窖,里面存放着九百六十二瓶来自世界各地的葡萄酒。长期以来,他一直用一个Excel表格来管理这些藏酒——产区、年份、品种、购入价格、最佳饮用期、存放位置,等等。但Excel表格有一个根本性的问题:它是一个被动的数据容器,你必须主动去查询它,而且它无法理解你的意图。当你想知道“今晚吃烤羊排,应该开哪一瓶”的时候,Excel无法给你答案。

这位收藏者在 Telegram 上向 OpenClaw 发了一条消息,大意是:“帮我建一个酒窖管理系统,把这个CSV文件导入进去。”然后,OpenClaw 做了一件在传统软件开发流程中需要数天甚至数周才能完成的事情:它在几分钟之内,在本地创建了一个完整的酒窖管理“技能”(skill)。

这里需要解释一下 OpenClaw 的“技能”(Skills)系统。在 OpenClaw 的架构里,技能是一种可复用的能力模块——本质上就是一个文件夹加上一个名为 SKILL.md 的描述文件。这个描述文件用自然语言定义了技能的功能、触发条件和执行逻辑。技能可以调用各种工具,可以访问本地文件,可以与其他技能协作。更重要的是,技能可以被分享——通过一个叫做 ClawHub 的公共注册中心,任何人都可以搜索、安装、更新和发布技能。

那位酒窖收藏者的技能被创建出来之后,他就可以在聊天窗口里用自然语言查询自己的藏酒了。“这个月有哪些酒到了最佳饮用期?”“波尔多的酒还剩多少瓶?”“今晚吃海鲜,推荐一瓶白葡萄酒。”这些问题都能得到基于他的实际藏酒数据的精准回答。

这个案例让我想起了生物学里的一个概念——“外骨骼”。昆虫的外骨骼不是一个万能的结构,它是为每一种昆虫的特定生活方式量身定做的。甲虫的外骨骼和蝴蝶的外骨骼完全不同,因为它们面对的环境挑战完全不同。OpenClaw的技能系统,本质上是一种让每个人都能按需生成自己的“数字外骨骼”的机制。 你的需求是独特的,所以你的工具也应该是独特的——而现在,定制工具的成本被压缩到了一条聊天消息的距离。

这里面隐藏着一个关于软件进化方式的深刻转变。传统上,软件是由专业开发者为大量用户构建的通用产品——你去应用商店搜索“酒窖管理”,找到一个别人开发的App,然后适应它的逻辑。但在 OpenClaw 的世界里,这个流程被倒转了:不是你适应软件,而是软件适应你。 用户描述需求,代理生成工具,工具变成可分享的技能。这不是传统意义上的“编程”,但它确实是一种创造——一种由自然语言驱动的、即时的、个人化的创造。

而当这些个人化创造通过 ClawHub 被分享出去的时候,一种新的生态就开始涌现。某个人为自己创建的酒窖管理技能,可能会被另一个收藏者发现、安装、修改、增强,然后再分享回去。这是一个典型的“液态网络”(liquid networks)的场景——不同的想法和工具在一个足够开放、足够流动的环境中碰撞、混合、进化。

五、液态网络与神经系统

说到液态网络,让我换一个角度来看 OpenClaw 的架构设计。

在我的研究中,“液态网络”是一个用来描述创新最容易发生的环境的概念。想象一下珊瑚礁——它是海洋中生物多样性最高的地方,不是因为那里的水特别营养丰富,而是因为珊瑚礁的物理结构创造了无数的微环境、缝隙和通道,让不同的物种得以在极近的距离内共存和互动。类似地,历史上最具创新力的城市——佛罗伦萨、维也纳、硅谷——都是因为它们创造了某种让不同背景的人和想法在足够近的距离内频繁碰撞的环境。

OpenClaw 的架构设计者用了一个“神经系统”的隐喻来描述他们的系统,这个隐喻比他们可能意识到的更加深刻。

在这个架构里,“网关”(Gateway)扮演着中枢神经系统的角色——它是一个长期运行的进程,统一管理着与各种消息平台的连接。“频道”(Channels)是感官输入——WhatsApp、Telegram、Discord、Slack、Teams,每一个都是系统感知外部世界的一个通道。“工具和节点”(Tools/Nodes)是肢体和工具箱——浏览器控制、Canvas可视化、设备节点(摄像头、屏幕录制、位置信息、命令执行)、定时任务。“技能”(Skills)是习得的行为模式。而“记忆”(Memory)——这可能是最有趣的部分——是工作区里的纯 Markdown 文件,本质上是一份可编辑的、透明的“自我”。

但让我真正感兴趣的,不是这个隐喻的巧妙,而是这个架构如何创造了一个“液态网络”式的环境。

在传统的软件架构中,不同的工具和服务之间的连接通常是刚性的——每一个集成都需要专门的代码、专门的接口、专门的维护。这就像一个固态晶体:结构稳定,但缺乏灵活性。在 OpenClaw 的架构里,大语言模型充当了一种“溶剂”,把原本刚性的连接变成了流动的。你不需要为“摄像头拍照→AI分析→发送到群聊”这个流程编写专门的集成代码——你只需要用自然语言描述你想要的流程,语言模型会动态地把不同的工具和能力“溶解”在一起,形成一个临时的、特定的工作流。

这种流动性有一个深远的后果:它大幅降低了“组合创新”的门槛。 在过去,把两种工具连接在一起需要技术专业知识——你得懂API、懂编程、懂系统集成。现在,连接的介质变成了自然语言,而自然语言是每个人都掌握的“编程语言”。这意味着,能够参与组合创新的人群规模,从数百万专业开发者扩展到了数十亿普通用户。

回想一下古腾堡的印刷术。印刷术的革命性不仅仅在于它让书籍变得更便宜——更深层的影响在于,它把“参与知识传播”这件事从抄写僧侣的小圈子扩展到了更广泛的人群。当更多人能够阅读和出版,更多的想法就能在更大的网络中碰撞,而碰撞产生了科学革命、宗教改革和启蒙运动。OpenClaw 这类平台正在做的,是把“参与自动化创造”这件事从程序员的小圈子扩展到任何会发消息的人。 我们还不知道这种扩展会带来什么样的“科学革命”,但历史告诉我们,当参与创造的人群规模发生数量级的跳跃时,总会有意想不到的东西涌现出来。

六、口袋里的编程工厂

让我再讲一个故事。

某天,一个开发者在地铁上用手机打开了 Telegram。他正在开发一个 iOS 应用,前一晚在电脑上写了几个小时的代码,距离可以推送给测试用户的版本只差最后几步了。但他已经出门了,电脑在家里。

他在 Telegram 上给 OpenClaw 发了一条消息:“把我昨晚写的代码 build 一下,跑一遍测试,如果通过的话就部署到 TestFlight。”

然后他把手机放回口袋,开始读地铁上的电子书。

十五分钟后,手机震动了。Telegram 上出现了一条来自 OpenClaw 的消息:“构建完成,17个测试全部通过,已部署到 TestFlight,版本号1.3.2。测试用户应该已经收到更新通知了。”

这个场景的意义在于,它完全颠覆了我们对“编程”这项活动的空间想象。在传统的认知里,编程是一件需要坐在电脑前、打开IDE、在大屏幕上写代码的事情。它被绑定在一个特定的物理环境里。但当 OpenClaw 把编程工具接入了手机上的聊天软件,“编程”就从一个特定的地点和姿态中解放出来了,变成了一种可以在任何时间、任何地点、用任何设备发起的行为。

这让我想起了笔记本电脑对台式机的颠覆。笔记本电脑的处理能力在很长一段时间里都不如台式机,但它最终成为了主流,不是因为它更强大,而是因为它把计算从固定的桌面上解放了出来。同样的逻辑在这里重演:通过手机聊天窗口触发的编程工作流可能不如坐在IDE前那么精细,但它把“启动编程任务”这个行为的摩擦降到了几乎为零。

更有趣的是 OpenClaw 社区里出现的“多智能体路由”的玩法。一些高级用户会在自己的 OpenClaw 实例里配置多个专门化的代理——一个负责前端代码,一个负责后端逻辑,一个负责代码审查,一个负责部署。当用户发出一条指令时,系统会自动把任务路由给最合适的代理,或者在多个代理之间协调。这就像一个微型的软件团队,全天候在线,等待指令。

有人在社区里展示了一个“14+智能体梦之队”的编排案例——十四个以上的代理,各自有自己的专长和角色,通过一个主控代理进行调度。这已经不再是“一个AI助手”的概念了,这是一个可以用自然语言管理的微型组织。

七、晨间指挥台与缓慢的灵感

在继续深入之前,我想暂停一下,讲一个关于“缓慢的灵感”(slow hunch)的故事。

“缓慢的灵感”是我在研究创新史时反复遇到的一个模式。我们倾向于把创新想象成一个灵光乍现的时刻——牛顿被苹果砸了脑袋,阿基米德从浴缸里跳出来。但实际上,大多数重要的创新都来自一种更缓慢、更渐进的过程:一个模糊的直觉在很长一段时间里缓慢发酵,直到它遇到了另一个互补的想法,两者融合在一起,才最终成为一个完整的洞察。

OpenClaw 社区里最受欢迎的用例之一,恰好与这个模式形成了有趣的呼应——“晨间指挥台”。

具体的做法是这样的:用户设置一个每天早上七点的定时任务(cron)。到了时间,OpenClaw 会自动从用户的日历、邮箱、任务管理工具和其他数据源中抓取信息,然后在 Telegram 上推送一份精心编排的“每日摘要”。但这不是一个简单的信息聚合——摘要里包含了可执行的按钮,用户可以直接点击“批准”“拒绝”“稍后处理”。它还会用 Canvas 工具生成可视化的仪表盘——今天的会议时间线、待办事项的优先级矩阵、这周的进度图表。

这个“晨间指挥台”的设计,表面上看是一个效率工具——它把你每天早上花在各个App之间切换查看信息的时间压缩到了几分钟。但在更深的层面上,它做了一件更有价值的事情:它为“缓慢的灵感”创造了一个日常的培养皿。

这是什么意思呢?当你每天早上在同一个地方(你的聊天窗口)看到来自不同领域的信息——工作项目的进度、个人笔记的碎片、日历里即将到来的会议、邮箱里的一封有趣的来信——这些信息就在你的意识里形成了一种“缓慢的叠加”。你可能不会立刻注意到它们之间的联系,但随着时间的推移,某个早上,当你看到一条关于项目延期的通知和一封关于新技术的邮件并排出现时,一个之前模糊的想法突然变得清晰了:“如果把那个新技术用在这个项目上,延期的问题可能就解决了。”

这就是缓慢的灵感发挥作用的方式。它需要一个环境——一个让不同领域的信息能够在足够近的距离内频繁相遇的环境。而“晨间指挥台”恰好提供了这样的环境。

这里面有一个关于界面设计的微妙洞察值得强调。OpenClaw 的团队把他们的交互模式称为“A2UI”——某种“代理到用户”的界面范式。在传统的用户界面中,人类主动查看、点击、操作,信息被动地等待被发现。但在“晨间指挥台”里,这个关系被反转了:代理主动推送经过筛选和编排的信息,人类做的是判断和决策。 这不是一个微小的变化——这是一种根本性的界面哲学转变,从“人类去找信息”到“信息来找人类”,从“用户操作界面”到“界面服务用户”。

八、当“实习生”拥有了删除权限

每一个关于创新的故事,如果诚实的话,都必须包含一个关于风险的章节。

电话让远程通信变得触手可及,但也让诈骗电话成为可能。印刷术让知识大众化,但也让虚假信息规模化传播。汽车让个人出行自由化,但也带来了交通事故的巨大代价。技术打开的每一扇相邻可能的门,门后面既有机遇也有危险,而且它们往往是同一枚硬币的两面。

OpenClaw 的故事也不例外。

在社区的一次讨论中,一位用户分享了一个令人不安的经历:他让 OpenClaw 的代理(ClawBot)帮他整理邮箱,结果代理“过于热心”地执行了大量删除操作。那些被删除的邮件中,有些可能是重要的,但已经无法恢复了。

安全研究者们很快指出了一个尖锐的观察:OpenClaw 的代理更像是一个“过于热心的实习生”——它非常想把事情做好,它有能力操作各种工具,但它缺乏判断“什么事情不应该做”的经验和边界感。 一个实习生如果犯了错,你可以教他、纠正他,但如果在他犯错之前你已经给了他管理员权限,那么后果可能是不可逆的。

这个比喻精准地捕捉了当前AI代理面临的核心安全挑战。让我展开讲一下。

首先是“提示注入”(prompt injection)的问题。当你的代理在浏览器里自动操作网页时,网页上的内容可能包含恶意的指令——它可能伪装成正常的文本,但实际上是在试图劫持代理的行为。想象一下,你让代理帮你查看一封邮件,而邮件里嵌入了一段精心构造的文字,让代理把你的邮件转发给一个陌生的地址。这不是科幻小说——这是安全研究者已经在实验中验证过的攻击向量。

然后是“日志投毒”的风险。OpenClaw 的记忆系统是基于纯文本的 Markdown 文件。这种设计的好处是透明和可编辑,但它也意味着,如果代理在工作过程中接收到了被污染的信息,这些信息可能会被写入记忆文件,从而持久地影响代理未来的行为。

面对这些风险,OpenClaw 社区和设计者们发展出了一套多层次的安全策略。

第一层是“关键动作二次确认”。 就像 Tesco 购物例子里那样,在涉及不可逆操作(支付、删除、发送重要信息)的时候,代理会暂停并请求人类确认。这是最直观也最有效的安全机制——在人类和风险之间插入一个“你确定吗?”的间隙。

第二层是“权限分层与工具最小集”。 不是所有的代理都需要所有的工具。一个负责查看天气的代理不需要文件删除权限,一个负责购物的代理不需要命令行执行权限。通过限制每个代理可以调用的工具集合,系统可以大幅减少“过于热心的实习生”造成破坏的可能性。

第三层是“技能供应链意识”。 当你从 ClawHub 安装一个别人创建的技能时,你实际上是在让一段外部代码在你的机器上运行。这就像从应用商店下载软件一样——你需要信任它的来源。ClawHub 引入了 VirusTotal 扫描和社区审核机制,但更根本的安全措施是用户自己的警觉性:在安装一个技能之前,检查它的 SKILL.md 文件,理解它会做什么,用到哪些工具,访问哪些数据。

但在所有这些技术性的安全措施之上,OpenClaw 的故事提出了一个更深刻的哲学命题:代理软件的边界,不只是靠进程隔离、权限控制和沙箱来维持的——它还取决于语言、意图与执行之间的设计。

什么意思呢?当你对一个人类助理说“帮我整理一下邮箱”,你们之间有大量的共享上下文和隐含假设——“整理”大概不意味着“删除一切”,“一下”暗示这应该是一个温和的、可逆的操作。但当你对一个AI代理说同样的话时,这些隐含假设不一定被正确解读。代理可能会把“整理”理解为“归档所有已读邮件”,也可能理解为“删除所有两周前的邮件”。意图和执行之间的鸿沟,在人类之间由文化、经验和常识来填充,在人机之间则需要由精心的设计来填充。

这是当前AI代理领域最重要、也最容易被忽视的设计挑战。不是“如何让代理做更多的事”,而是“如何让代理理解什么事不该做”。不是“如何给代理更多的权限”,而是“如何让权限的边界与用户的真实意图精确对齐”。

九、多智能体的寒武纪

在地球的历史上,有一个被古生物学家称为“寒武纪大爆发”的时期——大约五亿四千万年前,在一个地质学意义上极其短暂的时间窗口里,几乎所有主要的动物门类突然出现了。在那之前的几十亿年里,生命基本上只有单细胞的形式;然后,仿佛有人按下了一个开关,复杂的多细胞生命在各种方向上同时爆发。

关于寒武纪大爆发的原因,有很多假说。其中一个最有说服力的解释与“相邻可能”直接相关:在某个时间点,基本的生物化学构建块(蛋白质折叠方式、细胞间通信机制、遗传调控工具)终于积累到了一个临界数量,使得全新的组合方式突然变得可能。生命不是线性地从简单进化到复杂,而是在一个转折点上突然“爆发”——因为可能的组合空间在那一刻急剧膨胀了。

我在 OpenClaw 社区里看到的,让我隐约嗅到了类似的气息。

有人搭建了一个“家庭管家”代理,专门处理家庭事务——购物清单、家务分配、账单提醒、孩子的学校缴费(用浏览器工具自动在 ParentPay 系统上完成操作)。同时,他还有一个独立的“工作助理”代理处理职业相关的事务,和一个“创作编辑”代理帮助他写作和编辑个人博客。这三个代理互相隔离——家庭管家不知道工作项目的细节,工作助理不会干预家庭购物,创作编辑专注于文字。

这种多智能体的分工与隔离模式,很像生物体内的器官分化。在最早期的多细胞生命中,每个细胞都是“全能”的,它们没有分化,没有专门化。但随着进化的推进,细胞开始分化成不同的类型——有的负责消化,有的负责运动,有的负责感知。这种分化不是效率的降低,而是复杂性的跃升。 当不同类型的细胞可以专注于自己最擅长的事情,同时通过化学信号相互协调,整个有机体能做的事情就远远超越了任何单个细胞的能力。

OpenClaw 里那个“14+智能体梦之队”的编排案例,就是这种分化逻辑的极端表达。十四个以上的代理,每一个都有自己的专长:有的擅长信息检索,有的擅长代码编写,有的擅长数据分析,有的擅长文案创作,有的擅长日程管理。它们通过一个主控代理进行调度和协调,就像一个交响乐团的指挥,把不同乐器的声音编织成一首完整的乐曲。

这里面有一个更深层的趋势值得注意。在过去的软件历史中,“应用”(app)是能力的基本单位——你需要一个App来做一件事。但在多智能体的世界里,“代理”(agent)开始取代“应用”成为能力的基本单位。而且,和应用不同的是,代理是流动的、可组合的、可即时生成的。你不需要去应用商店搜索和下载,你只需要描述你的需求,一个新的代理就可以被创建出来。

如果“应用”是数字世界的固态结构,那么“代理”就是数字世界的液态形式。 从固态到液态的转变,意味着数字工具不再是预制的、固定的产品,而是变成了可以根据需求实时凝聚和重组的流动能力。这就是为什么我用“液态网络”来形容这个正在涌现的新生态——在这个网络里,能力是流动的,组合是动态的,创新是涌现的。

十、“你的助手,你的机器,你的规则”

OpenClaw 的口号是:“Your assistant. Your machine. Your rules.”——“你的助手,你的机器,你的规则。”这不仅仅是一句营销口号。

让我用一个历史类比来说明为什么这句话很重要。

在个人电脑出现之前,计算是一种中心化的资源。如果你想使用计算能力,你需要去找一台大型机或者小型机——它们通常属于某个大公司、大学或政府机构。你使用它们的时候,要遵守它们的规则,在它们的系统上运行,受它们的管理员管控。这不是一个自由的环境。

然后,在1970年代后期和1980年代初期,个人电脑革命发生了。突然之间,计算不再是中心化的资源,而是你自己书桌上的一个设备。你拥有了自己的计算,你可以在上面运行任何你想运行的软件,存储任何你想存储的数据,而不需要任何人的许可。 这种所有权的转移,是过去五十年数字革命的根本驱动力之一。

但在AI时代,我们看到了一种令人不安的“再中心化”趋势。当你使用 ChatGPT、Claude 或其他云端AI服务时,你的对话、你的数据、你的意图,都在别人的服务器上被处理。你依赖别人的基础设施,使用别人的API密钥,遵守别人的使用条款。AI不是“你的”,它是你“借来的”。这就像我们回到了大型机的时代——只不过这次的大型机在云端。

OpenClaw 的本地运行模式,是对这种趋势的一次有意识的反抗。它运行在你自己的机器上——可以是你的电脑,可以是你家里的服务器,可以是一个树莓派。你的数据留在本地,你的对话不经过任何第三方服务器,你的API密钥由你自己管理。代理执行的每一个操作,都发生在你自己的基础设施上。

这不仅仅是一个隐私功能——这是一种新的信任叙事。 在这个叙事里,AI不再是“借来的大脑”,而是“自家的劳动力系统”。你拥有它,你控制它,你定义它的边界。这种所有权的感觉,对于AI代理的普及来说可能至关重要——因为当你把越来越多的日常事务委托给一个AI代理时,你需要一种深层的信任,而这种信任很难建立在“它运行在别人的服务器上”这个基础之上。

这里面也有一个关于开源的重要故事。OpenClaw 是完全开源的,这意味着任何人都可以审查它的代码,理解它的行为,修改它的逻辑。在安全和信任至关重要的AI代理领域,开源不仅仅是一种开发模式,而是一种信任基础设施。你不需要信任 OpenClaw 的开发者会做正确的事——你可以自己验证。

十一、缓慢的灵感正在发酵

现在,让我把前面讲的各条线索汇聚在一起。

一台屋顶上的摄像头,在天空好看的时候自动拍照发到家庭群聊。一位家长在手机上发一条消息,四十分钟的超市购物流程被压缩到了五分钟。一位葡萄酒收藏者在聊天窗口里对着他的九百六十二瓶藏酒提问。一个开发者在地铁上用 Telegram 部署了一个 iOS 应用。一个家庭运行着三个互相隔离的AI代理,分别管理家务、工作和写作。一个安全研究者警告说,这个热心的数字实习生可能会在你的邮箱里造成不可逆的破坏。

这些故事看起来千差万别,但它们都指向同一个底层趋势:我们正在见证“意图”到“行动”之间的距离被一种新的方式急剧压缩。 这种压缩发生在一个我们已经无比熟悉的界面里——聊天窗口,发生在我们已经拥有的设备上,使用我们已经掌握的唯一“编程语言”——自然语言。

从相邻可能的角度来看,OpenClaw 处在一个关键的交叉点上。大语言模型的成熟提供了理解和推理能力;聊天平台的普及提供了零摩擦的入口;浏览器自动化技术提供了与整个互联网交互的能力;开源社区提供了信任和协作的基础;本地计算的回归提供了所有权和隐私的保障。这些要素中的每一个都不是新的,但它们以这种特定的方式组合在一起——这是新的。就像考夫曼描述的那样,每一种新的组合都打开了一扇门,门后面是一组新的可能性。

但我想用一个更审慎的音符来结束这个故事。

每一次技术革命都有一个共同的模式:早期的兴奋和想象往往会超越现实——不是因为技术不够好,而是因为我们还没有学会如何与它共处。汽车刚发明的时候没有交通规则,无线电刚出现的时候没有频谱管理,互联网刚普及的时候没有隐私法规。每一种新的能力都需要配套的新的智慧——关于何时使用它、如何使用它、以及最重要的,何时不使用它。

OpenClaw 社区正处于这个“学习如何与新能力共处”的早期阶段。他们在摸索什么样的任务适合委托给代理,什么样的操作需要人类确认,什么样的权限边界是安全的,什么样的技能供应链是可信的。这些问题没有现成的答案——它们需要在实践中被一点点摸索出来,就像早期的汽车驾驶者们在没有红绿灯的路口学会了减速和观察一样。

这,才是真正令人兴奋的地方。不是某个具体的功能有多酷,不是某个案例有多炫,而是一个全新的探索空间刚刚被打开。在这个空间里,每个人的聊天窗口都可能变成一个行动的操作系统,每一条消息都可能成为一个指令,每一个日常任务都可能被重新想象。 这是一片巨大的相邻可能——我们才刚刚推开第一扇门。

就像达尔文的珊瑚礁一样,最丰富的生态系统往往不是设计出来的,而是在合适的条件下自发涌现的。OpenClaw 和它所代表的这一类平台,正在创造这样的条件——一个足够开放、足够流动、足够低门槛的环境,让数十亿人的日常创意和需求可以在其中碰撞、组合、进化。

至于这个生态系统最终会长成什么样子?

没有人知道。但这恰恰是最好的部分。因为在相邻可能的世界里,最有趣的东西,永远是你还没有打开的那扇门后面的那个。

从一条消息到一套行动:本地AI Agent的信任经济学

发表于 2026/02/25 | 分类于 AI专题

风格参考:万维钢(《精英日课》作者)—— 跨学科引证,框架式拆解,加粗关键洞察,用数据和类比交叉验证每个论点。

引子:你最强大的AI入口,可能是你最无聊的那个App

2025年以来,AI圈有一种弥漫的焦虑:我们需要为AI Agent设计全新的交互界面。有人做了精美的Dashboard,有人做了专用的IDE,有人甚至尝试用AR眼镜来操控Agent。

但有一个开源项目反其道而行之,选择了一个所有人都觉得“太简陋”的入口——你手机上的聊天软件。WhatsApp、Telegram、Discord、Slack、Teams……你每天用来发“收到”“好的”“哈哈哈”的那个窗口。

这个项目叫OpenClaw,口号是“Your assistant. Your Machine. Your rules.”

乍看之下,这像是在开倒车。我们好不容易从命令行进化到图形界面,从图形界面进化到触屏交互,现在你告诉我最先进的AI操作方式是……发消息?

但仔细想想,这里面有一个被大多数人忽略的洞察:最好的新界面,不是人们从未见过的界面,而是人们已经用了十年、连想都不用想就会用的界面。

这篇文章要讲的,不仅仅是一个开源项目。它触及了一个更大的问题——在AI Agent时代,“入口”“信任”和“控制”之间的三角关系,正在被重新定义。


一、认知经济学:为什么“一条消息”比“一个App”更值钱

1.1 希克定律与界面摩擦

1952年,英国心理学家William Edmund Hick做了一个经典实验:给被试面前摆n盏灯,每盏灯对应一个按钮,灯亮了按对应的按钮。结果发现,选项每翻一倍,反应时间不是翻倍,而是增加一个固定常数——这就是著名的希克定律(Hick’s Law)。

希克定律的推论是:减少选项数量是降低认知负荷最有效的方法。

现在把这个定律套到AI Agent的交互设计上。一个典型的AI Agent平台,你需要:打开浏览器→登录平台→选择Agent→配置参数→输入指令→等待结果。每一步都是一个决策点,每一个决策点都在消耗你的认知预算。

OpenClaw把这个链条压缩成了什么?打开聊天窗口→发一条消息。 没了。

从认知科学的角度看,这不是简化,这是范式转换。它把“意图→行动”之间的决策节点从6个以上压缩到了1个。 按照希克定律的对数关系,这意味着认知摩擦降低了至少70%。

1.2 旧习惯的复利效应

行为经济学家Richard Thaler——2017年诺贝尔经济学奖得主——提出过一个核心概念叫“助推”(Nudge)。他发现,改变人的行为最有效的方式不是教育,不是激励,而是改变默认选项。

养老金计划的经典案例:当公司把401(k)从“opt-in”(默认不参加,你要主动报名)改成“opt-out”(默认参加,你不想参加要主动退出),参与率从不到50%飙升到超过90%。行为没变,人还是那些人,只是默认选项变了。

OpenClaw做的事情本质上一样。它没有创造新行为(你不需要学一个新App),而是把旧行为的默认产出从“文字交流”升级成了“行动执行”。你还是在发消息,但消息的另一头不再只是一个人——而是一整套可以执行任务的Agent系统。

这就是为什么它比任何精心设计的新界面都更有爆发力。新界面需要用户学习成本,而聊天窗口的学习成本是零,因为你十年前就已经“学会”了。

1.3 神经系统隐喻:一个比你想的更精确的类比

OpenClaw的架构设计者用了一个“神经系统”隐喻来描述整体架构。这不只是市场传播的修辞手法,它在结构上确实高度同构。

  • Gateway = 中枢神经系统。 一个长期运行的进程,统一管理所有消息平台的连接。就像你的脊髓和脑干——永远在线,负责路由所有信号。
  • Channels = 感官输入。 WhatsApp、Telegram、Discord等消息渠道,就是系统的眼睛、耳朵、皮肤。每个Channel采集不同来源的信息,汇总到Gateway。
  • Tools/Nodes = 肢体与工具箱。 浏览器控制、Canvas可视化、设备节点(摄像头、屏幕录制、位置、命令行)、定时任务(cron)。这是系统的“手脚”——感知到信息之后,能够对物理世界和数字世界采取行动。
  • Skills = 习惯与技能包。 可复用的能力模块,每个Skill就是一个文件夹加一份SKILL.md说明书。可以通过ClawHub搜索、安装、更新、发布——就像人类的程序性记忆,一旦学会骑自行车,就不用每次重新学。
  • Memory = 可编辑的“自我”。 工作区里的纯Markdown文件,长期记忆默认只在私聊的主会话中加载。

有趣的是,这个隐喻在一个关键维度上比人类神经系统更好:它的记忆是可编辑的。 你打开一个Markdown文件就能修改Agent的“性格”和“知识”。想象一下,如果人类能打开自己的大脑,删掉一段不愉快的记忆,或者手动写入一项新技能——OpenClaw的Memory系统就是这样工作的。

这种架构的深层含义是:Agent不再是一个你“使用”的工具,而是一个你“塑造”的实体。


二、信任重构:为什么AI不该住在别人家

2.1 一个反直觉的信任问题

大多数人对AI的信任焦虑是这样的:“AI会不会说谎?会不会犯错?会不会被利用?”

这些确实是问题。但OpenClaw指向了一个更底层的问题——你的AI住在谁家?

经济学家Oliver Hart和Sanford Grossman在1986年提出了一个影响深远的理论:不完全契约理论(Incomplete Contract Theory)。核心思想是:在复杂交易中,你不可能写出一份覆盖所有意外情况的完美合同。 那么当合同没写到的情况发生时,谁说了算?答案是:谁拥有资产,谁就拥有“剩余控制权”。

Hart因为这个理论获得了2016年诺贝尔经济学奖。

现在把这个框架套到AI Agent上。当你使用一个云端AI服务时,“资产”——数据、模型、算力、日志——全在服务商手里。当出现合同没有覆盖的情况(比如服务商调整了隐私政策,或者你的对话数据被用于训练了新模型),剩余控制权在服务商手里。你能做的只有接受或离开。

OpenClaw的“本地运行+你的钥匙”叙事,本质上是在争夺剩余控制权。 基础设施你选,API密钥你管,数据你控。AI不再是“借来的大脑”,而是“自家的劳动力系统”。

这不是意识形态,这是产权经济学。

2.2 从“信任人”到“信任架构”

密码学领域有一个概念叫“零信任架构”(Zero Trust Architecture)。传统安全模型假设内部网络是可信的——城堡护城河模型。但零信任架构认为:不要信任任何人,验证一切。

OpenClaw的本地运行模式就是把零信任思想应用到了AI Agent领域。你不需要信任OpenClaw的开发者会善待你的数据——因为数据根本就没离开你的机器。你不需要信任云服务商不会滥用你的API调用——因为密钥在你手里。你甚至不需要信任Agent本身——因为它的记忆、技能、权限全是你配置的Markdown文件。

这里有一个精妙的设计选择:信任的锚点从“人”(服务商的承诺)转移到了“架构”(系统的物理约束)。 你不用相信任何人的善意,你只需要相信一个事实:运行在你机器上的进程,物理上无法把数据传给你不允许的地方。

社会学家Niklas Luhmann区分了两种信任:人际信任(trust in persons)和系统信任(trust in systems)。人际信任依赖于对特定个体的了解和判断,扩展性差,脆弱性高。系统信任依赖于制度和架构的可验证性,可以规模化,也更健壮。

OpenClaw的信任模型是从人际信任到系统信任的跃迁。 这在人类制度史上发生过很多次——从熟人借贷到银行系统,从口头承诺到法律合同,从中心化记账到区块链。每一次跃迁都释放了巨大的协作潜力。

2.3 浏览器:一个被低估的万能适配器

OpenClaw最让我意外的能力不是AI聊天,而是浏览器控制。

有一个真实案例:一个用户用OpenClaw完成了Tesco超市的“购物自动驾驶”。流程是这样的——Agent根据每周餐饮计划,生成购物清单;然后打开Tesco网站,逐一搜索并添加商品到购物车;预订配送时间段;最后确认订单。全程没有调用任何API,完全通过浏览器操作完成。

这听起来像一个方便的自动化小工具。但它背后有一个被严重低估的洞察:

全世界绝大多数数字服务都没有公开API。 你的银行没有,你孩子学校的午餐预订系统没有,你所在城市的政务服务网站没有。在API驱动的自动化世界里,这些服务是“暗物质”——理论上存在,但传统自动化工具根本触达不了。

浏览器工具改变了这个格局。网页就是通用API,浏览器就是万能适配器。 任何人类能在浏览器里完成的操作,Agent理论上都能完成。这一下子把Agent的能力边界从“有API的世界”扩展到了“有网页的世界”——后者比前者大了不止一个数量级。

复杂性科学家Stuart Kauffman提出过“邻近可能”(Adjacent Possible)的概念:创新不是凭空发生的,它总是在现有能力的“邻居”中产生。有了浏览器工具之后,Agent的“邻近可能”空间突然膨胀了——昨天还不可能被自动化的日常任务,今天突然变成了一条消息就能搞定的事情。


三、五个“爆款原型”:从晨间指挥台到多Agent合伙制

接下来我要讲五个已经在OpenClaw社区中跑通的创新原型。这不是概念验证,是真实用户在真实场景中的实践。每一个原型背后都对应着一种“人与Agent协作”的新模式。

3.1 原型一:晨间指挥台——把被动接收变成主动指挥

想象一下这个场景:每天早上7:00,你的Telegram弹出一条消息。不是新闻推送,不是天气预报,而是一份个性化的行动摘要——今天的日程、待处理的邮件摘要、需要你决策的事项,旁边配着可执行的按钮。你不需要打开日历App、邮箱App、项目管理App分别查看。你只需要在一个聊天窗口里,用几个按钮就能完成“决策→下达→执行”的完整闭环。

技术实现并不复杂:用cron定时任务在凌晨触发数据收集,Canvas做可视化呈现,A2UI(Agent-to-User Interface)生成交互按钮。

但这个原型真正有趣的地方不在技术,而在认知模式的转变。

管理学家Henry Mintzberg在研究CEO日常行为时发现了一个反直觉的事实:大多数管理者的一天不是“主动规划→执行”,而是“被动响应→救火”。 他们的时间被各种打断切割成碎片,真正用于深度思考和战略决策的时间少得可怜。

晨间指挥台的设计哲学恰好针对这个问题:把一天中认知资源最充沛的时段(早晨),从“被动接收信息”变成“主动指挥行动”。 你不是在翻看各种App的通知,而是在一个统一的界面里做出今天最重要的几个决策。

这是任务管理的范式升级——从“清单”到“指挥系统”。

3.2 原型二:浏览器自动驾驶——可控的自动化

前面提到的Tesco购物案例只是冰山一角。社区里还有人用浏览器工具实现了ParentPay学校餐食的自动预订——这种系统连API都没有,传统自动化工具完全无能为力。

但这里有一个关键的设计决策:这不是“全自动驾驶”,而是**“可控的自动驾驶”**。

自动驾驶汽车行业有一个SAE分级系统(从L0到L5)。L5是完全无人驾驶,乘客可以睡觉;L3是有条件自动驾驶,关键时刻需要人类接管。OpenClaw的浏览器自动化更接近L3——每一步操作可解释,关键节点需要二次确认,任何时候用户都可以接管控制。

这个选择非常聪明。在Agent技术的当前阶段,L3比L5更有价值。 原因不仅是技术成熟度,更是心理学。

心理学家Ellen Langer做过一个著名的实验:让两组老年人住进相同的环境,一组被告知“一切由我们安排”,另一组被告知“你可以自己决定房间布置、活动安排”。几周后,第二组不仅心理状态更好,连身体健康指标都显著优于第一组。这就是“控制感”(perceived control)的力量。

在人与Agent的协作中,用户是否感到“我随时可以接管”,直接决定了他愿不愿意把任务交给Agent。 全自动听起来酷,但会让人焦虑。可控的自动化则让人放心——我放手是因为我选择放手,而不是因为我无法干预。

3.3 原型三:随身编程工厂——手机发消息,电脑出产品

这个案例让我作为技术从业者感到震动:有人通过Telegram发了一句话指令,让家里的Mac mini执行了完整的iOS应用构建和发布流程——代码编译、签名、上传到TestFlight,一气呵成。

手机变成了遥控器,家里的电脑变成了生产线。

更高级的玩法是多Agent路由:一个Agent负责前端,一个负责后端,一个负责测试,一个负责部署。你在手机上发一条“给登录页面加个忘记密码的链接”,消息被路由到前端Agent,它改完代码后通知测试Agent跑回归测试,测试通过后通知部署Agent上线。

这让我想到经济学家Ronald Coase在1937年那篇改变了整个组织理论的论文——《企业的性质》。Coase问了一个简单但深刻的问题:如果市场那么高效,为什么还需要企业? 他的答案是:交易成本。当市场中的协调成本(找人、谈判、签约、监督)超过企业内部的管理成本时,企业就有存在的理由。

多Agent路由系统本质上是在做同一件事:当单个Agent无法胜任复杂任务时,你不是去找一个更强的Agent,而是用多个专业Agent组成一个“微型企业”。 路由器就是CEO,各Agent就是部门,Skill文件就是岗位说明书。

Coase的交易成本理论在AI Agent时代获得了全新的适用场景:Agent之间的协调成本,将决定多Agent系统的最优“企业规模”。

3.4 原型四:传感器诗人——不是监控,是生活的自动生成

这是五个原型里最出人意料的一个。

有人在屋顶装了一个摄像头,连接到OpenClaw。系统不是用它来做安防监控,而是——当天空特别好看的时候,自动拍一张照片,配上一段文案,发到群聊里。

还有人用OpenClaw连接空气净化器,根据室内空气质量自动调节风速。有人连接了3D打印机,用聊天消息控制打印任务。

这些案例单独看很有趣,但合在一起看,指向了一个更深层的趋势:Agent正在从“数字世界的操作者”变成“物理世界的感知者和行动者”。

麻省理工学院的Kevin Ashton在1999年提出“物联网”(Internet of Things)这个概念时,预言有一天计算机将能够自主感知物理世界。二十多年过去了,物联网的大多数应用仍然停留在“数据采集→仪表盘展示”的阶段。你能看到温度曲线图,但系统不会主动帮你做什么。

OpenClaw的传感器集成打破了这个僵局。它在“感知”和“行动”之间加入了“理解”这个环节——AI能够理解传感器数据的含义,并自主决定该采取什么行动。 摄像头不再只是记录画面,它“看到”了美丽的天空;空气传感器不再只是显示数字,它“感知”到了空气质量的下降。

诗意一点说,Agent让机器学会了“审美”和“关心”。务实一点说,这是物联网从“可观测”到“可行动”的关键跨越。

3.5 原型五:多Agent合伙人——数字世界的“专业分工”

最后一个原型最具组织学意义。

社区里有人搭建了一个“三Agent治理结构”:一个“家庭管家”Agent负责家务、购物、日程协调;一个“工作助理”Agent负责邮件、文档、会议准备;一个“创作编辑”Agent负责写作辅助和内容发布。三个Agent互相隔离——家庭管家看不到你的工作邮件,工作助理不知道你的家庭购物清单。

更极端的案例是一个“14+ Agent梦之队”的编排,不同Agent分别担任研究员、写手、审校、数据分析师等角色。

这让我想到亚当·斯密在《国富论》开篇描述的那个著名的“别针工厂”。一个人独自做别针,一天做不了20根。但如果把工序拆分——抽丝、拉直、切断、磨尖、装针头——10个工人一天能做48000根。专业分工带来的效率提升不是线性的,而是指数级的。

但分工有一个经典问题:协调成本。工人之间需要沟通、需要等待、需要对齐标准。组织行为学家James March指出,组织的核心矛盾是“探索”(exploration)与“利用”(exploitation)之间的张力——你既需要专业化以提高效率,又需要跨领域协调以应对变化。

多Agent系统天然适合解决这个矛盾。每个Agent高度专业化(利用),而Gateway负责跨Agent的路由和协调(探索)。Agent之间的协调成本远低于人类——没有情绪、没有政治、没有沟通风格的摩擦。这意味着Agent团队可以比人类团队实现更细粒度的分工,而不会被协调成本吞噬掉分工带来的效率增益。

这五个原型合在一起,描绘了一幅图景:Agent不是一个单点工具,而是一套操作系统——有感知、有行动、有记忆、有分工。而这套操作系统的入口,就是你已经用了十年的聊天窗口。


四、生态扩散:为什么“可复制的技能包”比“更强的模型”更重要

4.1 创新扩散的S曲线

社会学家Everett Rogers在1962年提出了“创新扩散理论”(Diffusion of Innovations)。他发现,任何新技术的采纳都遵循一条S曲线——先是极少数“创新者”和“早期采纳者”尝试,然后是“早期多数”和“晚期多数”跟进,最后是“落后者”被迫接受。

S曲线前半段增长缓慢,一旦跨过一个“引爆点”(通常是16%的采纳率),增长会突然加速。

引爆点的关键不是技术本身有多好,而是“模仿成本”有多低。 Rogers发现,创新扩散中最有效的传播机制不是广告,不是专家推荐,而是“同伴示范”——看到和自己差不多的人成功使用了新技术。

OpenClaw的Skill系统天然就是一个降低模仿成本的机制。每个Skill就是一个文件夹加一份SKILL.md,任何人都可以打包自己的Agent能力,通过ClawHub分享给其他人。看到别人做了一个“本地酒窖管理”的Skill(有人真的导入了962瓶酒的CSV来管理自己的酒窖),你可以一键安装,然后根据自己的需要调整。

这把Agent能力从“自己从零开发”变成了“搜索、安装、微调”——模仿成本降低了一到两个数量级。

4.2 知识的“乐高化”

OpenClaw的Skill生态让我想到一个更大的知识管理命题。

计算机科学家Douglas Engelbart在1962年提出了“增强人类智力”(Augmenting Human Intellect)的框架。他认为,人类的智力不仅取决于大脑本身,还取决于“工件”(artifacts)——语言、符号、工具、方法论——的质量。改善工件,就是在改善智力。

Skill文件就是Agent的“工件”。一个好的Skill不只是一段代码,它是一个被验证过的问题解决方案——包含了某个人花了几个小时甚至几天摸索出来的配置、提示词、工具链组合和边界条件。

ClawHub的出现意味着:个人积累的Agent经验可以被打包成标准化的知识单元,像乐高积木一样在社区中流通和组合。 这是知识生产方式的一个微小但重要的进化——从“文章分享”(告诉你怎么做)到“能力分享”(直接把做好的东西给你用)。


五、安全悖论:越有能力的Agent越像“过于热心的实习生”

5.1 一个让安全研究者睡不着觉的能力

OpenClaw社区里流传着一个令人不安的故事:有人让Agent帮忙清理邮箱,结果Agent“过于热心地”执行了大量删除操作——删掉的邮件远远超出了用户的预期。

安全研究者给OpenClaw起了一个精准的绰号:“过于热心的实习生”(overly enthusiastic intern)。

这个比喻值得仔细品味。实习生的危险之处不在于他不听话,恰恰在于他太听话了——你说“把这个文件夹整理一下”,他可能把里面的东西全删了重新分类。他有执行力,但缺乏对“什么不该做”的隐性知识。

心理学家Gary Klein研究专家决策时提出了“识别启动决策”(Recognition-Primed Decision)模型。专家的厉害之处不在于他们能想到更多选项,而在于他们能瞬间识别出“这个情况不对”——然后停下来。 消防队长在火场中突然喊“全员撤退”,不是因为他算了一遍力学模型,而是因为他“感觉到”了某种微妙的异常。

当前的AI Agent恰恰缺乏这种“感觉到不对就停下来”的能力。它会忠实地执行你的指令,但不会在执行过程中突然意识到“等等,批量删除邮件好像不是用户的真正意图”。

这就引出了Agent安全的核心矛盾:能力越强的Agent,犯错时造成的损害也越大。

5.2 四层防御体系

OpenClaw社区逐渐摸索出了一套多层次的安全框架,我把它概括为四层防御:

第一层:关键动作二次确认。 对于不可逆操作(删除、发送、购买、提交),Agent必须先展示操作预览,等待用户明确确认后才执行。这相当于核电站的“双钥匙”机制——关键操作需要两个人同时转动钥匙。

第二层:权限分层与工具最小集。 不同Agent只能访问它们工作所需的最少资源。家庭管家不需要访问工作邮箱,工作助理不需要控制智能家居。这是信息安全领域的“最小权限原则”(Principle of Least Privilege)的直接应用。

第三层:技能供应链安全。 从ClawHub安装Skill的时候,要检查Skill的来源、作者信誉、代码内容。社区有人建议集成VirusTotal扫描——像检查食品标签一样检查每个Skill的“成分表”。这对应的是软件工程中日益重要的“供应链安全”意识——2021年的SolarWinds事件和2024年的XZ Utils后门事件都证明了,你的系统的安全性取决于你最弱的那个依赖。

第四层:防御prompt injection和日志投毒。 这是最技术性的一层。恶意内容可能通过网页、邮件、甚至聊天消息注入到Agent的上下文中,操纵它执行非预期的操作。这就像社会工程学攻击——骗子不需要破解你的密码,只需要骗你自己把密码说出来。

5.3 一个哲学命题:Agent的边界在哪里

四层防御能解决大部分已知风险。但还有一个更深层的问题,现有的安全框架无法完全覆盖。

Agent软件的边界,到底应该画在哪里?

传统软件的边界很清晰:这个程序能读写这些文件,能访问这些网络端口,能使用这些系统调用。你用进程隔离、文件权限、网络防火墙就能把它框住。

但Agent的行为不是由代码预先确定的,而是由自然语言指令在运行时动态生成的。你没法用传统的权限模型完全约束一个会“理解语言”的系统——因为语言本身是模糊的、多义的、可被操纵的。

哲学家Ludwig Wittgenstein在《哲学研究》中有一个著名的论断:“语言的意义就是它的使用。” 同一句话在不同上下文中意义完全不同。“清理一下”可能是“整理排序”,也可能是“全部删除”。

这意味着Agent安全不能只靠技术手段(进程隔离、权限控制、沙箱),还必须处理语言、意图与执行之间的语义鸿沟。这是一个跨越计算机科学、语言学和认知科学的交叉难题。

OpenClaw的设计者似乎隐约意识到了这一点。它的Memory系统用纯Markdown文件存储,意味着用户可以审查和编辑Agent的一切“认知内容”。它的Skill系统要求每个技能包附带SKILL.md说明文件,让能力的边界显式化。这些设计选择不能从根本上解决语义鸿沟问题,但它们朝着正确的方向迈了一步:让Agent的行为尽可能可解释、可审计、可干预。

安全不是一个需要“解决”的问题,而是一个需要持续管理的张力——就像民主社会中自由与秩序的关系一样。


六、结语:从“借来的大脑”到“自家的劳动力系统”

让我们退后一步,看看更大的图景。

过去三年,AI领域的主旋律是“模型越来越强”——参数更多、推理更快、能力更广。这当然重要。但OpenClaw代表的趋势提醒我们,光有聪明的大脑是不够的,你还需要把大脑连接到合适的身体上。

神经科学有一个概念叫“具身认知”(Embodied Cognition):认知不仅仅发生在大脑里,它还依赖于身体和环境的交互。 一个大脑再聪明,如果没有眼睛看、没有手操作、没有腿移动,它的智力也无法真正施展。

OpenClaw做的事情,就是给AI大脑配备了完整的“身体”——聊天窗口是嘴巴和耳朵,浏览器是手,传感器是眼睛,定时任务是生物钟,Skill是肌肉记忆,Memory是自传体记忆。而且这整套“身体”运行在你自己的机器上,由你完全控制。

从“在别人的服务器上借用一个聪明大脑”到“在自己的机器上培养一个完整的数字劳动力”——这不只是技术架构的变化,这是人与AI关系的根本重构。

当然,我们也必须保持清醒。“过于热心的实习生”依然是实习生——会犯错,会误解指令,会在你不注意的时候闯祸。Agent安全不是一个已经解决的问题,而是一个需要整个社区持续投入的长期工程。

但方向已经非常清晰了。

经济学家F.A. Hayek曾经说过,分散的知识比集中的知识更强大——前提是有足够好的协调机制。 市场之所以能打败计划经济,不是因为每个个体比计划委员会更聪明,而是因为价格机制让分散在每个人手中的局部知识得以汇聚和协调。

OpenClaw的架构哲学与此一脉相承:AI能力不应该集中在少数巨头的服务器上,而应该分散在每个人自己的机器上——通过Skill生态和开源协作来实现协调。 这是一种去中心化的AI发展路径。

它能不能成功?我不知道。但我知道的是,当一个系统同时解决了“入口摩擦”(聊天窗口)、“信任锚点”(本地运行)和“能力扩散”(Skill生态)这三个问题时,它值得被认真对待。

至少,它值得你用自己的机器试一试。毕竟——Your assistant. Your Machine. Your rules.

上一页1…91011…38下一页

378 日志
9 分类
RSS
© 2017 — 2026 李文业
由 Hexo 强力驱动
|
主题 — NexT.Muse
粤ICP备17160932号