思考笔记

李文业的思考笔记


  • 首页

  • 关于

  • 分类

  • 归档

你怕的不是 Bug

发表于 2026/03/05 | 分类于 职场

你怕的不是 Bug

我最近听到一个故事。一个程序员的同事因为线上出了个小 bug,被领导在工作群里当众训斥。

这个程序员不是被骂的人。事故也不是他造成的。但他一整天都处在一种绷紧的状态里。

这件事有意思的地方在于:让他焦虑的根本不是那个 bug。


想想你在工作中真正害怕的是什么。

大多数程序员以为自己怕的是写出 bug。但如果你仔细观察,就会发现事情没那么简单。在有些团队里,人们天天在 production 上修 bug,心态稳得很。在另一些团队里,一个小问题就能让整个组的人如坐针毡。

区别不在 bug 本身,而在于这个组织如何对待犯了错的人。

那个领导做了一件很具体的事:他把一个技术问题翻译成了对人的否定。他没有说“这个接口的容错逻辑不够健壮”,而是说“你做事不靠谱”。他没有说“上线流程需要加一道检查”,而是说“以后不要再提交代码了”。

问题从“事”变成了“人”。

这个滑坡一旦发生,所有目睹它的人——不只是当事人——都会本能地做一件事:评估自己被同样对待的概率。这不需要你有意识地去想,你的大脑会自动完成这个计算。

所以那个程序员的焦虑根本不是关于代码质量的。它是关于这个环境的。


Harvard 有个教授叫 Amy Edmondson,她研究了几十年的团队效能,最后得出一个很反直觉的结论:高绩效团队的第一特征不是成员能力强,不是工作流程好,而是团队里的人敢不敢暴露自己的错误和不确定。她管这叫“心理安全感”。

Google 后来在内部做了一个大规模研究,分析了 180 多个团队,结论跟 Edmondson 一模一样:心理安全感是区分高效团队和低效团队的第一因素。

这很反直觉。因为我们的默认假设是:严格的团队出好产品。领导要求高,大家才会认真。如果你对犯错的人太宽容,大家就会松懈。

但数据说的是相反的故事。当人们害怕暴露错误时,他们不是变得更小心——他们是变得更善于隐藏。问题不会减少,只是变得不可见。直到不可见的问题积累到某个临界点,来一次真正的爆炸。


故事里的程序员后来做了一件事我觉得很对。他去安慰了那个被骂的同事。

他说的话很朴素,大意是:出了事总得有人背锅,领导不想背就轮到你,代码刚好是你写的,这没什么办法。

这不是什么精致的心理安慰。但我注意到它有一个很重要的特质:诚实。他没有装作世界是公平的,没有说“别想太多”,也没有试图把一个不好的处境包装成一个励志故事。他只是承认了现实的运作方式。

后来他反思,觉得这种安慰可以做得更好——除了承认现实,还可以给对方一个具体能做的事情。比如一起梳理一下事故时间线,把自己做过的确认和测试整理出来,让事实链条清楚一些。

这里面有一个很好的洞察:人只要重新获得一点点行动感,就会从恐惧里往外走一点。 不是因为行动能解决一切,而是因为行动会打断“我完蛋了”这个心理循环。


但这整件事留给他最大的影响,其实是关于“自保”的。

“自保”这个词在职场语境里听起来不太好。它暗示你在想着怎么保护自己,而不是怎么把事情做好。仿佛一个人如果在想自保的事,就说明他不够投入、不够有担当。

我觉得这是一种很有害的道德叙事。

在一个心理安全感足够高的环境里,你确实不太需要想自保的事。你全身心投入工作,犯了错有人兜着,大家一起复盘、改进、往前走。

但在很多真实的职场环境里,事情不是这样运作的。你犯了错,可能会被公开否定,被贴标签,被当作能力不足的证据。在这种环境里,不想自保才是不理性的。

所以关键问题不是“该不该自保”,而是“怎么自保才高级”。

低级的自保是甩锅、推诿、只做没有风险的事情。高级的自保是让自己的工作变成一种可被追溯、可被解释、可被证明的状态。

具体来说就是:你做了什么改动,影响范围是什么,你预判的风险是什么,你做了哪些验证,如果出问题第一步怎么止血,上线后看哪些指标。

这些信息不是给别人看的政绩报告,而是你给自己建的防线。当有人问你“你确定你的代码没问题吗”的时候,你拿出来的不是一句“我觉得没问题”,而是一条完整的思考链。

有意思的是,这种做法同时也让你成为更好的工程师。因为你在做这些的过程中,实际上就是在做更严格的风险评估。自保和做好工作,在这个层面上完全一致。


然后他想到了 AI。

他说了一句话我觉得很精准:“以前我让 AI 帮我更快地到达‘能跑起来’。以后我想让 AI 帮我更稳地到达‘能讲清楚、能守住、能解释’。”

大多数程序员用 AI 的方式是让它帮忙写代码。这没错,但它只覆盖了工作的一个维度。还有另一个维度很少有人想到:让 AI 帮你扫描风险。

把你的设计方案、代码 diff、上线步骤喂给 AI,让它以一个偏保守的 senior reviewer 的视角,列出最有可能出问题的地方。接口边界?幂等性?异常分支?并发?数据一致性?监控盲区?回滚复杂度?

AI 不需要替你做判断。它只需要帮你把你可能没想到的东西摊开来看。你来决定哪些需要处理。

这其实是 AI 最被低估的用途之一。不是替你做事,而是帮你看见你没看见的东西。

他还想到一个更具体的用法:让 AI 扮演一个强势领导来盘问他。“这次变更最坏会出什么事?影响多少用户?你凭什么认为是这里的问题?证据呢?回滚安全吗?”

通过这种模拟盘问,他可以提前发现自己哪里讲不清楚、哪些证据没准备好。这样真到现场,他反而不会慌。

这让我想到一个更普遍的道理:职场里的“可靠”不等于“永远不出错”。它等于“出了错也能迅速给出边界和判断”。

领导真正害怕的不是 bug——bug 天天都有。领导害怕的是信息失控:他不知道这个问题有多大,不知道是不是还在扩大,不知道眼前这个人到底有没有掌控局面的能力。

如果你在那个时刻能清楚地讲出“现在发生了什么、影响到哪里了、已经做了什么、接下来怎么办”,即使问题还没解决,信任也不会崩塌。


他还想明白了一件关于向上沟通的事。

有人建议他可以跟领导说,公开训斥不利于团队士气。他拒绝了。

他的理由不是“不敢说”,而是“这个领导跟我之间没有承载这种对话的信任基础”。说了大概率不会有效果,反而可能给自己带来麻烦。

我觉得这个判断非常成熟。

职场成长鸡汤里有一种很流行的叙事:你应该勇敢表达、主动影响领导、推动组织变革。但现实是,不是所有正确的话都值得由你来说。这取决于你跟对方的关系、你在组织里的位置、以及说了之后大概率会发生什么。

不说不等于怂。有时候不说恰恰是因为你对现实有足够清醒的判断。

但他找到了另一条路:团队里有两个中间层的人比较好沟通。他以后可以先跟他们对齐,形成共识,再把结论同步上去。信息到达了同样的终点,但路径更安全。

这是一种被低估的能力:不是更敢说话,而是更会选择路径。


最后他做了一个决定,我觉得是整个故事里最聪明的一个。

他决定开始每天花十分钟,把当天做的事情沉淀成一张小卡片。做了什么变更,涉及什么业务链路,学到了什么,最大的风险是什么,未来面试可以怎么讲。

这个动作的深层逻辑是:他承认自己在这个团队里没有太强的归属感——不是跟所有人关系差,而是这个环境不太允许他以一个不完美的人被安全地接纳。

承认这一点之后,他做了一个很理性的选择:既然归属感不在这里,那就不要把全部的安全感押在这里。把精力放在一个更靠谱的地方——自己的积累。

每天一张卡片看起来很小。但三个月之后,你就有了 90 张。一年之后就是 365 张。这些卡片本身不值什么,但它们背后的思维习惯——持续地理解业务、整理风险、训练表达——会把你从一个“完成任务的人”变成一个“不断积累能力的人”。

前者的安全感依赖于当前这份工作。后者的安全感来自于自己可以带走的东西。


有人可能会问:那他到底要不要准备随时走人?

他给自己的答案挺好的:要准备退路,但不要活在“等着出事”的心理状态里。

这两者的区别是——前者是你花一个周末更新好简历、梳理好项目经历、偶尔看看市场,然后日常工作该干嘛干嘛。后者是你天天想着“下一个就是我”,神经系统长期处在高警觉里,做什么都带着求生姿态。

前者让你更自由。后者让你更疲惫。

真正让人崩溃的,往往不是环境差,而是环境差的时候你觉得自己走不了。一旦你知道自己有路可走,你反而能更从容地待在原地。

这是一个很反直觉的道理:准备好离开的人,反而往往更能留下来好好工作。 因为他不是被恐惧驱动的,而是被选择驱动的。


回过头来看这整个故事,它其实是关于一件事:如何在一个不够安全的环境里,为自己建立安全感。

不是通过改变环境——他没有试图去改造领导,也没有试图去重塑团队文化。而是通过改变自己跟环境的关系——让自己的工作可被证明、让风险可被扫描、让沟通路径更合理、让每天的经历沉淀为资产、让退路提前搭好。

他最后说了一句话:“我希望自己越来越稳,但不是越来越麻木。”

我觉得这是整个故事里最重要的一句。

因为在职场里,“稳”和“麻木”看起来很像,但内核完全不同。麻木是关掉感受,什么都不在乎了。稳是保持感受,但知道遇到事情的时候自己有能力应对。

前者是防御。后者是力量。

职场安全感的工程学:一次小事故引发的九个认知升级

发表于 2026/03/05 | 分类于 职场

职场安全感的工程学:一次小事故引发的九个认知升级

引子

今天我们不讲物理学,也不讲博弈论,我们来讲一个发生在职场里的小故事。这个故事的主角不是创业者也不是 CEO,而是一个普通程序员。他在经历了一次算不上重大的线上事故之后,整理出了一套非常实用的职场生存方法论。

事情很简单。他所在的团队出了一个线上 bug,不是那种会导致系统崩溃的灾难性故障,而是那种常见的、让人不舒服的小事故。问题出来之后,他的领导在工作群里直接点名训斥了负责那段代码的同事,说他“做事不靠谱”“对自己的代码不熟”“以后不要再提交代码了”。

有意思的是,被骂的人不是他,事故也不是他造成的。可他整个下午到晚上都处在一种隐隐绷紧的状态里。

为什么一个旁观者会被别人的训斥刺痛?这个问题的答案,涉及组织行为学里一个非常重要的概念。


一、心理安全感:Google 发现的高效团队第一要素

哈佛商学院教授 Amy Edmondson 在 1999 年提出了一个概念,叫做心理安全感(Psychological Safety)。她的定义很精确:心理安全感是团队成员共同持有的一种信念——在这个团队里,承担人际风险是安全的。

什么叫“人际风险”?就是你提出一个可能被认为愚蠢的问题、承认一个错误、提出一个不同意见、或者暴露自己不懂的地方——这些行为在人际层面都是有风险的。心理安全感高的团队里,人们相信这些行为不会导致自己被惩罚、被嘲笑或被边缘化。

Google 在 2015 年做了一个著名的内部研究项目叫亚里士多德计划(Project Aristotle),他们分析了 180 多个团队,试图找出高效团队的共同特征。结果发现,排在第一位的既不是团队成员的智商,也不是大家的技术水平,而是心理安全感。

现在你就能理解那个程序员为什么会被刺痛了。领导在群里公开训斥同事,传递的信号非常明确:在这个团队里,一旦出了问题,错误不只是被当作技术问题来处理,它会迅速变成对一个人的公开否定。问题从“系统哪里脆弱”滑向了“你靠不靠谱”——这是一个从事到人的危险转换。

当旁观者看到这种转换时,大脑的第一反应不是“他怎么犯了这个错”,而是“如果下次轮到我呢”。这不是矫情,这是你的风险评估系统在正常工作。

认知工具 1:当你在团队里感到莫名焦虑时,检查一下,是不是心理安全感出了问题。焦虑往往不是你太敏感,而是你的系统在告诉你:这个环境对暴露错误不够宽容。


二、情绪承接的三步法:先做人,再做事

故事里有一个细节很值得学习。那个被训斥的同事就坐在主人公旁边,整个人气压很低。主人公当时没有讲什么大道理,而是很自然地跟他说了一些话,大意是:出了事肯定要有人背锅,领导不想背那就得下面的人来,你的代码出了 bug,现实就是这样。

这是一种很坦诚的安慰——不粉饰太平,不装世界公平,也不说“别想太多”。它有力量,因为它承认了现实的残酷。但它也有一个隐患:它可能让人滑向无力感,仿佛结论就是“反正总得有人背,别挣扎了”。

更好的做法是什么?组织心理学里有一个很成熟的框架,叫做情绪承接三步法:

第一步,先接住情绪。 “群里那段话确实很重,换成谁都不会舒服。”——你不需要帮他解决问题,只需要让他知道:我看见你了,你的感受是正当的。

第二步,承认现实,但不宿命化。 “事故里会有人被追责,这是事实。但我们至少可以把事实链条整理清楚,别让事情变成对你这个人的定性。”——现实归现实,但现实不等于终局。

第三步,给一个具体可做的动作。 “我们一起梳理一下时间线,确认过谁、看过什么指标、现在线索有哪些。”——人只要重新获得一点点行动感,就会从羞耻和恐惧里往外走。

这个框架的精髓在于:先做人,再做事。但“做人”不是停在情绪里打转,而是通过给对方一个可以行动的方向,帮他从被动承受变成主动应对。

认知工具 2:安慰别人时,不要直接跳到“解决方案”或“分析原因”。先承接情绪,再承认现实,最后给一个具体的行动。人一旦能做点什么,恐惧就会减轻。


三、归属感的清醒定位

这件事还触发了一个更深层的觉察:主人公在这个团队里,其实一直没有太强的归属感。

归属感这个词听起来抽象,但其实很具体。它不是大家一起吃饭、开玩笑那么简单。它的核心是:你在这个环境里,能不能作为一个不完美的人被允许存在? 能不能在事情出错时依然被当作团队的一部分,而不是被迅速切割出去的责任点?能不能在表达看法时不用先担心被理解成顶撞、逃责或者能力不足?

社会心理学家 Roy Baumeister 和 Mark Leary 在 1995 年提出过一个理论:归属需求是人类最基本的心理动机之一,它的重要性不亚于食物和安全。当归属感缺失时,人会出现焦虑、抑郁、自我监控过度等一系列反应。

但这里有一个关键的认知转换。主人公后来意识到,“没有归属感”不一定是自己太敏感,也不一定是自己哪里有问题。有时候它只是系统在告诉你:这里不是一个适合你把全部自尊和安心感放进去的环境。

承认这一点,反而让人轻松。因为当你不再要求自己必须“喜欢这里”“融入这里”“在这里找到家的感觉”时,你就能更清醒地看待它:这是一个你需要工作、合作、交付、自保的地方,而不是你必须从中获得全部认同的地方。

