<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Code Plato</title><link>https://CodePlato3721.github.io/zh/</link><description>Recent content on Code Plato</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Thu, 28 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://CodePlato3721.github.io/zh/index.xml" rel="self" type="application/rss+xml"/><item><title>Agent Skill 制作手册 01：入门篇</title><link>https://CodePlato3721.github.io/zh/post/agent-skill-%E5%88%B6%E4%BD%9C%E6%89%8B%E5%86%8C-01-%E5%85%A5%E9%97%A8%E7%AF%87/</link><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><guid>https://CodePlato3721.github.io/zh/post/agent-skill-%E5%88%B6%E4%BD%9C%E6%89%8B%E5%86%8C-01-%E5%85%A5%E9%97%A8%E7%AF%87/</guid><description>&lt;img src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/agent-skill-handbook-01-getting-started/banner.png" alt="Featured image of post Agent Skill 制作手册 01：入门篇" /&gt;&lt;p&gt;Agent Skill 制作手册是一个系列教程。这是第一篇。&lt;/p&gt;
&lt;h2 id="什么是-skill"&gt;什么是 skill
&lt;/h2&gt;&lt;p&gt;很多程序员问，Agent Skill 是什么？我敢说，Agent Skill 是你们学习编程以来能学到的最简单的技术之一。&lt;/p&gt;
&lt;h3 id="skill-是怎么发展出来的"&gt;skill 是怎么发展出来的
&lt;/h3&gt;&lt;p&gt;就像跟人一起工作一样。你有一个新入职的同事，就算他技术再好，也总要先看一些你们公司的 how to 文档，才能开始做事。人们发现，跟 LLM 工作也有同样的模式。你让 LLM 直接做事情，那多半会做出一件偏离你预期的漂亮事，这就很尴尬了。&lt;/p&gt;
&lt;p&gt;然后就有人发现，如果先在提示词里面加上做事情的步骤，LLM 就做得好。所以大家就一直给 LLM 喂 how to 手册。&lt;/p&gt;
&lt;p&gt;但是 LLM 的上下文有限啊，而且你每次塞这么多上下文，你的钱包先爆了。于是人们又想，其实我们自己工作的时候也记不住 how to 的内容。我们大概记得有那么个 how to 教了我做这件事情，但具体内容不记得了。没关系啊，我们到时候再去 wiki 看看不就得了。那我们也可以让 LLM 只记住这个 how to 是做什么的，具体需要的时候再看呗。于是我们可以把每一个 how to 的描述喂给 LLM，LLM 看描述就知道，需要做事情的时候要找哪个 how to 了。&lt;/p&gt;
&lt;p&gt;到这里，我们已经可以推导出一个简单的、给 LLM 量身定做的 how to 了。它只有两个重要属性：&lt;code&gt;name&lt;/code&gt; 和 &lt;code&gt;description&lt;/code&gt;，剩下的就是正文了。每次加载只加载 &lt;code&gt;name&lt;/code&gt; 和 &lt;code&gt;description&lt;/code&gt;，LLM 自己会判断是否需要读取这个 how to 的正文。&lt;/p&gt;
&lt;p&gt;&lt;img alt="skill 结构示意图" class="gallery-image" data-flex-basis="320px" data-flex-grow="133" height="1086" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/agent-skill-handbook-01-getting-started/01.png" srcset="https://CodePlato3721.github.io/01_17950217286682826352_hu_ad092d28159b7ab2.png 800w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/agent-skill-handbook-01-getting-started/01.png 1448w" width="1448"&gt;&lt;/p&gt;
&lt;p&gt;这就是 skill。其实这个东西叫什么不重要，它可以叫 howto、guide、manual 都可以，但是大家觉得 skill 这个名字够短、好记，还自解释，就用它了。可能在别的平行宇宙里，它叫 guide。&lt;/p&gt;
&lt;h3 id="skill-是哪家的"&gt;skill 是哪家的？
&lt;/h3&gt;&lt;p&gt;这种 &lt;code&gt;SKILL.md&lt;/code&gt; 形态的 Agent Skill，最早是 Anthropic 系统公开推广的；但 skill 这个词和&amp;quot;让 AI 学技能&amp;quot;的思想并不属于某家公司。OpenAI、OpenClaw、Hermes Agent 都有自己实现的 skill。这只是一个概念，各家有各家自己的实现，这些实现在细节上有些区别，但都是指同一个事情。&lt;/p&gt;
&lt;h2 id="怎么写-skill"&gt;怎么写 skill
&lt;/h2&gt;&lt;h3 id="skill-通用规范"&gt;skill 通用规范
&lt;/h3&gt;&lt;p&gt;各家的 skill 规范的共同点是：skill 是一个文件夹。结构是：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;my-skill/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; SKILL.md # 必须：元数据 + 指令
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; scripts/ # 可选：可执行脚本
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; references/ # 可选：文档、说明、规范
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;而其中的 &lt;code&gt;scripts&lt;/code&gt;、&lt;code&gt;references&lt;/code&gt; 都不是必须的，只是大家习惯的一种最佳实践而已。最重要的是 &lt;code&gt;SKILL.md&lt;/code&gt;。有的 skill 只有这一个文件，而这个文件的结构也很简单。&lt;/p&gt;
&lt;p&gt;一个最小的 &lt;code&gt;SKILL.md&lt;/code&gt;，在元数据层面只需要 &lt;code&gt;name&lt;/code&gt; 和 &lt;code&gt;description&lt;/code&gt;。正文可以很短，但最好写清楚 agent 被触发后到底要做什么。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;skill的名字&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;description&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;解释这个skill是干嘛的，什么时候应该被触发，什么时候不应该被触发等&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;当你的 skill 比较复杂，需要一些结构化的数据和逻辑的时候，就可以考虑建立 &lt;code&gt;scripts&lt;/code&gt; 文件夹，然后在里面写代码。当你的 skill 引用的文档比较多，你怕把上下文给撑爆了，就可以把大部分文档移到 &lt;code&gt;references&lt;/code&gt; 里面。&lt;/p&gt;
&lt;h3 id="写一个-skill"&gt;写一个 skill
&lt;/h3&gt;&lt;p&gt;来动手写一个 skill 吧。我保证这是你看到的最短的教程。这个 skill 会在你说三次 Hello 的时候回复三个 World。新建 &lt;code&gt;SKILL.md&lt;/code&gt;，并在里面写：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;hello-world&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;description&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;当用户说三次&amp;#34;Hello&amp;#34;（例如&amp;#34;Hello Hello Hello&amp;#34;）时，回复三次&amp;#34;World&amp;#34;：&amp;#34;World World World&amp;#34;。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Hello World&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;当用户的消息中包含恰好三个&amp;#34;Hello&amp;#34;时，只回复：&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;World World World&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;不说其他任何内容，只有这三个字。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后安装到你的 AI agent 里面。你问我怎么安装？这都什么年代了，你问你自己的 AI agent 怎么安装，它自会告诉你的。&lt;/p&gt;
&lt;p&gt;安装好后就试试吧。&lt;/p&gt;
&lt;h2 id="skill-规范"&gt;skill 规范
&lt;/h2&gt;&lt;p&gt;Codex、Claude Code、OpenClaw、Hermes Agent 它们都对 skill 有自己的一些细节上的规范，我就不在此赘述。不过有几点我觉得有必要提。&lt;/p&gt;
&lt;h3 id="skill-防触发机制"&gt;Skill 防触发机制
&lt;/h3&gt;&lt;p&gt;基本上，是否触发 Skill 是看 LLM 自己决定的。这其实带来另外一个问题，就是 skill 经常被误触发，或者不被触发。对此各家都有各自的措施。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;禁止自动触发，但允许手动触发&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude / OpenClaw: &lt;code&gt;disable-model-invocation: true&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Codex: &lt;code&gt;agents/openai.yaml&lt;/code&gt; 里的 &lt;code&gt;allow_implicit_invocation: false&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;彻底禁用 skill&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Codex: &lt;code&gt;[[skills.config]] enabled = false&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;OpenClaw: &lt;code&gt;skills.entries.&amp;lt;skillKey&amp;gt;.enabled = false&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;从这里可以看出，skill 的优点在于自由，但缺点也是自由。有时候你想触发，却触发不了；不想触发，它却一直被触发。不过在之后的教程中我会介绍一些范式来解决这个问题。&lt;/p&gt;
&lt;h3 id="skill-的分类"&gt;Skill 的分类
&lt;/h3&gt;&lt;p&gt;在 skill 慢慢被越来越多的人使用后，skill 也开始出现一些分类方式。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;skill 和 command&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在 OpenClaw 和 Claude 桌面版中，skill 是可以用斜杠（&lt;code&gt;/&lt;/code&gt;）调用的。区别在于，在 Claude 桌面版中，你安装了 Skill 后，按 &lt;code&gt;/&lt;/code&gt; + &lt;code&gt;&amp;lt;skill名&amp;gt;&lt;/code&gt; 就可以触发 skill；而在 OpenClaw 中，你是通过设置 &lt;code&gt;user-invocable: true&lt;/code&gt; 来让这个 skill 可以用斜杠触发的。&lt;/p&gt;
&lt;p&gt;在 OpenClaw 里，一部分 skill 可以被暴露成 slash command。command 是调用方式，不一定是独立分类。这就引发了一个有趣的思考：当你建立一个新 skill 的时候，你可以思考一下，你这个 skill 是一个普通的 skill，还是一个 command。毕竟在手机上找到斜杠，并不像在电脑上这样容易。有些生活类的 skill，你可以依赖 LLM 去猜测；而有些需要精确被触发的，就可以用斜杠。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;工作流式和应用式&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;你会发现，有些 skill 仅仅只是定义了一件事情该怎么做，而有些 skill 更像是一个你自己定义的 app。定义了该怎么做的，可以被称为工作流式。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;比如你让 LLM 帮你归纳一下会议纪要。这样的 skill 就只需要 &lt;code&gt;SKILL.md&lt;/code&gt; 就够了。如果流程比较复杂，那就把流程抽取到 &lt;code&gt;references&lt;/code&gt; 里面。&lt;/li&gt;
&lt;li&gt;如果是应用式的，比如你要做一个购物清单，你需要比较复杂的逻辑和比较规范的数据存储。你就需要将某些逻辑抽取出来写成 &lt;code&gt;scripts&lt;/code&gt;。但是 &lt;code&gt;scripts&lt;/code&gt; 不是越多越好，只有需要确定性行为或外部工具时才用 &lt;code&gt;scripts&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="skill 分类示意图" class="gallery-image" data-flex-basis="320px" data-flex-grow="133" height="1086" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/agent-skill-handbook-01-getting-started/02.png" srcset="https://CodePlato3721.github.io/02_18422898844138254243_hu_ce56d308cb564460.png 800w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/agent-skill-handbook-01-getting-started/02.png 1448w" width="1448"&gt;&lt;/p&gt;</description></item><item><title>AI时代，还有必要练习编程吗？</title><link>https://CodePlato3721.github.io/zh/post/ai%E6%97%B6%E4%BB%A3%E8%BF%98%E6%9C%89%E5%BF%85%E8%A6%81%E7%BB%83%E4%B9%A0%E7%BC%96%E7%A8%8B%E5%90%97-/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://CodePlato3721.github.io/zh/post/ai%E6%97%B6%E4%BB%A3%E8%BF%98%E6%9C%89%E5%BF%85%E8%A6%81%E7%BB%83%E4%B9%A0%E7%BC%96%E7%A8%8B%E5%90%97-/</guid><description>&lt;img src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/do-we-still-need-to-practice-programming-in-the-ai-era/banner.png" alt="Featured image of post AI时代，还有必要练习编程吗？" /&gt;&lt;p&gt;AI时代已经开始流行所谓的 &amp;ldquo;Vibe Coding&amp;rdquo; 了，那么还有必要练习编程吗？&lt;/p&gt;
&lt;p&gt;我认为，还是有必要的。&lt;/p&gt;
&lt;p&gt;虽然我之前写过一篇文章，提到可以利用 AI 来帮助精炼阅读内容、快速理解文章结构，但有几个现实问题并不会因为 AI 的出现而改变。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;人脑单位时间内能够学习到的知识量，其实并不会改变。简单来说，无论未来 AI 技术发展得多快，你学习知识的速度并不会同步变快。学习本身并没有真正的捷径。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AI 在训练时，既学习了好的代码，也学习了坏的代码。有时候坏代码不一定是&amp;quot;错误代码&amp;quot;，它可能只是充满坏味道、难维护、架构混乱的代码。如果你自己看不出来问题，那么 AI 往往也看不出来。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="例子1"&gt;例子1
&lt;/h2&gt;&lt;p&gt;很多东西，有经验的人第一眼看过去，和没有经验的人看到的是完全不同的。&lt;/p&gt;
&lt;p&gt;比如在 React 中，当你看到这样一段代码：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;phone&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;iPhone&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;price&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;payInFull&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1000&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;monthlyFin&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;99&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;某天，产品经理让你增加一个&amp;quot;快照页面&amp;quot;。这个页面需要展示商品当前状态的一个快照，即使商品后续状态发生变化，快照页面里的内容也不应该改变。&lt;/p&gt;
&lt;p&gt;AI 很快帮你生成了这样一段代码：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-jsx" data-lang="jsx"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;phone&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;iPhone&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;price&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;payInFull&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1000&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;monthlyFin&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;99&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;Snapshot&lt;/span&gt; {&lt;span style="color:#a6e22e"&gt;...phone&lt;/span&gt;} /&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;你看到 &lt;code&gt;{...phone}&lt;/code&gt;，心里想：&lt;/p&gt;
&lt;p&gt;&amp;ldquo;这个我懂，不就是对象拷贝吗？&amp;rdquo;&lt;/p&gt;
&lt;p&gt;结果没过多久，客服部门报告了一个 Bug：在父组件内修改价格后，快照页面里的价格竟然也一起改变了。&lt;/p&gt;
&lt;p&gt;你非常困惑，觉得这不应该发生。&lt;/p&gt;
&lt;p&gt;经过研究后，你发现：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-jsx" data-lang="jsx"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;Snapshot&lt;/span&gt; {&lt;span style="color:#a6e22e"&gt;...phone&lt;/span&gt;} /&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;并不等于：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;snapshot&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; {...&lt;span style="color:#a6e22e"&gt;phone&lt;/span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;前者只是 React 的一种 props spread 语法糖。&lt;/p&gt;
&lt;p&gt;于是你修改了代码：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-jsx" data-lang="jsx"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;phone&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;iPhone&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;price&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;payInFull&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1000&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;monthlyFin&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;99&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;snapshot&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; {...&lt;span style="color:#a6e22e"&gt;phone&lt;/span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;Snapshot&lt;/span&gt; {&lt;span style="color:#a6e22e"&gt;...snapshot&lt;/span&gt;} /&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;结果还是不行。&lt;/p&gt;
&lt;p&gt;后来你才发现，真正需要的是：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;snapshot&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;structuredClone&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;phone&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果是曾经踩过类似坑的人，或者真正认真学习过 JavaScript 对象引用机制的人，往往一眼就能看出问题所在。&lt;/p&gt;
&lt;h2 id="例子2"&gt;例子2
&lt;/h2&gt;&lt;p&gt;你有没有过这样的经历：&lt;/p&gt;
&lt;p&gt;看教程的时候，感觉什么都会；真正开始自己写的时候，却一个字都写不出来。&lt;/p&gt;
&lt;p&gt;我前段时间在学习一门 Data Science 课程。课堂上老师讲的内容，对于一个工程师来说其实并不复杂。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;top1 &lt;span style="color:#f92672"&gt;=&lt;/span&gt; Table&lt;span style="color:#f92672"&gt;.&lt;/span&gt;read_table(path_data &lt;span style="color:#f92672"&gt;+&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;top_movies_2017.csv&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;但当我真正开始做作业时，题目要求我读取 &lt;code&gt;top_movies_2017.csv&lt;/code&gt;，我却突然大脑一片空白。&lt;/p&gt;
&lt;p&gt;我不断尝试：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;read_csv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import_csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;等等各种可能的方法。&lt;/p&gt;
&lt;p&gt;但奇怪的是，这个 &lt;code&gt;Table.read_table&lt;/code&gt; 我明明在课本上看过很多遍。&lt;/p&gt;
&lt;p&gt;后来我意识到，人脑学习知识的方式并不仅仅是&amp;quot;阅读&amp;quot;。学习往往是多种感官共同参与的过程。&lt;/p&gt;
&lt;p&gt;可能有听觉，有触觉，有遇到挫折后的思考，还有不断尝试与失败的过程。而这些过程本身，其实也是记忆的一部分。&lt;/p&gt;
&lt;p&gt;很多知识，并不是&amp;quot;看懂了&amp;quot;就真的学会了。&lt;/p&gt;
&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;p&gt;虽然 AI 可以帮助我们快速提炼文章纲要、总结重点，但它更多只是给了我们一张地图。&lt;/p&gt;
&lt;p&gt;它可以帮助我们跳过一些暂时不感兴趣的内容，避免把时间浪费在不重要的部分。&lt;/p&gt;
&lt;p&gt;但我们必须清醒地认识到：&lt;/p&gt;
&lt;p&gt;如果你学习知识本身的速度并没有真正变快，那么也不要轻易相信&amp;quot;AI时代普通人也可以编程&amp;quot;这种过度乐观的话。&lt;/p&gt;
&lt;p&gt;&amp;ldquo;普通人可以生成代码&amp;rdquo;，并不等于&amp;quot;普通人可以写出可维护的商业产品&amp;quot;。&lt;/p&gt;
&lt;p&gt;AI 可以帮助你加速。&lt;/p&gt;
&lt;p&gt;但它无法替代你真正理解系统、理解代码、理解工程复杂性的过程。&lt;/p&gt;</description></item><item><title>AI时代应该怎么写代码：督导和编排</title><link>https://CodePlato3721.github.io/zh/post/ai%E6%97%B6%E4%BB%A3%E5%BA%94%E8%AF%A5%E6%80%8E%E4%B9%88%E5%86%99%E4%BB%A3%E7%A0%81-%E7%9D%A3%E5%AF%BC%E5%92%8C%E7%BC%96%E6%8E%92/</link><pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate><guid>https://CodePlato3721.github.io/zh/post/ai%E6%97%B6%E4%BB%A3%E5%BA%94%E8%AF%A5%E6%80%8E%E4%B9%88%E5%86%99%E4%BB%A3%E7%A0%81-%E7%9D%A3%E5%AF%BC%E5%92%8C%E7%BC%96%E6%8E%92/</guid><description>&lt;img src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/coding-in-ai-era-supervision-and-orchestration/banner.png" alt="Featured image of post AI时代应该怎么写代码：督导和编排" /&gt;&lt;h2 id="程序员的迷茫"&gt;程序员的迷茫
&lt;/h2&gt;&lt;p&gt;程序员这个行业从来没有像现在这么迷茫过。我看到太多不同的说法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;有个老板要求员工的 AI 写代码率必须超过 70%&lt;/li&gt;
&lt;li&gt;有的人手写代码，然后让 AI 来写单元测试、做测试&lt;/li&gt;
&lt;li&gt;有人在面试时被问到是否用过 Claude Code，会觉得很生气&lt;/li&gt;
&lt;li&gt;有人说 vibe coding 是一场赌博&lt;/li&gt;
&lt;li&gt;有人说程序员要失业了，我们不再需要程序员了&lt;/li&gt;
&lt;li&gt;有人说只要用 TDD、BDD 写出来的项目就会很稳定&lt;/li&gt;
&lt;li&gt;有人说 AI 写出来的代码，测试都能通过，但实际一运行就挂掉&lt;/li&gt;
&lt;li&gt;有人说 AI 编程是个骗局，只是各大厂商为了卖 token 的营销手段&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="2-个坏消息"&gt;2 个坏消息
&lt;/h2&gt;&lt;p&gt;其实这些说法都对了一部分，也错了一部分。我想说两个坏消息：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Cursor 会死，JetBrains 会死，甚至 Copilot 也会死，几乎整个 IDE 产业最后可能都不存在&lt;/li&gt;
&lt;li&gt;虽然已经裁了很多程序员了，但裁得还不够&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我不喜欢坏消息，但我也不喜欢假装一切都很好。这就像你明明有重大疾病，却不去体检一样。这样只会害了你。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="ai-编程的极限"&gt;AI 编程的极限
&lt;/h2&gt;&lt;p&gt;这几个月 AI 编程领域高歌猛进。看起来它似乎是无敌的，最终会统治世界。确实，我们现在对 AI 编程的开发还远远没有到极限。&lt;/p&gt;
&lt;p&gt;但是，AI 编程是有极限的。&lt;/p&gt;
&lt;p&gt;我们要知道，我们现在用来编程的 AI，其实不是 AGI。我们既然是专业人士，就不要再用&amp;quot;AI&amp;quot;这个笼统的词了。我们真正使用的是大语言模型（LLM）。&lt;/p&gt;
&lt;p&gt;大语言模型的工作原理，本质上是预测下一个 token。这跟抽象思维、大局思维、创造力并不是一回事。&lt;/p&gt;
&lt;p&gt;所以，大语言模型有几个非常致命的问题：架构偏移、软件熵增、上下文困境、token 滥用。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;架构偏移&lt;/strong&gt;：如果你让 LLM 长时间独立完成一件事情，它最终可能会偏离轨道，走到一个你完全想不到的方向。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;软件熵增&lt;/strong&gt;：如果你让 LLM 自己写一个大型项目，最终很可能会生成屎山代码。实际上甚至不需要大型项目，只要让它写一个稍微复杂一点的模块，都可能出现代码质量失控。我甚至发现，让它帮我写一个类的单元测试，它也能写出屎山代码。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;上下文困境&lt;/strong&gt;：当上下文过长时，LLM 的工作效率会明显下降，因为过长的上下文会让它&amp;quot;分心&amp;quot;。于是你会陷入两难：压缩上下文，会丢失信息；不压缩上下文，LLM 又几乎无法高效工作。你当然可以通过摘要、归档以及渐进式披露来缓解这个问题，但代价就是性能下降。LLM 每做一次修改，都可能需要思考很久。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;token 滥用&lt;/strong&gt;：这是一个非常现实的问题。token 是要付费的，而且并不便宜。你没有无限的 token 可以挥霍。但由于缺乏监管的 AI 容易写出糟糕的逻辑和单元测试，最终会导致你修改逻辑时的 token 消耗越来越高，让维护成本变得越来越昂贵。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="程序员的作用"&gt;程序员的作用
&lt;/h2&gt;&lt;p&gt;程序员不会失业，但&amp;quot;写代码的程序员&amp;quot;这个职业会逐渐消失。&lt;/p&gt;
&lt;p&gt;写代码的方式会彻底改变，而且会分成两个阶段：督导和编排。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="督导"&gt;督导
&lt;/h3&gt;&lt;p&gt;有人问，用 AI 写代码的比例多少比较合适。&lt;/p&gt;
&lt;p&gt;我的答案是：100%。&lt;/p&gt;
&lt;p&gt;当人类开始使用拖拉机播种之后，人工播种的比例是多少？是 0%。&lt;/p&gt;
&lt;p&gt;用了 AI 写代码之后，人类已经没有必要继续用缓慢、而且容易拼写错误的方式手写代码。你真正要做的事情，是&amp;quot;督导&amp;quot;。&lt;/p&gt;
&lt;p&gt;督导的作用，就是克服 LLM 的那 4 个核心问题。&lt;/p&gt;
&lt;p&gt;程序员的大部分时间，将不再是写代码，而是审核 AI 写的代码、提出修改意见，并防止 AI 下次再犯同样的错误。或者指导 AI 用更好的实践去管理代码。&lt;/p&gt;
&lt;p&gt;所以，设计模式、代码整洁、代码品味、重构、如何写好的单元测试——这些以前看起来很高级的东西，现在会变成基础能力。&lt;/p&gt;
&lt;p&gt;原因很简单，不是为了&amp;quot;优雅&amp;quot;，而是为了一个很现实的目标：&lt;/p&gt;
&lt;p&gt;写出可维护、bug 更少、并且节省 token 的代码。&lt;/p&gt;
&lt;p&gt;&lt;img alt="督导示意图" class="gallery-image" data-flex-basis="426px" data-flex-grow="177" height="941" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/coding-in-ai-era-supervision-and-orchestration/01.png" srcset="https://CodePlato3721.github.io/01_10761045703228026991_hu_f131ead4f1609b5f.png 800w, https://CodePlato3721.github.io/01_10761045703228026991_hu_2c9732facb6fc0b.png 1600w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/coding-in-ai-era-supervision-and-orchestration/01.png 1672w" width="1672"&gt;&lt;/p&gt;
&lt;h4 id="ide-的终结"&gt;IDE 的终结
&lt;/h4&gt;&lt;p&gt;但这样一来，其实已经不太需要传统 IDE 了。&lt;/p&gt;
&lt;p&gt;因为 IDE 本质上是为了&amp;quot;人类写代码&amp;quot;而诞生的。&lt;/p&gt;
&lt;p&gt;如果 AI 写的代码不会出现低级错误，也不需要 auto-complete，而人类自己又不再直接写代码，那么 IDE 中那些辅助人类编写代码、重构代码的功能，其意义就会大幅下降。&lt;/p&gt;
&lt;p&gt;未来也许还会有 IDE，但会是非常轻量级的 IDE：秒开、功能简单，只保留一些最基础的能力。&lt;/p&gt;
&lt;p&gt;而且这种东西很难再形成高利润产业，因为它太简单了，最终一定会出现大量开源、免费的替代方案。&lt;/p&gt;
&lt;p&gt;就像胶卷和录像带租赁行业一样，这个产业最终会逐渐消失。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="编排"&gt;编排
&lt;/h3&gt;&lt;p&gt;单独开一个 agent 写代码，效率其实还是不够高。&lt;/p&gt;
&lt;p&gt;你可以回忆一下，当你拿到一个新的 requirement 时，你是怎么工作的。&lt;/p&gt;
&lt;p&gt;你肯定不是直接开始写代码。&lt;/p&gt;
&lt;p&gt;你会先细化需求、设计实现方案，有时候甚至还需要先做 POC 验证方案，然后才开始真正写代码、测试功能。&lt;/p&gt;
&lt;p&gt;所以，最终整个软件开发流程都会 AI 化。&lt;/p&gt;
&lt;p&gt;但由于上下文问题的存在，又无法让一个 agent 完成所有事情。&lt;/p&gt;
&lt;p&gt;注意：这并不是&amp;quot;上下文长度限制&amp;quot;这种可以单纯靠技术升级解决的问题，而是 LLM 工作原理本身带来的限制。&lt;/p&gt;
&lt;p&gt;所以，未来真正的开发环境，很可能会变成一个完整的 AI 工作流。&lt;/p&gt;
&lt;p&gt;整个工作流中，会有多个不同角色的 AI 工作者：&lt;/p&gt;
&lt;p&gt;开发方案设计者 + N 个开发者 + 测试方案设计者 + N 个测试者&lt;/p&gt;
&lt;p&gt;&lt;img alt="AI 工作流编排示意图" class="gallery-image" data-flex-basis="426px" data-flex-grow="177" height="941" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/coding-in-ai-era-supervision-and-orchestration/02.png" srcset="https://CodePlato3721.github.io/02_6372375247115853071_hu_750315681e442483.png 800w, https://CodePlato3721.github.io/02_6372375247115853071_hu_9b85f138481e496b.png 1600w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/coding-in-ai-era-supervision-and-orchestration/02.png 1672w" width="1672"&gt;&lt;/p&gt;
&lt;p&gt;之所以没有&amp;quot;需求分析者&amp;quot;这个角色，是因为这部分最好仍然由人类亲自完成。&lt;/p&gt;
&lt;p&gt;因为需求分析只要偏移一点点，后面的整个架构就可能彻底偏掉。&lt;/p&gt;
&lt;p&gt;但这个工作流并不是搭建完就没事了。&lt;/p&gt;
&lt;p&gt;因为如果你让它自己无限制地运行，它绝对会耗费大量 token，最终给你生成一个不可维护的屎山代码库。这就是架构偏移。&lt;/p&gt;
&lt;p&gt;虽然 OpenAI 和 Anthropic 都在研究长时间运行的 AI 项目开发，但你可以把这些研究理解成&amp;quot;实验室中的理想环境&amp;quot;。&lt;/p&gt;
&lt;p&gt;它们不需要太在意 token 消耗，但你需要。&lt;/p&gt;
&lt;p&gt;而且我相信，它们所谓的&amp;quot;长时间运行项目&amp;quot;，本质上也是有督导存在的。人工需要不断增加规则、纠正 AI 的工作方式。&lt;/p&gt;
&lt;p&gt;这其实也就是现在越来越多人提到的 Harness Engineering。&lt;/p&gt;
&lt;p&gt;于是，程序员最终的工作，就会变成：&lt;/p&gt;
&lt;p&gt;搭建、调试并使用这个 AI 工作流。&lt;/p&gt;
&lt;p&gt;因为你仍然需要督导 AI。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;p&gt;因为 LLM 在原理上存在一些暂时无法解决的问题，所以程序员这个职业，短时间内仍然会以另一种形态继续存在。&lt;/p&gt;
&lt;p&gt;直到真正的 AGI 出现的那一天。&lt;/p&gt;
&lt;p&gt;但我还是希望大家尽快开始转型，否则很可能会被这个时代淘汰。&lt;/p&gt;</description></item><item><title>实例讲解什么是上下文治理</title><link>https://CodePlato3721.github.io/zh/post/%E5%AE%9E%E4%BE%8B%E8%AE%B2%E8%A7%A3%E4%BB%80%E4%B9%88%E6%98%AF%E4%B8%8A%E4%B8%8B%E6%96%87%E6%B2%BB%E7%90%86/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://CodePlato3721.github.io/zh/post/%E5%AE%9E%E4%BE%8B%E8%AE%B2%E8%A7%A3%E4%BB%80%E4%B9%88%E6%98%AF%E4%B8%8A%E4%B8%8B%E6%96%87%E6%B2%BB%E7%90%86/</guid><description>&lt;img src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/what-is-context-governance/banner.png" alt="Featured image of post 实例讲解什么是上下文治理" /&gt;&lt;p&gt;上下文治理（Context Governance）是上下文工程（Context Engineering）中的一个部分。但我觉得，上下文治理是上下文工程里最有意思的部分。&lt;/p&gt;
&lt;p&gt;光这么说，你肯定会像我一开始一样，觉得这个概念很抽象。但是，如果你跟我一样，了解了几种主流智能体（Agent）的上下文治理之后，你一定会对&amp;quot;上下文治理&amp;quot;有一个非常直观的理解。&lt;/p&gt;
&lt;p&gt;接下来，我会通过比较 4 种智能体的上下文治理方式，让你直观地理解什么是上下文治理。以下四种工具的上下文治理，从简单到复杂、从低级到高级。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="codex"&gt;Codex
&lt;/h2&gt;&lt;p&gt;首先是 OpenAI 的 Codex。虽然 OpenAI 是第一个做出 LLM 的公司，但是它们的智能体产品反而最年轻。&lt;/p&gt;
&lt;p&gt;虽然它最年轻，但它的上下文治理也是最简单的。在 &lt;code&gt;.codex/&lt;/code&gt; 目录下，有一个叫 &lt;code&gt;AGENTS.md&lt;/code&gt; 的文件。这是一个简单的 &lt;code&gt;AGENTS.md&lt;/code&gt; 文件示例：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-md" data-lang="md"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# 仓库规范
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;## 项目结构
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;-&lt;/span&gt; &lt;span style="color:#e6db74"&gt;`src/`&lt;/span&gt; 存放应用代码
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;-&lt;/span&gt; &lt;span style="color:#e6db74"&gt;`tests/`&lt;/span&gt; 存放测试代码
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;## 常用命令
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;-&lt;/span&gt; 运行测试：&lt;span style="color:#e6db74"&gt;`npm test`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;-&lt;/span&gt; 运行代码检查：&lt;span style="color:#e6db74"&gt;`npm run lint`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;## 编码规范
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;-&lt;/span&gt; 优先使用 TypeScript
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;-&lt;/span&gt; 避免使用 default export（默认导出）
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;-&lt;/span&gt; 使用 async/await，而不是直接使用原始 Promise
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Codex 在开始工作之前，会先读取这个文件的内容。这个文件需要你手动维护，不断往里面添加规则。&lt;/p&gt;
&lt;p&gt;除了这个文件以外，还有一个文件夹：&lt;code&gt;~/.codex/memories/&lt;/code&gt; 顾名思义，就是&amp;quot;记忆&amp;quot;。Codex 会自动往里面写文件。&lt;/p&gt;
&lt;p&gt;大概的结构如下：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;类型&lt;/th&gt;
					&lt;th&gt;可能内容&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;summaries&lt;/td&gt;
					&lt;td&gt;session 摘要&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;durable&lt;/td&gt;
					&lt;td&gt;长期稳定记忆&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;recent&lt;/td&gt;
					&lt;td&gt;最近上下文&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;evidence&lt;/td&gt;
					&lt;td&gt;来源证据&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;可以看到，Codex 的上下文治理其实非常轻量。&lt;/p&gt;
&lt;p&gt;它本质上还是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;一个规则文件&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一个自动记忆目录&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;仅此而已。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="claude-code"&gt;Claude Code
&lt;/h2&gt;&lt;p&gt;Claude Code 的上下文治理很特别。&lt;/p&gt;
&lt;p&gt;官方支持的其实跟 Codex 差不多：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;~/.claude/projects/&amp;lt;project&amp;gt;/memory/&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;就这两个东西。你一看名字基本就懂了。但是，Claude Code 的社区自己增强了它的上下文治理，逐渐演化成了这样：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;名字&lt;/th&gt;
					&lt;th&gt;类型&lt;/th&gt;
					&lt;th&gt;作用&lt;/th&gt;
					&lt;th&gt;人工/自动&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;文件&lt;/td&gt;
					&lt;td&gt;项目规则、Agent 行为规则&lt;/td&gt;
					&lt;td&gt;人工&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;MEMORY.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;文件&lt;/td&gt;
					&lt;td&gt;长期记忆、长期偏好、长期经验&lt;/td&gt;
					&lt;td&gt;半自动&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;NOTES.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;文件&lt;/td&gt;
					&lt;td&gt;临时工作笔记、scratchpad&lt;/td&gt;
					&lt;td&gt;人工&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;DECISIONS.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;文件&lt;/td&gt;
					&lt;td&gt;关键架构/技术决策历史&lt;/td&gt;
					&lt;td&gt;人工&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;ARCHITECTURE.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;文件&lt;/td&gt;
					&lt;td&gt;系统结构、模块关系、数据流&lt;/td&gt;
					&lt;td&gt;人工&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;LEARNINGS.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;文件&lt;/td&gt;
					&lt;td&gt;踩坑经验、经验总结&lt;/td&gt;
					&lt;td&gt;半自动&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;TASKS.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;文件&lt;/td&gt;
					&lt;td&gt;当前任务列表、待办事项&lt;/td&gt;
					&lt;td&gt;人工&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;SESSION.md&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;文件&lt;/td&gt;
					&lt;td&gt;当前 session 工作记录&lt;/td&gt;
					&lt;td&gt;半自动&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;docs/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;文件夹&lt;/td&gt;
					&lt;td&gt;长文档上下文来源&lt;/td&gt;
					&lt;td&gt;人工&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;memory/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;文件夹&lt;/td&gt;
					&lt;td&gt;memory 分类存储&lt;/td&gt;
					&lt;td&gt;半自动&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;prompts/&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;文件夹&lt;/td&gt;
					&lt;td&gt;prompt 模板、workflow prompt&lt;/td&gt;
					&lt;td&gt;人工&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;.cursorrules&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;文件&lt;/td&gt;
					&lt;td&gt;Cursor 兼容规则&lt;/td&gt;
					&lt;td&gt;人工&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这下就比 Codex 复杂很多了。但是你会发现，这里面有大量文件都需要人工维护。而且整个结构特别像我们以前做项目时写的 Wiki 文档结构。&lt;/p&gt;
&lt;p&gt;其实，为了让 Agent 更好地工作，它也应该像我们一样，先看看项目 Wiki。人们现在只是把 Wiki 文档，变成了上下文 Markdown 文件而已。这样理解就很容易了。Claude Code 在这些上下文文档的基础上，工作的方式越来越像一个真正的程序员。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="open-claw"&gt;Open Claw
&lt;/h2&gt;&lt;p&gt;Open Claw 的定位跟 Claude Code 不太一样。它更偏向生活助手。而且 Claude Code 社区版的上下文治理，需要管理的文件太多了。不同于 Claude Code，Open Claw 的用户更多是普通人。很多用户其实并不会直接编辑 Open Claw 的上下文文件，甚至都不知道这些文件需要人工维护。&lt;/p&gt;
&lt;p&gt;但是，Open Claw 的上下文设计其实比 Claude Code 社区版更&amp;quot;Agent 化&amp;quot;。因为 Claude Code 社区版的上下文结构，还是带有很强的人类项目管理思维。但在 Agent 面前，其实并不一定需要拆成那么多文档。&lt;/p&gt;
&lt;p&gt;Open Claw 的上下文治理更偏向&amp;quot;角色&amp;quot;和&amp;quot;人格&amp;quot;。它有这些上下文文件：&lt;/p&gt;
&lt;h3 id="核心指令层静态你手动维护"&gt;核心指令层（静态，你手动维护）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;SOUL.md&lt;/code&gt;&lt;/strong&gt; — 人格、价值观、边界。回答&amp;quot;你是谁&amp;quot;。定义语气、性格、不可违反的约束。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/strong&gt; — 操作流程和规则。回答&amp;quot;你做什么、怎么做&amp;quot;。最大也最重要的文件，放复杂工作流和步骤化指令。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;USER.md&lt;/code&gt;&lt;/strong&gt; — 用户信息。你的名字、时区、偏好、工作背景。相当于个性化层。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;IDENTITY.md&lt;/code&gt;&lt;/strong&gt; — 结构化身份档案（名称、角色、目标、语气）。用于一致性地重新应用已知身份。（其实我觉得这个有点多余。）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;TOOLS.md&lt;/code&gt;&lt;/strong&gt; — 工具文档。不控制权限（权限是 config 管的），而是告诉 Agent 如何使用已有工具。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="自动化层"&gt;自动化层
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;HEARTBEAT.md&lt;/code&gt;&lt;/strong&gt; — 定时任务，相当于用自然语言写的 cron。比如&amp;quot;每 30 分钟检查一次&amp;quot;&amp;ldquo;每周一 8 点生成报告&amp;rdquo;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;BOOTSTRAP.md&lt;/code&gt;&lt;/strong&gt; — 首次运行的初始化脚本。setup 完成后会自动删除。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;BOOT.md&lt;/code&gt;&lt;/strong&gt; — 每次启动时执行的 hook。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="记忆层"&gt;记忆层
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;MEMORY.md&lt;/code&gt;&lt;/strong&gt; — 长期记忆。持久化的事实、偏好、决策摘要，跨周跨月生效。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;memory/YYYY-MM-DD.md&lt;/code&gt;&lt;/strong&gt; — 每日笔记。当天和昨天的笔记自动加载，更早的内容通过 &lt;code&gt;memory_search&lt;/code&gt; 检索。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;DREAMS.md&lt;/code&gt;&lt;/strong&gt; — dreaming 系统的日记，记录从短期记忆向长期记忆的&amp;quot;晋升过程&amp;quot;，供人类审阅。这是一个实验性功能。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;可以看出，Open Claw 已经比前两个系统复杂很多了。所以你在使用 Open Claw 的时候，会明显觉得它&amp;quot;更聪明&amp;quot;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="hermes-agent"&gt;Hermes Agent
&lt;/h2&gt;&lt;p&gt;接下来就是重头戏了。如果你不理解上下文治理，你可能会觉得 Hermes Agent 跟 Open Claw 没什么区别。但不知道你有没有发现：Open Claw 里仍然有很多文件需要你手动维护。&lt;/p&gt;
&lt;p&gt;甚至就算是我，用了这么久 Open Claw，也是最近才知道这些文件需要人工维护。这就导致 Open Claw 设计的很多上下文，其实一直都没有真正被使用起来。Hermes Agent 的上下文治理跟 Open Claw 和 Claude Code 都不太一样。它的核心设计理念是：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&amp;ldquo;自我进化&amp;rdquo;——Agent 自己写自己的记忆和技能。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;整个体系住在 &lt;code&gt;~/.hermes/&lt;/code&gt; 目录下。&lt;/p&gt;
&lt;h3 id="身份层静态"&gt;身份层（静态）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;SOUL.md&lt;/code&gt;&lt;/strong&gt; — system prompt 的第一个 slot，定义人格、语气、价值观、行为边界。这是全局的，从 &lt;code&gt;HERMES_HOME&lt;/code&gt; 加载。这个文件你仍然可以手动编辑。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="项目上下文层按优先级只加载第一个匹配的"&gt;项目上下文层（按优先级，只加载第一个匹配的）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;.hermes.md&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;.cursorrules&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;先找到谁就用谁。&lt;/p&gt;
&lt;p&gt;这意味着 Hermes 同时兼容 Claude Code 和 Cursor 的项目配置文件。&lt;/p&gt;
&lt;h3 id="记忆层三层agent-自己维护"&gt;记忆层（三层，Agent 自己维护）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;MEMORY.md&lt;/code&gt;&lt;/strong&gt; — 长期记忆。存环境信息、项目惯例、工具使用经验。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;USER.md&lt;/code&gt;&lt;/strong&gt; — 用户档案。存你的名字、沟通偏好、技能水平。注意，这回 &lt;code&gt;USER.md&lt;/code&gt; 已经变成自动维护了。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;state.db&lt;/code&gt;&lt;/strong&gt; — SQLite 数据库，带 FTS5 全文索引，存所有历史消息。Agent 不会默认全部加载，而是在需要时通过 &lt;code&gt;session_search&lt;/code&gt; 按需检索。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这时候，记忆已经开始进入数据库时代了。因为只有数据库，才能真正支撑长期上下文检索。&lt;/p&gt;
&lt;h3 id="技能层hermes-最独特的部分"&gt;技能层（Hermes 最独特的部分）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;skills/&lt;/code&gt; 目录&lt;/strong&gt; — 每个技能都是一个文件夹，里面包含一个 &lt;code&gt;SKILL.md&lt;/code&gt;（带 YAML frontmatter），以及可选的模板和脚本。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;关键区别在于：&lt;/p&gt;
&lt;p&gt;技能不是人类写的。Agent 在完成非平凡任务之后，会通过 &lt;code&gt;skill_manage&lt;/code&gt; 工具自己创建技能。同样，记忆也不再主要依赖人类维护。Agent 会在对话间隙，自己编辑 &lt;code&gt;MEMORY.md&lt;/code&gt; 和 &lt;code&gt;USER.md&lt;/code&gt;。而且技能是按需加载的。不用的技能不会进入上下文。这其实已经开始接近真正的&amp;quot;上下文自动治理&amp;quot;了。&lt;/p&gt;
&lt;h3 id="调度层"&gt;调度层
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;cron jobs&lt;/strong&gt; — 定时任务，类似 Open Claw 的 &lt;code&gt;HEARTBEAT.md&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;到了这一步，上下文治理不仅变复杂了，还开始自动化了。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;p&gt;AI 是否真的能干活、干得好不好，已经不仅仅是模型之间的区别了。很多时候，更好的上下文治理，对智能体工作效率的提升，甚至比你换一个更强的模型还明显。&lt;/p&gt;
&lt;h3 id="电子脑"&gt;电子脑
&lt;/h3&gt;&lt;p&gt;随之而来的，还有一个很有意思的问题：上下文，其实就是智能体的&amp;quot;电子脑&amp;quot;。一个 Agent 用久了，那份上下文就会逐渐变成独一无二的它。只要上下文还在，就算换了一个&amp;quot;壳&amp;quot;，你的小助手还是你的小助手。如果智能体坏了需要重装，或者你想迁移到另一个智能体平台，只要把上下文迁移走，你的助手理论上就还能继续存在。&lt;/p&gt;
&lt;p&gt;于是，一个新的问题出现了：
如何安全地迁移上下文？&lt;/p&gt;
&lt;p&gt;但现在的问题是：
各家之间的文件名、结构、格式都完全不同。这就导致上下文迁移非常麻烦。我相信，未来一定会出现更统一、更标准化的上下文协议。而&amp;quot;上下文治理&amp;quot;，也会逐渐成为 AI Agent 最核心的能力之一。&lt;/p&gt;</description></item><item><title>AI时代我们应该如何阅读技术文档：精炼阅读</title><link>https://CodePlato3721.github.io/zh/post/ai%E6%97%B6%E4%BB%A3%E5%A6%82%E4%BD%95%E9%98%85%E8%AF%BB%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3-%E7%B2%BE%E7%82%BC%E9%98%85%E8%AF%BB/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><guid>https://CodePlato3721.github.io/zh/post/ai%E6%97%B6%E4%BB%A3%E5%A6%82%E4%BD%95%E9%98%85%E8%AF%BB%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3-%E7%B2%BE%E7%82%BC%E9%98%85%E8%AF%BB/</guid><description>&lt;img src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/how-to-read-tech-docs-in-the-ai-era/banner.png" alt="Featured image of post AI时代我们应该如何阅读技术文档：精炼阅读" /&gt;&lt;h2 id="读不完的技术文档"&gt;读不完的技术文档
&lt;/h2&gt;&lt;p&gt;一直以来，我们都关注要多看技术文档。但是我遇到的实际情况是：有时候一篇文档太长，看得时间太久，导致：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;犯困，效率下降&lt;/li&gt;
&lt;li&gt;中间被其他事情打断&lt;/li&gt;
&lt;li&gt;被中间的知识点引导到别的文章去，而那篇文章也很长。我计算过，如果把这些文章全部读完，是不可行的，时间成本太高&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;实际的结果就是，我的浏览器常年开着很多没看完的技术文章 tab，我又舍不得关掉它们。我有时候会把它们放到收藏夹里。但是这并没有从根源上解决问题，反而造成收藏夹里的文章越来越多。收藏夹变成了一个巨大的 todo list。&lt;/p&gt;
&lt;h2 id="阅读技术瓶颈"&gt;阅读技术瓶颈
&lt;/h2&gt;&lt;p&gt;这些堆积的技术文档在我内心造成了负担，让我觉得愧疚。这成为了我脑子里的技术债。我总觉得是我不够努力，才没有读完它们。&lt;/p&gt;
&lt;p&gt;但是我今天想，我要把这些技术文档全部读完是不可能的。因为：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;文档的长度决定了读完它们注定要消耗大量的、超过我可承受范围的时间成本&lt;/li&gt;
&lt;li&gt;文档中又会发散出新的文档，这个过程永不停歇&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;就像技术问题有瓶颈一样，我将它称之为阅读方面的技术瓶颈。这个问题需要通过逻辑层面的解决方案来解决，而不只是纯技术手段。&lt;/p&gt;
&lt;p&gt;这个瓶颈的本质是：我们的时间和注意力都是有限资源。时间这个单位离人本身太远了，不能作为主要的度量工具，因为同样的时间里，你的阅读速度是不一样的。所以我更愿意将&amp;quot;注意力&amp;quot;作为我们的资源单位。你可以把人的注意力看作某种 token，你的 attention token 简称 AT。当你的注意力足够强，就可以产生 AT 力场（大雾）。消耗完了，就得靠睡眠来补充。&lt;/p&gt;
&lt;p&gt;这个阅读技术瓶颈本质上是：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;阅读文档总时间 &amp;gt; 你所拥有的注意力&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="精炼阅读"&gt;精炼阅读
&lt;/h2&gt;&lt;h3 id="永远可以提炼"&gt;永远可以提炼
&lt;/h3&gt;&lt;p&gt;我想到，就算这些技术文档全都只看了一点点，我也能好好地做技术做到现在。有些文档甚至在我还没读的时候，这门技术就已经被淘汰了。所以，其实大部分文档中的信息我是不必去记忆的，只是把它们当作字典查询就可以了。&lt;/p&gt;
&lt;p&gt;这甚至适用于很多总结归纳后的文档。它们依然可以继续被提炼。被提炼过的文字，其实依然可以再被提炼，最终提炼成一句话。但是提炼的过程会丢失大量信息，而这是预期内可以接受的。&lt;/p&gt;
&lt;h3 id="llm提炼"&gt;LLM提炼
&lt;/h3&gt;&lt;p&gt;在 AI 编程时代，程序员的价值就是&amp;quot;注意力&amp;quot;。&lt;/p&gt;
&lt;p&gt;我想，可以在注意力下降的时候，适当使用 LLM 去归纳文章剩下的部分。通过让 LLM 阅读并归纳后，我们先阅读大纲，然后对感兴趣的部分反复提问来学习。&lt;/p&gt;
&lt;p&gt;后来我又想，为什么不更进一步：一开始就让 LLM 先提炼出一个足够短的文章大纲。然后我们阅读大纲后，选择继续读，还是就此放弃。继续阅读时，也可以选择自己逐行精读，或者只阅读感兴趣的部分。&lt;/p&gt;
&lt;h3 id="不要发散"&gt;不要发散
&lt;/h3&gt;&lt;p&gt;在阅读到自己感兴趣的知识点后，不要去 Google。我们来看这个行为链：&lt;/p&gt;
&lt;p&gt;Google 关键词 -&amp;gt; 看到想看的页面 -&amp;gt; 点击页面 -&amp;gt; 查看该页面&lt;/p&gt;
&lt;p&gt;Google 的搜索结果页面单项结构：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LOGO: 网站名
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;一句话的页面简介（不一定是页面标题）
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2-3 行的页面短简介
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;你需要消耗注意力去逐条看这些词条。你打开了一个新的、花里胡哨的页面后，还需要继续消耗注意力去寻找你想看的东西。也许页面中的其他部分也在消耗你的注意力。&lt;/p&gt;
&lt;p&gt;所以，遇到你感兴趣的知识点后，不要立刻去 Google。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;直接问 AI，让 AI 给你找到你想看的东西&lt;/li&gt;
&lt;li&gt;在回答中要求它附上链接，作为确认的证据&lt;/li&gt;
&lt;li&gt;你可以自己点链接确认。一旦发现链接失效，后续会话中可以让它自己先访问链接，排除失效链接后，再给出可用链接&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;所以，我将这种方式称为 &lt;strong&gt;精炼阅读&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id="验证"&gt;验证
&lt;/h2&gt;&lt;p&gt;我们需要一种方式去验证这种方式，否则无法证伪。所有无法证伪的都是伪科学。如果这种方法只是我瞎扯的，那么就可以被证明我在瞎扯。如果这个方法无效，那也是在浪费读者你的时间。&lt;/p&gt;
&lt;p&gt;验证方式：&lt;/p&gt;
&lt;p&gt;通过以下维度来验证使用该方法后的效果：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;浏览器打开的技术文档 tab 数量应该下降&lt;/li&gt;
&lt;li&gt;收藏夹内的未读文章数量应该下降，或者被归档&lt;/li&gt;
&lt;li&gt;结束一天后总结，今天确实实现了本来预定的阅读计划，负罪感降低（这点其实很主观，也很伪科学，但没关系）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;你也可以通过这套验证方式来验证该方法是否有效，从而决定你是该相信我，并改变自己的阅读习惯，还是觉得这个人就是在 bullshit。无论哪一种，你都走出了重要的一步：亲自实践 AI 带来的生活习惯改变。这就是有价值的。&lt;/p&gt;</description></item><item><title>AI时代如何提问面试者</title><link>https://CodePlato3721.github.io/zh/post/ai%E6%97%B6%E4%BB%A3%E5%A6%82%E4%BD%95%E6%8F%90%E9%97%AE%E9%9D%A2%E8%AF%95%E8%80%85/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>https://CodePlato3721.github.io/zh/post/ai%E6%97%B6%E4%BB%A3%E5%A6%82%E4%BD%95%E6%8F%90%E9%97%AE%E9%9D%A2%E8%AF%95%E8%80%85/</guid><description>&lt;img src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/ai-interview-in-the-ai-era/banner.png" alt="Featured image of post AI时代如何提问面试者" /&gt;&lt;h2 id="背景"&gt;背景
&lt;/h2&gt;&lt;p&gt;在 AI 时代，我们要如何面试才能保证招到合适的人才？你也不想招到一个 LeetCode 很厉害，但是却不会用 Claude Code，而且也不愿意学习 AI 编程的人吧。&lt;/p&gt;
&lt;p&gt;但是相比起 LeetCode 或者传统软件知识来说，AI 又太年轻。我们又怎么样才能知道，对方是否能在未来几年的工作中，在公司保持较高的生产力呢？&lt;/p&gt;
&lt;h2 id="术语规范"&gt;术语规范
&lt;/h2&gt;&lt;p&gt;AI 只是一个泛泛的术语，适用于普通人理解。但是我们身为职业工作者，用词必须准确。&lt;/p&gt;
&lt;p&gt;AI 包含很多范围，比如深度学习、监督学习、大语言模型，以及各种模型。本文只探讨大语言模型这个范畴内的面试问题。所以为了简单，本文会用 AI 指代 LLM。&lt;/p&gt;
&lt;p&gt;本文也不讨论 LLM 训练方向的人才招聘。因为我不懂。而且这方面的知识体系存在时间比较久，已经有成熟的面试体系了。本文只探讨大语言模型应用方向的人才招聘。&lt;/p&gt;
&lt;h2 id="核心思想"&gt;核心思想
&lt;/h2&gt;&lt;p&gt;我们主要考核 4 个方面：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;学习能力：&lt;/strong&gt;&lt;br&gt;
我们要招聘的是面向 AI 编程的程序员。无论他做的是 AI 方面的工作，还是只是使用 Claude Code 来编程，他都需要保持对技术的渴望，要紧跟时事。&lt;/p&gt;
&lt;p&gt;因为在 LLM 应用这个领域，没有哪个学校可以有效地开课教授这方面的知识。你年初学的东西，可能到年末就已经过时了。所以学习必须靠自己。&lt;/p&gt;
&lt;p&gt;要像追明星八卦一样去追逐 AI 的新动向。我经常会说，好的 AI 程序员就是狗，是你在 chasing 技术，而不是技术在 pushing 你。&lt;/p&gt;
&lt;p&gt;所以我们的问题不仅会问 LLM 的知识，还需要知道他是否对 LLM 技术有追逐感。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;整体理解：&lt;/strong&gt;&lt;br&gt;
考核面试者对 LLM 的整体理解。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;使用经验：&lt;/strong&gt;&lt;br&gt;
考核面试者是否真的使用过 AI 编程工具。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;具体知识：&lt;/strong&gt;&lt;br&gt;
考核对具体框架（比如 LangGraph）的了解。但这方面更多是针对 AI 整合方向的。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="问题例子"&gt;问题例子
&lt;/h2&gt;&lt;p&gt;以下是一些问题的例子，以及我自己的一些答案。&lt;/p&gt;
&lt;p&gt;这些不代表标准答案。而且就像 LLM 有训练截止时间一样，我这些答案的截止时间是 2026.06。&lt;/p&gt;
&lt;h3 id="学习能力"&gt;学习能力
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;LLM 应用发展到现在经历了哪几个阶段？提示：第一个阶段是提示词工程&lt;/strong&gt;&lt;br&gt;
答案：提示词工程、上下文工程、Harness Engineering&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;什么是 Harness Engineering？&lt;/strong&gt;&lt;br&gt;
Harness Engineering 是为 AI Agent 搭建&amp;quot;外部运行框架&amp;quot;的工程，包括 tools、memory、retrieval、validation、workflow 和 feedback loop，用来提高 Agent 的正确率与可控性。&lt;/p&gt;
&lt;p&gt;简单地说，现在的 Agent 架构可以简化为：model + harness。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;说几个你知道的最新的 LLM 应用？&lt;/strong&gt;&lt;br&gt;
比如 OpenClaw、Hermes Agent、Happy Codex 等等（这个回答截止于 2026.05）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;说几个你知道的最新的 LLM 模型名字？&lt;/strong&gt;&lt;br&gt;
Opus、GPT5.5 等等（这个回答截止于 2026.05）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;你一般通过什么方式学习 LLM 技术？&lt;/strong&gt;&lt;br&gt;
看资讯网站、follow 某些媒体、自己做 LLM 项目，然后需要什么学什么，等等。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="整体理解"&gt;整体理解
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;上下文工程和提示词工程的区别是什么？&lt;/strong&gt;&lt;br&gt;
答案：提示词工程是&amp;quot;怎么写一句更好的 prompt&amp;quot;，上下文工程是&amp;quot;怎么为 AI 动态构建整个运行时上下文系统&amp;quot;。&lt;/p&gt;
&lt;p&gt;因为现代 AI Agent 的效果，主要取决于&amp;quot;是否拿到了正确的上下文和工具&amp;quot;，而不只是 prompt 写得漂不漂亮。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;你怎么理解 &amp;ldquo;RAG is dead&amp;rdquo; 这句话？&lt;/strong&gt;&lt;br&gt;
有两个层面的理解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;由于上下文工程的出现，人们更多地把提升智能体工作效率的重点，从&amp;quot;更强的 RAG&amp;quot;转向&amp;quot;更好的上下文工程&amp;quot;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;严格来说，不是 RAG 死了，而是早期那套 Naive RAG 死了。早期的 Naive RAG 基本是：文本 chunk -&amp;gt; embedding -&amp;gt; similarity search。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;你有了解什么上下文工程的方法论吗？&lt;/strong&gt;&lt;br&gt;
上下文压缩、结构化笔记、子 Agent 架构。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;上下文工程和 Harness Engineering 的区别和联系是什么？&lt;/strong&gt;&lt;br&gt;
Harness Engineering 更关注 AI Agent 的整体运行框架和执行系统，而上下文工程更关注如何为 Agent 动态组织和提供正确的上下文。&lt;/p&gt;
&lt;p&gt;上下文工程可以看作 Harness Engineering 的核心组成部分之一。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;什么是渐进式披露（Progressive Disclosure）？&lt;/strong&gt;&lt;br&gt;
渐进式披露（Progressive Disclosure）是指系统不一次性展示全部信息，而是在需要时逐步暴露相关内容，以降低复杂度并减少上下文干扰。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="使用经验"&gt;使用经验
&lt;/h3&gt;&lt;p&gt;以下问题没有标准答案，除了最后一题。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;介绍一个你日常使用 Claude Code 编写代码的场景。&lt;/li&gt;
&lt;li&gt;你遇到过 AI 写的最蠢的代码是什么？&lt;/li&gt;
&lt;li&gt;遇到 AI 一直无法修好的 bug 怎么办？&lt;/li&gt;
&lt;li&gt;你是否比较过市面上几款 AI 编程工具的效率？你觉得哪个好？理由是什么？&lt;/li&gt;
&lt;li&gt;作为开发者，我们应该怎么写代码？&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;关于这题，我自己有一些答案，但会放在我的另一篇文章《AI 时代的程序员应该掌舵而不是编写（Steering Not Typing）》里面。&lt;/p&gt;
&lt;h3 id="具体知识"&gt;具体知识
&lt;/h3&gt;&lt;p&gt;这部分就根据具体框架来出题即可。比如你要考 LangGraph，那就根据 LangGraph 出题。&lt;/p&gt;
&lt;p&gt;我就不献丑了。&lt;/p&gt;</description></item><item><title>[一天一个Skill]第1天：查单词Skill</title><link>https://CodePlato3721.github.io/zh/post/%E4%B8%80%E5%A4%A9%E4%B8%80%E4%B8%AAskill-%E7%AC%AC1%E5%A4%A9-%E6%9F%A5%E5%8D%95%E8%AF%8Dskill/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><guid>https://CodePlato3721.github.io/zh/post/%E4%B8%80%E5%A4%A9%E4%B8%80%E4%B8%AAskill-%E7%AC%AC1%E5%A4%A9-%E6%9F%A5%E5%8D%95%E8%AF%8Dskill/</guid><description>&lt;img src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/banner.png" alt="Featured image of post [一天一个Skill]第1天：查单词Skill" /&gt;&lt;h1 id="即读即弃"&gt;即读即弃
&lt;/h1&gt;&lt;p&gt;即读即弃是我的写作风格。&lt;/p&gt;
&lt;p&gt;我不是按照瀑布式的方式写文章的。所谓瀑布式，就是把整篇文章拆成多个步骤，你必须一路读到最后才能做出一个完整的东西。如果读到一半弃了，那就只能得到一个半成品。&lt;/p&gt;
&lt;p&gt;现在这个时代节奏太快了，我自己都没时间长时间阅读一篇文章。我的文章是迭代式的。你看一小段，就可以先做出一个东西，然后我们再继续扩展，把这个东西做得更好。你如果没时间，就看多少算多少。&lt;/p&gt;
&lt;p&gt;所以我会把文章分成多个部分。每读完一个部分，如果你不想继续往下读，就可以直接弃了下课。&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="第一部分一个简单的查单词-skill"&gt;第一部分：一个简单的查单词 Skill
&lt;/h1&gt;&lt;h2 id="背景知识"&gt;背景知识
&lt;/h2&gt;&lt;h3 id="skill-是什么"&gt;Skill 是什么
&lt;/h3&gt;&lt;p&gt;Skill 是 Claude 的母公司 Anthropic 在 2025 年底提出的一个规范。&lt;/p&gt;
&lt;p&gt;支持这个规范的工具很多，比如 openclaw、codex、claude code 等等。&lt;/p&gt;
&lt;p&gt;你不一定要跟我用同样的工具。只要你的 agent 智能体支持 Skill，就可以使用。&lt;/p&gt;
&lt;p&gt;学会方法之后，你自己装到自己的智能体里就行了。不懂怎么装，就直接问你的智能体。&lt;/p&gt;
&lt;p&gt;都什么年代了，别再&amp;quot;百度一下&amp;quot;&amp;ldquo;Google 一下&amp;quot;了，太低效了。&lt;/p&gt;
&lt;p&gt;如果你的智能体回答不上来，或者一直回答错，那就考虑换一个智能体吧。&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="个人习惯"&gt;个人习惯
&lt;/h3&gt;&lt;p&gt;我个人喜欢用 openclaw，因为它是目前最接近&amp;quot;下一代普通人个人智能体&amp;quot;的东西，对生活帮助很大。&lt;/p&gt;
&lt;p&gt;但 openclaw 太不稳定了，不适合演示，所以这里我会用 claude code。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="痛点"&gt;痛点
&lt;/h2&gt;&lt;p&gt;如果你只是把一个单词直接发给 AI，它通常会按自己猜测的意思返回结果。&lt;/p&gt;
&lt;p&gt;比如你想查 &lt;code&gt;apple&lt;/code&gt; 这个单词，你直接对 AI 说：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apple
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;它大概率会返回：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Apple 是一家美国科技公司，总部位于美国加州库比蒂诺（Cupertino）。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;它最著名的产品包括：
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- iPhone
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- MacBook
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;所以我们可以做一个专门查单词的 Skill。&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="开始制作-skill"&gt;开始制作 Skill
&lt;/h1&gt;&lt;ol&gt;
&lt;li&gt;建立一个文件夹：&lt;code&gt;en-cn-dict&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;在文件夹里面建立文本文件 &lt;code&gt;SKILL.md&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="skillmd-内容"&gt;SKILL.md 内容
&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;---
name: 查单词
description: 当用户消息中出现&amp;#34;查单词：&amp;#34;或&amp;#34;查单词:&amp;#34;后跟英文单词时，返回音标、中文解释和发音。
---

## 处理规则

提取冒号后面的英文单词或短语。

兼容中文冒号 `：` 和英文冒号 `:`。

## 输出格式

必须严格使用以下格式：

单词：&amp;lt;英文单词&amp;gt;

音标：&amp;lt;音标&amp;gt;

中文解释：
1. &amp;lt;解释1&amp;gt;
2. &amp;lt;解释2&amp;gt;
3. &amp;lt;解释3&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h1 id="部署-skill"&gt;部署 Skill
&lt;/h1&gt;&lt;p&gt;然后把这个文件夹放到：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;~/.claude/skills/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;里面。&lt;/p&gt;
&lt;p&gt;如果没有 &lt;code&gt;skills&lt;/code&gt; 文件夹，就自己创建一个。&lt;/p&gt;
&lt;p&gt;部署完成后的路径：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;skills
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ⎿ en-cn-dict
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ⎿ SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h1 id="加载-skill"&gt;加载 Skill
&lt;/h1&gt;&lt;p&gt;现在重启 claude code，然后问它：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;查单词：tea
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="查单词：tea" class="gallery-image" data-flex-basis="371px" data-flex-grow="154" height="467" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/01.png" width="723"&gt;&lt;/p&gt;
&lt;p&gt;可以看到，它加载了 &lt;code&gt;en-cn-dict&lt;/code&gt; 这个 Skill。&lt;/p&gt;
&lt;p&gt;第一部分完成。&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="第二部分真正的-skill-编写方式"&gt;第二部分：真正的 Skill 编写方式
&lt;/h1&gt;&lt;p&gt;AI 时代最大的改变之一就是：&lt;/p&gt;
&lt;p&gt;不要自己手写代码。&lt;/p&gt;
&lt;p&gt;我们一定要慢慢改掉&amp;quot;所有东西都手写&amp;quot;的习惯。&lt;/p&gt;
&lt;p&gt;其实 Skill 也一样，应该让 AI 自己去写。&lt;/p&gt;
&lt;p&gt;比如我们这个查单词 Skill，本来就应该让 agent 自己生成。&lt;/p&gt;
&lt;p&gt;如果你用的是 codex、openclaw、claude code 这种 agent 工具，你甚至可以直接让 agent 完成整个 Skill 的构建过程。&lt;/p&gt;
&lt;p&gt;如果你只有 ChatGPT、Claude、Gemini 这种 chat app，那你就手动创建文件，然后让 chat app 告诉你 &lt;code&gt;SKILL.md&lt;/code&gt; 该怎么写。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;我这里用 claude code 演示创建 Skill。&lt;/p&gt;
&lt;p&gt;我对 claude code 说：&lt;/p&gt;
&lt;p&gt;&lt;img alt="对 claude code 发出指令" class="gallery-image" data-flex-basis="691px" data-flex-grow="288" height="376" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/02.png" srcset="https://CodePlato3721.github.io/02_1896344827635470535_hu_bd50eebb4ada4609.png 800w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/02.png 1083w" width="1083"&gt;&lt;/p&gt;
&lt;p&gt;claude code 帮我把 Skill 文件创建好了：&lt;/p&gt;
&lt;p&gt;&lt;img alt="openclaw 创建 Skill" class="gallery-image" data-flex-basis="547px" data-flex-grow="228" height="447" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/03.png" srcset="https://CodePlato3721.github.io/03_5641320563562742076_hu_b1abe6f63fa908a9.png 800w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/03.png 1020w" width="1020"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;现在测试一下。&lt;/p&gt;
&lt;p&gt;&lt;img alt="测试 Skill" class="gallery-image" data-flex-basis="722px" data-flex-grow="300" height="355" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/04.png" srcset="https://CodePlato3721.github.io/04_5816468111457903088_hu_9e381064ec70ee32.png 800w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/one-skill-a-day-day-1-en-cn-dict/cn/04.png 1068w" width="1068"&gt;&lt;/p&gt;
&lt;p&gt;成功了。&lt;/p&gt;
&lt;p&gt;不过它还是输出了一些我们没要求的内容。&lt;/p&gt;
&lt;p&gt;AI 写代码就是会自由发挥。不过没关系，多出来的东西如果你不要，就继续让它删掉就好了。&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="第三部分编写-skill-的常用模式和问题"&gt;第三部分：编写 Skill 的常用模式和问题
&lt;/h1&gt;&lt;h2 id="触发词"&gt;触发词
&lt;/h2&gt;&lt;p&gt;在这个例子里，我用了&amp;quot;触发词&amp;quot;的模式。&lt;/p&gt;
&lt;p&gt;因为 agent 本质上是一个什么都能聊的对话框。什么都能说的代价，就是很容易混乱。&lt;/p&gt;
&lt;p&gt;有时候 agent 并不能自动判断该使用哪个 Skill。&lt;/p&gt;
&lt;p&gt;这时候你就可以通过&amp;quot;触发词&amp;quot;来缩小范围，精准定位要使用的 Skill。&lt;/p&gt;
&lt;p&gt;这个触发词，有点像你手机里的一个 App 图标。你通过触发词，把 agent 导航到对应的 Skill。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;如果你去看别的 Skill 入门教程，多半会看到&amp;quot;总结会议内容&amp;quot;这种例子。&lt;/p&gt;
&lt;p&gt;那些教程里的 Skill 经常会写：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;直接说&amp;#34;帮我总结会议&amp;#34;或类似请求
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这里其实有两个问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;太长，不好记&lt;/li&gt;
&lt;li&gt;&amp;ldquo;或类似请求&amp;quot;以后会给你带来麻烦&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;你的 Skill 最好有一个：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;简短&lt;/li&gt;
&lt;li&gt;明确&lt;/li&gt;
&lt;li&gt;不歧义&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;的触发词。&lt;/p&gt;
&lt;p&gt;因为当你的 Skill 越来越多的时候，&amp;ldquo;类似请求&amp;quot;这种模糊匹配，会慢慢变成不确定因素。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="触发词抢夺"&gt;触发词抢夺
&lt;/h2&gt;&lt;p&gt;有了触发词，就会有&amp;quot;触发词抢夺&amp;quot;问题。&lt;/p&gt;
&lt;p&gt;我在 openclaw 里做这个例子的时候，它死活不按我的 Skill 来。&lt;/p&gt;
&lt;p&gt;原因是：&lt;/p&gt;
&lt;p&gt;我的 openclaw 用的是 OpenAI 的 API。&lt;/p&gt;
&lt;p&gt;而&amp;quot;查单词：&amp;ldquo;这个词，在我使用的 model 里，本身就有很高的默认优先级。&lt;/p&gt;
&lt;p&gt;这个 model 每次看到&amp;quot;查单词&amp;rdquo;，就会强行用自己的理解来处理。&lt;/p&gt;
&lt;p&gt;这种现象，我把它叫做：&lt;/p&gt;
&lt;p&gt;&amp;ldquo;触发词抢夺&amp;rdquo;。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;如果遇到这种问题，也不用慌。&lt;/p&gt;
&lt;p&gt;因为这通常说明：&lt;/p&gt;
&lt;p&gt;其实 model 自己已经能很好地完成这件事了。&lt;/p&gt;
&lt;p&gt;你甚至可能根本不需要专门做这个 Skill。&lt;/p&gt;
&lt;p&gt;如果你真的想强制自定义，就换一个非常特殊、不容易被模型误判的触发词。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="skill-标记模式"&gt;Skill 标记模式
&lt;/h2&gt;&lt;p&gt;如果你用的是 claude code，它会显式告诉你调用了什么 Skill。&lt;/p&gt;
&lt;p&gt;但如果你用的是别的工具，比如 openclaw，它通常不会告诉你到底用了哪个 Skill。&lt;/p&gt;
&lt;p&gt;这样就会让人很不安心。&lt;/p&gt;
&lt;p&gt;你根本不知道它到底有没有调用你的 Skill。&lt;/p&gt;
&lt;p&gt;这时候，你可以在 Skill 输出的最后，强制加一句：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;使用了 [xxx skill]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这样你就能知道：&lt;/p&gt;
&lt;p&gt;它到底有没有真正调用你的 Skill。&lt;/p&gt;</description></item><item><title>Web4.0 要来了</title><link>https://CodePlato3721.github.io/zh/post/web4.0%E8%A6%81%E6%9D%A5%E4%BA%86/</link><pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate><guid>https://CodePlato3721.github.io/zh/post/web4.0%E8%A6%81%E6%9D%A5%E4%BA%86/</guid><description>&lt;img src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/web4-is-coming/zh/banner.png" alt="Featured image of post Web4.0 要来了" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;AI 不只是工具升级，而是一次新的计算平台革命。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id="一前言裂缝已经出现了"&gt;一、前言：裂缝已经出现了
&lt;/h1&gt;&lt;p&gt;我最近在找工作，然后我发现了一件很有意思的事情：现在真正招聘&amp;quot;LLM 整合开发&amp;quot;的岗位，其实还很少。更有意思的是，即使招聘，大部分公司也要求：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;有 AI Agent 经验&lt;/li&gt;
&lt;li&gt;有 LLM 项目经验&lt;/li&gt;
&lt;li&gt;有 RAG 经验&lt;/li&gt;
&lt;li&gt;有 AI Workflow 经验&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;问题是，LLM 才爆发几年？真正有完整 AI 开发经验的工程师，到底有多少？很多工程师开始转向 LLM 开发，也不过才几个月。&lt;/p&gt;
&lt;p&gt;你现在非要卡得这么死，招不到人，这些人最后就会被别的公司抢走。再过一两年，你可能想招都招不到了。&lt;/p&gt;
&lt;p&gt;（所以我最近在找工作的话，其实可以现在就招我了。但不要考 LeetCode。）&lt;/p&gt;
&lt;p&gt;但这件事情真正有意思的地方，其实不在招聘，而在于大部分公司直到现在，依然不知道该怎么使用 AI 盈利。很多真正开始利用 LLM 做事情的人，反而是独立开发者、小团队、极客、个人创业者。他们甚至不知道未来能不能赚钱，但他们依然在疯狂实验，因为&amp;quot;这件事情本身很酷&amp;quot;。&lt;/p&gt;
&lt;p&gt;这种极客的直觉，其实很难用传统企业的经营逻辑去理解。很多伟大的技术革命，最开始都不是因为&amp;quot;商业模式清晰&amp;quot;，而是因为有一群人觉得这东西太有意思了。&lt;/p&gt;
&lt;p&gt;互联网如此，个人电脑如此，智能手机如此，AI 也是如此。&lt;/p&gt;
&lt;p&gt;真正危险的，是很多大公司直到现在还停留在自己的舒适区里。他们还在问：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI 能不能赚钱？&lt;/li&gt;
&lt;li&gt;AI ROI 怎么算？&lt;/li&gt;
&lt;li&gt;AI 会不会影响现有业务？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但他们真正应该思考的问题其实是：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&amp;ldquo;十年后，公司还会不会存在？&amp;rdquo;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;因为历史已经发生过很多次了。柯达不是死于技术不够强，诺基亚不是死于工程师不优秀，它们死于&amp;quot;新计算平台出现时，它们还活在旧时代&amp;quot;。&lt;/p&gt;
&lt;p&gt;而现在，裂缝已经出现了。&lt;/p&gt;
&lt;p&gt;在我看来，一个尼亚加拉大瀑布正被一层薄薄的土墙挡住，而那层土墙已经开始裂开了。&lt;/p&gt;
&lt;p&gt;今天 90% 的互联网公司，其实都已经站在悬崖边缘，只是它们自己还没有意识到。不信？我们可以从现在开始做一个社会实验：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;做 Jira 的 Skill&lt;/li&gt;
&lt;li&gt;做有道的 Skill&lt;/li&gt;
&lt;li&gt;做各种 Web2.0 软件的 AI 版本&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;看看它们会不会被颠覆。&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="二正文web40-架构"&gt;二、正文：Web4.0 架构
&lt;/h1&gt;&lt;p&gt;Web3.0 这个词，已经快被说烂了。为什么？因为它并没有真正出现足以重构 Web2.0 的新计算范式。&lt;/p&gt;
&lt;p&gt;但 AI 不一样。&lt;/p&gt;
&lt;p&gt;我愿意把这次浪潮称为 Web4.0，因为 AI 正在开始深度进入软件本身。它不再只是搜索框、聊天机器人、辅助工具，而是在逐渐成为软件运行逻辑的一部分。&lt;/p&gt;
&lt;p&gt;我甚至认为，这会是第四次工业革命，因为机器第一次开始&amp;quot;自己参与软件的生产&amp;quot;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-软件界面"&gt;1. 软件界面
&lt;/h2&gt;&lt;p&gt;&lt;img alt="软件界面" class="gallery-image" data-flex-basis="351px" data-flex-grow="146" height="447" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/web4-is-coming/02_ui.png" width="654"&gt;&lt;/p&gt;
&lt;p&gt;Web4.0 的软件界面，会和今天的软件非常不一样，但也不会完全陌生。&lt;/p&gt;
&lt;p&gt;未来的软件，大概率会变成&amp;quot;左边是软件，右边是 AI&amp;quot;。&lt;/p&gt;
&lt;p&gt;左边依然是传统 GUI，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;任务列表&lt;/li&gt;
&lt;li&gt;表格&lt;/li&gt;
&lt;li&gt;图表&lt;/li&gt;
&lt;li&gt;Dashboard&lt;/li&gt;
&lt;li&gt;状态栏&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因为人类依然需要&amp;quot;看到状态&amp;quot;，GUI 不会消失。&lt;/p&gt;
&lt;p&gt;但右边会出现 AI 操作层。用户不再主要通过按钮操作软件，而是通过自然语言、对话、意图完成大部分工作。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;p&gt;&amp;ldquo;帮我把这个 issue 调整到下周并通知相关成员。&amp;rdquo;&lt;/p&gt;
&lt;p&gt;AI 会：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;修改 issue&lt;/li&gt;
&lt;li&gt;更新状态&lt;/li&gt;
&lt;li&gt;发送通知&lt;/li&gt;
&lt;li&gt;修改时间线&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;而左边 GUI 的作用，则变成&amp;quot;展示系统当前状态&amp;quot;。用户甚至可以看着 AI 在系统里操作，必要时再自己接管。&lt;/p&gt;
&lt;p&gt;未来的软件，会从：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&amp;ldquo;人操作软件&amp;rdquo;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;变成：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&amp;ldquo;AI 操作软件，人监督 AI。&amp;rdquo;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="2-系统架构"&gt;2. 系统架构
&lt;/h2&gt;&lt;p&gt;&lt;img alt="系统架构" class="gallery-image" data-flex-basis="360px" data-flex-grow="150" height="512" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/web4-is-coming/03_sys.png" width="768"&gt;&lt;/p&gt;
&lt;p&gt;Web4.0 的核心变化，是所有前端最终都会连接到 AI 引擎。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;App&lt;/li&gt;
&lt;li&gt;Web&lt;/li&gt;
&lt;li&gt;Desktop&lt;/li&gt;
&lt;li&gt;Skill&lt;/li&gt;
&lt;li&gt;Agent&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最终都会接入：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;SLM + RAG&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;很多人现在默认未来一定是超大模型统治世界，但我并不这么认为。因为 LLM 成本太高，企业敏感数据不能外流，技术命脉也不能被外部模型公司掌握。一个真正成熟的大公司，不可能把自己的核心业务永远建立在别人的 API 上。&lt;/p&gt;
&lt;p&gt;因此，Web4.0 最终一定会走向：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;企业自己的 SLM（Small Language Model）+ 自研 RAG。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;LLM 会更像早期探索工具、通用推理引擎、产品验证平台。而真正成熟后的产品，最终会拥有自己的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI Engine&lt;/li&gt;
&lt;li&gt;Memory&lt;/li&gt;
&lt;li&gt;Knowledge Base&lt;/li&gt;
&lt;li&gt;Workflow System&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;未来公司的技术护城河，也会逐渐从：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;前端页面&lt;/li&gt;
&lt;li&gt;CRUD 系统&lt;/li&gt;
&lt;li&gt;数据库设计&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;转向：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RAG 架构&lt;/li&gt;
&lt;li&gt;Workflow 编排&lt;/li&gt;
&lt;li&gt;企业知识组织&lt;/li&gt;
&lt;li&gt;Agent 协作系统&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="3-生命周期"&gt;3. 生命周期
&lt;/h2&gt;&lt;p&gt;&lt;img alt="生命周期" class="gallery-image" data-flex-basis="360px" data-flex-grow="150" height="512" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/web4-is-coming/04_lifecycle.png" width="768"&gt;&lt;/p&gt;
&lt;p&gt;Web4.0 产品的生命周期，也会发生变化。&lt;/p&gt;
&lt;p&gt;在产品早期，很多团队会直接使用：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenAI&lt;/li&gt;
&lt;li&gt;Claude&lt;/li&gt;
&lt;li&gt;Gemini&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;配合：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MCP&lt;/li&gt;
&lt;li&gt;RAG&lt;/li&gt;
&lt;li&gt;Workflow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;快速构建产品，因为试错成本低，产品一开始就能&amp;quot;活&amp;quot;。&lt;/p&gt;
&lt;p&gt;这和过去完全不同。以前产品必须开发大量逻辑后才能 usable，但现在 AI 本身就已经拥有大量通用能力。&lt;/p&gt;
&lt;p&gt;但到了成熟阶段，企业一定会逐渐迁移到：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;SLM + 自研 RAG&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;原因很现实：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;降低成本&lt;/li&gt;
&lt;li&gt;控制数据&lt;/li&gt;
&lt;li&gt;降低 API 依赖&lt;/li&gt;
&lt;li&gt;保证稳定性&lt;/li&gt;
&lt;li&gt;建立技术主权&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以 Web4.0 产品的发展路径，很可能会变成：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LLM API
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;RAG
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Workflow
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SLM
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;企业 AI Engine
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="4-客服系统"&gt;4. 客服系统
&lt;/h2&gt;&lt;p&gt;客服行业，可能会是最先被重构的行业之一。&lt;/p&gt;
&lt;p&gt;但这一次，是真正的 AI 客服，而不是以前那种&amp;quot;让所有人都烦躁的假 AI&amp;quot;。&lt;/p&gt;
&lt;p&gt;过去的 AI 客服：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;听不懂上下文&lt;/li&gt;
&lt;li&gt;不能连续对话&lt;/li&gt;
&lt;li&gt;无法理解情绪&lt;/li&gt;
&lt;li&gt;只会关键词匹配&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以用户最终总会&amp;quot;转人工&amp;quot;。&lt;/p&gt;
&lt;p&gt;但 Web4.0 的 AI 客服不一样。它会真正理解：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;上下文&lt;/li&gt;
&lt;li&gt;历史记录&lt;/li&gt;
&lt;li&gt;用户情绪&lt;/li&gt;
&lt;li&gt;用户行为&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它甚至能判断：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&amp;ldquo;用户已经开始不耐烦了。&amp;rdquo;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;然后主动：&lt;/p&gt;
&lt;p&gt;&amp;ldquo;我帮你转人工客服。&amp;rdquo;&lt;/p&gt;
&lt;p&gt;未来很多公司的客服系统，其实已经完全可以 AI 托管。真正需要人的场景，只会剩下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高风险决策&lt;/li&gt;
&lt;li&gt;情绪安抚&lt;/li&gt;
&lt;li&gt;特殊案例处理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;又一个产业，会被重构。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="5-版本迭代"&gt;5. 版本迭代
&lt;/h2&gt;&lt;p&gt;这一部分是一个比较激进的想法，但我觉得它很酷，而且很可能带来病毒式传播。&lt;/p&gt;
&lt;p&gt;那就是：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&amp;ldquo;下一个版本做什么，由用户投票决定。&amp;rdquo;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;AI 会：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;分析用户行为&lt;/li&gt;
&lt;li&gt;总结用户需求&lt;/li&gt;
&lt;li&gt;自动生成候选功能&lt;/li&gt;
&lt;li&gt;让用户投票&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;甚至未来，AI 还能自动实现部分功能。&lt;/p&gt;
&lt;p&gt;过去的软件开发流程是：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;产品经理
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;需求
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;开发
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;而 Web4.0 时代，可能会逐渐变成：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;用户
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;AI 分析
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;AI 实现
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;用户反馈
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;软件会开始进入：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&amp;ldquo;高速自进化时代。&amp;rdquo;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h1 id="三结论web40-不是升级而是替代"&gt;三、结论：Web4.0 不是升级，而是替代
&lt;/h1&gt;&lt;p&gt;很多公司现在还认为，AI 只是一个插件、一个功能、一个聊天框、一个提高效率的工具。&lt;/p&gt;
&lt;p&gt;但我认为，AI 真正改变的，是整个软件架构。&lt;/p&gt;
&lt;p&gt;Web4.0 不是&amp;quot;Web2.0 + AI&amp;quot;，而是一个新的计算平台。就像：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PC 替代大型机&lt;/li&gt;
&lt;li&gt;智能手机替代部分 PC&lt;/li&gt;
&lt;li&gt;云计算重构企业系统&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一样。&lt;/p&gt;
&lt;p&gt;AI 会重新定义：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;软件&lt;/li&gt;
&lt;li&gt;工作流&lt;/li&gt;
&lt;li&gt;组织方式&lt;/li&gt;
&lt;li&gt;开发模式&lt;/li&gt;
&lt;li&gt;用户交互&lt;/li&gt;
&lt;li&gt;企业架构&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;很多公司现在以为，自己只是在等待 AI 成熟，但实际上：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;AI 正在等待替代它们。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;我们现在，可能正站在自计算机发明以来最大的技术风口上。而很多公司已经站在悬崖边缘，只是它们自己还没有意识到。&lt;/p&gt;</description></item><item><title>基于 LLM 的 AI 智能体架构：一台长在你设备里的新型电脑</title><link>https://CodePlato3721.github.io/zh/post/%E5%9F%BA%E4%BA%8Ellm%E7%9A%84ai%E6%99%BA%E8%83%BD%E4%BD%93%E6%9E%B6%E6%9E%84/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://CodePlato3721.github.io/zh/post/%E5%9F%BA%E4%BA%8Ellm%E7%9A%84ai%E6%99%BA%E8%83%BD%E4%BD%93%E6%9E%B6%E6%9E%84/</guid><description>&lt;img src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/llm-agent-architecture-a-new-kind-of-personal-computer/cn/banner.png" alt="Featured image of post 基于 LLM 的 AI 智能体架构：一台长在你设备里的新型电脑" /&gt;&lt;h1 id="基于-llm-的-ai-智能体架构一台长在你设备里的新型电脑"&gt;基于 LLM 的 AI 智能体架构：一台长在你设备里的新型电脑
&lt;/h1&gt;&lt;p&gt;过去，我们一直把 AI 理解成一个&amp;quot;聊天机器人&amp;quot;。&lt;/p&gt;
&lt;p&gt;但如果从系统架构角度重新观察，会发现未来真正成熟的 AI 智能体，更像是一台安装在你设备里的新型个人电脑。&lt;/p&gt;
&lt;p&gt;它拥有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;计算核心&lt;/li&gt;
&lt;li&gt;内存&lt;/li&gt;
&lt;li&gt;文件系统&lt;/li&gt;
&lt;li&gt;软件系统&lt;/li&gt;
&lt;li&gt;输入输出设备&lt;/li&gt;
&lt;li&gt;长期存储&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;只是：&lt;/p&gt;
&lt;p&gt;它的核心不再是传统 CPU，而是 LLM。&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="一llm-引擎没有记忆的cpu"&gt;一、LLM 引擎：没有记忆的&amp;quot;CPU&amp;quot;
&lt;/h1&gt;&lt;p&gt;LLM 本身其实没有长期记忆。&lt;/p&gt;
&lt;p&gt;它更像一个推理引擎：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;接收输入&lt;/li&gt;
&lt;li&gt;读取上下文&lt;/li&gt;
&lt;li&gt;进行推理&lt;/li&gt;
&lt;li&gt;输出结果&lt;/li&gt;
&lt;li&gt;然后&amp;quot;失忆&amp;quot;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;它无法天然记住过去发生的事情。&lt;/p&gt;
&lt;p&gt;因此：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;LLM 本身更像 CPU，而不是完整的智能体。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;它只负责计算。&lt;/p&gt;
&lt;p&gt;真正让 AI &amp;ldquo;看起来认识你&amp;quot;的，是外部为它提供的上下文。&lt;/p&gt;
&lt;p&gt;&lt;img alt="LLM CPU" class="gallery-image" data-flex-basis="360px" data-flex-grow="150" height="1024" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/llm-agent-architecture-a-new-kind-of-personal-computer/cn/01_llm_cpu.png" srcset="https://CodePlato3721.github.io/01_llm_cpu_18372079591755365085_hu_588b3268f55695d5.png 800w, https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/llm-agent-architecture-a-new-kind-of-personal-computer/cn/01_llm_cpu.png 1536w" width="1536"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="二上下文ai-智能体的内存"&gt;二、上下文：AI 智能体的内存
&lt;/h1&gt;&lt;p&gt;如果 LLM 是 CPU，&lt;br&gt;
那么 Context（上下文）就是 AI 的内存。&lt;/p&gt;
&lt;p&gt;而这个内存，其实应该分成两层。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-全局上下文global-context"&gt;1. 全局上下文（Global Context）
&lt;/h2&gt;&lt;p&gt;这一层属于整个智能体。&lt;/p&gt;
&lt;p&gt;它记录：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户偏好&lt;/li&gt;
&lt;li&gt;长期目标&lt;/li&gt;
&lt;li&gt;常用习惯&lt;/li&gt;
&lt;li&gt;人格设定&lt;/li&gt;
&lt;li&gt;长期规则&lt;/li&gt;
&lt;li&gt;历史知识&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;用户喜欢 Markdown&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;用户正在学习 AI Agent&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;用户习惯使用中文写作&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些信息会长期影响智能体行为。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="2-会话上下文session-context"&gt;2. 会话上下文（Session Context）
&lt;/h2&gt;&lt;p&gt;这一层只属于当前对话。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;当前正在讨论的话题&lt;/li&gt;
&lt;li&gt;当前文章结构&lt;/li&gt;
&lt;li&gt;最近几轮对话&lt;/li&gt;
&lt;li&gt;临时推理结果&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它更像程序运行时的临时内存。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="上下文窗口本质上是内存限制"&gt;上下文窗口，本质上是&amp;quot;内存限制&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;LLM 的 Context Window 并不是无限的。&lt;/p&gt;
&lt;p&gt;这意味着：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;历史不能无限累积&lt;/li&gt;
&lt;li&gt;信息会越来越贵&lt;/li&gt;
&lt;li&gt;超过限制后必须被压缩&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;于是：&lt;/p&gt;
&lt;p&gt;智能体必须像操作系统一样管理内存：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;压缩历史&lt;/li&gt;
&lt;li&gt;总结摘要&lt;/li&gt;
&lt;li&gt;清理低优先级信息&lt;/li&gt;
&lt;li&gt;转移长期信息&lt;/li&gt;
&lt;li&gt;动态加载需要的数据&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;Context Window 本质上就是 AI 的内存容量。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="Context Memory" class="gallery-image" data-flex-basis="280px" data-flex-grow="117" height="435" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/llm-agent-architecture-a-new-kind-of-personal-computer/cn/02_context_memory.png" width="509"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="三markdown-文件智能体的硬盘"&gt;三、Markdown 文件：智能体的硬盘
&lt;/h1&gt;&lt;p&gt;长期数据不应该一直放在上下文里。&lt;/p&gt;
&lt;p&gt;否则：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;成本会越来越高&lt;/li&gt;
&lt;li&gt;推理速度会下降&lt;/li&gt;
&lt;li&gt;Context 会迅速膨胀&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;长期记忆应该存在文件系统中。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;而一种非常自然的形式，就是 Markdown 文件。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;笔记&lt;/li&gt;
&lt;li&gt;项目资料&lt;/li&gt;
&lt;li&gt;日记&lt;/li&gt;
&lt;li&gt;世界观&lt;/li&gt;
&lt;li&gt;用户档案&lt;/li&gt;
&lt;li&gt;写作素材&lt;/li&gt;
&lt;li&gt;长期知识库&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;都可以直接存成 Markdown。&lt;/p&gt;
&lt;p&gt;这意味着：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;传统电脑&lt;/th&gt;
					&lt;th&gt;AI 智能体&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;硬盘&lt;/td&gt;
					&lt;td&gt;Markdown 文件系统&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Markdown 有一个巨大优势：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;它既能被 AI 阅读，也能被人类直接阅读。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;因此：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;人类可以编辑&lt;/li&gt;
&lt;li&gt;AI 可以处理&lt;/li&gt;
&lt;li&gt;Git 可以版本管理&lt;/li&gt;
&lt;li&gt;文件可以同步&lt;/li&gt;
&lt;li&gt;即使脱离 AI 依然存在&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这会形成一种：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&amp;ldquo;人与 AI 共用的知识空间&amp;rdquo;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="Markdown Storage" class="gallery-image" data-flex-basis="289px" data-flex-grow="120" height="425" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/llm-agent-architecture-a-new-kind-of-personal-computer/cn/03_markdown_storage.png" width="512"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="四skill安装在-ai-上的软件"&gt;四、Skill：安装在 AI 上的软件
&lt;/h1&gt;&lt;p&gt;未来的 AI 智能体，不会只有&amp;quot;知识&amp;quot;。&lt;/p&gt;
&lt;p&gt;它还会拥有&amp;quot;技能&amp;quot;。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;写作 Skill&lt;/li&gt;
&lt;li&gt;编程 Skill&lt;/li&gt;
&lt;li&gt;视频剪辑 Skill&lt;/li&gt;
&lt;li&gt;数据分析 Skill&lt;/li&gt;
&lt;li&gt;项目管理 Skill&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些 Skill 可能由：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prompt&lt;/li&gt;
&lt;li&gt;工作流&lt;/li&gt;
&lt;li&gt;Python 代码&lt;/li&gt;
&lt;li&gt;MCP 配置&lt;/li&gt;
&lt;li&gt;Tool 调用规则&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;共同组成。&lt;/p&gt;
&lt;p&gt;它们就像：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;安装在 AI 身上的软件。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;因此：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;传统电脑&lt;/th&gt;
					&lt;th&gt;AI 智能体&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;软件 / App&lt;/td&gt;
					&lt;td&gt;Skill&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Skill 可以：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;安装&lt;/li&gt;
&lt;li&gt;卸载&lt;/li&gt;
&lt;li&gt;更新&lt;/li&gt;
&lt;li&gt;共享&lt;/li&gt;
&lt;li&gt;组合&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;未来甚至可能出现：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skill Store&lt;/li&gt;
&lt;li&gt;Skill Marketplace&lt;/li&gt;
&lt;li&gt;开源 Skill 社区&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Skill Software" class="gallery-image" data-flex-basis="293px" data-flex-grow="122" height="418" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/llm-agent-architecture-a-new-kind-of-personal-computer/cn/04_skill_software.png" width="512"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="五输入输出不只是文字"&gt;五、输入输出：不只是文字
&lt;/h1&gt;&lt;p&gt;传统聊天机器人最大的误导之一，是大家以为 AI 只有文字交互。&lt;/p&gt;
&lt;p&gt;实际上未来的 AI 智能体，会拥有完整的多模态输入输出系统。&lt;/p&gt;
&lt;h2 id="输入"&gt;输入
&lt;/h2&gt;&lt;p&gt;AI 可以读取：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文字&lt;/li&gt;
&lt;li&gt;语音&lt;/li&gt;
&lt;li&gt;图片&lt;/li&gt;
&lt;li&gt;视频&lt;/li&gt;
&lt;li&gt;摄像头&lt;/li&gt;
&lt;li&gt;文件&lt;/li&gt;
&lt;li&gt;屏幕内容&lt;/li&gt;
&lt;li&gt;设备状态&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="输出"&gt;输出
&lt;/h2&gt;&lt;p&gt;AI 可以生成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文本&lt;/li&gt;
&lt;li&gt;语音&lt;/li&gt;
&lt;li&gt;图像&lt;/li&gt;
&lt;li&gt;视频&lt;/li&gt;
&lt;li&gt;自动化操作&lt;/li&gt;
&lt;li&gt;控制指令&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;AI 智能体本质上是一种新的交互层。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="Multimodal IO" class="gallery-image" data-flex-basis="240px" data-flex-grow="100" height="512" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/llm-agent-architecture-a-new-kind-of-personal-computer/cn/05_multimodal_io.png" width="512"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="电脑整机一种类冯诺依曼结构的-ai-计算机"&gt;电脑整机：一种&amp;quot;类冯诺依曼结构&amp;quot;的 AI 计算机
&lt;/h1&gt;&lt;p&gt;如果把整个架构放在一起：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;传统计算机&lt;/th&gt;
					&lt;th&gt;AI 智能体&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;CPU&lt;/td&gt;
					&lt;td&gt;LLM 引擎&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;内存&lt;/td&gt;
					&lt;td&gt;Context&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;硬盘&lt;/td&gt;
					&lt;td&gt;Markdown 文件系统&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;软件&lt;/td&gt;
					&lt;td&gt;Skill&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;输入设备&lt;/td&gt;
					&lt;td&gt;多模态输入&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;输出设备&lt;/td&gt;
					&lt;td&gt;多模态输出&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;你会发现：&lt;/p&gt;
&lt;p&gt;它已经越来越像一台真正的计算机。&lt;/p&gt;
&lt;p&gt;只是：&lt;/p&gt;
&lt;p&gt;这台计算机不是围绕 GUI 构建的。&lt;/p&gt;
&lt;p&gt;而是围绕：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&amp;ldquo;语言理解与推理&amp;rdquo;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;构建的。&lt;/p&gt;
&lt;p&gt;&lt;img alt="AI Computer Architecture" class="gallery-image" data-flex-basis="289px" data-flex-grow="120" height="425" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/llm-agent-architecture-a-new-kind-of-personal-computer/cn/06_ai_computer_architecture.png" width="512"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="操作系统个人-ai-操作系统"&gt;操作系统：个人 AI 操作系统
&lt;/h1&gt;&lt;p&gt;未来每个人设备中，都可能长期存在一个 AI Agent。&lt;/p&gt;
&lt;p&gt;它：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;理解你&lt;/li&gt;
&lt;li&gt;记住你&lt;/li&gt;
&lt;li&gt;帮助你工作&lt;/li&gt;
&lt;li&gt;管理你的知识&lt;/li&gt;
&lt;li&gt;调度你的 Skills&lt;/li&gt;
&lt;li&gt;操作你的设备&lt;/li&gt;
&lt;li&gt;与你长期共同成长&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;那时：&lt;/p&gt;
&lt;p&gt;我们使用的可能不再只是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows&lt;/li&gt;
&lt;li&gt;macOS&lt;/li&gt;
&lt;li&gt;Android&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;而是：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;一个以 LLM 为核心的新型个人 AI 操作系统。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;而今天的聊天框，&lt;/p&gt;
&lt;p&gt;可能只是这个新时代最早期的雏形。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Personal AI OS" class="gallery-image" data-flex-basis="280px" data-flex-grow="116" height="438" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/llm-agent-architecture-a-new-kind-of-personal-computer/cn/07_personal_ai_os.png" width="512"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id="参考资料"&gt;参考资料
&lt;/h1&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Park, Joon Sung et al.&lt;br&gt;
&lt;strong&gt;MemGPT: Towards LLMs as Operating Systems&lt;/strong&gt;&lt;br&gt;
arXiv:2310.08560&lt;br&gt;
&lt;a class="link" href="https://arxiv.org/abs/2310.08560" target="_blank" rel="noopener"
 &gt;https://arxiv.org/abs/2310.08560&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Wang, Lei et al.&lt;br&gt;
&lt;strong&gt;LLM as OS, Agents as Apps: Envisioning AIOS, Agents and the AIOS-Agent Ecosystem&lt;/strong&gt;&lt;br&gt;
arXiv:2312.03815&lt;br&gt;
&lt;a class="link" href="https://arxiv.org/abs/2312.03815" target="_blank" rel="noopener"
 &gt;https://arxiv.org/abs/2312.03815&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>AI治好了我的写作拖延症</title><link>https://CodePlato3721.github.io/zh/post/ai%E6%B2%BB%E5%A5%BD%E4%BA%86%E6%88%91%E7%9A%84%E5%86%99%E4%BD%9C%E6%8B%96%E5%BB%B6%E7%97%87/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://CodePlato3721.github.io/zh/post/ai%E6%B2%BB%E5%A5%BD%E4%BA%86%E6%88%91%E7%9A%84%E5%86%99%E4%BD%9C%E6%8B%96%E5%BB%B6%E7%97%87/</guid><description>&lt;img src="https://pub-deacd49348914a49b1254b01f351ef0d.r2.dev/2026/05/ai-cured-writing-procrastination/banner.png" alt="Featured image of post AI治好了我的写作拖延症" /&gt;&lt;h1 id="ai治好了我的写作拖延症"&gt;AI治好了我的写作拖延症
&lt;/h1&gt;&lt;h2 id="懒人的借口"&gt;懒人的借口
&lt;/h2&gt;&lt;p&gt;我已经很多年没写博客了。&lt;/p&gt;
&lt;p&gt;不是没有想法，是真的写不动。以前写一篇文章，少说也要一周——构思、码字、反复改，改完还要配图，画流程图用draw.io一拖一拽，半小时过去了就画了个框。整个过程又慢又累，慢慢地就产生了一种抵触感。每次打开编辑器，脑子里第一个念头不是&amp;quot;我要写什么&amp;quot;，而是&amp;quot;算了，改天吧&amp;quot;。&lt;/p&gt;
&lt;p&gt;这一改天，就是好几年。&lt;/p&gt;
&lt;p&gt;直到最近，我才意识到，让我停下来的从来不是没有东西可写，而是写作这件事本身太&amp;quot;重&amp;quot;了。&lt;/p&gt;
&lt;p&gt;现在AI把这个重量卸掉了一大半。&lt;/p&gt;
&lt;h2 id="痛点"&gt;痛点
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;从思路变成通顺的文字很困难&lt;/strong&gt;：我只需要把想法说清楚，哪怕是很粗糙的几句话，AI可以帮我把它组织成流畅的段落。我来把控方向和观点，它来打磨语言——这个分工让我舒服多了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;找配图很费时间，经常图片的格式和大小还不合适&lt;/strong&gt;：现在直接让AI生成，风格、构图都能描述，几秒钟出来。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;画流程图很慢&lt;/strong&gt;：把逻辑说给AI，它直接给我生成，我只需要看看对不对、要不要调整。&lt;/p&gt;
&lt;h2 id="具体方案"&gt;具体方案
&lt;/h2&gt;&lt;p&gt;我给自己搭了一个小小的写作流水线，核心是两个AI角色。&lt;/p&gt;
&lt;p&gt;一个是&lt;strong&gt;写手&lt;/strong&gt;。我把想法、思路、想表达的核心观点丢给它，它负责把这些碎片组织成一篇完整的初稿。&lt;/p&gt;
&lt;p&gt;初稿出来之后，&lt;strong&gt;我自己来改&lt;/strong&gt;。这一步很关键——不要把读者当傻子。好的文章越短越好，现在的人包括我自己都没耐心看一篇大长文。Later is never。&lt;/p&gt;
&lt;p&gt;改完之后，交给第二个AI角色——&lt;strong&gt;编辑&lt;/strong&gt;。它负责审这篇文章，帮我再修改一轮。其实我现在也不确定编辑这个角色是否需要，先这么做试试看吧。&lt;/p&gt;
&lt;p&gt;我不确定接下来会写多少篇，但至少今天，我打开了编辑器，写完了这篇。&lt;/p&gt;</description></item></channel></rss>