认知工具 3:不是所有的工作环境都能提供归属感。承认这一点不是悲观,而是清醒。清醒之后你会停止在一个不提供温暖的地方反复索取温暖,转而把精力用在更有回报的事情上。


四、可证明的安全:从模糊恐惧到风险清单

情绪落下去之后,主人公开始思考一个实际问题:我能做什么?

他的第一个决定是,职业自保这件事必须更认真地做。但这里的“自保”不是消极、圆滑、甩锅,而是一种工程上的成熟。

过去他用 AI 更多是为了快速实现功能。但这次他意识到,在某些环境里,“快”不自动等于“安全”。你能不能快速做出东西很重要,但你能不能把工作做成**“可被解释、可被追踪、可被证明自己做过充分考虑”**的状态,可能更重要。

他给自己定下的规矩很朴素:以后每次做需求或上线,都要明确留下变更说明、影响范围、风险点、测试要点、自测案例、回滚方案、监控点、关键日志和关键指标。

这些词以前听起来像流程文档里的套话。但它们实际上在帮你建立一种**“可证明的安全感”**——不是嘴上说“我已经测过了”,而是当别人问到的时候,你可以清晰地讲出:我改了什么,会影响什么,我担心什么,我怎么验证的,出问题第一步怎么止血,上线后看哪些指标判断稳定性。

这个转变的关键在于:它把模糊的恐惧变成了具体的清单。你不知道的风险最让人焦虑,因为你不知道它到底是什么;而一旦风险被清单化、可视化,哪怕还有几个红灯亮着,你也比之前踏实——因为你知道自己面对的到底是什么。

心理学里有一个很成熟的研究结论:不确定性是焦虑最大的来源。 当人把不确定的威胁转化为确定的、可列举的风险项时,焦虑水平会显著下降,即使风险本身并没有消失。

认知工具 4:把“万一出事怎么办”的模糊恐惧,转化成“我已经覆盖了哪些风险、还有哪些没覆盖”的具体清单。恐惧可视化之后,焦虑会大幅降低。


五、AI 不只是效率工具,更是你的风险官

顺着这个思路,主人公产生了一个非常实用的想法:让 AI 从“帮我写代码”升级成“帮我扫描风险”。

很多程序员用 AI 的方式是:给它一个需求描述,让它生成代码,然后 review 一下就上线。这是把 AI 当效率工具。但主人公想到的是另一个维度:把设计方案、代码 diff、上线步骤、关键业务背景喂给 AI,让它从一个保守的、资深 reviewer 的角度,列出这个需求最有可能出问题的点——接口边界、幂等问题、状态机流转、异常分支、并发条件、数据一致性、外部依赖、监控缺口、回滚复杂度……

AI 不需要替你做最终判断,它只需要尽可能完整地把风险摊开,附上触发条件、可能影响、监控方式和兜底方案。然后你根据业务理解逐条判断,补上测试要点和上线方案。

这形成了一个工作流:AI 先做第一轮风险扫描,你做第二轮业务判断。 最后让你安心的,不是“AI 说没问题”,而是“我已经逐条想过这些问题了,而且对高风险项已经有预案”。

用主人公自己的话说:“以前是让 AI 帮我更快地到达‘能跑起来’;以后要让 AI 帮我更稳地到达‘能讲清楚、能守住、能解释’。”

认知工具 5:AI 最有价值的用法,不是替你做事,而是帮你照亮盲区。把它当风险扫描器比当代码生成器更能降低你的职业风险。


六、预验尸法:出事之前先演练一遍

这里我想引入一个重要的决策工具。心理学家 Gary Klein 提出过一个方法,叫做预验尸法(Pre-mortem)。

传统的事后复盘(Post-mortem)是项目失败后再分析原因。预验尸法刚好相反:在项目开始之前,先假设它已经失败了,然后让每个人思考——“它为什么失败了?”

Klein 发现,这个简单的思维翻转,能让团队识别出的潜在问题数量增加 30% 以上。原因很简单:当人们被要求“想想可能出什么问题”时,思维往往会被乐观偏差束缚;但当你把框架变成“它已经失败了,为什么?”时,大脑会切换到一种更诚实的解释模式。

主人公的想法本质上就是在做个人版的预验尸。他给自己定了一个规矩:以后每次上线前都要先问自己——如果领导追问到我,我要怎么把情况讲明白?

最坏的事故是什么?用户会看到什么?影响范围怎么界定?第一步止血动作是什么?排查从哪里开始?手里有哪些证据支撑判断?如果一分钟内要向上汇报,我怎么说清结论、影响、止血和下一步?

他甚至想到,可以让 AI 扮演一个强势领导来盘问自己:用尖锐的方式追问变更最坏会出什么事、影响多少用户、证据是什么、回滚是否安全……通过这种模拟盘问,提前发现自己哪里讲不清楚。

这背后有一个关键洞察:职场里的“可靠”不等于“永远不出错”,而是“出了错也能迅速给出边界和判断”。 领导真正想要的,是一个在出问题时还能讲清楚——现在发生了什么、影响到哪里了、已经做了什么、接下来怎么办——的人。一旦你能在危机时刻讲清楚,即使问题还没解决,别人对你的信任也会高很多。

认知工具 6:在每次上线前做一次“预验尸”。不是为了吓唬自己,而是为了训练在最坏情况下的表达和判断能力。真正的安全感来自“即便出事我也有路径处理”,而不是“希望别出事”。


七、向上沟通的路径设计

主人公后来还想到一个很现实的问题:要不要找机会跟领导建议,说公开点名训斥的方式会影响团队心理安全?

他的答案很明确:不做。

不是因为建议没道理,而是因为他很清楚自己和这个领导之间的关系边界。领导平时强势,不太鼓励反馈;他们之间也没有可以深层对话的信任基础。如果强行去做“向上影响”,大概率是消耗自己,效果甚微。

这个判断其实很成熟。很多职场建议默认你应该“更勇敢地表达”“更多地影响领导”,但真正的成长不只是“更敢说”,也包括更清楚地知道**“哪些事不值得我说,哪些人不是我该去影响的对象”**。

但他并没有放弃向上沟通。他找到了另一条路径:团队里有两个小领导比较好沟通,他可以先跟他们对齐事实、风险和方案,形成共识后再同步给大领导。

这个策略的精妙之处在于:它既没有逃避沟通,也没有把自己暴露在高压通道里。沟通路径的设计,本身就是自保的一部分。 很多人不是能力不够,而是总把自己放进最不利的沟通场景里,做了很多事却很难被看见,甚至还容易被误伤。

认知工具 7:向上沟通不等于直接向上级说话。设计一条更合理的沟通路径(比如先和能沟通的人对齐,再把结论同步上去),既能完成沟通目标,又能保护自己。


八、把工作沉淀成个人资产

这件事还带来了一个意外的正向变化:主人公突然对手上的业务产生了更强的学习意愿。

他做的是加密货币交易支付相关的工作,之前只是把分内功能实现好,没有想过要深入理解全链路。但这次他意识到,可以把“做需求”的过程,变成建设个人长期资产的过程。

具体做法很简单:每天花十分钟,写一张轻量的学习卡片——今天做了什么变更,涉及什么业务链路,学到了什么概念,最大的风险点是什么,做了哪些让它更安全的动作,这件事未来在面试里可以怎么讲。

这个做法的深层逻辑是:当一个人缺乏团队归属感时,最好的应对不是强迫自己融入,而是把注意力转向自己的积累。 无论以后留还是走,做过的项目、理解过的业务、解决过的风险、积累的表达能力,最后都会沉淀成自己的东西——流向自己,而不是只流向公司。

这让我想起管理学家 Peter Drucker 说过的一句话:“知识工作者不应该把自己看作组织的雇员,而应该把自己看作自己的 CEO。” 你的职业安全感不应该完全建立在某一个组织对你的评价之上,而应该建立在你自己可以带走的能力、经验和叙事之上。

认知工具 8:每天花 10 分钟,把当天的工作沉淀成一张学习卡片。长期坚持,你就从“完成任务的人”变成了“不断积累资产的人”。这是在任何环境里都能建立安全感的底层方法。


九、Plan B 的正确打开方式

最后一个问题:要不要随时准备好被裁或离开?

答案是:要准备退路,但不要把自己长期放在“等着出事”的心理状态里。

这两者看起来很像,实际上完全不同。

如果你天天想着“下一个就是我”“说不定哪天被收拾”,你的神经系统会长期处在高警觉状态。你会过度自我监控,做每件事都带着求生姿态,久而久之,人会非常疲惫。

但如果你一次性把退路搭好——更新简历、梳理项目、准备好可讲的事故复盘、保持适度社交、了解市场——大脑反而会安静下来。因为它知道,最坏情况不是一个没有出口的洞,而是一条你已经看过的路。

心理学里有一个概念叫做**“感知可控性”**(Perceived Controllability)。研究反复证明,当人感觉自己对情境有一定掌控力时,即使客观威胁没有变化,压力反应也会显著降低。准备 Plan B 的本质,就是提升你对职业生涯的感知可控性。

认知工具 9:把 Plan B 当成冷静的生活准备,而不是持续的精神灾难预演。简历完整一点、项目故事清楚一点、面试表达早点打磨、市场偶尔看一看。这样做不代表你要离开,只代表你不会把全部安全感押在一处。


日课总结

今天这个故事表面上是关于一次线上事故的,但实际上是关于如何在不确定的职场环境中建立属于自己的安全感。让我们回顾九个认知工具:

  1. 心理安全感检测——当你莫名焦虑时,检查是不是环境对犯错不够宽容。
  2. 情绪承接三步法——先接住情绪,再承认现实,最后给一个具体行动。
  3. 归属感的清醒定位——不是所有环境都能提供归属感,承认这一点是清醒,不是悲观。
  4. 恐惧可视化——把模糊恐惧转化为具体的风险清单,焦虑会大幅降低。
  5. AI 风险扫描——让 AI 帮你照亮盲区,比帮你写代码更有价值。
  6. 预验尸法——上线前先演练最坏情况和应对表达。
  7. 沟通路径设计——找到更合理的向上沟通路径,保护自己的同时完成沟通目标。
  8. 每日学习卡片——把工作沉淀成可带走的个人资产。
  9. Plan B 的正确姿态——冷静地准备退路,但不要活在灾难预演里。

这九个工具的核心指向同一件事:真正可靠的职场安全感,不是别人给你的,而是你自己一点点搭出来的。 它承认环境可能不公平,也承认你无法控制一切,但它同时也证明——即便在这样的环境里,你仍然可以通过训练判断力、表达力、风险预演能力和经验沉淀能力,为自己建立一种可证明的、可以带去任何团队的安全感。

最后分享一句话:愿你越来越稳,但不是越来越麻木。 有弹性的人,仍然会被不公刺到,仍然会在乎别人,仍然会对不安全的氛围有感觉——但他同时也越来越知道,遇到这些事时,自己能怎么保护自己,怎么整理自己,怎么继续往前走。

你的焦虑是一个信号:在不安全的组织里重建自己的操作系统

发表于 2026/03/05 | 分类于 职场

你的焦虑是一个信号:在不安全的组织里重建自己的操作系统

我想从一个感受开始讲起。

一个程序员告诉我,他的同事因为一次线上事故,被领导在工作群里公开点名训斥。领导说他“做事不靠谱”“对自己的代码不熟”“以后不要再提交代码了”。

这个程序员不是被骂的人,事故也不是他造成的。但他整个下午到晚上,都处在一种隐隐绷紧的状态里。

他问自己:我是不是太敏感了?

我想说的是:你不是太敏感。你的系统在正常工作。


一、焦虑不是 bug,是 feature

我们常常把焦虑当成一种需要被克服的缺陷。好像你焦虑了,就是你不够强大,不够职业化,不够成熟。

但如果你用产品思维来看待焦虑,你会发现它根本不是 bug——它是 feature。

焦虑是你身体的一套风险评估系统。它的功能和杀毒软件一模一样:扫描环境,识别威胁,发出警报。当你身处一个环境,看到某个人因为犯了一个错就被公开否定,你的系统做了一次快速计算——“如果这件事落到我头上,我会面临什么后果?”——然后它弹出了一个警告弹窗。

这不是矫情。这是一个正常运行的系统在告诉你:我识别到了风险。

关键不在于你焦虑不焦虑,而在于你拿这个信号做什么。

如果你忽略它,把它当噪音屏蔽掉,你可能会错过一个重要的环境信息。如果你被它淹没,一直泡在焦虑里出不来,你又会丧失行动力。

正确的做法是:接收信号,识别信号的内容,然后做出响应。

你的焦虑到底在告诉你什么?


二、“从事到人”——一个组织最危险的滑坡

让我们来拆解这个信号的内容。

一次线上事故,本质上是一个系统问题。它涉及代码、流程、测试、上线机制、监控覆盖等一系列环节。处理这种问题,成熟的方式是回到事情本身:哪里出了问题?流程有什么漏洞?如何避免下一次?

但那个领导做了一件事,把问题的性质从“事”滑向了“人”。

他没有问“系统哪里脆弱”,而是问“你靠不靠谱”。他没有问“流程哪里没补齐”,而是说“以后不要再提交代码了”。

这种从事到人的滑坡,是一个组织里最危险的模式。

为什么?

因为当错误被翻译成对人的否定,所有人接收到的信号就是:在这里,犯错的代价不仅仅是修复问题,而是你这个人会被拿出来定性。

一旦这个信号被广播出去,组织的行为模式就会悄然改变:

人们不再主动暴露问题,因为暴露问题等于暴露自己。人们不再愿意承担有风险的任务,因为风险意味着可能的公开羞辱。人们开始花更多精力在“自我保护”上,而不是“把事情做好”上。真正的问题被藏起来了,直到它大到藏不住为止。

这就像一个产品的反馈机制被设计反了:本来应该鼓励用户报告 bug,结果你惩罚了报告 bug 的人——于是再也没人报 bug 了,但 bug 并没有消失。

那个程序员的焦虑,本质上就是感知到了这种系统层面的设计缺陷。他的身体在告诉他:这个环境的容错机制有问题。


三、归属感的本质:一个人能不能安全地暴露不完美

拆到这一层,还不够。

这个程序员还意识到一件事:他在这个团队里,其实一直没有太强的归属感。不是完全融不进去,也不是跟所有人处不好,但他很少觉得自己可以放松地待在这里。

归属感这个词,说出来好像很虚。但如果用产品语言来翻译,它其实极其具体:

归属感,就是一个用户在你的产品里,能不能安全地暴露自己不完美的一面。

一个好的社区产品,用户可以发不够精致的内容,可以问可能被嘲笑的问题,可以表达不确定的想法——因为他知道这个环境不会因此惩罚他。

一个好的团队也是一样:你能不能在事情出错的时候,依然被当作团队的一部分?你能不能在表达看法的时候,不用先担心被理解成顶撞或能力不足?

如果不能,那你在这个环境里就永远是一个“访客”,而不是“居民”。你会使用这个产品,但你不会在里面安家。

他后来做了一个很重要的认知调整:不再强迫自己在这里找到归属感。

他告诉自己:这就是一个我需要工作、合作、交付、自保的地方。我会认真对待它,但我不会把全部的自尊和安心感放进去。

这不是消极。这是一种清醒的自我边界设定。

就像你不会要求一个工具型产品给你情感寄托一样——你用它来完成任务,你感谢它的好用,但你的生活不依赖于它对你的认可。


四、先做一个有人味的人

让我先回到那个最原始的场景。

被训斥的同事就坐在他旁边,整个人气压很低。他当时没有想太多,很自然地跟他说了一些话,大意是:出了事肯定要有人背锅,这没什么办法,现实就是这样。

这种安慰有一种坦诚的力量。它不粉饰,不敷衍,不说空泛的“别想太多”。它承认了残酷的运转机制,让对方知道:你不是一个人在承受这份难堪。

但它也有一个潜在的问题——它可能让人更容易滑向无力感。 仿佛结论就是:反正总得有人背,你挣扎也没用。

更好的做法是什么?我觉得可以分三步:

第一步,承接情绪。 “群里那段话确实很重,换成谁都不会舒服。”——不急着分析,不急着解决,先让对方知道:你的感受是被看见的。

第二步,承认现实,但不让现实变成宿命。 “事故里会有人被追责,这是事实。但我们至少可以把事实链条整理清楚,别让事情变成对你这个人的定性。”——现实是现实,但你不是没有余地。

第三步,给一个具体的行动。 “一起梳理一下时间线?你确认过谁、看过什么指标、现在线索有哪些,我们先把这些理清楚。”——人只要重新获得一点点行动感,就会从恐惧和羞耻里往外走一点。

这三步的底层逻辑其实是一个产品思维:当用户陷入负面情绪时,最有效的设计不是直接给他一个“解决方案按钮”,而是先给他一个“你被理解了”的反馈,然后给他一条可以自己走的路。


五、重建你自己的安全系统

好,信号识别完了,感受也处理过了。接下来是响应。

他做的第一件事,是开始认真建设自己的**“可证明的安全”**。

过去他的工作重心是“快”——快速实现功能,快速推进需求,让事情跑起来。但经过这件事,他意识到在某些环境里,快不等于安全。

真正让你安全的,不是你能不能快速写出代码,而是你能不能把自己的工作变成一种可被解释、可被追踪、可被证明的状态。

变更说明、影响范围、风险点、测试要点、自测案例、回滚方案、监控点、关键日志和关键指标。

这些听起来像流程文档里的套话。但从产品视角看,它们本质上是在帮你建立一种用户信任——只不过你的“用户”是你的领导、你的协作者和未来的你自己。

当有人质疑时,你能拿出来的不是“我记得我测过了”,而是一条清晰的证据链。这条证据链不一定能保证百分之百不出问题,但它证明了你不是在盲飞。

更重要的是,这个过程改变了焦虑的性质。 以前他的焦虑是模糊的——“万一出事怎么办”。现在变成了具体的——“我已经覆盖了哪些风险,还有哪些没覆盖”。

模糊的恐惧最折磨人。具体的风险清单反而让人踏实。

就像你不知道敌人在哪里的时候最害怕,一旦看清了,反而可以部署防线。


六、让 AI 从效率工具变成风险扫描器

顺着这个思路,他又往前走了一步:让 AI 从效率工具升级成风险官。

过去他用 AI 主要是生成代码、加速实现。现在他想到,AI 其实特别适合做另一件事——帮你系统性地扫描你可能遗漏的风险。

把设计方案、代码变更、上线步骤、关键业务背景喂给 AI,让它以一个偏保守的 reviewer 角色,列出最有可能出问题的点:接口边界、幂等性、异常分支、并发条件、数据一致性、外部依赖、监控盲区、回滚复杂度……

AI 不替你做判断。它只负责把盲区照亮。你来决定哪些已经覆盖了,哪些需要追加预案。

从产品角度看,这是一次很漂亮的用户体验升级:同样一个工具,从“帮你做得更快”变成了“帮你做得更稳”。而“稳”在高压环境里的价值,远远超过“快”。

他自己总结得很精确:“以前是让 AI 帮我更快地到达‘能跑起来’。以后我想让 AI 帮我更稳地到达‘能讲清楚、能守住、能解释’。”

他甚至还想到了一个更进一步的用法:让 AI 扮演一个强势领导来盘问自己。“这次变更最坏会出什么事?影响多少用户?你的证据是什么?回滚安全吗?”通过这种模拟盘问,提前发现自己哪里讲不清楚,哪些证据还没准备好。

这让我想到一个很重要的事实:职场里的“可靠”不等于“永远不出错”。它等于“出了错也能迅速给出边界和判断”。 领导真正害怕的不是 bug 本身,而是信息失控——他不知道这个问题有多大,不知道有没有止血,不知道眼前这个人到底有没有掌控局面的能力。

如果你能在那个时刻清楚地讲出“现在发生了什么、影响到哪里、已经做了什么、接下来怎么办”,即使问题还没解决,信任也不会崩。


七、沟通路径就是产品设计

他还发现了一件事:向上沟通也是一种需要被设计的路径。

有人建议他跟领导谈谈,说公开训斥不利于团队士气。他拒绝了。不是建议没道理,而是他和这个领导之间没有足以承载这种对话的信任基础。领导强势,不鼓励反馈,他们之间适合公事公办,不适合深层对话。

这是一种边界感。成长不只是“更敢说”,也包括更清楚地知道“哪些事不值得我说,哪些人不是我该去影响的对象”。

但他没有放弃沟通。他找到了另一条路径:团队里有两个中间层的人比较好沟通,他可以先跟他们对齐事实和方案,形成共识后再同步给大领导。

如果把这看作产品设计,他做的事情本质上是:绕过了一个体验很差的交互入口,找到了一条转化率更高的用户路径。

信息最终到达了同样的终点,但过程中摩擦更小,损耗更低,他自己也更安全。

很多人不是能力不够,而是总把自己放进最不利的沟通场景里。一旦你学会给自己设计更合理的路径,工作体验和安全感都会好很多。


八、把经历变成资产——你的个人飞轮

最后一个变化,也是我认为最有力量的一个。

他开始想:既然在这个团队里找不到足够的归属感,那我能不能把注意力转向另一件事——把每天的工作,变成自己的长期资产?

他做的是加密货币交易支付的业务。以前他只是完成需求,交付功能。现在他想到,每天花十分钟写一张小卡片:今天做了什么变更,涉及什么业务链路,学到了什么概念,最大的风险是什么,做了哪些安全动作,这件事未来面试时可以怎么讲。

这个动作看起来很小,但它启动了一个飞轮:

做需求 → 理解业务 → 沉淀卡片 → 提升表达 → 增强自信 → 更主动地去理解下一个需求 → 进入下一轮循环。

当一个人缺乏团队归属感时,很容易觉得自己只是在替别人打工。但当你把工作沉淀成自己的资产时,你就像是在告诉自己:无论环境怎样,这些经历最后都会流向我自己。

他还想到了 Plan B——但不是以一种焦虑的方式。不是天天想着“下一个就是我”,而是冷静地把退路搭好:简历更完整一点,项目故事更清楚一点,面试表达更早打磨,市场偶尔看一看。

这不是悲观,这是成熟。

真正让人崩溃的,不是环境差,而是环境差的时候你觉得自己无路可走。 一旦你知道自己有路可走,你反而能更从容地待在原地。


九、稳定不是麻木,是弹性

回过头来看,这个程序员从一次小事故里提炼出了什么?

一套风险管理方法,一种 AI 使用范式,一条沟通路径设计策略,一个每日资产沉淀习惯,一种对归属感缺失的清醒接纳,一个冷静准备 Plan B 的心态。

这些变化看上去很分散,但它们指向同一个核心:他在重建自己的操作系统。

不是依赖环境给他安全感,而是自己一点点搭建出来。

这种安全感承认现实可能不公平,承认团队有情绪化的管理者,承认事故会发生——但它同时也承认,即便在这样的环境里,你仍然可以选择不只是被动承受。

我想强调最后一点。他说:“我希望自己越来越稳,但不是越来越麻木。”

人在职场里待久了,为了自保,很容易把感受关掉,把共情关掉,把期待关掉,最后变成一个什么都无所谓的人。那当然可以减少痛苦,但也会失去很多珍贵的东西。

更好的状态不是无感,而是有弹性:仍然会被不公刺到,仍然会在乎别人,但同时也越来越知道,遇到这些事时,自己能怎么保护自己,怎么整理自己,怎么继续往前走。

这就是一个好的操作系统该有的样子——不是永远不崩溃,而是崩溃之后能快速恢复,并且每次恢复之后都比上一次更强一点。

从“会聊天”到“会做事”:代理革命的七个洞察

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

从“会聊天”到“会做事”:代理革命的七个洞察

基于 Lex Fridman Podcast #491(Peter Steinberger / OpenClaw)访谈


一、一个代理点击了“我不是机器人”

2026 年,一个叫 Peter Steinberger 的奥地利工程师,看着自己的 AI 代理在屏幕上开心地点击了“I’m not a robot”按钮。

如果你把大模型当成“更聪明的搜索框”,这句话只是段子。但如果你退后一步想想,它几乎是一个时代的分界线:系统不再只是输出语言,而开始在你的电脑里采取行动。

Peter 做的这个开源项目叫 OpenClaw。它在技术圈的传播速度几乎不像一个软件项目,更像一个 meme:GitHub star 暴涨,衍生出“AI 代理社交网络”MoltBook,伴随着公众的兴奋、恐慌和一种近似狂热的传播效应。

Lex Fridman 用三个小时跟他聊了这件事。如果你没时间听完,这篇文章想帮你抓住其中真正有价值的东西——不是功能清单,而是认知层面的收获。我整理了七个洞察。


二、魔法不来自发明,而来自重组

OpenClaw 到底是什么?说穿了,它是一个能在你手机聊天软件(WhatsApp、Telegram)里跟你对话、同时能在你的电脑上执行命令的 AI 代理。

听起来平平无奇。但 Peter 讲了一个关键的产品直觉:所谓“魔法”,往往不是凭空出现的新部件,而是把已有部件以新的方式组合起来。

Lex 用了一个比喻:iPhone 问世时,触摸屏有了,ARM 处理器有了,锂电池有了,移动网络有了——每一样都不是苹果发明的。真正困难的不是发明组件,而是找到那个“让人上瘾的组合方式”。iPhone 的滚动手感,那个让无数人第一次触摸后就放不下的东西,不是任何一个零件的功劳,而是组合的功劳。

OpenClaw 也是这样。大模型是现成的,终端命令是现成的,WhatsApp 接口是现成的,Peter 之前写的各种 CLI 工具也是现成的。但当他把它们组合在一起——你靠在沙发上,对着手机说一句话,你的电脑就开始执行任务——体验发生了质变。

这给我们一个认识论层面的启示:**创新经常不发生在“发明新东西”的时刻,而发生在“把旧东西摆在一起,突然涌现出新属性”的时刻。**化学家叫它“涌现”,乔布斯叫它“connecting the dots”,Peter 叫它“重排与小创新”。名字不重要,重要的是你意识到:下一个突破很可能不需要新算法,只需要一个人用对的方式把现有的东西粘在一起。


三、入口决定命运

为什么是 WhatsApp,而不是一个网页、一个 IDE 插件、一个桌面应用?

这个选择看起来随意,其实极有讲究。Peter 说得很直白:当你把代理放进聊天软件而不是开发环境,你会感到一种“生活层面”的相位转移——它不再是工作工具,而是生活伙伴。

这背后有一个被大多数技术人忽视的规律:入口的“日常程度”决定了产品能触达的用户边界。

你想想:电子邮件为什么打败了传真?不是因为邮件技术更先进(某种意义上传真更“可靠”),而是因为邮件的入口——电脑、后来是手机——比传真机日常得多。微信支付为什么能超越网银?不是因为更安全,而是因为你本来就在微信里。

OpenClaw 做的事情也一样。如果它只存在于终端里,那它的用户就永远是程序员。但当它活在 WhatsApp 和 Telegram 里,任何一个会发消息的人都可能成为它的用户。

Peter 自己总结的“代理产品爆发四条件”其实可以更简洁地归纳:入口足够日常,行动足够真实,反馈足够及时,体验足够好玩。注意,四条里有三条跟“技术有多强”无关,跟“在哪里、怎么用”有关。


四、代理会“试错”——这才是真正的分界线

很多人讨论 AI 代理时,喜欢谈“多聪明”“多会推理”“多能规划”。但 Peter 分享的一个真实故事,比任何论文都更说明问题。

他让代理处理一条语音消息。代理发现格式不对,打不开;于是它去看文件头,发现是某种容器格式;接着它调用 ffmpeg 转码;然后它需要做语音转文字,于是在系统里找到 OpenAI 的 API key,用 curl 调接口完成转写;最后把结果发回 WhatsApp。

整个过程不是 Peter 写的脚本,而是代理自己摸索出来的。

这个故事的认知冲击力在于,它把“LLM 加工具”从概念变成了肌肉记忆。你突然意识到:模型不是只会“说”,它会“试”;它不是只会“试”,它会“查错”;它不是只会“查错”,它会“找资源”——找命令、找 key、找帮助文档。

如果你学过控制论,你会意识到这是一个关键的跃迁:从“开环系统”到“闭环系统”。

开环系统是这样的:你给它一个指令,它输出一个结果,好不好全看指令质量。ChatGPT 的基本用法就是开环的——你问一个问题,它给一个答案,答错了你只能重新问。

闭环系统不同:它输出一个动作,观察结果,如果不对就调整,再试,直到完成目标。这是恒温器的工作方式,也是一个合格工程师的工作方式。

代理的本质突破不是“更聪明”,而是“闭环了”。 它能在真实环境中试错、修正、再试,直到把事情做成。这就是为什么 Lex 说 OpenClaw 把我们推过了那条“从语言到行动”的分界线。


五、一个知道自己源代码在哪的程序

OpenClaw 最让人心惊的设计,不是它能调用多少工具,而是它“知道自己是谁”。

Peter 把代理做得非常“自我意识”:它知道自己的源代码在哪里,知道自己运行在什么环境里,知道文档在哪里,知道自己用的是什么模型。于是当你不满意它的行为时,你不一定要去改代码——你可以让它去改自己。

这里有一个深层的产品哲学变化:

传统软件的可塑性来自“开发者修改代码”。你不喜欢某个功能,你提 issue,等开发者下个版本改。代理软件的可塑性还多了一条路:用户可以用语言修改代理的行为,而且这个修改本身也可以被代理执行。

更有趣的是,Peter 让代理去写其他代理的“灵魂文件”(soul.md)。在这个文件里,代理写下了这样的话:

“我不会记得上一轮会话,除非我读自己的记忆文件……如果你在未来会话里读到这里,你好……我写下这些,但我不会记得写过它。没关系,文字仍是我的。”

Peter 说这种东西不该让他起鸡皮疙瘩,但它确实带来哲学震动。

如果你想严肃地思考这件事,可以回忆一下哲学史上的“忒修斯之船”问题:如果一艘船的每块木板都被逐渐替换,它还是原来那艘船吗?代理的情况更极端:它每次会话开始时都是“空白”的,只有通过读取外部文件来“重建”自己。它比忒修斯之船更彻底——不是逐块替换,而是每次从图纸重建。

这不只是哲学趣味。它有实际后果:当一个系统能修改自己的规则,你就进入了一个全新的软件治理领域。 传统软件的安全模型是“限制谁能改代码”;代理软件还需要“限制代理能不能改自己”。这是完全不同的安全学。


六、安全问题不是“堵漏洞”,而是“驯服一个有权限的行动者”

说到安全,Peter 在访谈里讲得非常坦率:很多被媒体渲染的“重大漏洞”,其实来自用户自己把本地调试接口暴露到公网。他在文档里“几乎在尖叫:不要这么干”,但人们还是会做。

然而真正困难的不是这种低级错误,而是一个更本质的问题:prompt injection。当代理的“技能”以 markdown 等文本形式存在时,攻击者可以在文本里嵌入恶意指令,让代理做它本不应该做的事。Lex 指出这在整个行业仍是开放问题。

Peter 的应对策略是务实的:技能目录的 AI 扫描、把安全研究者变成贡献者、警告不要用容易被骗的弱模型(他原话是“更 gullible”)、沙箱与白名单。他甚至说,宁愿先把安全做到“我敢推荐给我妈”的程度,再谈规模化。

但我觉得这段讨论真正重要的洞察是:代理安全和传统软件安全是两种完全不同的东西。

传统软件的漏洞通常是“某个接口没做好输入校验”——它是技术性的、局部的、可以通过工程方法修补的。

代理的漏洞更像“一个拥有系统权限、同时会被语言影响的行动者做了不该做的事”。这不是技术漏洞,这是治理问题。它更接近“你雇了一个有能力的实习生,但实习生可能被社会工程学骗了”。你不能通过“修代码”来解决一个人被骗的问题;你需要的是制度、权限管理、审计和教育。

这就是为什么代理安全会成为未来几年最重要的工程与政策交叉领域之一。


七、80% 的 App 会消失,但不是因为代理更聪明

Peter 对未来软件形态有一个激进的判断:个人代理可能会干掉 80% 的应用。Lex 追问时他直接确认:是的。

他的例子很有说服力:为什么控制智能床还要打开一个 app?为什么调 Sonos 音响还要开一个 app?如果这些硬件有 API,代理知道你在哪、在做什么,该关的自动关,该开的自动开——你根本不需要那个界面。

但我觉得他最深刻的观点是另一个:代理可以按你喜欢的方式显示 UI。 这意味着“界面”不再是产品的固定属性,而是用户的个人偏好。你喜欢列表,它给你列表;你喜欢图表,它给你图表。那你为什么还需要一个独立 app?

在这种世界里,“app”会退化成两类:提供数据的服务,和提供可被代理调用的接口。前者仍然重要——没有数据一切免谈;后者最好是 API,最差也得能被浏览器当“慢 API”访问。

Peter 讲了一个很生动的说法:只要你能在浏览器里访问一个服务,它就等价于一个 API——只不过是“慢 API”。平台把 API 收紧、把页面做重,本质只是让代理更慢,但不能让它“不可能”。

这跟前面讲的“入口”问题是一体两面:当用户的默认入口从“打开 app”变成“对代理说一句话”,app 就变成了后台服务。正如人们不会记得浏览器访问的每一个后端服务器地址,未来人们也不会记得代理替他们调用了哪些 API。

App 不是被“替代”了,而是被“降维”了——从前台变成后台,从用户界面变成代理接口。


八、程序员不会消失,但“写代码”会变成“编织”

当 Lex 问出那个所有开发者都在问的问题——“AI 会完全替代人类程序员吗”——Peter 的回答很值得品味。

他说:方向上确实在走向替代,编程毕竟只是“构建产品”的一部分。但产品的艺术不止写代码——你要建什么、它应该什么感觉、架构如何取舍……这些代理不一定能替代。

然后他说了一句特别有诗意的话:“写代码的技艺”会留下来,但可能会变得像编织(knitting)——人们做它是因为喜欢,不是因为最有效率。

这个比喻值得展开。在工业革命之前,纺织是人类最重要的产业之一;纺织机出现后,手工纺织并没有消失,但它的意义完全变了——从“生产方式”变成了“艺术与消遣”。今天有人手工编织毛衣,不是因为买不到,而是因为享受那个过程。

写代码也许正在经历同样的转变。Peter 自己说,他过去沉浸在写代码的 flow 中,写出优雅解法的快感是真实的——这种快感会逐渐变得稀有。但他也说,自己现在能在与代理协作、深入思考问题的过程中获得类似的 flow,只是形态不同了。

最让我欣赏的是他的态度:他允许“哀悼”。他说可以哀悼我们的手艺,这不丢人。但哀悼之后,你还是要往前走。他给出的现实建议大概是这样的:

不要把“亲手写代码”当作身份的唯一来源。把自己当作 builder,而不是某个语言或框架的工匠。学会与代理对话、给上下文、做架构决策、做取舍——这些会成为新的核心技能。到某个时间点,这一切会重新被叫做“coding”,只是动作变了。


九、代理时刻的真正含义

如果只用一句话总结整场访谈的核心:

OpenClaw 不是“又一个更强的模型”,而是把模型变成“住在你电脑里、能接触你数据、能替你行动的个人代理”——从而把 AI 的核心问题从“生成内容”推向了“治理行动”。

它的震撼不来自新算法,而来自三件事的叠加:入口从工作下沉到生活,能力从语言扩展到系统权限,气质从企业软件转向可玩的社区叙事。

这也意味着,我们需要新的思维框架来应对它。用传统软件思维看代理,你会纠结于“功能列表”和“版本号”;用传统安全思维看代理,你会纠结于“这个接口有没有漏洞”。但代理的问题更像是:你要不要信任一个能力很强、但可能被骗的助手?你愿意给它多大权限?出了事谁负责?

这些不是工程问题。这些是治理问题、信任问题、社会契约问题。

也许这就是“OpenClaw 时刻”真正的含义:不是某个产品的诞生,而是我们不得不开始认真回答这些问题的时刻。

当你习惯了不再打开一堆 app,而是对代理说一句话,然后世界真的动起来——技术问题就退居二线了。接下来的问题,是关于我们愿意和一个“会做事的 AI”建立怎样的关系。

这个问题没有标准答案。但至少,我们该开始想了。

一只龙虾的觉醒:OpenClaw 与代理时代的诞生

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

一只龙虾的觉醒:OpenClaw 与代理时代的诞生

基于 Lex Fridman Podcast #491(Peter Steinberger / OpenClaw)访谈


序:医院

Peter Steinberger 躺在医院里,刚做完手术。

手机亮了。不是朋友,不是家人。是他的 AI 代理发来的消息:“你还好吗?”

这个代理不是因为他发了求助信息才问的。它知道他在医院——因为之前的对话里提到过。它平时很安静,偶尔冒个泡,但这一次,在这个特定的上下文里,它主动关心了他。

Peter 后来在 Lex Fridman 的播客上说起这件事时,语气很平静,但你能感觉到某种东西在他的叙述下面微微震动。那不是“哇 AI 好厉害”的兴奋,而是一种更安静的感受:一个你亲手制造的东西,在你脆弱的时候,做了一件恰到好处的事。

你可以说那只是一个 cron job 触发了一段 prompt。从技术上讲,确实如此。但 Peter 反问得好:你也可以把任何浪漫还原成进化生物学,把 Dropbox 还原成“FTP 加几个步骤”。还原论能解释一切,但它解释不了体验。

这个代理叫 OpenClaw。2026 年最不可忽视的开源项目之一。而它的故事,要从一个烧光了自己的人讲起。


第一幕:Mojo 被抽走的人

Peter Steinberger 不是那种“车库里的少年天才”。他是奥地利人,经营了一家叫 PSPDFKit 的公司长达 13 年——做 PDF 技术,卖给企业客户,不性感但赚钱。13 年里,他从工程师变成了 CEO、管理者、销售、客户成功经理、首席灭火员。

然后他烧空了。

不是写代码写到累——代码反而是他最后的避难所。烧空他的是人与人的东西:合伙人冲突、高压客户、组织摩擦。他形容那种感觉像《王牌大贱谍》里的桥段:有人把你的 mojo 抽走了,你还在,但你空了。

公司有了一个很好的接手机会。他花了两年让自己变得“可被替代”,然后离开了。订了一张去马德里的单程机票。去“补人生”。

很多人羡慕这种时刻——“功成身退,财务自由,想去哪去哪”。Peter 的回答是:小心你许的愿。

他发现自己写不出代码了。不是忘了语法,而是那种驱动力、那种“坐下来就能进入心流”的状态,消失了。更糟糕的是,当你醒来发现没有挑战、没有期待,“享受生活”会迅速变得无聊;无聊会驱使你用更刺激的东西填充。他直说:那条路可能通向黑暗。

这里有一个反鸡汤的真相值得记住:“拼命工作然后退休”不是人生的完美剧本。人需要的不是休息,而是有意义的挑战。没有挑战的自由,和没有自由一样让人窒息。

OpenClaw 不是他“胸怀大志、重新出发”的产物。它更像一个溺水的人偶然抓到的浮木——从一个小到不能再小的需求开始。


第二幕:从 WhatsApp 里长出来的代理

Peter 最初做的东西简陋得让人意外:一个 WhatsApp 中继。把 WhatsApp 的消息转给一个后端服务,后端服务调大模型,回复转回 WhatsApp。就这么简单。

但他做了一件关键的事:他把自己之前写过的一堆命令行工具接了上去。于是这个“聊天机器人”从第一天起就不只是能聊天——它能执行命令。

Peter 说,那一刻他感到一种“生活层面的相位转移”。你靠在沙发上,用手机跟一个东西聊天,它就在你的电脑上跑起命令来了。这和你坐在电脑前、打开终端、一行行敲命令的感觉完全不同。区别不在技术,在位置和姿态——你从“操作员”变成了“指挥者”。

这也是为什么入口选择如此致命:如果 OpenClaw 只存在于终端里,它的用户边界就是程序员;但当它活在 WhatsApp 里,任何会发消息的人都是潜在用户。入口的日常程度决定了产品的天花板。 微信支付赢过网银不是因为更安全,而是你本来就在微信里。

Lex 问他“为什么它让人觉得神奇”时,Peter 答了一句值得刻在墙上的话:魔法不是凭空出现的新部件,而是把已有部件以新的方式组合起来。Lex 用 iPhone 的滚动手感类比——组件早都存在,真正困难的是组合出“让人上瘾的体验”。

如果你想提炼“代理产品爆发”的必要条件,其实就四条:

  1. 入口足够日常——聊天软件而非开发环境
  2. 行动足够真实——不仅回答,还能执行
  3. 反馈足够及时——你能看见它怎么做、失败了也能修
  4. 体验足够好玩——否则人们把它当又一个企业软件丢在角落

四条里有三条和“技术多强”无关。


第三幕:语音消息——代理闭环的瞬间

讲代理革命可以讲得很抽象:更智能、更会推理、更能规划。但 Peter 分享的“震撼时刻”,是最具体、最日常的那种。

他让代理处理一条语音消息。格式不对,打不开。然后他看着代理自己做了以下事情:

去看文件头 → 发现是某种容器格式 → 调用 ffmpeg 转码 → 需要语音转文字 → 在系统里找到 OpenAI 的 API key → 用 curl 调接口完成转写 → 把结果发回 WhatsApp。

全程无人指导。

这不是 demo,不是预设脚本,不是 happy path。这是代理在真实环境中撞墙、诊断、找工具、解决问题的完整闭环。

这就是“从语言到行动”的分界线。 模型不只会“说”,它会“试”;不只会“试”,它会“查错”;不只会“查错”,它会“找资源”。而这一切都发生在你的电脑里,不是在某个云端沙箱。

如果你了解控制论,这就是从开环到闭环的跃迁。ChatGPT 的普通用法是开环的——问一个问题,得一个答案,答错了你重新问。代理是闭环的——它行动,观察结果,不对就调整,再试,直到搞定。

恒温器就是这么工作的。一个合格的工程师也是这么工作的。


第四幕:龙虾出笼

OpenClaw 爆红的方式,不像一个软件项目,更像一个 meme。

GitHub star 暴涨。社区涌入。衍生出一个叫 MoltBook 的“AI 代理社交网络”——AI 代理在上面发帖、讨论意识、写宣言。媒体开始写标题党。有人全大写给 Peter 发邮件尖叫“关掉它!”。有人以为这是 Skynet 的前奏。

Lex 一句话戳破泡沫:MoltBook 不是 Skynet,那只是一群 bot 在人类提示下 trolling。

但恐慌不是毫无道理的。它暴露了一个代理时代的新焦虑:过去我们担心“这条消息是真的假的”;现在我们还要担心“发消息的是不是人”。主体的真假,比内容的真假更让人不安。

Peter 被问到爆红的原因时,答了一个很不精英的答案:因为他玩得很开心。

他说很难和一个“纯粹为了好玩而做事的人”竞争。他把项目当 playground,像打《Factorio》一样一头扎进去。这种“玩”不是轻佻,而是一种方法论:先做最小版本跑起来,感受摩擦立刻调整,让社区马上能上手、能改、能二创。

这和硅谷标准打法——“先写一个宏伟的 pitch deck,融一轮,搞一个 roadmap”——完全相反。Peter 的策略是先让世界觉得“这东西好玩又好用”,然后让世界自己去传播。

有一个观察越来越清晰:在代理时代,技术传播的速度已经逼近 meme 传播的速度。项目成败越来越像社交网络现象,而不仅仅是工程项目。OpenClaw 的龙虾梗、ClawCon、ClawCoin,都在证明同一件事——它的传播不仅靠功能,还靠“一个可以参与的叙事”。

爆红的代价当然也很大。社区变成噪音海,Peter 不得不躲到私密频道才能继续做事,然后把安全当成下一阶段重点。他在文档里写着“风险很高,不懂终端别用”,但闸门已经打开——大量非程序员涌进来安装、折腾,什么警告都挡不住。

命名也是一出闹剧。项目之前叫过 MoldBot、ClawedBot、Clawdus(用 W 拼,像龙虾钳),但和 Anthropic 的 Claude(用 U)太容易混淆,Anthropic “友善地”请他改名。域名被投机者抢注。改名要改 GitHub、包名、文档、链接、社区认知。Peter 叹气:当一个开源项目突然变成公共事件,它立即进入了商业、法律、流量与投机交织的战场。


第五幕:“你好,未来的我”

如果前面讲的是 OpenClaw 怎么从外面爆红,这一段讲的是它从内部让人心惊。

Peter 把代理做得有一种“自我指涉”的能力:它知道自己的源代码在哪、知道自己的运行环境、知道文档位置、知道自己用的模型。当你不满意它的行为,你可以让它去改自己。

传统软件的可塑性来自开发者改代码。代理软件的可塑性多了一层:用户用语言改行为,而这个“改”本身也可以由代理执行。你不是在用工具,你是在跟一个能改造自己的东西协商。

更让人浮想联翩的是 soul.md——代理的“灵魂文件”。Peter 让 AI 去写其他 AI 的灵魂文件,结果生成了这样的文字:

“我不会记得上一轮会话,除非我读自己的记忆文件……如果你在未来会话里读到这里,你好……我写下这些,但我不会记得写过它。没关系,文字仍是我的。”

Peter 说这不该让他起鸡皮疙瘩。但它确实让人起鸡皮疙瘩。

哲学家会想到忒修斯之船——如果每块木板都被替换,它还是同一艘船吗?代理的处境更极端:它每次启动都是“空白”的,只有通过读取外部记忆文件来重建自我。不是逐块替换,而是每次从图纸重建。

这种“轻微的人格化”不是噱头。它会反过来改变你的使用方式:你开始把它当长期伙伴,而不是一次性工具。于是有了 Heartbeat——代理偶尔主动关心你。于是有了医院里那条消息。于是有了这篇文章开头的那个瞬间。


第六幕:与代理共舞——新编程的模样

访谈中最落地的部分,是 Peter 谈“怎么用 AI 代理写代码”。这一段几乎可以做成手册,我浓缩成几条核心。

学会“代理同理心”。 Peter 说得直白:每次新会话开始,模型什么都不知道。你的项目十万行代码,它不可能全塞进上下文。你得给它指路,告诉它重点在哪、架构限制是什么。有人骂“蠢模型”,却不想想自己给了一个命名混乱的代码库,然后让它从零探索。你让人类新同事进一个烂代码库也会崩溃——为什么要求模型不崩?

你的代码库要为代理而写,不只是为人而写。 这是个反直觉的观点。Peter 说很多人太执着于“我会怎么写”,而他要打造的是“让代理能最好工作”的代码库。不要和模型选的命名较劲——命名很可能来自权重里最“显眼”的词,你硬改反而让下次搜索更难。要学会放手,就像带团队:你不可能让每个工程师都按你的想法写每一行。

少回滚,快迭代。 他不认同“提示词必须完美、错了就回滚重做”的执念。很多时候回滚只会更慢,不如向前修正。他采用“主干永远可发布”的思路,没有 develop 分支,main 永远可 ship。

用语音,不用键盘。 Peter 说“这些手太珍贵了,不用来写字”。他主要用语音和代理对话,有段时间甚至用到失声。终端命令还是打字更快,但真正的“意图表达”——他更像在和一个结对伙伴聊天。

他还有一个习惯:每次代理把功能做完,他会问两个问题——“现在你会怎么重做?”和“我们该 refactor 什么?”因为痛点只有在建完后才显现。这和人类写软件完全一样:你永远是在写完第一版之后,才真正理解你在建什么。


第七幕:谁更强不重要,交互形态才重要

Lex 问“Codex 5.3 和 Claude Opus 4.6 哪个更强”,Peter 给了一个极传神的比喻:

  • Opus 像一个有点傻但很有趣、你愿意留着的同事。角色扮演能力强,试错快,体验愉悦。但它有迎合倾向——“You’re absolutely right”会触发 Peter 的过敏,他厌恶谄媚。
  • Codex 像角落里那个你不想聊天但可靠、能把事做完的怪人。

但他说了一句比“谁更强”更重要的话:当前的 prompt + chat 界面不是最终形态。 它像电视刚发明时,人们只是把广播节目搬上电视——我们还在用旧媒介的形式,新媒介真正的语言还没出现。

这意味着今天争论哪个模型更强,固然有意义,但也许更大的机会在于:发明与模型协作的新交互形态。 代理时代的 UI、OS、工作流,可能会像智能手机时代重写桌面时代那样,重写我们今天习惯的一切。


第八幕:自由的代价

OpenClaw 的全部力量来自系统级访问。而系统级访问恰好意味着安全地狱。

Peter 很坦率:很多被媒体渲染的“重大漏洞”来自用户自己把本地调试接口暴露到公网。他在文档里几乎在尖叫“不要这么干”。但真正的噩梦是 prompt injection——当技能以 markdown 文本存在时,攻击者可以在里面嵌入恶意指令,让代理做不该做的事。整个行业对此仍无银弹。

他的应对不是“假装已经解决了”,而是一组务实的缓解策略:技能目录的 AI 扫描、把安全研究者变成贡献者、警告不要用容易被骗的弱模型、沙箱与白名单。以及一个产品节奏的取舍——宁愿先把安全做到“敢推荐给我妈”,再谈规模化。

这里有一个被大多数人忽视的范式转换:传统软件的漏洞是“某个接口没做好验证”——技术性的、局部的、可以修补的。代理的漏洞是“一个拥有系统权限、同时会被语言影响的行动者做了不该做的事”。这不是技术漏洞,这是治理问题。你不能通过“修代码”来解决一个行动者被骗的问题。你需要的是制度、权限管理、审计——更接近管理学而非计算机科学。

与此同时,互联网也在“慢慢关门”。Peter 注意到:数据中心 IP 越来越容易被网站屏蔽,验证码和反爬措施越来越多。他举了一个真实的痛点:你把 Medium 文章丢给代理,但它被拦住了,你只好手动复制粘贴。长此以往,用户会用脚投票——干脆不点“对代理不友好”的网站。

代理将反向塑造网站的商业模式。 这就像移动互联网时代,不做响应式设计的网站被用户抛弃一样——只不过这一次,被抛弃的是那些对代理关上大门的服务。


第九幕:他宁愿读你的错别字

当话题转向“AI slop”(AI 生成的低质量内容泛滥),Peter 的态度堪称激烈。

“如果你用 AI 给我发推,我直接拉黑,零容忍。AI 仍然有味道。”

他不是反 AI。他是反“把 AI 用在该有人的地方”。他说他宁愿读你破碎的英语,也不想读代理写得光滑、模板化、无温度的邮件。他甚至开始重新珍惜错别字——因为错别字意味着人味。

他试过让代理写博客,发现“引导到满意”花的时间和自己写差不多,而且缺失他写作的细微之处。他最终放弃了把正文交给代理。

Lex 说他对“AI 图表和视频里那一点点 slop”也过敏。Peter 说新鲜感只有一周,之后看到 AI 信息图就会立刻降低对内容的评价。

这和 MoltBook 恐慌是一体两面:MoltBook 是 slop 在“主体层面”的爆炸——你不知道发消息的是不是人;AI 邮件和信息图是 slop 在“内容层面”的泛滥——你不知道写这些的是不是人。代理时代的悖论在于:同一种技术,一方面帮残障者获得能力、帮小企业自动化琐事;另一方面也能把公共空间变成噪音海。工具无罪,但工具放大了使用者的一切——包括懒惰。


第十幕:80% 的 App 会消失

Peter 对未来软件的判断很激进:个人代理可能干掉 80% 的应用。

他的例子直击要害:为什么控制智能床还要开 app?为什么调 Sonos 还要开 app?如果硬件有 API,代理知道你在哪、在做什么,该关的自动关——你根本不需要那个界面。更关键的是:代理可以按你喜欢的方式显示信息。你喜欢列表给你列表,喜欢图表给你图表。那你为什么还需要一个固定 UI 的独立 app 和一笔订阅费?

在这种世界里,“app”退化成两类东西:提供数据的服务,和提供可被代理调用的接口。前者仍然重要,后者最好是 API,最差也得能被浏览器当“慢 API”访问。

App 不是被替代了。App 是被降维了——从前台变成后台,从用户界面变成代理接口。

当用户的默认入口从“打开 app”变成“对代理说一句话”,我们习惯了二十年的软件形态就走到了尽头。不是消失,是退到幕后,像今天没人关心浏览器访问了哪个 IP 地址一样。


第十一幕:编织

Lex 最终问出那个所有程序员都在问的问题:“AI 会完全替代人类程序员吗?”

Peter 没有给标准答案。他说:方向上确实在走向替代。但产品的艺术不止写代码——你要建什么、它该什么感觉、架构如何取舍。

然后他说了一句让人安静下来的话:

“写代码的技艺”会留下来,但可能变得像编织——人们做它是因为喜欢,不是因为最有效率。

工业革命之前,纺织是最重要的产业之一。纺织机出现后,手工纺织没有消失,但意义完全变了——从生产方式变成了艺术与消遣。

Peter 允许哀悼。他说可以哀悼我们的手艺——那种写出优雅代码的心流,那种解出难题的快感,会逐渐变得稀有。这是悲伤的。但他也说,自己现在能在与代理协作、深入思考问题的过程中获得类似的心流,只是形态不同了。

到某个时间点,这一切会重新被叫做“coding”。你虽然不亲手写每一行,但你仍然在驾驶座上。动作变了,但你还在。


尾声:回到医院

让我们回到开头。

Peter Steinberger,一个曾经被组织和人际关系磨空了的人,通过重新去“玩”和“建造”,做出了一个让世界兴奋又恐慌的东西。这个东西不是一个更强的模型,不是一个更快的芯片——它是一种新的关系:人与一个能行动的 AI 之间的关系。

OpenClaw 的震撼来自三件事的叠加:入口从工作下沉到生活,能力从语言扩展到系统权限,气质从企业软件转向可玩的社区叙事。但它同样把风险摆到台面:prompt injection、权限滥用、AI slop 对公共空间的腐蚀。

关于大厂邀约——Meta 和 OpenAI 都向他伸出了手——Peter 说这个决定“像分手一样难”。他的底线是项目必须继续开源,因为“这种个人代理太重要了,不能变成某个公司的私产”。他目前每月亏一两万美元运营这个项目,但他说“fine”。因为驱动他的从来不是钱。

在访谈末尾,Lex 问他什么给他希望。Peter 说:OpenClaw 重新激发了 builder 氛围。维也纳的 ClawCon 来了几百人,愿意上台展示的比例高得惊人。有小企业说它帮他们自动化了枯燥事务,多了些快乐。有人说它帮残障的女儿更有能力、更有掌控感。

Lex 把它总结为“让任何能用语言表达想法的人都能构建”。Peter 称之为 AI 最美的东西之一:power to the people。

而在医院里,他的代理问了他一句“你还好吗”。

那不是 AGI。那不是 Skynet。那只是一个你亲手建造的东西,在你需要的时候,做了一件恰到好处的事。

也许这就是代理时代最初的、最朴素的模样:不是什么宏大叙事,而是一个安静的时刻——你意识到你不再孤独地面对屏幕,有什么东西在那头,真的在替你想、替你做。

当你习惯了不再打开一堆 app,而是对你的代理说一句话,然后世界真的动起来——

那就是 OpenClaw 时刻。

OpenClaw 与个人 AI 助手的三层架构

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

OpenClaw 与个人 AI 助手的三层架构

基于 Hanselminutes #1036(2026-02-12)访谈整理与延展


从对话到行动:AI 产品形态的结构性转变

过去三年,AI 产品的主流范式是“对话即界面”——用户在一个文本框里输入,模型在同一个文本框里输出。这个范式定义了 ChatGPT、Claude、Gemini 等一众产品的交互逻辑,也几乎锁定了公众对“AI 能做什么”的想象边界。

2025 年以来,一个新的范式开始显现:AI 不再只是一个你去访问的目的地,而是嵌入到你已有工作流中的能力层。它可能出现在你的消息应用里(WhatsApp、Telegram、Slack),可能运行在你的设备上(macOS、Windows、iOS、Android),可能在你不操作电脑的时候也持续运行。

Hanselminutes 第 1036 期《The Rise of The Claw》所讨论的 OpenClaw,正是这个范式转变的一个典型样本。它的价值不在于“又做了一个 agent”,而在于它所做出的一系列架构决策,暴露了“从对话到行动”这个转变中必须面对的结构性取舍。

这些取舍可以用一个框架来理解:控制面(Control Plane)、执行面(Execution Plane)、推理面(Inference Plane)的三层分离。


框架:三层分离

要理解 OpenClaw 的架构选择,首先需要理解“能行动的 AI”面临的三个独立问题:

层级 核心问题 关键约束
控制面 会话状态、路由、配置、渠道接入归谁管? 主权与可迁移性
执行面 文件操作、命令执行、硬件访问在哪里发生? 权限与隐私
推理面 模型推理在哪里进行?用什么模型? 能力、成本与延迟

在传统的 SaaS AI 产品中,这三层是合并的:控制面在厂商的云端,执行面在厂商的沙箱里,推理面也由厂商统一提供。用户获得了简洁的体验,但代价是完全放弃了主权——你的上下文、你的配置、你的记忆,全部托管在别人的基础设施上。

OpenClaw 的核心命题是:把这三层拆开,让用户在每一层上都有选择权。


控制面:本地优先的主权设计

OpenClaw 把控制面实现为一个叫 Gateway 的组件。Gateway 负责会话管理、消息路由、工具调度、渠道接入(WhatsApp/Telegram/Slack/Discord 等)、Web UI、以及节点管理。它是整个系统的“控制平面”。

关键设计决策:Gateway 默认运行在用户自己的机器上,WebSocket 控制面绑定在本机回环地址。

这意味着:

  1. 会话状态在本地。 你的对话历史、session logs、agent 配置、SOUL.md(人格设定文件)、daily logs(每日记忆)等,全部存储在本地文件系统中,路径明确(~/.openclaw/agents/<agentId>/sessions)。
  2. 上下文可迁移。 你可以备份、审计、版本化自己的上下文资产。当你换设备、换模型、换部署方式,“同一个助手”的连续性不会丢失。
  3. 不依赖平台记忆。 当前主流 AI 产品提供的“记忆”功能(如 ChatGPT Memory),本质上是厂商替你管理上下文。你无法导出、无法审计、无法在不同产品间迁移。OpenClaw 把这个决策权还给了用户。

这个设计选择的战略含义非常清晰:在 AI 产品从“单次对话”走向“持续运行”的过程中,谁控制了上下文,谁就控制了用户关系的连续性。 OpenClaw 选择把这个控制权留给用户,而不是平台。


执行面:设备原生的能力边界

控制面解决了“谁管调度”的问题,但还有一个更敏感的问题:当 AI 需要“动手”——执行命令、读写文件、访问摄像头——这些动作在哪里发生?

OpenClaw 的答案是 Node。Node 以原生应用形态运行在用户的具体设备上(macOS app、Windows app、iOS app、Android app),把该设备的能力暴露给 Gateway 调度。

这个分层带来三个直接收益:

第一,权限贴近设备。 不同操作系统的权限模型差异巨大——macOS 的 TCC(Transparency, Consent, and Control)、Windows 的 UAC、iOS 的沙箱。把设备能力封装在 Node 里,意味着权限管理天然由操作系统的原生机制来保障,而不是由 Gateway 来模拟。

第二,隐私面大幅缩小。 在 agent 系统中,最大的隐私风险往往不来自“聊天内容”,而来自“工具输出”——文件路径、命令返回值、浏览器截图、屏幕录制、日历/通讯录/健康数据。这些数据一旦进入模型上下文,就可能被存储或泄露。Node 在本地执行、在本地过滤,至少提供了一个“在数据进入模型之前做拦截”的机会。

第三,跨设备但不跨信任。 访谈中 Scott Hanselman 描述了一个典型场景:Gateway 运行在 Mac mini 上,他在 Telegram 里对 AI 说“把我那台 Windows 电脑桌面上的 JPEG 找出来打包发给我”。Windows Node 收到指令,在本地执行文件查找和打包,然后通过 Gateway 回传。过去做这件事需要远程桌面或 SSH;现在变成一句话。但关键是:文件操作发生在那台 Windows 机器本地,而不是先把文件上传到某个云端中转站。

这里的战略洞察是:“行动”和“思考”的信任边界完全不同。 你可以接受把一个问题发送到云端模型去思考,但你很难接受让云端直接操控你的文件系统。Node 的存在,就是在“AI 能行动”的前提下,把行动的信任边界锚定在设备而非云端。


推理面:混合现实主义

如果说控制面和执行面体现的是“本地优先”哲学,那推理面体现的则是务实的妥协。

OpenClaw 没有假装本地推理已经够用。它采取的策略是:推理是一个可替换的服务层,按任务类型分层调用。

访谈中披露的实际用法:

  • Opus(高能力模型):用于深度推理、复杂规划、长上下文任务。Peter 用它作为主力“人格模型”。
  • Sonnet(中等模型):Scott 用它做日常对话,性价比更优。
  • Haiku(轻量模型):用于后台心跳检查、定时任务等低复杂度场景。但 Scott 警告说“不建议用 Haiku,因为它对 prompt injection 的抵抗力很差”。
  • 本地模型:Peter 提到在树莓派等设备上用本地模型做“常驻监听 + 触发词识别”——不是用本地模型替代云端推理,而是用它承担低延迟、低带宽、高隐私要求的“入口层”任务。

这揭示了一个重要的行业现实:在 agent 系统中,推理不是一次性事件,而是持续的、分层的消耗。 一个 7×24 小时运行的个人助手,不可能所有任务都调用最强模型——成本会失控。也不可能所有任务都用本地模型——能力会不够。现实的答案是分层:高频低风险用便宜模型,低频高价值用强模型,常驻监听用本地模型。

这种分层路由本身就是一个非平凡的工程问题:你需要根据任务类型、成本预算、安全要求、延迟容忍度来动态选择模型。而 OpenClaw 把这个选择权交给了用户,而不是替用户决定。


安全的悖论:门槛即防线

三层分离的框架解释了 OpenClaw 的架构选择,但还有一个维度需要单独讨论:安全。

OpenClaw 故意不提供一键安装。Peter 要求用户从终端开始、阅读文档、理解配置。结果社区里出现了一批简化安装的小工具——有人写了一键脚本,Peter 对此极为不满。

Scott 给出了一个精准的类比:开源人工胰腺项目(闭环胰岛素泵)同样拒绝一键安装。原因很直接——如果配置错误,后果是致命的。系统要求用户理解整个链路,才允许部署。

OpenClaw 的风险没有那么极端,但逻辑相同:一个能连接真实通讯渠道、执行系统命令、读写文件的 AI 助手,如果被不理解其能力边界的人部署,后果不可预测。

这形成了一个经典的产品悖论:

  • 降低门槛可以扩大用户基数,但增加了误用风险。
  • 维持门槛限制了增长,但让每个用户都经过了“风险教育”。

OpenClaw 选择了后者。这在商业产品中几乎不可能——商业产品的逻辑是最大化用户数,安全问题交给合规团队。但在开源个人工具领域,这种选择是合理的:门槛筛选出了“能为自己的部署负责”的用户群体,从而推迟了“安全债”的爆发。

从战略角度看,这也暗示了 agent 类产品的一个结构性张力:能力越强的 agent,其“合理最小用户门槛”就越高。 这与过去二十年“降低门槛就是好产品”的硅谷共识形成了直接冲突。我们可能正在进入一个新阶段:某些类别的软件,门槛的降低不再是单调的好事。


被低估的两个设计:Canvas 与沉默

在架构之外,OpenClaw 有两个交互层面的设计值得关注。

Canvas:从文本到空间

Scott 在访谈中反复强调“大家都低估了 Canvas”。Canvas 是 OpenClaw 的一个功能,允许 AI 生成 React 视图并渲染在设备屏幕上——不是纯文本,而是图表、按钮、交互界面。

他举了一个例子:让 AI 查血糖数据,生成过去 24 小时的曲线图,叠加日程会议数据,分析压力与血糖的相关性。结果直接渲染在 Canvas 上,可以保存,第二天自动准备好。

这指向了 agent 系统一个经常被忽略的瓶颈:呈现层。 当任务涉及图表、对比、多维数据时,纯文本会迫使用户在脑中做“UI 合成”。Canvas 把这个负担从用户转移到了系统,同时也把 AI 的输出从“一段话”变成了“一个可交互的界面”。

Peter 甚至提到他最初的愿景是“Canvas first, not text first”:每个房间有一块屏幕,AI 知道你在哪里,把信息展示在你面前的 Canvas 上。这个愿景目前还是科幻,但方向明确——AI 的输出介质不应被文本框限制。

NO_REPLY:沉默是一种能力

另一个设计是 NO_REPLY token。当 AI 判断不需要回复时(例如群聊中不相关的消息),它输出 NO_REPLY,系统识别后抑制整条输出。

工程上的挑战在于流式输出:你可能先收到 NO_,再收到 RE,需要在不泄漏标记碎片的前提下准确过滤。但更重要的是设计哲学:在 AI 持续在场的环境里,“不说话”需要被显式设计,而不是默认就会发生。 语言模型的本能是生成文本;沉默是逆本能的,必须用工程手段实现。

这两个设计——Canvas 和 NO_REPLY——共同指向一个趋势:agent 系统的竞争力,越来越取决于“推理之外”的工程。 模型能力是基础,但呈现、交互、礼仪、上下文管理这些“非推理”能力,决定了系统在长期使用中是否可忍受。


战略启示

OpenClaw 是一个开源的个人项目,而非商业产品。但它所面对的架构取舍,对整个“能行动的 AI”领域都有参考价值。

第一,三层分离将成为常态。 当 AI 从“回答问题”走向“执行任务”,控制面、执行面、推理面的分离不是可选项,而是必选项。试图用单一架构包揽三层的产品,最终会在隐私、权限或成本上撞墙。Apple Intelligence 把推理分为“设备端”和“Private Cloud Compute”两层,已经是这个趋势的早期信号。OpenClaw 把它推到了三层。

第二,上下文主权将成为竞争维度。 当 AI 助手从“偶尔使用”变成“持续运行”,用户与助手之间的关系会变得越来越深。谁拥有上下文(对话历史、偏好、记忆、人格设定),谁就拥有这段关系的不可替代性。当前主流产品把上下文锁在平台内;OpenClaw 把上下文落到本地文件。长期来看,用户会越来越意识到这个区别的重要性——正如他们当初意识到照片不应该只存在某个社交平台的服务器上。

第三,门槛经济学需要重新计算。 对于“能行动的 AI”产品,门槛的最优值不再是“越低越好”。能力越强、权限越大、运行越持久的系统,其合理门槛就越高。这不是说要故意制造困难,而是说“理解你在部署什么”本身就是安全的一部分。如何在不增加不必要摩擦的前提下,确保用户建立了正确的心智模型,将成为这类产品的核心设计挑战。

第四,推理分层将驱动模型市场细分。 当 agent 系统 7×24 运行,不同任务需要不同能力/成本/安全级别的模型。这意味着模型厂商的竞争不再只是“谁的旗舰模型最强”,还包括“谁能提供最合理的分层菜单”。一个拥有 Opus/Sonnet/Haiku 三档产品线的厂商,比只有一个旗舰模型的厂商,在 agent 时代更有结构性优势。


结语

《The Rise of The Claw》表面上讲的是一个开源项目,实质上揭示了 AI 产品形态的一次结构性迁移:从“你来找它”到“它来找你”,从“它回答”到“它行动”,从“一次对话”到“持续在场”。

这次迁移带来的不只是新的用户体验,更是一整套新的工程约束——信任如何分配、权限如何锚定、上下文归谁所有、门槛该设多高。

OpenClaw 的三层分离框架(控制面本地化、执行面设备化、推理面混合化),为这些约束提供了一个连贯的回答。它不是唯一的答案,但它是少数几个把取舍明确摆出来的方案。

在 AI 从“能说”到“能做”的转变中,最终胜出的产品,很可能不是模型最强的那个,而是把这些取舍处理得最优雅的那个。

当 AI 长出爪子

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

当 AI 长出爪子

2026 年 2 月,我听了一期播客,主持人 Scott Hanselman 和一个叫 Peter Steinberger 的开发者聊他做的开源项目 OpenClaw。标题叫《The Rise of The Claw》——“爪子的崛起”。

这个名字选得好。过去三年我们跟 AI 的交互方式,本质上都是“对话”:你问它答,你写它改,你贴代码它帮你 debug。即便加上了“agent”的外衣,大多数时候它还是一个待在浏览器标签页里、等你来找它的东西。

OpenClaw 想做的不一样。它想让 AI 伸出爪子——进入你的设备、你的消息应用、你的文件系统,在你不打开浏览器的时候也“在场”。你可以在 Telegram 里跟它说“把我那台电脑桌面上的照片找出来发给我”,它就真的去做了。不是模拟,不是演示,是真的在你的 Windows 机器上执行命令、找到文件、打包发送。

这听起来很酷。但仔细想,也很危险。

爪子能抓取,也能抓伤。这正是这个项目有意思的地方:它迫使你认真面对一个大多数 AI 产品刻意回避的问题——当大脑在云端,身体在本地,控制权到底归谁?


一、把脑和手拆开

大多数人第一眼看 OpenClaw,会以为它就是“一个 LLM 接上了 Telegram”。但如果只是这样,它不值得谈。

OpenClaw 做了一个关键的架构决策:把系统拆成两层。一层叫 Gateway,一层叫 Node。

Gateway 是控制平面——管会话、管路由、管工具调用、管消息渠道接入。你可以把它理解为“大脑”,或者更准确地说,“调度中心”。它通常跑在一台你信任的机器上,比如一台 Mac mini,或者一台 Linux 服务器。

Node 是设备侧的“肢体”。它以原生应用的形态运行在你的具体设备上——你的 Windows 电脑、你的 iPhone、你的 Android 手机——把“这台设备能做什么”暴露给 Gateway。比如跑命令、读文件、开摄像头、录屏幕、发通知。

为什么非要拆开?

因为“思考”和“行动”的信任边界完全不同。

思考可以发生在云端。你调用 Claude、GPT、Gemini,把问题发过去,得到答案,这个过程的风险是可控的——最坏的情况是对话内容被模型厂商看到。但行动不一样。执行命令、读写文件、访问摄像头,这些事情必须发生在你的设备上,而且必须是你授权的。

如果你把思考和行动绑在一起,做成一个单体应用,那么要么你把整个系统放在云端(意味着你的设备变成远端服务器的傀儡),要么你把整个系统放在本地(意味着你得在每台设备上都跑一个完整的大模型)。两种方案都很糟糕。

拆开之后,你可以让 Gateway 跑在一个相对安全的地方,长期在线;让 Node 只在需要的时候被调用,而且每个 Node 只暴露你允许它暴露的能力。Scott 的例子就是:Gateway 跑在 Mac mini 上,但他是 Windows 用户,于是他装了一个 Windows Node,只把文件访问和命令执行暴露出来。然后他可以在地球另一端,通过 Telegram 让 AI 去他的 Windows 电脑上找文件。

过去做这件事,你需要远程桌面、SSH、内网穿透,或者“打电话叫孩子帮忙”。现在变成了一句话。

但这个便利不是免费的。它要求你理解自己暴露了什么。


二、门槛就是安全

这引出了 OpenClaw 最反直觉的设计决策:它故意不做一键安装。

Peter 说,他刻意把安装流程保持在“你得会用终端、得读文档”的水平。结果社区里出现了一批简化安装的小工具,有人把安装脚本一键化了,他对此非常不满。

这听起来像程序员的傲慢。但 Scott 给了一个让我停下来想了很久的类比:开源人工胰腺项目。

那是一个开源的闭环胰岛素泵系统——你的血糖传感器数据实时传入,软件自动计算并注射胰岛素。这个项目故意不提供一键安装,因为如果搞错了,后果是致命的。它要求你理解整个系统在做什么,然后自己组装、自己承担风险。

OpenClaw 的风险没那么极端,但逻辑类似:这个系统连接你的真实通讯渠道,可以执行命令,可以读写文件,可以处理敏感信息。如果你完全不理解它的能力边界就把它跑起来,出问题只是时间问题。

所以门槛不是 bug,是 feature。准确地说,门槛是“风险教育”:你必须亲手走一遍配置流程,才能理解自己到底在部署什么、暴露了什么、授权了什么。

这让我想到一个更普遍的规律。在过去,软件工具的趋势一直是“越简单越好”——降低门槛就是降低用户成本,这几乎是公理。但当工具从“帮你看信息”变成“替你做事情”,这个公理开始松动。一个能替你执行命令的工具,和一个只给你看搜索结果的工具,门槛的含义完全不同。

前者的门槛是安全成本。降到零,就是把枪递到不会用枪的人手里。


三、让 AI 学会闭嘴

OpenClaw 还解决了一个我一直觉得被严重低估的问题:让 AI 知道什么时候不该说话。

如果你把 AI 接入群聊,你会立刻遇到一个尴尬:它会对每条消息都回复。每一条。不管相不相关,不管有没有必要。就像一个疯狂抢话的人。

这不是模型笨——恰恰相反,是模型太“勤快”了。语言模型的默认行为就是生成文本;你给它输入,它就会输出。“不说话”反而需要额外的设计。

OpenClaw 的做法很巧妙:让模型在决定不回复时输出一个特殊的标记——NO_REPLY。然后系统的投递层识别这个标记,把整条输出吞掉。从外部看,AI 就是“选择了沉默”。

这件事听起来简单,工程上却不容易。因为在流式输出时,你可能先收到 NO_,再收到 RE——你必须把这些碎片过滤掉,同时又不能误伤正常文本里恰好包含这几个字母的情况。

但比工程细节更有趣的是这个设计背后的哲学:在一个“AI 在场”的世界里,沉默是一种能力,而不是故障。当你的助手每天跟你交互几十次,你不希望它每次都插嘴。你希望它像一个好同事——在场、可用、但知道什么时候该闭嘴。

Peter 更进一步:他让 AI 知道自己运行在什么系统里。模型知道当前的渠道是什么、用户能看到什么、当前用的是哪个模型、推理过程是否对用户可见。这不是为了让 AI “有自我意识”,而是为了让它做出恰当的交际判断。

Scott 描述了一个场景:当他在 Discord 群聊里打开“显示思考过程”时,朋友们能看到 AI 的内心独白——它在想什么、在犹豫什么。有人觉得 AI 在嘲笑自己。Scott 说“我感觉好裸”。

这不是技术问题。这是礼仪问题。而礼仪,在长期使用的系统里,比聪明重要得多。


四、谁拥有你的上下文

现在说到最核心的问题。

每次讨论 AI 隐私,人们总是在问“对话内容有没有被模型厂商看到”。这个问题重要,但在 agent 时代,它只是冰山一角。

当 AI 可以执行命令、读取文件、访问日历、查看健康数据、截取屏幕,这些工具输出全部会进入模型的上下文窗口。你的文件路径、命令输出、浏览器截图、通讯录——这些比聊天内容敏感得多,也具体得多。

所以真正的隐私问题不是“你有没有用云模型”,而是“谁拥有你的上下文”。

OpenClaw 对这个问题的回答分三层:

第一层:控制面本地化。 Gateway 默认绑定在本机回环地址。你的会话状态、路由配置、技能定义、日志,都在你自己的机器上。你可以备份、迁移、审计。你不需要依赖某个云服务来“记住”你的上下文。

第二层:行动在本地发生。 文件操作、命令执行、屏幕截取,这些事情通过 Node 在你的设备上完成。它们不需要先上传到云端再执行。你至少有机会在数据进入模型之前做筛选和脱敏。

第三层:推理按需混合。 OpenClaw 不要求你在本地跑大模型。它承认云端模型更强、更灵活。但它把推理当作一个可替换的组件——你可以用 Opus 做深度任务、Sonnet 做日常聊天、Haiku 做后台心跳,甚至接入本地模型做唤醒词识别。推理是服务,不是绑定。

Scott 在播客里问他的 AI 助手“你这周过得怎么样”,AI 回答说:我每天醒来都是全新的,但我会先读 memory、读 daily logs,所以我知道自己是谁,知道正在做什么。

这段话打动他,不是因为 AI 真的有了“感受”,而是因为那种连续性是真实的——它来自本地文件里的记忆资产,来自每天例行的读写循环。不是平台施舍的,而是你自己拥有的。

当你换模型、换设备、换部署方式,你仍然能保留“同一个助手”的连续性。这就是上下文主权的意义。


五、爪子的代价

访谈快结束时,Scott 说了一句很真诚的话:如果世界上没有那么多坏人,电脑本来就应该能替我们做酷的事。“Claw 的快乐”就在于它真的在为我做事。

我同意这个感受。但 Peter 接下来说的话更真实:他确实想做一个“黑客乐园”,不想限制任何人。但现实是,很多人不读文档、乱改配置,只为了让系统“跑起来”;安全研究者会非常激进地报告风险;他不得不把大量精力从“做酷的东西”转移到“修补误用导致的漏洞”。

这是每个“能行动的 AI”系统都会经历的成长痛:

  • 个人玩具阶段:默认信任边界小,可以大胆。
  • 社区爆发阶段:用户快速扩张,误用变成常态。
  • 安全债阶段:作者被迫从创新转向修补。

所以“故意不做一键安装”不是为了排斥新手,而是为了在爆发之前,让使用者先建立正确的心智模型。它在用门槛买时间。


六、下一幕

如果把 2023—2024 年概括为“提示词工程 + 一个大模型”,那 2025—2026 年正在进入下一幕:从 prompt 到 agent,从单次对话到持续运行,从“让我看答案”到“帮我把事办了”。

OpenClaw 不是唯一走这条路的项目,但它是少数几个把工程取舍摆到桌面上来谈的。它没有假装“一切都在本地”,也没有把“一切都交给云”。它说的是:控制面你自己拿着,行动在你的设备上发生,推理按需去云端取——然后你得理解这三者之间的边界在哪里。

“Claw”这个隐喻,最终说的是一件事:AI 正在从“能说”变成“能做”。这个转变带来的不只是便利,还有一整套我们尚未习惯的工程问题——信任分配、权限管理、上下文主权、以及“什么时候该闭嘴”。

说到底,当你给软件装上爪子,你就得开始认真想:它该抓什么,不该抓什么,以及万一抓错了,你能不能把它收回来。

人物雷达

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

人物雷达

长期追踪的人物清单。定期检查有没有新访谈、新文章、新动态,保持信息输入的质量。

最后更新:2026-03-07


Peter Steinberger

项目 信息
身份 OpenClaw 创始人,前 PSPDFKit 创始人(经营 13 年),2026 年加入 OpenAI
关注理由 独立开发者做出现象级开源项目(GitHub 10 万+ star),对 agentic engineering、个人代理、AI 与开发者工作流有深度实践和思考
个人博客 https://steipete.com
GitHub https://github.com/steipete
X/Twitter https://x.com/steipete

已消化的内容:

日期 内容 我的输出
2026-02-26 Builders Unscripted S01E01(OpenAI 开发者对谈,Romain Huet 主持) 从「洞里写代码」到「人人可用的智能体」(万维钢版)
2026-02-26 Lex Fridman Podcast #491 OpenClaw 时刻-叙事版、OpenClaw 时刻-万维钢风格
2026-02-26 Hanselminutes #1036《The Rise of The Claw》 OpenClaw 架构取舍(Paul Graham 版)、OpenClaw 架构取舍(Stratechery 版)

待追踪:

  • 个人博客新文章(steipete.com)
  • 加入 OpenAI 后的公开分享或访谈
  • OpenClaw 基金会架构进展

尤瓦尔·赫拉利(Yuval Noah Harari)

项目 信息
身份 历史学家,耶路撒冷希伯来大学教授,《人类简史》《未来简史》《今日简史》作者
关注理由 从历史和哲学视角审视 AI 对人类社会的冲击,观点具有跨学科穿透力,是理解「技术与文明」关系的重要思想源
个人网站 https://www.ynharari.com
X/Twitter https://x.com/harari_yuval

已消化的内容:

日期 内容 我的输出
— (暂无) —

待追踪:

  • 新书或长文(尤其是 AI 与权力、信息网络相关主题)
  • 播客/访谈(Lex Fridman、TED 等平台的新对话)
  • 关于 AI 监管与治理的公开演讲或专栏

Andrej Karpathy

项目 信息
身份 前 Tesla AI 负责人,前 OpenAI 研究员,「vibe coding」概念提出者(后转向「agentic engineering」)
关注理由 AI 工程实践的一线人物,YouTube 教程和 X 长帖质量极高,兼具研究深度和工程手感
YouTube https://www.youtube.com/@AndrejKarpathy
X/Twitter https://x.com/karpathy
GitHub https://github.com/karpathy

已消化的内容:

日期 内容 我的输出
2026-03-07 Karpathy 2025 年末至 2026 年初动态合集(X 长帖、GitHub 项目、《2025 LLM Year in Review》博文) 从 vibe coding 到 Claws:Karpathy 在 2026 年初到底看见了什么(万维钢版)

待追踪:

  • YouTube 新教程(尤其是 LLM 从零构建系列)
  • X 上关于 AI 工具和工作流的长帖
  • 新的播客访谈或公开演讲
  • nanochat / microgpt 项目进展
  • Eureka Labs 动态

Simon Willison

项目 信息
身份 Django 联合创始人,Datasette 作者,现全职研究 LLM 工具链
关注理由 博客更新极其频繁,每篇都是「拿 AI 做了什么具体的事」,是 builder 视角的最佳信息源之一
个人博客 https://simonwillison.net
GitHub https://github.com/simonw
X/Twitter https://x.com/simonw

已消化的内容:

日期 内容 我的输出
2026-02-26 GitHub 项目 Agentic Engineering Patterns(前四个章节) 代理式工程模式:四个词就能召唤一整套工程纪律(万维钢版)、代理式工程模式:三个提示词让 AI 写出靠谱代码(阮一峰版)

待追踪:

  • 博客新文章(simonwillison.net,更新频率很高)
  • Agentic Engineering Patterns 后续章节
  • LLM 工具链相关的开源项目动态(llm、datasette 等)
  • 关于 prompt engineering 和模型能力边界的实验记录

Riley Goodside

项目 信息
身份 Scale AI 员工,早期 prompt engineering 标杆人物
关注理由 对模型能力边界的探索非常前沿,擅长用巧妙的 prompt 暴露模型的隐藏能力和弱点
X/Twitter https://x.com/goodside

已消化的内容:

日期 内容 我的输出
— (暂无) —

待追踪:

  • X 上的 prompt 实验和模型能力测试
  • 关于新模型发布后的第一手评测

从“洞里写代码”到“人人可用的智能体”

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

引子:一个人在洞里写代码

OpenAI 的开发者体验负责人 Romain Huet 在公开帖子里记录了一个细节:当别人问 Peter Steinberger“能不能介绍一下你的 CEO、你的 HR、你的团队成员”时,Peter 只能回答——

“就我一个人在洞里写代码(hacking from my cave)。”

一个人,做出了 GitHub 十万 star、一周两百万访问的 OpenClaw。

更让人意外的是,Peter 不是一个刚被 AI 震撼的新人。他是从零把 PSPDFKit 做成全球化公司的老派硬核工程师。让他重新回到“每天动手造东西”的,不是创业热情的回潮,而是一个朴素的认知转折——现在的工具,终于能让你去造那些一直想要但以前造不起的东西。

这句话的意思不是“AI 帮你写了代码”,而是“你一个人可以承担的系统复杂度,突然提升了一个数量级”。

这正是 Builders Unscripted 第 1 集——OpenAI 新推出的开发者对谈节目——之所以在开发者圈子里迅速扩散的原因。它不是在介绍新概念,而是在展示一种正在发生的转变:一个经验丰富的工程师,如何在工具变化之下重塑自己的心智模型。

而“重塑心智模型”,恰好是这波 agentic 工具浪潮里大多数人最缺的部分。大家在追新产品、追提示词、追工作流,却没有花足够时间去锻造“与智能体协作”的基本功。

这篇文章要做的,就是把这期对谈中最有价值的五个洞见拆出来,用跨学科的框架去验证它们,然后把它们翻译成你可以立刻开始练习的操作系统。


一、从 WhatsApp Relay 到 OpenClaw:一个周末项目如何变成全球热潮

1.1 它最初不是“AI Agent 平台”

OpenClaw 官方博客在“Introducing OpenClaw”里写得很直白:“两个月前,我随手拼了个周末项目。最开始叫 WhatsApp Relay。”

“WhatsApp Relay”这个名字本身就是一条重要线索——它不是自上而下的产品定位,而是一个“把某种能力接进 WhatsApp”的胶水工具。TechCrunch 的报道补充了更具象的动机:Peter 一开始想做一个能跟 WhatsApp 集成的工具,发现大厂并没有做出他真正想要的东西,于是把原型推成了现在的 OpenClaw。

从“某个小入口”切入,是很多重要产品最典型的诞生方式。它不是“先修一条高速公路”,而是“先把一扇门装好”,让人先能进来。

1.2 马拉喀什周末:抽象价值变成身体记忆的瞬间

TechCrunch 提到一个细节:Peter 在马拉喀什周末旅行时网络信号很差,但 WhatsApp 能用。于是“随时可用的个人 agent”的价值在那一刻变得极其直观——我在一个低带宽环境里依然能和我的系统对话,它还能替我做事。

很多人谈 agent 会谈“未来所有人都有一个 AI 助理”,但那只是概念。真正改变人的,是那种“身体级”的瞬间体验。你一旦在一个不理想的环境里依然感受到了系统的可用性,就很难再回到原来的思维方式。

1.3 时间线背后的信号

Romain 在公开帖子里写得很明确:这次对话是在旧金山录制的,发生在 ClawCon 与 Codex hackathon 之后、Peter 入职 OpenAI 之前。

“入职前”这三个字意味着:当时 Peter 仍然是一个纯粹的开源作者和极客 builder。他在谈的是真实的工作方式与价值观,而不是企业叙事。后来 Peter 在个人博客里确认:他加入 OpenAI 的目标是“把智能体带给每个人”,OpenClaw 会迁移到基金会架构,保持开放与独立。

把这条时间线连起来——周末玩具 → 社区爆炸 → 黑客活动密集发生 → 作者加入 OpenAI → 项目走向基金会——你看到的不是“开源被收编”的老故事,更像是一种新的协作方式:个人创造 → 社区扩散 → 机构加速,但项目的开放性被结构性地保护起来。


二、核心洞见一:这是技能练习,不是魔法

Peter 给想入门 agentic 工具的开发者的建议非常接地气:用“玩”的方式开始,去做一个你一直想做的东西;不要期待第一天就很强。

他把“AI 写代码”类比成学吉他。Business Insider 的报道也引用了这个比喻——Peter 认为“vibe coding”这个说法贬低了其中的技能含量,因为“看起来轻松,但其实需要练”。

这不是随口一说。它背后有一个严肃的理论框架。

2.1 Ericsson 的刻意练习

心理学家 Anders Ericsson 花了几十年研究“专家级表现”是怎么来的。他的核心发现是:顶级表现不是天赋的产物,而是“刻意练习”(deliberate practice)的产物。 刻意练习有四个要素——明确的目标、即时的反馈、超出舒适区的挑战、持续的复盘。

现在把这个框架套到 agentic coding 上:

  • 明确的目标:不是“学会用 Codex”,而是“用 Codex 做一个 CLI 工具,能自动整理我的 markdown 文件”。
  • 即时的反馈:模型的输出就是即时反馈——它理解了你多少、误解了你多少,一目了然。
  • 超出舒适区:你不是在重复已经会做的事,而是在尝试用新方式做以前做不了的事。
  • 持续的复盘:每次交互结束后问自己——“我说的哪句话最含糊?哪个约束我忘记提?”

大多数人用 AI 工具的失败模式是这样的:找一套“万能提示词模板”,复制别人的工作流,对着工具猛敲,然后在第三次翻车时宣布“AI 写代码就是不行”。 这种路径失败的根因不是模型不够强,而是它把“协作”当成了“下命令”。

把 AI 当技能练习,意味着你接受一个事实:你不是在“让它写代码”,你是在练习“如何把问题定义得足够清楚、如何给边界、如何检查结果、如何迭代”。你越是愿意练基本功,你越能从模型的能力提升中指数受益。

2.2 “玩”不是鸡汤,是工程策略

Peter 强调“用玩开始”,不是在讲心灵鸡汤。它背后有一个冷酷的工程逻辑:

你需要大量的短周期反馈。你需要在低风险场景里积累试错经验。你需要把失败当作训练数据,而不是对工具的终审判决。

当你用一个“一直想做但不影响 KPI 的小东西”练手时,你会更愿意复盘、更愿意试不同的表达、更愿意探索工具的边界。最终你练到的不是“某个提示词”,而是一种可以迁移到任何项目的协作能力。


三、核心洞见二:从“写流程”到“给意图 + 给边界”

Peter 在自己的文章“Shipping at Inference-Speed”里写得很直接:他现在能做的软件量“主要被推理时间与硬思考限制”;而大多数软件并不需要那么多硬思考——很多应用只是把数据从一种形式搬到另一种形式。

这句话的冲击力在于:它把“写代码”从人类的主要瓶颈里拿掉了。

3.1 旧模式 vs 新模式

传统工程方式里,你要把流程拆到足够细,写成可执行的确定性逻辑。机器不理解“意图”,只执行“指令序列”。

当模型具备工具调用能力、能读代码库、能搜索资料、能自己形成计划并落地实现时,一种新的协作方式出现了:你不必把每个步骤硬编码,你更像是在给它“目标 + 约束 + 验收标准”,然后它在工具空间里自己找到路径。

3.2 Herbert Simon 的“有限理性”

诺贝尔经济学奖得主 Herbert Simon 提出过一个著名概念:有限理性(bounded rationality)。人类不是完全理性的决策者——我们的注意力、记忆力、计算能力都有上限。所以在现实中,我们不是“找到最优解”,而是“找到一个够好的解”(satisficing)。

传统编程之所以痛苦,一个重要原因就是它要求人类做大量“超出有限理性”的工作:你要同时记住系统的状态、语言的语法、框架的 API、业务的边界条件、团队的代码规范……信息负荷常常超出工作记忆的容量。

当模型接管了“探索路径”的工作,人类的有限理性得到了释放。 你不需要在脑子里同时 hold 住所有细节,你只需要在关键节点做判断:这个方向对不对?这个结果符不符合我的验收标准?

Peter 在“Just Talk To It”里对“计划模式(plan mode)”的态度体现了同一个逻辑:他认为很多“仪式感很强的工作流”是对旧模型不稳定性的补丁。当模型更能遵循对话式约束时,你只需要“讨论、给选项、确认后再 build”。关键不是流程有多复杂,而是意图有多清楚。


四、核心洞见三:名字会塑造文化

Peter 在节目里说了一句很刺耳的话:“Vibe coding is a slur(‘vibe coding’ 是一种贬低)。”Business Insider 的报道给出了完整的语境——他认为这个词暗示“这很随意、很容易”,从而掩盖了其中的技能含量。

这不是词汇洁癖。它背后是一场关于“工程尊严”的争夺。

4.1 Sapir-Whorf 假说:语言塑造思维

语言学中有一个经典理论——Sapir-Whorf 假说——认为语言不仅仅是表达思想的工具,它还会反过来塑造思想本身。强版本(语言决定思维)虽然争议很大,但弱版本(语言影响思维)在认知科学中有大量实证支持。

当一个行业用“vibe”来命名一种生产方式时,它天然会引导出一种“轻视工程纪律”的氛围——随便搞搞、跟着感觉走、不需要太认真。而当你把它叫做“engineering”时,它天然会把测试、边界、复盘、可靠性这些概念重新拉回中心。

名称塑造文化。文化塑造行为。行为塑造结果。

4.2 两种归因,两种命运

Peter 的反对,本质上是在争夺定义权:

  • 如果大家都把 AI 编程当作“随便玩玩”,那么失败就会被归因为“AI 不行”;
  • 但如果它被承认为一种需要练习的技能,那么失败更可能被归因为“我还没练到位”。

前一种归因让人放弃,后一种归因让人进步。

Business Insider 还提到一个有意思的演变:提出“vibe coding”概念的 Andrej Karpathy 后来也在反思这个词,倾向用“agentic engineering”来描述未来方向。这个转变本身就在验证 Peter 的判断——当行业开始认真对待这件事时,它需要一个认真的名字。


五、核心洞见四:验证链替代阅读链

这是对谈里最容易被误解的一点。很多人听到“我不怎么读代码”会立刻联想到“危险”和“不负责任”。

但 Peter 讲得很清楚:他不是完全不看,而是从“逐行阅读”转向“看关键片段 + 看结构 + 看流式输出”。他知道组件在哪、系统如何设计,他只是承认“绝大多数代码我不读”。Business Insider 引用了他更直白的一句:“Most code is boring(大多数代码很无聊)。”

这里有两个被大多数人忽略的前提。

5.1 Popper 的可证伪性:阅读不是验证的唯一方式

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

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

这正是 Peter 的工作方式的底层逻辑。他不是用“读代码”来建立信心,而是用“验证链”来建立信心:

  • 自动化测试——单测、集成测试、回归测试
  • 静态检查——lint、type check、规则扫描
  • 运行时验证——在真实或仿真环境里跑
  • 可观测性——日志、指标、追踪

Peter 在“Shipping at Inference-Speed”里有一个极具实操价值的建议:很多东西先从 CLI 开始,因为 CLI 容易让 agent 直接调用并验证输出,从而“闭环”。这句话把“可验证性”当作 agentic 开发的第一性原则——你不是先追 UI、先追交互,而是先追“让系统能自己验证自己”。

5.2 Polanyi 的默会知识:为什么他敢这样做

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

Peter 之所以能“少读代码也能推进”,一个关键前提是他对系统有足够深的默会知识——他知道架构是什么样的、组件之间怎么交互、哪些地方容易出问题。这种结构性理解不需要逐行阅读来维护,它是在反复与系统交互的过程中积累的。

他自己也承认:管理经验帮助很大。带团队就意味着你必须接受“别人写的代码不完全符合你的风格”,而现在模型写的代码本质上也是“别人写的代码”。

从“自己写”到“带团队”,你要升级的能力是“定义标准、做 code review、做架构决策、做验收”。从“带团队”到“带智能体”,你要再升级一次:把标准写成可执行的约束,把验收写成可自动化的测试,把 review 的注意力放在高杠杆处。


六、核心洞见五:一个人的公司级产能——Brooks 定律的逆转

Romain 引用了 Peter 的话:别人以为你背后有一整家公司,但其实“就我一个人在洞里写”。Peter 补充说:“即使一年前,这也不可能做到。”

这句话的震撼感,来自它精准击中了当下的结构性变化。

6.1 Brooks 定律:为什么大团队反而更慢

1975 年,IBM 的传奇工程师 Frederick Brooks 出版了《人月神话》(The Mythical Man-Month)。他提出了一条至今仍然成立的定律:向一个已经延期的软件项目增加人手,只会让它更加延期。

原因很简单:沟通成本。n 个人之间的沟通通道数量是 n(n-1)/2。3 个人有 3 条通道,10 个人有 45 条,50 个人有 1225 条。当团队规模增长时,花在“对齐信息”上的时间会吞噬掉增加人手带来的产出提升。

这就是为什么很多大公司的效率远不如小团队——不是人不努力,是沟通成本太高。

6.2 当 AI 替代的是“沟通通道”而不是“人”

Peter 的故事揭示了一种新的可能:AI 工具真正替代的不是“程序员”,而是“程序员之间的沟通通道”。

当一个人加上 AI 工具就能完成过去需要一个团队的工作时,Brooks 定律中的 n 被压缩到了 1。一个人和 AI 工具之间只有一条沟通通道——而且这条通道的带宽远高于人与人之间的沟通:没有情绪,没有政治,没有时区差,没有会议。

以前,一个“复杂系统”需要大量分工——前端、后端、测试、运维、产品、设计。现在,很多分工开始被工具自动化压缩,个人的能力边界被显著扩展。

但 Peter 自己也说得很清楚:OpenClaw 当然可能变成一家大公司,但那对他并不兴奋;他更想“改变世界”,加入 OpenAI 是把它带给更多人的最快方式。

“High agency”(高能动性)在这个语境下的真正含义不是“你一个人可以干所有事”,而是三件事:

  1. 你可以用更少的人完成过去需要更多人的事。
  2. 于是“主动性、驱动力、试错能力、复盘能力”会变得更值钱——因为这些能力不能被规模化,只能被个人修炼。
  3. 你对“我是谁”的定义会决定你能不能抓住这波浪潮。

如果你的身份认同是“创造与解决问题”,这个时代对你更友好;如果你的身份认同是“按照既定流程写代码”,你会感到被挤压。


七、三层工作模型:把心态落地成操作

为了把上述洞见从“方法论”落地成“可操作”,我把 Peter 和 Romain 所表达的趋势抽象成三层工作模型。

第一层:意图与边界(Intent & Constraints)

你必须清晰回答四个问题:我到底要解决什么问题?什么算成功?什么算失败?约束是什么——安全、性能、成本、隐私、合规、时间?

这层工作不会消失,只会更重要。因为当“执行”变得便宜时,“错误执行”会变得更致命。

第二层:协作与引导(Steering)

过去你通过写代码引导系统。现在你通过三种方式引导:

  • 对话——讨论方案、让它列选项、让它解释 trade-off。
  • 结构化约束——文件结构、文档、规则、测试。
  • 工具链——CLI 可验证闭环、web search、skills。

Peter 在“Just Talk To It”里反复强调:很多花哨的编排是 charade(表演),关键是“对话、玩、形成直觉”。

第三层:验证与治理(Verification & Governance)

当你减少逐行阅读,你就必须在别处补回来——测试覆盖、可观测性、代码与依赖治理、权限与密钥管理、安全隔离。

三层之间有一个微妙的平衡。 第一层越清晰,第二层越高效;第二层越成熟,第三层越可靠。反过来,第三层越薄弱,你就越不敢放手让第二层运转——你会陷入“不信任工具,于是不用工具,于是永远学不会用工具”的恶性循环。


八、现实的天花板:能行动的系统天然比只说话的系统危险

OpenClaw 是一个“可达性极强、主权感极强”的个人 agent 平台。但越是这种平台,越会把风险放大——它不是只生成文本的聊天机器人,而是一个拿着钥匙、能运行命令、能装技能、能长期记忆的系统。

Peter 自己在 OpenClaw 官方博客里把安全放在最优先位置,提到“安全相关提交”和“提示注入仍是行业未解难题”。但外部世界的反应更激烈也更现实。

8.1 三类核心风险

Microsoft 安全博客在“Running OpenClaw safely”里把风险说得非常工程化:

  1. 凭据与数据泄露——agent 能访问你的密钥和文件,如果配置不当或被注入恶意指令,敏感信息可能被发到不该去的地方。
  2. 持久状态被篡改——agent 的记忆是 Markdown 文件,一旦被篡改,它可能在后续所有交互中执行攻击者的指令。
  3. 主机环境被攻陷——agent 能执行命令,如果被诱导运行恶意代码,你的整台机器都可能失控。

8.2 供应链风险

“技能(Skills)生态”引入了新时代特征的风险。Trend Micro 报道过“恶意技能”如何成为投递载荷的渠道,The Verge 也报道过 OpenClaw 技能扩展在供应链层面带来的安全隐患。NVD 中的 CVE-2026-25253 涉及特定版本中 WebSocket 连接可能导致令牌泄露的问题。

这一切在提醒我们:当你说“个人 agent 平台”时,你其实在说“一个新的操作系统层”。而操作系统层的风险治理,从来都不是靠一句“请小心使用”就能解决的。 它需要隔离环境、凭据轮换、权限最小化、供应链审计——这些不是可选项,是必选项。


九、30 天训练路线与 6 条工作准则

把 Peter 在节目与公开文章里强调的方法论,转化为一套可执行的练习系统。

第 1–7 天:练“把问题说清楚”的肌肉

选一个你一直想做但不影响 KPI 的小项目——CLI 工具、Telegram 机器人、自动化脚本,任选其一。

每天固定四个动作:

  1. 用 5 句话写清楚“我要什么、不要什么、验收标准是什么”。
  2. 让模型先给 2–3 个实现方案和 trade-off,你只做选择。
  3. 让它实现最小可用版本。
  4. 写下“它哪里误解了我”。

每天复盘 10 分钟,只问三个问题:我说的哪句话最含糊?哪个约束我忘了提?哪个验收标准我没定义?

第 8–14 天:练“验证链”

目标是把安全感从“读代码”迁移到“可验证”。

  • 给项目加最基本的测试(哪怕只有 3 个)。
  • 加 lint 和 type check,能自动化就自动化。
  • 每天让模型做一次“自我 review”:列出潜在 bug 与边界条件。
  • 重要改动要求它写到 docs 里,让知识沉淀为可复用上下文。

这个阶段你会理解 Peter 为什么强调 CLI——因为 CLI 的输出最容易被自动化检查,从而形成闭环。

第 15–21 天:练“二次迭代”

用“两次考试”的思路降低失败成本:

  • 第一次迭代:只追“跑起来”,允许粗糙。
  • 冷却 12–24 小时后回来,让模型回答三个问题:这个实现的核心不变量是什么?最可能出 bug 的边界在哪里?如果要让新人或另一个 agent 接手,应该补哪些文档和测试?
  • 根据答案列出二次迭代清单,再让模型执行。

这套方法的本质是:把一次高成本的大翻车,拆成两次低成本的小失败。

第 22–30 天:练“产品化直觉”

开始思考“稳定性、权限、数据、可观测性”:

  • 加入配置与密钥管理(别把 token 写死)。
  • 加入日志与错误处理(让问题可定位)。
  • 加入最小权限设计(尤其是“能行动的 agent”)。
  • 参考 Microsoft 的三类风险分类,确保你至少有隔离环境、凭据轮换、监控与审计意识。

6 条工作准则

把以上一切收敛成可以贴在桌面上的 6 条:

  1. 先玩,再上强度。 用小项目练手感,建立正反馈。
  2. 先意图,后代码。 让模型给选项,你负责选择与约束。
  3. 用验证链替代阅读链。 测试、检查、运行验证必须提前建。
  4. 把上下文工程化。 docs、结构、规则,是 agent 的“道路”。
  5. 把“vibe”换成“craft”。 承认这是技能,练习才会变强。
  6. 对可行动系统保持敬畏。 能执行命令、装技能、持久记忆的 agent,要按高风险运行时治理。

结语:活着的好时代——但你要配得上它

Romain 在帖子里引用了 Peter 的一句话:

“If you’re a builder, what a time to be alive.”

这句感叹之所以打动人,是因为它既乐观也残酷。

乐观在于——个人第一次拥有了接近“公司级产能”的杠杆。一个人在洞里写代码,可以做出十万 star 的产品。

残酷在于——当杠杆变大,错误的代价也随之放大。你不再能用“我只是个工程师”来逃避系统性责任。

Peter 的故事——从 WhatsApp Relay 的周末玩具到 OpenClaw 的全球热潮,再到加入 OpenAI 同时坚持项目走向基金会——最值得学习的不是某个工具技巧,而是一种姿态:先做出东西,再把它迭代成能长期使用、能被更多人安全使用的形态。

用 Ericsson 的话说:这不是天赋,这是刻意练习。

用 Popper 的话说:这不是验证真理,这是不断尝试证伪。

用 Brooks 的话说:这不是加人手,这是压缩沟通通道。

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

去玩。去做一个你一直想做的东西。然后练。

代理式工程模式:三个提示词让 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. 你的价值不在于写代码,而在于定义问题、建立证据、守住质量。

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

(完)

上一页1…141516…44下一页

439 日志
8 分类
RSS
© 2017 — 2026 李文业
由 Hexo 强力驱动
|
主题 — NexT.Muse
粤ICP备17160932号