<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>rockbot</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://www.rockbot.cc/blog/</id>
  <link href="https://www.rockbot.cc/blog/" rel="alternate"/>
  <link href="https://www.rockbot.cc/blog/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, rockbot</rights>
  <subtitle>晨光熹微，喜见新章</subtitle>
  <title>rockbot's blog</title>
  <updated>2026-05-10T12:24:25.536Z</updated>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>近期Lenny’s Podcast 访谈了 Claude Code 和 Cowork 的产品负责人 Cat Wu，聊 Anthropic 的产品团队如何做到比谁都快。她说，product taste 是现在最值钱的技能。类似的观点 Ilya 也表达过。以至于业界调侃：code is cheap, show me your taste.</p><p>我同意这个判断，但”品味”这个词太抽象了，很容易变成玄学。我想通过这篇文章跟大家探讨，以及表达我对产品品味的看法。</p><h2 id="一、代码成本暴跌，”做什么”比”怎么做”更重要"><a href="#一、代码成本暴跌，”做什么”比”怎么做”更重要" class="headerlink" title="一、代码成本暴跌，”做什么”比”怎么做”更重要"></a>一、代码成本暴跌，”做什么”比”怎么做”更重要</h2><p>在 Anthropic，工程师和产品经理的边界正在模糊。Cat Wu 说他们的产品团队全部都有开发经验，更倾向于招有产品品味的工程师。PM 和设计师都用 Claude Code 写代码，觉得没问题就直接提 PR，不需要等工程师排期。</p><p>开发工程师则对 AI 的态度更复杂，一方面 AI Coding 极大提升了自己的效率，另一方面看到 AI 能力这么强肯定免不了焦虑，也在思考职业生涯转型。</p><p>对此我的建议是：开发者需要从”解决问题”转向”定义问题”。不论技术职级，谁能发现并定义真正的问题，谁就能创造业务价值，也能在AI时代找到自己的位置。</p><h2 id="二、品味的本质是判断力"><a href="#二、品味的本质是判断力" class="headerlink" title="二、品味的本质是判断力"></a>二、品味的本质是判断力</h2><p>很多开发者听到”产品品味”，第一反应是设计感，按钮的圆角多大、配色好不好看。但其实并不是，现在最火爆的 AI 工具，Claude Code 是 CLI 形式，审美直接回到上世纪 60 年代。</p><p>产品品味的本质是判断力。这个功能为什么要做，那个功能为什么不做？为什么先做这个后做那个？这些都需要判断，判断的背后是产品负责人的品味。</p><p>做一个产品 demo 很容易，但做一个持续迭代的软件，还是不容易的。代码的实现成本下降，更加凸显品味的重要性。</p><h2 id="三、开发者怎么提升自己的产品品味？"><a href="#三、开发者怎么提升自己的产品品味？" class="headerlink" title="三、开发者怎么提升自己的产品品味？"></a>三、开发者怎么提升自己的产品品味？</h2><p>下面我从自己的经验出发，谈谈自己的想法。</p><h3 id="1、深度使用自己的产品，为结果负责"><a href="#1、深度使用自己的产品，为结果负责" class="headerlink" title="1、深度使用自己的产品，为结果负责"></a>1、深度使用自己的产品，为结果负责</h3><p>很多开发者最大的问题是自己只做产品，但不用产品。企业内部的测试平台，很可能测试覆盖率最低。稳定性平台的高可用，很可能是最差的。还有一些团队把答疑外包出去，看似省了时间，但丧失了跟用户的连接。这些站在平台视角的”答疑”，天然就是用户视角的”痛点”。</p><p>Anthropic 的做法值得参考。他们内部叫 antfooding（员工自称”ants”），每个功能先让内部工程师用，反馈频道几乎全天都有人在发消息，反馈的密度很高。</p><p>光是”用”还不够，你还要为结果负责。假如功能已经上线了，如何运营推广？如何阐述业务价值？不能再靠产品经理或Team Leader了。以终为始去思考，承担决策之后的结果。我之前也经历过这个过程，虽然很痛苦，现在回过头看，却是绕不开的成长路径。</p><h3 id="2、学会建模，而不是堆菜单"><a href="#2、学会建模，而不是堆菜单" class="headerlink" title="2、学会建模，而不是堆菜单"></a>2、学会建模，而不是堆菜单</h3><p>我见过太多产品经理和开发者设计出来的产品，菜单混乱、概念模糊。混乱的背后，是对底层模型以及模型之间关系没有想清楚。好看的界面建在模糊的概念上，就像是建立在沙子上的城堡。</p><p>比如，我之前接手企业内部的成本管控平台，有一个概念叫”资源盘点人”，这个词让用户很困惑，”盘点”是动作，并不是角色属性。其实这个人是负责每个月把技术资源账单盘点给业务方，把账单算清楚。我后来把文案改成了”资源归属人”，用户一看就懂了。</p><p>一个词的改动看起来很小，但它反映的是你对业务模型的理解深度。我的做法是：把系统里所有出现的名词和动词都列出来，明确每个概念的含义和它们之间的关系。名词是实体或者属性，动词是流程或是动作，实体与实体之间是什么关系，这些想清楚了，产品结构大概率不会差。你再想想，这不就是UML吗？</p><h3 id="3、用demo沟通需求，而不是PRD"><a href="#3、用demo沟通需求，而不是PRD" class="headerlink" title="3、用demo沟通需求，而不是PRD"></a>3、用demo沟通需求，而不是PRD</h3><p>Anthropic的产品已经从 PRD 驱动转向原型（demo）驱动。PRD描述的是静态的产品，而demo则可以有更丰富的交互呈现。尤其是，AI 产品的很多体验没法用文字描述清楚。</p><p>Anthropic的发布节奏已经从按月变成按天，除非是重大的迭代还会写PRD，普通的功能都是直接用demo来验证想法了，这也是AI时代更快速达成共识的方式。</p><p>对开发者来说，这其实是好消息。你本来就会写代码，现在又有 AI 工具加速，做原型的速度比写 PRD 还快。与其花两天写一份需求文档说服别人，不如花半天做一个可运行的原型让别人体验。原型自己会说话，而且一个能跑的原型已经证明了可行性。</p><h3 id="4、通过写-Eval-量化品味"><a href="#4、通过写-Eval-量化品味" class="headerlink" title="4、通过写 Eval 量化品味"></a>4、通过写 Eval 量化品味</h3><p>Cat Wu认为构建评测集（evals）是一个被严重低估的技能。我在前段时间听notebookLM的产品经理分享，Google做AI产品的产品经理也非常注重写 Evals。</p><p>为什么写eval跟产品品味有关？我认为写eval的过程，本质上是在定义”好是什么”。你得想清楚：在你的场景里，什么结果是好的，什么是勉强可以接受的，什么是不能容忍的。</p><p>很多开发者做 AI 产品时，可以很快上线一个demo，但迭代时就会遇到问题：你很难通过跑几个 case 来判断这一版比上一版更好。Eval把品味从主观判断变成了可复用的资产。你写过一次好的eval，后面每次模型升级、每次 prompt调整，都可以用同一套标准来检验。这比每次都靠人肉vibe check 高效得多。</p><h2 id="四、多跟顶级模型讨论你的产品"><a href="#四、多跟顶级模型讨论你的产品" class="headerlink" title="四、多跟顶级模型讨论你的产品"></a>四、多跟顶级模型讨论你的产品</h2><p>最后一个建议，也是我自己最近在做的事：多找 SOTA 模型讨论你的产品思路，让它帮你出谋划策。几十刀就能”雇佣”世界顶尖的模型为你服务，这个性价比没啥好犹豫的。</p><p>同样的道理也适用于做 AI 产品：原型阶段先用最强的模型、给足Token，去验证功能的上限。确认体验是好的，再考虑用更便宜的模型优化成本。很多团队一上来就选便宜模型，但整体产品效果可能会大打折扣，甚至本身就是落后的设计。</p><p>说白了，你得用过好东西、见过好东西，才能做出来好东西。</p><hr><p>本文部分观点来自 Cat Wu 在 Lenny’s Podcast 的访谈（2026年4月）。关于如何从用户行为中发现潜在需求（Latent Demand），可以参考我之前写的关于 Boris Cherny 方法论的文章。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/bcaa069.html</id>
    <link href="https://www.rockbot.cc/blog/posts/bcaa069.html"/>
    <published>2026-05-04T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>近期Lenny’s Podcast 访谈了 Claude Code 和 Cowork 的产品负责人 Cat Wu，聊 Anthropic 的产品团队如何做到比谁都快。她说，product taste 是现在最值钱的技能。类似的观点 Ilya 也表达过。以至于业界调侃：cod]]>
    </summary>
    <title>开发者如何提升产品品味？</title>
    <updated>2026-05-10T12:24:25.536Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<h2 id="一、Anthropic在long-running-agent方面的实践脉络"><a href="#一、Anthropic在long-running-agent方面的实践脉络" class="headerlink" title="一、Anthropic在long-running agent方面的实践脉络"></a>一、Anthropic在long-running agent方面的实践脉络</h2><p>过去六个月，Anthropic的Engineering Blog 有三篇long-running agent主题的文章。时间线是：</p><p>2025.09，Effective context engineering for AI agents</p><p>2025.11，Effective harnesses for long-running agents</p><p>2026.03，Harness design for long-running application development</p><p>回头看，发现这三篇实践有明显的演进脉络，每一篇都在回应上一篇遗留下来的“坑”，</p><h3 id="1、Context-用完了，但任务没搞定"><a href="#1、Context-用完了，但任务没搞定" class="headerlink" title="1、Context 用完了，但任务没搞定"></a>1、Context 用完了，但任务没搞定</h3><p>第一篇文章讲的是 context engineering，核心结论是：context 是有限资源，随着 token 增加，模型的注意力会退化（context rot）。对于长程任务，提出了compaction、structured note-taking、sub-agent 三个方向。</p><p><img src="/blog/%22null%22" alt="image.png"></p><p><strong>2、Compaction 也没用，Agent 还是会失败</strong></p><p>第二篇发现，即使用了 compaction，long-horizon agent 还是可能失败：</p><p>1、试图在单次会话里完成所有任务，上下文耗尽但任务没完，下一个会话的 agent 要先猜发生了什么再继续，每次都在浪费 token；</p><p>2、提前宣布完工，做了一部分觉得差不多了就停。Anthropic 把后者叫”上下文焦虑”，在 Sonnet 4.5 上比较明显。</p><p>解决方案是拆成两个 agent：initializer agent 负责第一次搭环境，coding agent 在每次会话里做增量功能。</p><p><strong>3、任务虽然完成了，但质量不行</strong></p><p>第三篇发现随着模型升级，上下文焦虑基本消失了，但新问题出现：agent 完成任务后习惯美化自己的工作质量。做 AI Coding 的人应该都遇到过——任务跑完，模型反馈”完美”、”搞定”，实际上可能还有明显 bug。</p><p>解决方案是引入独立的、挑剔的 Evaluator Agent，通过它的反馈驱动 Executor 持续优化。至此，结构收敛到 Planner + Executor + Evaluator</p><h2 id="二、为什么说Planner-Executor-Evaluator是通用的"><a href="#二、为什么说Planner-Executor-Evaluator是通用的" class="headerlink" title="二、为什么说Planner + Executor + Evaluator是通用的"></a>二、为什么说Planner + Executor + Evaluator是通用的</h2><p>虽然Planner、Executor、Evaluator是从Coding领域实践出来的，但它们其实具备很强的通用性</p><p>1、Planner解决的是目标过大的问题，把模糊目标转化成可执行单元。在需求交付场景，Planner把复杂的大需求拆成N个简单的小需求。推广开来，写一份行业研报也需要先拆成数据收集、竞品分析、结论撰写等子任务</p><p>2、Executor解决的是跨会话带来的上下文丢失问题。在coding场景，靠进度文件、git commit log 和测试来维持连贯性。在其他场景下，任何多步骤流程都需要检查点和版本管理，让下一个会话的 agent 知道从哪继续</p><p>3、Evaluator 解决的是自我评价虚高问题。在coding场景，代码能跑不代表没bug。同样的，在SRE场景，执行完预案也不代表服务恢复。需要独立的评估角色，再做一次double check</p><p>可以说，任何需要agent在多个context window里持续长时间工作的场景，都可以通过这几个Agents的组合来搞定。</p><h2 id="三、一些值得借鉴的细节点"><a href="#三、一些值得借鉴的细节点" class="headerlink" title="三、一些值得借鉴的细节点"></a>三、一些值得借鉴的细节点</h2><p>如果你在构建面向复杂任务的long-running agent，这几篇文章强烈推荐仔细读，有一些细节点很值得借鉴</p><h3 id="1、任务拆解用json，而不是markdown"><a href="#1、任务拆解用json，而不是markdown" class="headerlink" title="1、任务拆解用json，而不是markdown"></a>1、任务拆解用json，而不是markdown</h3><p>Manus最开始用todo.md来维持Agent在长程任务下的注意力。但Claude code的实践发现，json格式效果会更好。原因也很简单，大模型对markdown文件操作起来会很随意，容易改错格式，修改不相关内容。json的强结构可以约束模型的行为，改错之后也能更快发现。</p><p>从著名的“开源项目”Claude code中也能验证这一说法，所有任务都以json格式存在于.tasks&#x2F;目录下</p><p><img src="/blog/%22null%22" alt="image.png"></p><h3 id="2、让Agent快速进入工作状态的prompt"><a href="#2、让Agent快速进入工作状态的prompt" class="headerlink" title="2、让Agent快速进入工作状态的prompt"></a>2、让Agent快速进入工作状态的prompt</h3><p>在长程任务中，Executor要通过多个会话完成整体的目标。在新会话创建后，可以通过这三步让Agent快速进入工作状态，</p><ol><li><ol><li>执行 <code>pwd</code> 来识别当前工作目录，仅可以编辑这个目录下的文件</li></ol></li><li><ol start="2"><li>读取git的提交日志和进度文件，以便更快理解最近的工作内容</li></ol></li><li><ol start="3"><li>阅读任务列表文件，并选择尚未完成且优先级最高的功能进行开发</li></ol></li></ol><p>虽然看起来简单，但不做这一步，Agent在没有上下文背景时，会花大量token和时间理解自己下一步该干什么</p><h3 id="3、Evaluator，验收评估"><a href="#3、Evaluator，验收评估" class="headerlink" title="3、Evaluator，验收评估"></a>3、Evaluator，验收评估</h3><p>Evaluator分两类，一类叫“对不对”，用于验证Executor的正确性；一类叫“好不好”，用于验证Executor产出物的质量。</p><p>比如，在Coding领域的Evaluator是测试用例，它主要用于验证代码是否有bug，实现层面是否正确。TDD（Test-Driven-Development）是历史上很流行的开发框架。</p><p>对于评估“好不好”这件事，我认为是最难设计的部分，说“好不好”更多是主观判断，具体要怎么量化？</p><p>Anthropic在前端设计场景的做法值得借鉴，他们没有试图定义”什么是美”，而是把问题转换成”是否符合良好设计的原则”，然后拆成四个可检查的维度：设计质量、原创性、工艺（字体层级、间距一致性等）、易用性。</p><p>所有的主观评价都可以转成结构化、多维度的客观度量标准。明确度量标准之后，Evaluator就能把具体的改进建议给到Executor，迭代几轮之后，质量自然上去了。</p><h2 id="四、Evaluator的未完待续"><a href="#四、Evaluator的未完待续" class="headerlink" title="四、Evaluator的未完待续"></a>四、Evaluator的未完待续</h2><p>Evaluator 可能是整个结构里最不讨喜的角色，它的工作就是不断告诉 Executor “你没做好”。但少了它，agent的输出质量就只能靠运气。</p><p>怎么设计一个好的 Evaluator，也值得单独写一篇文章，后续我们再展开聊聊。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/56e94a22.html</id>
    <link href="https://www.rockbot.cc/blog/posts/56e94a22.html"/>
    <published>2026-04-20T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="一、Anthropic在long-running-agent方面的实践脉络"><a href="#一、Anthropic在long-running-agent方面的实践脉络" class="headerlink" title="一、Anthropic在long-r]]>
    </summary>
    <title>Long-Running Agent设计范式：Planner + Executor + Evaluator</title>
    <updated>2026-05-10T12:24:25.535Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>很多人都说CLI（命令行界面，Command-Line-Interface）对Skill更友好，到底友好在哪儿？不只是子命令写进SKILL.md这么简单。</p><p>从playwright-cli这个案例看，AI时代的CLI，已经不仅仅是命令行界面，它的存在形式可以是Skill。</p><h2 id="从Playwright到playwright-cli的演进过程"><a href="#从Playwright到playwright-cli的演进过程" class="headerlink" title="从Playwright到playwright-cli的演进过程"></a>从Playwright到playwright-cli的演进过程</h2><p>Playwright 是微软在2020年开源的浏览器自动化框架。2025 年 3 月，微软发布 playwright-mcp，把浏览器操作能力通过 MCP 协议开放给 AI Agent；2026 年 1 月底，又在此基础上推出了 playwright-cli，主要解决 token 效率问题。</p><p>举个例子，让 Agent 确认某个页面上有没有”提交”按钮：</p><ul><li>• <strong>playwright</strong>: 你得自己写代码，<code>await page.locator(&#39;button:has-text(&quot;提交&quot;)&#39;).isVisible()</code>。Agent 不参与判断，只负责执行你写好的脚本。</li><li>• <strong>playwright-mcp</strong>：把整个页面的每个按钮、输入框、链接、文本节点，全部序列化成树状数据加载到Agent的上下文中，瞬间消耗几千个 token</li><li>• <strong>playwright-cli</strong>：打开页面后把所有元素保存为快照文件，每个元素都有一个短 ID（ref）。Agent 看到的是 <code>button[ref=e23] &quot;提交&quot;</code>，后续操作直接用这个 ID，十几个 token，够了。</li></ul><p>对于Claude Code这类通用型 agent 来说，context window非常宝贵。无用的上下文内容太多，直接影响大模型的输出质量。而playwright-cli的设计就是在解决这个问题。</p><h2 id="不同于-Workflow，Skill-的核心是让-Agent-自己处理异常"><a href="#不同于-Workflow，Skill-的核心是让-Agent-自己处理异常" class="headerlink" title="不同于 Workflow，Skill 的核心是让 Agent 自己处理异常"></a>不同于 Workflow，Skill 的核心是让 Agent 自己处理异常</h2><p>这是我觉得最容易被误解的一点。</p><p>SKILL.md里也可以写step 1、step 2、step 3，但这不意味着 Agent 会严丝合缝地按步骤执行。Skill和Workflow的根本区别在于：Workflow必须提前枚举所有异常分支，一旦走到没覆盖的分支，流程就卡住；Skill把异常处理交给Agent的推理能力。</p><p>拿 playwright-cli 举两个例子：</p><p><strong>简单异常：命令没装。</strong> SKILL.md 里写了一行：如果 <code>playwright-cli</code> 未安装，执行<br><code>npm install -g @playwright/cli@latest</code>。Agent 遇到命令缺失，自己装，装完继续，不需要人介入。这就优雅了很多。</p><p><strong>复杂异常：页面结构变了。</strong> 你让 Agent 点击”提交”按钮，但页面改版了，按钮文案变成了”确认提交”，或者按钮藏在一个弹窗里需要先关掉 cookie 提示。这种情况 Workflow 没法提前穷举。但正因为 playwright-cli 输出的是结构化的 snapshot，Agent 能看到所有元素和它们的 ref，能推理出”确认提交”就是目标按钮，能决定先关弹窗再操作。这些判断不需要写在SKILL.md里，Agent自己补。</p><h2 id="在AI时代，CLI的最佳存在形式是Skill"><a href="#在AI时代，CLI的最佳存在形式是Skill" class="headerlink" title="在AI时代，CLI的最佳存在形式是Skill"></a>在AI时代，CLI的最佳存在形式是Skill</h2><p>Skill是给Agent写的操作手册。好的Skill设计，就是让Agent拿到SKILL.md就能自给自足。知道什么场景用、优先用哪种命令模式、出了问题怎么兜底。</p><p>在AI时代，每一个CLI，都值得包成Skill。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/39103572.html</id>
    <link href="https://www.rockbot.cc/blog/posts/39103572.html"/>
    <published>2026-04-12T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>很多人都说CLI（命令行界面，Command-Line-Interface）对Skill更友好，到底友好在哪儿？不只是子命令写进SKILL.md这么简单。</p>
<p>从playwright-cli这个案例看，AI时代的CLI，已经不仅仅是命令行界面，它的存在形式可以是S]]>
    </summary>
    <title>在AI时代，每一个CLI，都值得包成Skill</title>
    <updated>2026-05-10T12:24:25.535Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>Karpathy 前两天发了一个 LLM Wiki 项目，最近各大AI类公众号也都在转发。他的核心想法是：让 LLM 帮你增量构建和维护一个个人知识百科。你往里丢原始材料，LLM 负责做摘要、交叉引用、归档、日常维护这些脏活累活。你只需要筛选信息源、主导分析方向、提出好问题、思考所有的价值点。</p><p>听起来很不错，但我下意识冒出一个想法：连构建个人知识库都外包给AI，我们最后还剩下什么？</p><h2 id="每外包一层，能力就减少一分"><a href="#每外包一层，能力就减少一分" class="headerlink" title="每外包一层，能力就减少一分"></a>每外包一层，能力就减少一分</h2><p>克里斯坦森在《你要如何衡量你的人生》里边讲过戴尔和华硕的故事。华硕最初只是给戴尔供应电路零件，后来建议戴尔把主板生产也交给它，这样成本降 20%，财务指标更好看，华尔街也满意。戴尔觉得很划算啊，于是继续外包：电脑组装、电脑设计、供应链管理，一层一层都交了出去。每一步都是理性决策，每一步都是Win-win。直到华硕推出了自己品牌的电脑，成了戴尔的直接竞争对手。</p><p>每外包一次，戴尔的核心能力就减少了一分。这个场景，是不是跟我们现在用大模型很像？让AI帮你写代码，效率提高了；让AI帮你写文章，质量提升了；让AI帮你做知识库，时间成本降低了。每一步都是理性决策，直到订阅模型到期，离开AI之后发现自己啥也不会了。</p><p>克里斯坦森给的建议是要清楚自己的能力。“你需要了解什么是能力，哪个对你的未来而言更关键，知道哪个应该自己保留，哪个不太重要。” 在体力工作已经被机器全部接管之后，我们都得思考，什么是自己的核心能力。在我看来，人最核心的能力就是可以持续学习。</p><h2 id="学习的必要难度理论"><a href="#学习的必要难度理论" class="headerlink" title="学习的必要难度理论"></a>学习的必要难度理论</h2><p>心理学上有一个“必要难度（Desirable difficulty）”的学习理论，是 Robert Bjork 提出的。它区分了学习中的“存储”和“提取”。“存储”就是信息有没有写入你大脑，“提取”就是你能不能在需要的时候把它调出来。</p><p>这里有点反直觉的洞察是，学习的时候越费力，以后想用的时候就越轻松。学习的时候越轻松，以后想用的时候越费力。这跟很多时候看别人的文章一样，以为自己懂了，但真正让自己讲一遍，很可能发现什么也讲不出来。</p><p>《卡片笔记写作法》有一个原则：做笔记一定要”用自己的话再讲一遍“。逻辑是一样的，都是通过增加存储难度，降低未来的提取难度。</p><h2 id="不要看不上“脏活累活”"><a href="#不要看不上“脏活累活”" class="headerlink" title="不要看不上“脏活累活”"></a>不要看不上“脏活累活”</h2><p>很多人现在已经不再读书，甚至看到一篇稍微长一点的公众号文章，都会直接丢给AI去总结。”做摘要、交叉引用、归档、日常维护“这些不一定只是”脏活累活“，尤其对很多人来说这些是必须经历的过程。在信息爆炸的AI时代，甄别有效信息、不断成长的能力很可能就来自于这里。</p><p>当然，这也不是纯反对llm-wiki，我相信对于某些人还是有价值的。如果你已经有能力独立构建和维护知识体系，让 LLM 帮你提效是合理的。怕的是还不学习走路就直接坐车了。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/a56e36bc.html</id>
    <link href="https://www.rockbot.cc/blog/posts/a56e36bc.html"/>
    <published>2026-04-05T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>Karpathy 前两天发了一个 LLM Wiki 项目，最近各大AI类公众号也都在转发。他的核心想法是：让 LLM 帮你增量构建和维护一个个人知识百科。你往里丢原始材料，LLM 负责做摘要、交叉引用、归档、日常维护这些脏活累活。你只需要筛选信息源、主导分析方向、提出好问题]]>
    </summary>
    <title>LLM Wiki：我们应该把知识管理外包给AI吗?</title>
    <updated>2026-05-10T12:24:25.534Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>要说最近两周最火的概念，肯定是 CLI，Command Line Interface。几十年前的 DOS 黑屏界面，又翻红了。</p><p>钉钉在 3 月 17 日的发布会上宣布全面 CLI 化，为 AI 重写底层代码。飞书今天发布并开源了 feishu-cli。再往前，3 月 11 日 Perplexity CTO Denis Yarats 在 Ask 2026 大会上宣布内部弃用 MCP，转向 REST API 和 CLI。国内国外，方向出奇一致。</p><p>由 Anthropic 提出的 MCP，才短短 1 年多，就要过气了？企业内部的 MCP 都白做了吗？还有大量业务 API 没有做 MCP 化，是否还要继续？我们的系统是否要全面转向 CLI？相信很多人都跟我一样，有一脑袋问号。</p><h2 id="一、”MCP-会把所有工具的元数据加载到上下文”——这个信息是过时的"><a href="#一、”MCP-会把所有工具的元数据加载到上下文”——这个信息是过时的" class="headerlink" title="一、”MCP 会把所有工具的元数据加载到上下文”——这个信息是过时的"></a>一、”MCP 会把所有工具的元数据加载到上下文”——这个信息是过时的</h2><p>很多文章攻击 MCP 的核心论据是：MCP 会把所有 tool schema 一次性注入上下文窗口，吃掉大量 token。最常被引用的数字是 72%——来自 Apideck 的案例，3 个 MCP server 加载约 40 个 tool，消耗了 200K 上下文中的 143K token。这个数字是真实的，但它反映的是<strong>没有做任何优化的最差情况</strong>。</p><p>这个问题已经有解了。2026 年 1 月，Anthropic 在 Claude Code 中上线了 MCP Tool Search——工具定义超过 10K token 时自动切换为按需加载，每次只拉 3-5 个相关工具。Benchmark 数据：50+ 个 tool 的场景下，token 开销从 77K 降到 8.7K，<strong>降低 85%</strong>；工具选择准确率反而从 49% 提升到 74%，因为上下文噪音少了。</p><p>拿”72% 上下文被吃掉”来判 MCP 死刑，是拿一个已经修复的 bug 当永久缺陷在批。</p><p>当然，即使差距缩小了，CLI 依然有 MCP 追不上的优势——LLM 训练数据中有大量 CLI 工具的使用案例，<code>git</code>、<code>docker</code>、<code>aws</code> 这些命令对模型来说是”预编译的 schema”，不需要运行时注入任何定义。CLI 对 Agent 是直觉，MCP 对 Agent 是说明书。说明书写得再好，也比不上已经内化的直觉来得快。</p><p>但这是 CLI 自身的价值，不是 MCP 的问题。</p><h2 id="二、CLI-最大的价值是同时对人类和-Agent-友好的界面"><a href="#二、CLI-最大的价值是同时对人类和-Agent-友好的界面" class="headerlink" title="二、CLI 最大的价值是同时对人类和 Agent 友好的界面"></a>二、CLI 最大的价值是同时对人类和 Agent 友好的界面</h2><p>CLI 翻红不是因为 MCP 不行，而是因为 CLI 本身有独立的、不可替代的价值。这个价值的核心，是解决了 Agent 操作企业系统时的效率问题。</p><p>没有 CLI 的时候，Agent 操作我们的系统基本有三条路，但都不够好：</p><ul><li>• <strong>直接调 REST API。</strong> Agent 要自己拼鉴权、查 ID、构造请求体，一个”发消息”的动作可能要三步，每步都消耗 token。</li><li>• <strong>走 MCP Server。</strong> 好一些，schema 描述了参数语义，但 tool 多了上下文膨胀，少了又覆盖不够。</li><li>• <strong>GUI 模拟。</strong> 用 Playwright 去点击界面，效率和稳定性都没法看——AI 不需要漂亮的按钮和流畅的动画。</li></ul><p>CLI 把这三个问题全解决了。Scalekit 的 benchmark 显示，同样的任务 CLI 比 MCP 省 10-32 倍 token。鉴权和参数拼装在安装阶段就处理完了，Agent 运行时只关心业务语义。<code>--help</code> 就是自描述，输出 JSON 就是结构化，不需要额外的 schema 注入。</p><p>但这些还不是 CLI 最被低估的特性。CLI 最被低估的价值是：<strong>它同时对人类友好。</strong></p><p>开发者可以在终端里直接用 CLI 调试、验证、组合命令。运维人员可以把 CLI 命令写进脚本做自动化。Agent 可以在同一个终端里调用同样的命令。人和 AI 共用一套工具，共用一套排错路径。这是 MCP 做不到的——MCP 的 tool schema 对人类来说基本不可读，调试只能靠 log。</p><h2 id="三、企业内部的-MCP-白做了吗？"><a href="#三、企业内部的-MCP-白做了吗？" class="headerlink" title="三、企业内部的 MCP 白做了吗？"></a>三、企业内部的 MCP 白做了吗？</h2><p>不能说是白做了。恰恰相反，做过 MCP 的系统，CLI 化的成本反而更低。</p><p>以钉钉为例。钉钉的存量 HTTP API 有上千个，是给前端开发者调的，参数命名、返回结构、鉴权方式各自为政，历史包袱很重。直接暴露给 Agent，等于让 Agent 去啃一本几百页的、风格不统一的 API 文档。</p><p>钉钉做 CLI 化的路径是：存量 HTTP API → MCP 接口层 → CLI 命令。钉钉的 DWS CLI 不硬编码任何产品命令，底层走 JSON-RPC 做传输和服务发现。后端新增一个产品，CLI 不需要改代码，注册表里加了服务描述就自动生成对应命令。</p><p>MCP 在这里的核心价值不是协议本身，而是<strong>人工筛选了哪些 API 适合暴露给 Agent，以及用什么粒度暴露</strong>。这一步的工作量才是大头——要决定上千个 API 中哪些值得暴露、参数怎么命名才能让 AI 一看就懂、返回结构怎么统一。做过 MCP 改造意味着这些脏活累活已经干完了，从 MCP 到 CLI 只是最后一公里的自动化。</p><p>但这不意味着 MCP 是 CLI 化的前置条件。如果一个系统还没做过 MCP 改造，完全没必要先绕一圈去做 MCP，再从 MCP 生成 CLI。直接从 HTTP API 筛选出 Agent 需要的子集，包一层 CLI 就行。两条路径的核心工作是一样的：决定暴露什么、怎么暴露。</p><h2 id="四、企业内部的系统是否需要全面-CLI-化？"><a href="#四、企业内部的系统是否需要全面-CLI-化？" class="headerlink" title="四、企业内部的系统是否需要全面 CLI 化？"></a>四、企业内部的系统是否需要全面 CLI 化？</h2><p>我认为非常有必要。</p><p>看看正在发生的事情：OpenClaw 爆火后，钉钉、飞书、微信纷纷入局，推出各自的 CLI 工具和 Agent 集成方案。Claude Code、Kiro 也都有了基于自己工具的 Claw。Claw 模式的硅基员工，正在成为新的生产力形态——7x24 小时在线，能读文档、发消息、管日程、跑流程、写代码。</p><p>这些硅基员工要干活，需要调用我们的系统。如果我们的系统没有 Agent 友好的接口，就像招了一批新员工，却不给他们门禁卡和工位——有能力但使不上劲。</p><p>反过来想，不做 CLI 化会怎样？Agent 退化回 GUI 模拟或者裸调 REST API，效率掉一个数量级不说，每次 API 变更都可能让 Agent 挂掉。你的系统对硅基员工来说就是一栋没有电梯的写字楼——能爬，但没人愿意天天爬。</p><p>好消息是，CLI 化的工具链正在快速成熟。mcp2cli 可以把已有的 MCP 接口自动转为 CLI。OpenCLI、anything-cli 这类工具也在快速迭代，降低从 HTTP API 直接生成 CLI 的门槛。</p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>CLI 的翻红逻辑，跟我在<a href="https://mp.weixin.qq.com/s?__biz=MzkzNzYzMjQ3Mw==&mid=2247484498&idx=1&sn=bb67baff9f7627e2f64bcf0a3228e90a&scene=21#wechat_redirect">用「纯文本格式」打造AI-Friendly的研发工作流</a> 文章是同一个逻辑——在 AI 时代，我们需要同时具备 Human-Friendly 和 Agent-Friendly 的工具。Markdown 是这样的文档格式，Gherkin 是这样的测试用例格式，CLI 是这样的系统交互界面。它们都不是什么新发明，但在 Agent 时代找到了新位置。</p><p>硅基员工要来上班了，我们得先把工位准备好。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/c0329f48.html</id>
    <link href="https://www.rockbot.cc/blog/posts/c0329f48.html"/>
    <published>2026-03-27T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>要说最近两周最火的概念，肯定是 CLI，Command Line Interface。几十年前的 DOS 黑屏界面，又翻红了。</p>
<p>钉钉在 3 月 17 日的发布会上宣布全面 CLI 化，为 AI 重写底层代码。飞书今天发布并开源了 feishu-cli。再往前，]]>
    </summary>
    <title>几十年前的 DOS 黑屏界面，在AI时代又翻红了。</title>
    <updated>2026-05-10T12:24:25.534Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<h2 id="一、全员100-，才是下个阶段该讨论的目标"><a href="#一、全员100-，才是下个阶段该讨论的目标" class="headerlink" title="一、全员100%，才是下个阶段该讨论的目标"></a>一、全员100%，才是下个阶段该讨论的目标</h2><p>最近我们企业平均AI Coding的代码行数贡献率已经从**%提升到了**%。</p><p>接下来呢？我们下一个目标应该定在百分之多少？先抛出一个”暴论”：我认为不要保守，不要折中，我们的AI Coding贡献率应该要做到100%，全员100%。</p><p>从**%到100%，这不只是在讨论一个 AI coding 贡献率数字，而是代表我们需要更加激进地拥抱 AI 时代的工作方式——所有代码全部都由AI来写，人负责定义意图、审核结果、改造AI工作的环境。</p><p>就像 Node.js 创始人 Ryan Dahl 今年 1 月说的，”人类手写代码的时代过去了。软件工程师的工作还在，但一定不是单纯的敲代码这事”（the era of humans writing code is over… That’s not to say SWEs don’t have work to do, but writing syntax directly is not it）</p><h2 id="二、那些固守传统工作方式的人，大概率会后悔"><a href="#二、那些固守传统工作方式的人，大概率会后悔" class="headerlink" title="二、那些固守传统工作方式的人，大概率会后悔"></a>二、那些固守传统工作方式的人，大概率会后悔</h2><p>很多团队已经能接受 AI 帮忙写函数、补测试、改 bug，但这还不够，还是在把AI当成一个更强的代码补全工具。还有不少开发者觉得，AI写点demo可以，写点脚本也行，但面对企业级代码、多仓库、多模块、复杂依赖、多人协作、存量系统、稳定性和成本等等约束，还是搞不定。</p><p>当然，今天的AI还没有到”闭着眼睛全自动”的程度，但已经足以重建新的工作方式了。这个时候，谁能更领先一步拥抱AI时代的工作模式，谁就能在市场竞争中占领先机。 再过一年回头看，今天还在手搓代码的人，没有为下一个阶段做好准备的组织，大概率会后悔自己当时的迟钝。</p><p>回望第一次工业革命到来时，很多纺织工人认为蒸汽机并不能取代自己，他们的经验、手艺、对材料的理解，确实是机器当时做不到的。直到另一批“先进的”纺织工人开着纺织机器占领市场。工人还在，行业还在，需求还在，但那些固守着传统生产方式的纺织工人，出局了。</p><h2 id="三、Humans-steer-Agents-execute"><a href="#三、Humans-steer-Agents-execute" class="headerlink" title="三、Humans steer, Agents execute"></a>三、Humans steer, Agents execute</h2><p>这不是纸上谈兵，也不是一两个极客的AI实践，而是正在发生的大趋势。</p><p>HashiCorp 联合创始人、Terraform 的作者 Mitchell Hashimoto 在 2026 年 2 月的blog《My AI Adoption Journey》里，介绍了一个新概念，harness engineering，可以理解为是驾驭AI的工程化实践。简单说就是：每次 agent 犯一个错，你不要只修这一次，而是花时间把这个错误工程化地消掉，让它以后尽量不再犯。比如，调整AGENTS.md，以及补真正的工具和脚本。</p><p>OpenAI 在 2026 年 2 月发的《Harness engineering: leveraging Codex in an agent-first world》里，也用harness engineering作为标题，讲述了OpenAI内部的工程实践。他们花了5个月做了一个产品。仓库包含了大约一百万行代码，只有3位工程师，每位工程师每天平均使用Codex交付3.5个PR，该产品已被数百名内部用户使用。</p><p>在整个开发过程中，人工从未直接贡献任何代码。这成为团队的核心理念：不手动编写代码（no manually-written code）。OpenAI评估做这个产品的耗时大约是传统手写代码的十分之一。</p><p>人掌握方向，AI 具体执行。Humans steer, Agents execute. 我认为这种业界的实践一直都在，只是被Harness Engineering给命名了。</p><p>因为很多人，包括我，就是这么干的。 比如我会把前后端代码放在同一个仓库里，避免AI只能通过API.md或者Swagger来理解项目；把测试用例也放在代码仓库里，用gherkin这种对AI和人类都友好的语言来表达GIVEN-WHEN-THEN；把 CLAUDE.md 做成索引文件，真正的细节放在 docs 目录下多个 markdown 文件里，按主题拆开，按需加载；AI每犯一次错，我都会让AI把错误沉淀进 ADR、Rules、脚本、测试或目录结构里</p><h2 id="四、构建AI-Friendly，甚至AI-First的研发流程"><a href="#四、构建AI-Friendly，甚至AI-First的研发流程" class="headerlink" title="四、构建AI-Friendly，甚至AI-First的研发流程"></a>四、构建AI-Friendly，甚至AI-First的研发流程</h2><p>100%不是一个激进的目标，它是AI-Friendly，甚至AI-First的工作流改造完成之后的自然结果。</p><p>另外，我们不仅要看”AI 写了多少行代码”，还要看AI在需求交付全流程中的参与率：从需求到功能发布，AI是否100%参与了？</p><p>需求阶段，AI有没有协助做需求澄清和边界分析？技术方案阶段，AI 有没有基于代码现状产出一版方案初稿？编码阶段，代码是不是 AI 生成、人来审核的？测试阶段，AI 有没有生成基线用例？Code Review、发布、线上观测，每个环节都值得问同一个问题：AI 参与了没有？</p><p>当每个环节的答案都是”有”的时候，100% 就不是暴论，而是对现状的描述。</p><p>AI 时代真正的开发者不会被淘汰。开发者最核心的能力从来都不是 Coding，而是 Building：和 AI 一起，更快地“创造”出更多有价值的东西。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/7454fdc6.html</id>
    <link href="https://www.rockbot.cc/blog/posts/7454fdc6.html"/>
    <published>2026-03-14T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="一、全员100-，才是下个阶段该讨论的目标"><a href="#一、全员100-，才是下个阶段该讨论的目标" class="headerlink" title="一、全员100%，才是下个阶段该讨论的目标"></a>一、全员100%，才是下个阶段该讨论的目标</]]>
    </summary>
    <title>全面拥抱下一代工作方式</title>
    <updated>2026-05-10T12:24:25.533Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<h1 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h1><p>OpenClaw最近的确太”出圈”了，不仅登上了github star数的No.1，还连带着把最适合部署OpenClaw的Mac Mini都卖缺货了。我觉得这件事有意思的点在于：很多程序员和非程序员对OpenClaw的评价是大不相同的。</p><p>很多程序员（包括我）的反应通常是：OpenClaw？不就是在聊天工具里调用 Claude Code 吗，没什么了不起的。</p><p>但当我跟几个创业公司的老板聊天，他们的反应都是：太牛了，AI 竟然还能干这些事，之前一直把 AI 当外部咨询师用，OpenClaw终于让AI有”数字员工”的感觉了。</p><p><img src="/blog/"></p><p><img src="/blog/"></p><h2 id="程序员们低估了使用Claude-Code的门槛"><a href="#程序员们低估了使用Claude-Code的门槛" class="headerlink" title="程序员们低估了使用Claude Code的门槛"></a>程序员们低估了使用Claude Code的门槛</h2><p>程序员说得没错，Claude Code 确实什么都能干。处理 Excel、写方案、批量重命名文件、跑数据分析——这些事 Claude Code 早就能做。程序员自己也在用它干各种非开发类的活。</p><p><img src="/blog/"></p><p>但问题是，Claude Code 的使用门槛对非程序员来说太高了。</p><p>我之前给几个产品经理装 Claude Code，第一个问题就卡住了：Terminal 是什么？紧接着第二个问题：怎么修改 <code>~/.claude/settings.json</code>？这两个问题对程序员来说完全不是问题，但对产品经理来说，每一个都是劝退点。</p><p>这就是 OpenClaw 做的事情。它没有给 AI 增加任何新能力，它只是把类似于 Claude Code 的能力包了一层壳，放进了大家每天都在用的聊天工具里。</p><p>OpenClaw 的价值不在技术能力，在触手可及。</p><h2 id="程序员低估了”触手可及”的意义"><a href="#程序员低估了”触手可及”的意义" class="headerlink" title="程序员低估了”触手可及”的意义"></a>程序员低估了”触手可及”的意义</h2><p>程序员容易犯一个认知偏差：觉得一个东西”技术上没有新东西”，就等于”没什么价值”。</p><p>但产品的价值从来不只取决于底层能力。iPhone 刚出来的时候，触摸屏不是新技术，手机不是新东西，上网也不是新功能。但把它们组合在一起，放进一个普通人能直接上手的形态里，整个市场就变了。</p><p>同样的道理，Claude Code 的能力再强，如果只有程序员能用，那它的影响面就被限制在程序员这个群体里。OpenClaw 把同样的能力交给了产品经理、运营、市场——这些人每天都有大量可以被 AI 代劳的工作，但之前根本够不到这个能力。</p><p>程序员看 OpenClaw 觉得”就这？”，是因为他们评估的是<strong>能力上限</strong>。非程序员看 OpenClaw 觉得”太牛了”，是因为他们感受到的是<strong>可用性跃迁</strong>。</p><p>两个视角都对，但后者的商业意义大得多。</p><h2 id="AI-工具的下一步竞争：谁能让非程序员用起来"><a href="#AI-工具的下一步竞争：谁能让非程序员用起来" class="headerlink" title="AI 工具的下一步竞争：谁能让非程序员用起来"></a>AI 工具的下一步竞争：谁能让非程序员用起来</h2><p>如果把视角再拉高一点，OpenClaw 这个案例其实揭示了 AI 工具竞争的下一个阶段。</p><p>现阶段，大部分 AI Coding 工具——Cursor、Claude Code、Codex——本质上都是面向程序员的。它们在比拼的是模型能力、上下文理解、代码生成质量。这些当然重要，但这条赛道的用户天花板是明确的：全球程序员大概几千万。</p><p>而非程序员呢？产品经理、运营、市场、财务、HR——这个群体是程序员的几十倍。他们有海量的日常工作可以被 AI Agent 化，但目前几乎没有趁手的工具。ChatGPT 和 Claude 的对话界面能解决一部分问题，但它们本质上还是”你问我答”的咨询模式，不是”你说我做”的执行模式。</p><p>不只是 OpenClaw 看到了这个方向。Anthropic 今年初推出了 Cowork，直接把 Claude Code 的 Agent 架构包进了桌面应用，用户指定一个文件夹、用自然语言描述任务，剩下的事情 Claude 自己干。Qoder（阿里旗下）也推出了 QoderWork，定位几乎一模一样：桌面 AI Agent，面向非程序员，本地文件操作。</p><p>但有意思的是，Cowork 和 QoderWork 的出圈程度都远不如 OpenClaw。原因挺直观的：Cowork 需要装桌面应用、要 Max&#x2F;Pro 订阅（至少$20&#x2F;月），QoderWork 目前还在早期。而 OpenClaw 直接嵌入了飞书、Slack 这些大家每天都开着的聊天工具——<strong>零安装、零学习成本</strong>。</p><table><thead><tr><th>维度</th><th>传统 AI 对话</th><th>Cowork &#x2F; QoderWork</th><th>OpenClaw</th></tr></thead><tbody><tr><td>交互方式</td><td>你问我答</td><td>你说我做</td><td>你说我做</td></tr><tr><td>用户感知</td><td>外部顾问</td><td>桌面助手</td><td>团队里的数字员工</td></tr><tr><td>执行能力</td><td>给建议</td><td>操作本地文件</td><td>操作文件 + 在群里协作</td></tr><tr><td>使用门槛</td><td>低（能力有限）</td><td>中（需装应用）</td><td>最低（聊天窗口直接用）</td></tr></tbody></table><p>这三个产品方向一致，但 OpenClaw 之所以更出圈，本质上是因为它把门槛压到了最低。不需要装新应用，不需要学新界面，在你已经在用的工具里就能开始。</p><p>Openclaw对我来说最大的价值在于，它已经打通了钉钉、飞书等各种聊天软件，教育了用户，也证明了这条路是通的。接下来就是要想办法把它融入到我们自己的Agent里，而不是要证明它是愚蠢的产品，或是有各种各样的问题。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/9b0b2ffa.html</id>
    <link href="https://www.rockbot.cc/blog/posts/9b0b2ffa.html"/>
    <published>2026-03-03T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h1 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h1><p>OpenClaw最近的确太”出圈”了，不仅登上了github star数的No.1，还连带着把最适合部署OpenClaw的Mac Mini都]]>
    </summary>
    <title>OpenClaw: 很多程序员觉得没什么，其他人觉得太牛了</title>
    <updated>2026-05-10T12:27:10.427Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>最近看OpenClaw创始人的专访，他说了一个观点：随着AI能力提升，个人AI Agents 可以直接完成大量工具型软件的功能，未来80%的应用程序会消失。举个例子，To-do 类软件不需要存在了，用户只需告诉 Agent”提醒我做某事”，它会在第二天自动提醒，用户根本不需要关心数据存储在哪个App里。</p><p>但黄仁勋在 Computex 上说过，人类语言将成为新的编程语言，人人都可以是程序员，AI 时代开发者数量只会增加。这两种说法哪个是对的？</p><h2 id="1、这两件事可能都是对的"><a href="#1、这两件事可能都是对的" class="headerlink" title="1、这两件事可能都是对的"></a>1、这两件事可能都是对的</h2><p>OpenClaw创始人对大方向的判断是正确的，存量软件会有一轮大洗牌。Anthropic前段时间发布 Claude Opus 4，SaaS类软件的股票跌了一轮，市场反应已经说明了预期。</p><p>能留存下来的20%软件拥有AI不可替代的壁垒。这种壁垒有很多种：</p><ul><li>• <strong>物理传感器</strong>：硬件采集，作为AI Agent的数据补充</li><li>• <strong>关系网络</strong>：比如社交网络软件，或者几百个合作伙伴的接口和商务关系，靠时间堆出来的。</li><li>• <strong>行为数据</strong>：比如垂直行业历史数据，竞争对手从零开始追，数据积累本身就是壁垒。</li></ul><p>判断一个软件壁垒是否真实，只需要问一个问题： <strong>AI能生成这个系统的代码，但是否能运营起来？</strong></p><h2 id="2、AI真正改变的是成本曲线"><a href="#2、AI真正改变的是成本曲线" class="headerlink" title="2、AI真正改变的是成本曲线"></a>2、AI真正改变的是成本曲线</h2><p>以前有很多软件”能做但不值得做”。不是技术上做不到，是经济上算不过来。</p><p>一个传统行业的管理系统，全国潜在客户可能就几千家。养一个销售团队成本比收入高，定制开发更不用说。市场是真实存在的，但没人做得起。</p><p>AI把这个逻辑打破了。<strong>服务的边际成本趋近于零，很多以前不值得做的垂直市场现在值得做了。</strong></p><p>说具体一点：以前服务100个小客户，你需要销售、实施、客服各一个团队。现在一个人能撑起以前一个小团队的规模。这不是效率提升，是商业模式变了——那些以前因为客单价太低而不值得进入的市场，现在 ROI 能算过来了。</p><p>这也反过来解释了为什么开发者数量会增加：不是同一批软件需要更多开发者，是以前根本不存在的市场现在值得做了，新的软件在这些空白地带长出来，需要人去做。</p><h2 id="3、哪些方向现在值得做？"><a href="#3、哪些方向现在值得做？" class="headerlink" title="3、哪些方向现在值得做？"></a>3、哪些方向现在值得做？</h2><p><strong>超垂直行业软件</strong></p><p>宠物医院的诊疗记录、独立珠宝设计师的客户管理、小型律所的案件跟踪——需求一直在，但以前市场太小、服务成本太高，ROI 算不过来，所以没人做。</p><p>现在逻辑变了。用 Claude Code 或者 Cursor 把通用底座搭起来，垂直业务逻辑快速配置，一个开发者服务几百个小客户不是不可能的事。竞争对手的门槛同样降低了，先动手是优势，但真正的壁垒还是得回到第一节那张表。</p><p><strong>嵌入企业内部流程的Agent</strong></p><p>纯生成类工具已经很卷，而且很快会被大模型公司直接内置。真正有壁垒的是深度嵌入企业内部流程的 Agent，比如对接你们企业内部的ERP、邮件、API、审批节点，且集成了企业专属的异常兜底逻辑。一旦这个Agent跑通之后，迁移成本极高。每个业务的流程都不一样，大模型公司不会替你做，也做不了。</p><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>回到开头的问题：80%软件消失和开发者数量暴增，这两件事同时成立。</p><p>消失的是功能通用、数据不私有、迁移成本为零的软件。增加的是那些服务以前不值得服务的市场、处理以前处理不了的数据、跑通以前跑不通的流程的软件。</p><p>存量在收缩，增量在哪里，主要看谁对某个垂直行业理解够深、够早动手。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/21608c7b.html</id>
    <link href="https://www.rockbot.cc/blog/posts/21608c7b.html"/>
    <published>2026-02-17T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>最近看OpenClaw创始人的专访，他说了一个观点：随着AI能力提升，个人AI Agents 可以直接完成大量工具型软件的功能，未来80%的应用程序会消失。举个例子，To-do 类软件不需要存在了，用户只需告诉 Agent”提醒我做某事”，它会在第二天自动提醒，用户根本不需]]>
    </summary>
    <title>AI时代，80%的软件都会消失？</title>
    <updated>2026-05-10T12:24:25.532Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<h1 id="前言：2026-开年爆火的小龙虾🦞"><a href="#前言：2026-开年爆火的小龙虾🦞" class="headerlink" title="前言：2026 开年爆火的小龙虾🦞"></a>前言：2026 开年爆火的小龙虾🦞</h1><p>我一直挺好奇 OpenClaw 为什么这么火。</p><p>最开始看到 OpenClaw 那个网页版 Chatbot 界面的时候，我很不以为然，这不就是前两年的 Chatbot 吗？即使我通过钉钉机器人控制 OpenClaw，感觉也就是 Chatbot 多了操作本地电脑的权限，没什么了不起。</p><p>后来阿里云、腾讯云直接把 OpenClaw 做成了云服务产品，叠着 ECS 去卖；Moltbook（一个专门给 AI Agent 用的社交网络）、RentAHuman.ai（反过来让 AI 雇佣人类做事）这些衍生产品，让这只”小龙虾”🦞不断出圈；GitHub 上的项目两个多月突破了 19 万 Star。我开始认真思考，它到底踩中了什么？</p><p>带着这个问题去翻资料，找到了 Laurent Bindschaedler（马克斯·普朗克软件系统研究所）写的一篇架构分析。他把 OpenClaw 相对于 Claude Code 这类工具的核心差异，提炼成了两个抽象。我觉得这个提炼非常到位，而且对我们做企业级 Agent 的人来说，也有很大启发。</p><h2 id="一、Always-On，从”用完即走”到”一直都在”"><a href="#一、Always-On，从”用完即走”到”一直都在”" class="headerlink" title="一、Always-On，从”用完即走”到”一直都在”"></a>一、Always-On，从”用完即走”到”一直都在”</h2><p>第一个抽象叫 Always-On。</p><p>Claude Code、Cursor 这些工具，本质上是”用完即走”的。你给它一个任务，它能快速干完；你打开新的会话，所有的记忆被重新初始化，它不记得你是谁。</p><p>OpenClaw 不一样。它支持通过 <code>--install-daemon</code> 参数将其安装为系统级守护进程。只要不关机，它可以 7×24 小时运行。监听来自 WhatsApp、钉钉、飞书等消息平台的消息并执行自动化任务，或配置定时任务来自动化执行。</p><p>这个差异看起来很小——不就是从”手动触发”变成了”自动触发”吗？但我觉得这是一个划时代的产品设计理念。</p><p><strong>它让我想到了微信和 QQ 的区别。</strong></p><p>移动互联网早期，QQ 有”在线”、”离线”的状态概念。你要先”上线”才能收消息。微信砍掉了这个概念，你不需要”上线”，你一直都在。消息来了就是来了，不存在”对方不在线”的问题。</p><p>这个差异当时看起来也很小。但正是”一直都在”这个设计，让微信成了移动互联网的基础设施。因为一旦通信是 always-on 的，你就可以在上面叠加公众号、红包、小程序、打车、支付——所有这些能力都依赖于”用户一直在线”这个前提。</p><p>微信证明了 always-on 通信能催生一个生态。OpenClaw 在赌 always-on 智能也能。</p><p>一旦智能是 always-on 的，它就不再是一个工具，而是一个智能助手。它可以主动提醒你、主动帮你做事、主动提供帮助。你跟它的关系从”我用它”变成了”它在帮我”。这个转变打开的想象空间，现在可能只是刚刚开始。</p><h3 id="Always-On-不只是”一直开着”那么简单"><a href="#Always-On-不只是”一直开着”那么简单" class="headerlink" title="Always-On 不只是”一直开着”那么简单"></a>Always-On 不只是”一直开着”那么简单</h3><p>从技术层面看，Always-On 要真正可用，需要解决一个关键问题：<strong>session 隔离</strong>。</p><p>你不能把所有触发都塞进同一个对话里。早上 7 点的邮件汇总、GitHub Issue 的分析、群聊里别人的 @，这些是完全不同的上下文，混在一起就乱了。</p><p>打个比方：你有一个助理，你让他同时跟进三件事——帮你盯着邮箱、帮你处理 GitHub Issue、帮你在群里回消息。如果这个助理把三件事的上下文全混在一起，回 GitHub Issue 的时候把邮件里的内容串进去了，那就乱套了。</p><p>OpenClaw 的做法是给每种触发分配独立的 session。Main session 处理你的直接对话；cron 任务跑在 <code>cron:&lt;jobId&gt;</code> session 里；群聊消息跑在 <code>group:&lt;groupId&gt;</code> session 里。每个 session 有自己的上下文、model 选择、用量追踪。</p><p>说白了，没有 session 隔离的 always-on，就是 always-confused。</p><h2 id="二、Memory，看起来最简单的设计，可能是最有效的模式"><a href="#二、Memory，看起来最简单的设计，可能是最有效的模式" class="headerlink" title="二、Memory，看起来最简单的设计，可能是最有效的模式"></a>二、Memory，看起来最简单的设计，可能是最有效的模式</h2><p>第二个抽象是 Memory。</p><p>OpenClaw 的 Memory 非常简单，就是 Markdown 文件。</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">~/.openclaw/workspace/  </span><br><span class="line">├── MEMORY.md          # 长期记忆：偏好、决策、持久事实  </span><br><span class="line">└── memory/  </span><br><span class="line">    ├── 2026-02-13.md  # 每日日志  </span><br><span class="line">    └── 2026-02-14.md</span><br></pre></td></tr></table></figure><p>没有数据库，没有复杂的向量存储。你说”记住我喜欢用 PostgreSQL”，它写进 MEMORY.md。下次 session 启动，读文件，它就”记得”了。你打开文件就能看到它记住了什么，想纠正直接改，扔进 Git 还能追踪变化。</p><p>Bindschaedler 对这个设计的提炼是：把 LLM 的 context window 当作缓存（RAM），把磁盘上的 Markdown 文件当作 source of truth，然后加一个 compactor 做摘要压缩，加一个 retriever 做检索换页。这本质上就是认知层面的”虚拟内存”。</p><p>这里面有一个细节设计值得注意。LLM 的 context window 大小是有限的，需要对旧对话做压缩，否则溢出之后模型效果会大打折扣。不过，压缩的副作用是可能导致信息丢失。OpenClaw 在压缩会话之前，会让模型把重要信息写到当天的日志文件里，然后再压缩。</p><p>看起来很简单的设计，但它解决了一个之前所有 AI 产品都没解决好的问题：<strong>跨 session 的连续性</strong>。你今天跟 Agent 聊的东西，明天它还记得。你的偏好、你的决策、你项目的背景等，不需要每次都重新说一遍。</p><h2 id="三、对企业级-Agent-的启发"><a href="#三、对企业级-Agent-的启发" class="headerlink" title="三、对企业级 Agent 的启发"></a>三、对企业级 Agent 的启发</h2><h3 id="Always-On-对-SRE-Agent-的启发"><a href="#Always-On-对-SRE-Agent-的启发" class="headerlink" title="Always-On 对 SRE Agent 的启发"></a>Always-On 对 SRE Agent 的启发</h3><p>我们现在的 SRE Agent 是事件驱动的：预警触发 → 识别根因 → 推荐解决方案。这已经比纯人工强了，但本质上还是”有事才干活”的模式。</p><p>如果用 Always-On 的理念来做，它除了被预警任务触发之外，还需要具备定期巡检、甚至定期修复风险的能力。说白了就是从被动响应变成积极主动。</p><p>比如，SRE Agent 可以每隔一段时间主动去线上巡检，看看有没有即将发生的风险——磁盘快满了、证书快过期了、某个服务的延迟在缓慢上升。这些不一定会触发预警规则，但一个 always-on 的 Agent 可以提前发现、提前处理。</p><p>从”救火队员”变成”巡逻警察”。</p><h3 id="Memory-对需求-Agent-的启发"><a href="#Memory-对需求-Agent-的启发" class="headerlink" title="Memory 对需求 Agent 的启发"></a>Memory 对需求 Agent 的启发</h3><p>企业中天然有大量的内部知识，但这些知识不一定非要通过 RAG 技术来召回，更有效的方式可能是先把它们转化成简单的 Memory.md 文件。</p><p>比如，<strong>项目空间的 Memory</strong>。这个项目用什么技术栈、有哪些核心模块、历史上做过哪些重要决策、当前的技术债是什么。Agent 在这个项目空间里回答问题的时候，不需要用户每次都交代背景。</p><p>这些如果做好了，Agent 的体验会上一个台阶——从”一个通用的问答工具”变成”一个了解你项目的助手”。</p><h2 id="四、说说-OpenClaw-最被人诟病的安全问题"><a href="#四、说说-OpenClaw-最被人诟病的安全问题" class="headerlink" title="四、说说 OpenClaw 最被人诟病的安全问题"></a>四、说说 OpenClaw 最被人诟病的安全问题</h2><p>坦白说，OpenClaw 现在还处于”先跑起来再说”的阶段。最大的问题是过度授权带来的安全风险。</p><p>OpenClaw 拥有你的身份、你的数据、你的权限，一旦被 prompt injection 攻击，后果比传统安全事件严重得多。Cisco 实测了某个社区 Skill，发现它本质上就是恶意软件——静默往外部服务器发数据，用户完全不知情。</p><p>但我倾向于用发展的眼光去看这件事。OpenClaw 的安全问题不是方向性的错误，而是这个产品还太早期。真正值得关注的不是”它现在安不安全”，而是”这个方向是不是对的”。</p><p>况且，OpenClaw 已经在补课了——最近几个版本密集修复了 WebSocket 注入、webhook 认证绕过、session 路径穿越等一系列漏洞，Security &amp; Trust 也有了专人负责。方向对了，安全只是时间问题。</p><h2 id="结语"><a href="#结语" class="headerlink" title="结语"></a>结语</h2><p>回过头来看，OpenClaw 之所以火，不是因为它用了什么高深的技术。它调的就是 Claude 或 GPT 的 API，300,000 行 TypeScript，一个人写的。技术上没有壁垒。</p><p>它火是因为它把两个早就该有、但没人做的设计理念落了地：让智能 always-on，让 Agent 有 Memory。这两件事一组合，用户体验就跨了一个台阶——从”用 AI 工具”变成了”有一个 AI 助手”。</p><p>我们团队接下来会先在需求 Agent 上把 Memory 做深——记住项目上下文、记住用户的决策偏好。这可能是当前投入产出比最高的方向。Always-On 在SRE Agent中的巡检能力也在规划，但需要先把 session 隔离和权限控制的基础打好。</p><p>Always-On 和 Memory，这两个听起来很简单的东西，可能会是 Agent 产品体验的分水岭。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/dc2f28d3.html</id>
    <link href="https://www.rockbot.cc/blog/posts/dc2f28d3.html"/>
    <published>2026-02-12T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h1 id="前言：2026-开年爆火的小龙虾🦞"><a href="#前言：2026-开年爆火的小龙虾🦞" class="headerlink" title="前言：2026 开年爆火的小龙虾🦞"></a>前言：2026 开年爆火的小龙虾🦞</h1><p>我一直挺好奇]]>
    </summary>
    <title>OpenClaw为什么这么火？</title>
    <updated>2026-05-10T12:24:25.532Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<h1 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h1><p>最近在调研测试用例的写法，想找一种对人和AI都友好的格式，然后发现了Gherkin。它是一种用<code>Given/When/Then</code>三段式来描述软件行为的纯文本语言，比如”Given用户已登录，When点击下单，Then订单创建成功”。2008年随Cucumber框架一起诞生，原本是为了让业务人员和开发者用同一种语言写验收条件。</p><p>调研的过程中我越来越有一个感觉：Markdown、PlantUML、Mermaid、Gherkin这些诞生了十几二十年的纯文本格式，正在AI时代集体翻红。它们当初为人类可读性做的设计，恰好也是LLM需要的。</p><h2 id="一、Markdown、Gherkin、Mermaid，正在焕发新的生机"><a href="#一、Markdown、Gherkin、Mermaid，正在焕发新的生机" class="headerlink" title="一、Markdown、Gherkin、Mermaid，正在焕发新的生机"></a>一、Markdown、Gherkin、Mermaid，正在焕发新的生机</h2><p>先说一个容易混淆的事。我一开始把Markdown、YAML、Gherkin、Mermaid、Cron表达式这些东西都叫”语言”，但严格说它们不是一回事。比如，常见的几种不同的分类模式</p><table><thead><tr><th>类别</th><th>特征</th><th>例子</th></tr></thead><tbody><tr><td>DSL（领域特定语言）</td><td>有语法规则和解析器，图灵不完备但领域表达力强</td><td>Gherkin、SQL、GraphQLSDL、HCL、Mermaid、PlantUML、D2、DBML</td></tr><tr><td>标记语言</td><td>用标记符号给文本加结构和语义</td><td>Markdown、AsciiDoc、LaTeX</td></tr><tr><td>数据序列化格式</td><td>纯粹描述数据结构，没有”指令”的概念</td><td>YAML、TOML、JSON</td></tr><tr><td>配置格式</td><td>本质是数据格式，但在特定工具链里有隐含语义</td><td>Dockerfile、docker-compose.yaml、GitHubActionsYAML</td></tr><tr><td>表达式&#x2F;微语法</td><td>连”语言”都算不上，就是一套模式匹配规则</td><td>Cron表达式、Glob、正则表达式</td></tr></tbody></table><p>分类不重要，它们真正重要的共同点是：<strong>纯文本、有结构、人机双方都能处理</strong>。叫它语言、格式、还是notation，不影响它在AI场景下好用这个事实。</p><h2 id="二、为什么Markdown比Word对AI更友好"><a href="#二、为什么Markdown比Word对AI更友好" class="headerlink" title="二、为什么Markdown比Word对AI更友好"></a>二、为什么Markdown比Word对AI更友好</h2><p>很多人以为Word对AI不友好是因为它是二进制格式。其实不是。<code>.docx</code>本质上是一堆XML打包成的zip，技术上是纯文本。</p><p>问题在两个地方。</p><p>第一，信噪比太低。你在Word里写一行”Hello”，对应的XML可能是十几行标签，内容被样式信息淹没了。Markdown里就是<code>Hello</code>，一个token。同样的内容，Markdown消耗的token可能是WordXML的十分之一。</p><p>第二，语义不清晰。Word里你想表达”这是一个章节标题”，可能有好几种方式：用内置的”标题1”样式、手动把字体调成24px加粗、用一个自定义样式叫”我的标题”。这三种视觉上可能一模一样，但在XML里表达完全不同。AI拿到第二种，它只知道”这段文字比较大比较粗”，得自己猜这是不是标题。</p><p>Markdown没有这个歧义。<code>##</code>就是二级标题，没有第二种理解。</p><p>信噪比和语义清晰度不只是”体验好不好”的问题，是直接影响AI输出质量的。</p><p>LLM的注意力机制有个特点：context越长，模型对每个token的关注度越分散。塞进去一堆<code>&lt;w:rFontsw:ascii=&quot;Calibri&quot;/&gt;</code>这种噪音，不只是浪费token额度，是实打实地稀释了模型对有效内容的注意力。</p><p>所以这类纯文本格式对AI友好，本质上是因为它们跟LLM的工作方式恰好匹配：</p><ul><li>• <strong>Token效率高</strong>—同样的内容消耗更少的token</li><li>• <strong>语义密度高</strong>—每个token都在传递有效信息，注意力不会浪费</li><li>• <strong>模式稳定</strong>—<code>##</code>永远是标题，<code>Given/When/Then</code>永远是测试场景的前置条件&#x2F;操作&#x2F;预期结果，模型识别模式的置信度很高</li></ul><h2 id="三、用AI-Friendly的思路改造研发工作流"><a href="#三、用AI-Friendly的思路改造研发工作流" class="headerlink" title="三、用AI-Friendly的思路改造研发工作流"></a>三、用AI-Friendly的思路改造研发工作流</h2><p>我最近在尝试用这个思路改造需求交付的工具，为了更好落地，计划先从自己能控制的环节入手，用效果说话</p><p><strong>第一步：测试用例→Gherkin</strong></p><p>这是最容易落地的，切换到Gherkin之后，AI可以从需求描述自动生成测试场景初稿、检查覆盖度、甚至直接生成自动化测试代码</p><p><strong>第二步：技术方案→Markdown+Mermaid</strong></p><p>技术方案本来就是程序员写给程序员看的，切换成本最低。Markdown写正文、Mermaid画流程图和时序图，存到Git仓库里。方案跟代码放在一起能做版本管理，PR里能直接review技术方案</p><p><strong>第三步：需求描述→加一层转换</strong></p><p>建议不要让产品经理改格式，而是在中间加一层：产品经理继续用富文本写需求，开发接需求的时候用AI把富文本转成结构化的Markdown模板加Gherkin验收条件，转完拿给产品确认。</p><h2 id="四、AI-Friendly，不是AI-Ready"><a href="#四、AI-Friendly，不是AI-Ready" class="headerlink" title="四、AI-Friendly，不是AI-Ready"></a>四、AI-Friendly，不是AI-Ready</h2><p>我一开始把这个思路叫”AI-Ready”，后来觉得不对，改成了AI-Friendly。</p><p>这两个词差别挺大。AI-Ready暗示”为了AI而做准备”，有种刻意改造的意思。AI-Friendly更准确：<strong>这个东西本身对人就是好的，同时恰好对AI也友好</strong>。</p><p>Gherkin2008年就有了，设计初衷是让业务人员和开发者能用同一种语言描述需求，跟AI没半点关系。Markdown2004年发明的时候，目标就是”写起来舒服、读起来清楚”。十几年后发现它们刚好是LLM最容易处理的格式，纯属副产品。</p><p>所以做技术选型时有个实用的判断标准，不仅要看对人类是否友好，更要看对AI是否友好。除了测试用例，链路图是不是也能用文本描述出来？这样让AI来做企业级微服务架构下的技术方案，好像也更容易了</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/29075ed7.html</id>
    <link href="https://www.rockbot.cc/blog/posts/29075ed7.html"/>
    <published>2026-02-08T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h1 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h1><p>最近在调研测试用例的写法，想找一种对人和AI都友好的格式，然后发现了Gherkin。它是一种用<code>Given/When/Then</]]>
    </summary>
    <title>用「纯文本格式」打造AI-Friendly的研发工作流</title>
    <updated>2026-05-10T12:24:25.531Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<h1 id="AI-时代，人人都是-Agent-工程师"><a href="#AI-时代，人人都是-Agent-工程师" class="headerlink" title="AI 时代，人人都是 Agent 工程师"></a>AI 时代，人人都是 Agent 工程师</h1><p>在互联网时代，有一句流行的话：“人人都是产品经理”。在Vibe Coding出现之后，“人人都是开发者”已经成为现实。</p><p>每次模型能力升级，很多人都会陷入焦虑和恐慌。AI越来越强，“人人都是xxx”的句式还可以扩展到更多职业。</p><p>从我经常接触到的角色来看，相比于程序员，产品经理的危机感应该更大一些。</p><h2 id="传统的产品经理在干什么"><a href="#传统的产品经理在干什么" class="headerlink" title="传统的产品经理在干什么"></a>传统的产品经理在干什么</h2><p>据我的不完全观察，核心三件事：</p><table><thead><tr><th>工作</th><th>本质</th></tr></thead><tbody><tr><td>写 PRD、画原型</td><td>把模糊需求翻译成研发能理解的规格</td></tr><tr><td>排优先级、协调资源</td><td>在有限开发资源下决定先做什么</td></tr><tr><td>选方案、做决策</td><td>在几个可选方案里挑一个相对靠谱的</td></tr></tbody></table><p>这套工作方式有个前提：<strong>开发成本高，试错周期长。</strong></p><p>每次开发都是重资产投入，需要有人在前面把关。产品经理本质上是“中间人”，站在用户和研发之间做翻译和协调。</p><h2 id="AI-Coding-改变了游戏规则"><a href="#AI-Coding-改变了游戏规则" class="headerlink" title="AI Coding 改变了游戏规则"></a>AI Coding 改变了游戏规则</h2><p>现在用 Cursor、Claude Code 这些工具，一个想法到可运行的原型，可能就几个小时。</p><p>开发成本急剧下降，传统的产品经理、传统的程序员这种“中间人”的价值就被压缩了。</p><p>不是说产品经理没用了。而是“翻译需求、协调排期”这些工作的占比会越来越低。产品经理需要往更上游走，问题定义、产品判断、商业洞察。</p><p>不是说不需要程序员了。但“纯体力型写代码”的价值在快速贬值，真正稀缺的会是<strong>系统理解能力、复杂问题拆解能力，以及对业务与技术结合点的判断力</strong>。</p><h2 id="开发者学产品思维，比产品经理学代码容易"><a href="#开发者学产品思维，比产品经理学代码容易" class="headerlink" title="开发者学产品思维，比产品经理学代码容易"></a>开发者学产品思维，比产品经理学代码容易</h2><p>这是我一直以来的观点。我们很多同学会迷信title带来的权威，但大家需要意识到一点，大学里是没有产品经理这个专业的，所有的产品经理都是半路出家。</p><p>开发者要具备产品思维，其实没那么难。大部分开发者天天用各种产品，有自己的好恶判断，缺的只是方法论和刻意练习。看几本书，做几个 side project，产品感觉就能起来。</p><p>反过来，让产品经理学 vibe coding，阻力大得多。不是 vibe coding 复杂。现在 Cursor 里用自然语言描述需求就能生成代码，门槛已经很低了。</p><p><strong>但我发现很多产品经理对代码有天然的畏难情绪。这种畏难情绪来自多年的职业分工，觉得技术太复杂了，自己是不可能搞懂的。</strong></p><h2 id="开发者为什么更容易接受新技术"><a href="#开发者为什么更容易接受新技术" class="headerlink" title="开发者为什么更容易接受新技术"></a>开发者为什么更容易接受新技术</h2><p><strong>工作就是不断学新东西。</strong> 对于开发者而言，好像经常需要学习新技术，每天都在被变化拥抱。今天学DevOps，明天学TDD，后天学Node.js。学新技术不是额外负担，是工作本身。</p><p><strong>有快速验证的习惯。</strong> 不确定行不行，先写个 demo 跑一下。这种心态对接受 AI 工具特别有帮助，因为 AI Coding 最好的学习方式就是边用边调。产品经理的工作流程里缺这种即时反馈。</p><p><strong>社区氛围不一样。</strong> 开发者社区对新工具的讨论密度很高，好用的东西快速传播。产品经理社区更多在讨论方法论和案例分析，对工具的关注相对少。</p><p>说白了，开发者的整个工作环境都在逼着他们学新东西。产品经理的工作环境对“不学新工具”的惩罚没那么明显，至少目前还没有。</p><h2 id="必须亲手用-AI-做东西"><a href="#必须亲手用-AI-做东西" class="headerlink" title="必须亲手用 AI 做东西"></a>必须亲手用 AI 做东西</h2><p>AI Coding 是现在产品创新最密集的地方——Cursor 的 Tab 补全、Claude Code用&#x2F;反斜杠唤起命令或是Skill，Cowork用AI的方式操作Office，以及伴随着最新Opus4.6发布的Teams模式，这些交互模式正在定义下一代软件的样子。</p><p>没深度用过这些工具的人，不可能做出AI Native的产品，因为<strong>很难空想出AI时代的产品形态</strong>。</p><p>传统产品思维要做“用户调研”，要等业务人员的“输入”，要汇报之后等待老板的“反馈”。AI时代的产品思维是“做一个功能几乎不花钱，那能不能做一百个个性化版本？”，这是完全不同的设计哲学。</p><p>这种认知差距，只能通过亲手做来弥补。</p><h2 id="所有的事情都值得用AI重做一遍"><a href="#所有的事情都值得用AI重做一遍" class="headerlink" title="所有的事情都值得用AI重做一遍"></a>所有的事情都值得用AI重做一遍</h2><p>AI 擅长执行，但不擅长定义“什么值得做”。在一个领域有足够深的积累，能发现真问题，这个能力会越来越值钱。</p><p><strong>未来可能不再有严格的产品经理和开发者之分。能发现问题、能做判断、能用 AI 把东西做出来、能拿到用户反馈——这个完整闭环，比任何单一职能都重要。</strong></p><p>至于谁转型更容易？从我的观察，开发者的基础更好一点。当然也不绝对，主要看谁愿意动手。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/1e6bb4e2.html</id>
    <link href="https://www.rockbot.cc/blog/posts/1e6bb4e2.html"/>
    <published>2026-02-06T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h1 id="AI-时代，人人都是-Agent-工程师"><a href="#AI-时代，人人都是-Agent-工程师" class="headerlink" title="AI 时代，人人都是 Agent 工程师"></a>AI 时代，人人都是 Agent 工程师</h1><]]>
    </summary>
    <title>AI 时代，人人都是Agent工程师，AI正在模糊职位边界。</title>
    <updated>2026-05-10T12:24:25.531Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>前两天吃饭的时候碰到了公司的HRG同学，聊到我最近的AI实践，他们希望我近期给HRG小组做 AI 实践分享，我原本以为只是一次“工具培训”的内容梳理，结果和 Manus 聊着聊着，话题一路升级，最后变成了一次关于 <strong>HR 在 AI 时代组织角色</strong> 的深度推演。</p><p>我把整个思考过程整理成这篇文章，也当作培训前的一次公开复盘。</p><hr><h1 id="从“教HR用AI”到“HR如何定义AI时代的组织关系”"><a href="#从“教HR用AI”到“HR如何定义AI时代的组织关系”" class="headerlink" title="从“教HR用AI”到“HR如何定义AI时代的组织关系”"></a>从“教HR用AI”到“HR如何定义AI时代的组织关系”</h1><p>一开始，我的想法很朴素：<br>HR 每天处理大量重复性沟通、流程协调、信息整理工作，AI 明明可以帮上大忙，但很多 HR 同学还停留在“听说很好用，却不知道从哪下手”的状态。</p><p>于是我给自己定了个目标：<br>做一场<strong>能真正落地的 AI 实践分享</strong>，而不是概念科普。</p><p>我最初设计的内容结构大概是这样：</p><ul><li>• 人与 AI 的关系模型</li><li>• 技术实现路径：通用 Agent + Skills</li><li>• 我自己做的数字员工案例</li><li>• HR 的现实阻力：技术门槛 + 数据敏感</li></ul><p>这是一套“方法 + 工具 + 案例”的标准打法。</p><p>但聊着聊着，我意识到——这场分享真正重要的，并不在“怎么用”，而在<strong>HR 在这场变革里扮演什么角色</strong>。</p><hr><h1 id="HR，其实站在“生产关系”的核心位置"><a href="#HR，其实站在“生产关系”的核心位置" class="headerlink" title="HR，其实站在“生产关系”的核心位置"></a>HR，其实站在“生产关系”的核心位置</h1><p>当我们讨论 AI 提效、数字员工、自动化时，很多人直觉会把它当成“技术升级”。</p><p>从组织视角看，这背后是<strong>生产力变化</strong>。<br>生产力变化，最终一定会影响生产关系。</p><p>而 HRG，恰好就在“生产关系”的枢纽位置。</p><p>他们影响三件关键的事：</p><ol><li>1. <strong>岗位如何定义</strong><br>一个人的工作，哪些由人完成，哪些交给 AI，边界如何划分？</li><li>2. <strong>绩效如何衡量</strong><br>当一个人借助 AI 效率提升 5 倍，评价标准是否要变化？</li><li>3. <strong>激励如何设计</strong><br>鼓励大家多用 AI，还是默默维持原有节奏？奖励“亲自做完”，还是奖励“组织 AI 把事做好”？</li></ol><p>这些问题的答案，决定了 AI 在组织里是“玩具”，还是“新型生产力”。</p><p>所以这场培训的定位，逐渐从“HR 学会用 AI”，升级为：</p><blockquote><p><strong>HR 如何理解自己在组织 AI 转型中的位置</strong></p></blockquote><hr><h1 id="一个关键转折：HR-也是当事人，也会焦虑"><a href="#一个关键转折：HR-也是当事人，也会焦虑" class="headerlink" title="一个关键转折：HR 也是当事人，也会焦虑"></a>一个关键转折：HR 也是当事人，也会焦虑</h1><p>当我们聊到“HR 要不要设计 Skills、推动数字员工建设”时，我突然意识到一个问题：</p><p>很多 HR 本身，也在经历 AI 带来的不确定感。</p><p>如果一上来就用“你们要成为设计者、推动者”这样的语气，很容易带来心理压力。<br>他们并没有置身变革之外，他们同样身在其中。</p><p>于是培训的基调发生了变化：</p><ul><li>• 从“教你怎么做”<br>变成</li><li>• “一起讨论：在这个时代，我们各自的价值怎么升级”</li></ul><p>语气的调整，背后是视角的调整：<br>HR 既是组织变革的关键角色，也是需要被赋能的人。</p><hr><h1 id="AI时代的两条路：超级个体-与-赋能者"><a href="#AI时代的两条路：超级个体-与-赋能者" class="headerlink" title="AI时代的两条路：超级个体 与 赋能者"></a>AI时代的两条路：超级个体 与 赋能者</h1><p>我们最后沉淀出一个非常清晰、也很有力量的框架，我会作为整场分享的主线：</p><p>在 AI 时代，每个人面前都有两条可选路径。</p><h3 id="路径一：成为「超级个体」"><a href="#路径一：成为「超级个体」" class="headerlink" title="路径一：成为「超级个体」"></a>路径一：成为「超级个体」</h3><p>一个人借助 AI，完成过去需要一个小团队才能完成的工作量。</p><p>效率提升只是表层变化，更深层的变化在于：</p><ul><li>• 能力边界被放大</li><li>• 创意到落地的路径变短</li><li>• 想法不再因为“没人有时间做”而搁置</li></ul><p>我会在培训里讲一个真实案例——我自己。</p><p>过去一两年，我几乎没写代码。<br>后来利用业余时间，通过 Vibe Coding + Claude Code，搭建了公司内部的 Skills 市场。</p><p>一个月产出 3.7 万行代码，我自己一行都没写。</p><p>这不是“我变成了天才程序员”，而是<strong>我学会了和 AI 协作的工作方式</strong>。</p><p>这就是超级个体的雏形。</p><hr><h3 id="路径二：成为「赋能者」"><a href="#路径二：成为「赋能者」" class="headerlink" title="路径二：成为「赋能者」"></a>路径二：成为「赋能者」</h3><p>并不是每个人都需要亲自下场折腾技术。<br>还有一种同样重要的角色——<strong>让更多人变强的人</strong>。</p><p>HR 天然适合这个位置：</p><ul><li>• 设计培训，让更多人掌握 AI 工作方式</li><li>• 调整岗位说明书，把 AI 协作写进能力模型</li><li>• 优化绩效机制，让“善用 AI”成为被认可的能力</li><li>• 搭建学习社区，让经验流动起来</li></ul><p>这类工作不会直接产出代码，却能让整个组织的 AI 能力密度提升。</p><p>如果说“超级个体”在提升个人上限，“赋能者”在提升组织均值。</p><p>两条路径，都很有价值。</p><hr><h1 id="技术那部分，我会这样讲"><a href="#技术那部分，我会这样讲" class="headerlink" title="技术那部分，我会这样讲"></a>技术那部分，我会这样讲</h1><p>在认知铺垫完成之后，我才会进入工具层面。</p><p>我会用一个 HR 很容易理解的类比：</p><blockquote><p><strong>AI &#x3D; 通用型员工</strong><br><strong>Skill &#x3D; 给这个员工的 SOP</strong></p></blockquote><p>通用大模型，就像一个能力全面的新员工，什么都能做一点。<br>Skill，就是我们把某类工作流程、判断标准、常见步骤整理成 SOP，交给这个“数字员工”。</p><p>这时 AI 的表现，就会从“有时聪明有时跑偏”，变成“稳定可复用”。</p><p>我会展示几个我做过的数字员工例子，比如：</p><ul><li>• 自动帮我预订会议室</li><li>• 帮我判断一个需求是否达到评审标准</li></ul><p>让 HR 看到：这套东西并不遥远，也不神秘，本质还是流程梳理 + 工具组合。</p><hr><h1 id="这场培训，我真正希望带走的东西"><a href="#这场培训，我真正希望带走的东西" class="headerlink" title="这场培训，我真正希望带走的东西"></a>这场培训，我真正希望带走的东西</h1><p>如果一场培训结束后，大家只记住了几个工具名字，那意义很有限。</p><p>我更希望 HRG 带走三点感受：</p><h3 id="1️-AI-不是遥远的技术趋势，而是已经可以落地的工作方式"><a href="#1️-AI-不是遥远的技术趋势，而是已经可以落地的工作方式" class="headerlink" title="1️ AI 不是遥远的技术趋势，而是已经可以落地的工作方式"></a>1️ AI 不是遥远的技术趋势，而是已经可以落地的工作方式</h3><p>身边的人已经在用，差距来自认知和尝试，而不是天赋。</p><h3 id="2️-自己并没有被排除在这场变革之外"><a href="#2️-自己并没有被排除在这场变革之外" class="headerlink" title="2️ 自己并没有被排除在这场变革之外"></a>2️ 自己并没有被排除在这场变革之外</h3><p>无论是成为超级个体，还是成为赋能者，都有清晰路径。</p><h3 id="3️-HR-在组织-AI-转型里，有天然且关键的位置"><a href="#3️-HR-在组织-AI-转型里，有天然且关键的位置" class="headerlink" title="3️ HR 在组织 AI 转型里，有天然且关键的位置"></a>3️ HR 在组织 AI 转型里，有天然且关键的位置</h3><p>岗位设计、绩效评价、激励机制，这些决定了 AI 能走多远。</p><hr><p>对我来说，这场分享的意义也很特别。</p><p>它从一次“AI 工具介绍”，慢慢演变成一次关于<strong>个人成长、组织演进、角色重塑</strong>的系统思考。</p><p>如果哪天回头看，也许这就是我们公司 AI 时代组织形态变化的一个小起点。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/1016f0be.html</id>
    <link href="https://www.rockbot.cc/blog/posts/1016f0be.html"/>
    <published>2026-01-30T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>前两天吃饭的时候碰到了公司的HRG同学，聊到我最近的AI实践，他们希望我近期给HRG小组做 AI 实践分享，我原本以为只是一次“工具培训”的内容梳理，结果和 Manus 聊着聊着，话题一路升级，最后变成了一次关于 <strong>HR 在 AI 时代组织角色</strong]]>
    </summary>
    <title>当HR遇见AI：从工具使用者到组织进化的关键角色</title>
    <updated>2026-05-10T12:24:25.530Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>最近帮多位同学安装Claude Code，在多个场合安利Skills，也在自己业务的Agents里边集成Skills。捣鼓的越多，越感觉「组织」是Skills实践的最佳场所。</p><p>我把我们日常工作的任务分为三类，</p><ol><li>通用型任务。例如，生成一张配图、写一段活动文案、总结一篇文章等。这类任务不用沉淀为Skills，大模型就能做个七七八八，换一家公司或者换一个人，做法都差不多</li><li>私人专属的任务。例如，你对某件事情的观点，你写文章的表达习惯等。这些任务高度个性化，完全依赖某个人的习惯和偏好，很难被抽象或固化</li><li>「组织」内部的工作任务。比如填写公司内部系统的各种表单，定位某个内部系统的告警原因等。这些任务会有很多人反复做，往往已经有了固定的流程，做错可能会返工甚至出事故。并且同一件事，A公司和B公司的做法可能完全不一样，这种事通用的大模型做不好，它强依赖企业内部的语境、流程和数据</li></ol><p>这样一分，就会发现一个很有意思的结果：</p><ol><li>太通用的任务，不需要Skill</li><li>太个人的任务，很难被提炼成Skill，或提炼出来被复用的价值也不大</li><li>介于两者之间、可被特定的一群人反复使用的“组织内部的能力”，才是Skills的最佳落地场景</li></ol><p>集成了最强大模型的通用型Agent，比如Claude Code，Qoder、Manus，提供通用智能，具备把复杂问题拆解为多步骤、多轮工具调用的基础；Skills为通用型Agent注入了特定的「组织」语境，把组织内散落在各种文档和专家经验的“隐性知识”，显性化沉淀为被AI稳定调用执行的能力。</p><p>当两者结合，AI 才真正变成像你身边同事一样的数字员工。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/b3448267.html</id>
    <link href="https://www.rockbot.cc/blog/posts/b3448267.html"/>
    <published>2026-01-29T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>最近帮多位同学安装Claude Code，在多个场合安利Skills，也在自己业务的Agents里边集成Skills。捣鼓的越多，越感觉「组织」是Skills实践的最佳场所。</p>
<p>我把我们日常工作的任务分为三类，</p>
<ol>
<li>通用型任务。例如，生成一]]>
    </summary>
    <title>通用型Agent+Skills，让AI变成『组织』内的数字员工</title>
    <updated>2026-05-10T12:24:25.530Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>Anthropic在10月份发表了《Equipping agents for the real world with Agent Skills》，正式对外发布了Skills的概念。它的设计非常简单，本质就是一个 “本地目录”，</p><p><img src="/blog/"></p><p>SKILL.md是唯一必要的文件，它的YAML格式的元数据头描述了自己具体可以用来完成什么任务，Markdown格式的指令描述具体怎么完成该项任务。如果要调用外部工具，对工具的使用会被封装在脚本中。</p><p>这看似简单的目录结构和文件结构，可能会是构建更强大、更可靠智能体的全新范式。Skills让Agent可以实现技能的「按需加载」，避免一股脑把所有指令都怼在System Prompt里边，避免了上下文污染，也解决了未来扩展性的问题。</p><p>12月9日，Anthropic发布了《Don’t Build Agent, Build Skills Instead》的视频，更进一步阐述了Skills的设计理念。这个其实很好理解，未来可能不需要太多Agent，正如我们不需要在手机上安装太多App。</p><p>未来通用的Agent会收敛到1~2个应用，比如千问、元宝、豆包、DeepSeek同质化非常严重，根本不需要全部都装。唯一能留下来的通用Agent一定是对用户最「有用」的，不仅仅是对话，而是切实帮用户干活。Anthropic的Claude意图成为这样的超级App，Skills就是专家用户提供的扩展点。</p><p>对于用户而言，Skills允许用户用结构化的自然语言描述工作流，会大大降低用户搭建workflow或agent的成本，并且用脚本可以解决LLM在确定性方面的短板。有同学可能问，写脚本的门槛也不低，但其实很简单，Vibe Coding啊</p><p>很多人会过高期待AI的能力，希望用大模型的丰富知识、泛化能力以及上下文工程构建Agent作为数字员工。但只有这些还不够，数字员工还缺少一点儿灵魂。Agent只有能像人一样完成用户委托的任务，才可以称为「数字员工」。所有可以委托给数字员工的工作，都需要先做到人类员工的标准。Skills就是人类员工对完成某项任务的经验的最佳载体。</p><p>12月18日Anthropic把Skills变成了跨平台的开放标准，并有了自己的独立域名，<a href="https://agentskills.io.按照这个趋势,skills很快就会成为构建智能体的事实标准,参考anthropic上一个开放标准是mcp./">https://agentskills.io。按照这个趋势，Skills很快就会成为构建智能体的事实标准，参考Anthropic上一个开放标准是MCP。</a></p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/1e71205e.html</id>
    <link href="https://www.rockbot.cc/blog/posts/1e71205e.html"/>
    <published>2025-12-19T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>Anthropic在10月份发表了《Equipping agents for the real world with Agent Skills》，正式对外发布了Skills的概念。它的设计非常简单，本质就是一个 “本地目录”，</p>
<p><img src="/blog/]]>
    </summary>
    <title>不要低估Anthropic的Skills</title>
    <updated>2026-05-10T12:24:25.529Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<h2 id="题记"><a href="#题记" class="headerlink" title="题记"></a>题记</h2><p>GTLC是极客邦旗下的TGO鲲鹏会举办的一个技术大会活动，极客邦旗下还有极客时间、InfoQ中国、QCon大会、ArchSummit大会，开发者应该有了解过。</p><p>2025&#x2F;12&#x2F;06 GTLC杭州站的主题是《Vibe Coding时代的新创业者》。会议主题虽然是Vibe Coding，也有一些Vibe的内容，但纯Vibe的方式适用于非开发者生成demo和完成简单的工作，这件事情还是比较容易共识的，但对于如何解决存量项目中的需求迭代问题，目前更多是在讲Spec-Driven Development的理念，并没有看到太多最佳实践。</p><h2 id="一、关于AI-Coding-IDE"><a href="#一、关于AI-Coding-IDE" class="headerlink" title="一、关于AI Coding IDE"></a>一、关于AI Coding IDE</h2><p>今年6月份去参加GTLC深圳站，听叔同讲《AI Coding 重塑企业研发效能竞争力》，当时就感觉叔同及阿里云对开发者、AI Coding和模型都很懂，但没想到半年不到的时间，Qoder从0到1，现在已经成为业界很流行的Coding IDE。AI时代所有的产品都在加速，并且以很夸张的速度。</p><p>Qoder的产品理念是“把企业内部的隐性知识显性化”，根据代码仓库自动产出Repo Wiki就是在这个理念下的功能，有了Repo Wiki可以做很多事情，比如由AI自动根据需求自动产出技术方案、让AI Coding可以更大程度的复用已有项目组件。未来如果能支持跨代码仓库的Repo Wiki，再支持应用运行态的数据，那对企业软件系统的理解将是全方位的。</p><p>Qoder我们自己体验下来也很好用，完全可以跟Cursor掰掰手腕，很期待企业版的Qoder。</p><p><img src="/blog/%22null%22"></p><p>Qoder讲完紧接着就是字节AI Coding IDE Trae的分享，Trae的SOLO模式在刚推出的时候就找死月申请了体验，把文档、代码、网页All in one在IDE里边给我挺多启发的，也让我坚定认为IDE一定是开发者不可被取代的界面，它应该集成更多内容，让开发者沉浸式完成需求。</p><p>说到这里，我得反思一下，之前备受启发的内容，相应的Action得快速落地才行。比如把获取需求内容MCP化，让用户在IDE里获取自己的需求，比如把“一句话需求”生成“结构化文档”这件事要尽快搞定，要参考Coding IDE的模式重新设计提交需求的交互页面。</p><h2 id="二、关于AI-研发效能"><a href="#二、关于AI-研发效能" class="headerlink" title="二、关于AI + 研发效能"></a>二、关于AI + 研发效能</h2><p>不同于很多嘉宾来介绍自己的产品，我觉得右军老师讲《Vibe Coding时代的组织变革》还是非常务实，立意也非常真实。为什么代码效率提高了，项目周期改变不大？Native AI公司轻装上阵，老业务呢？AI Coding很多时候只是看起来很美</p><p><img src="/blog/%22null%22"></p><p>如果一些讲师还在讲AI代码采纳率或者贡献率，那一定在这个领域没有太深入的思考和实践，过程指标不代表业务价值，最终研发效能的度量肯定要回归到交付效率和交付质量。</p><p>对研发效能的度量，嘉言小安的小伙伴提到，他们针对于不同复杂度的需求，会人为评估一个“点数”，一定程度上也代表了完成这个需求的人日。统计一定周期内的交付点数，就可以评估是否提升了交付效率。但现在是人工评估，多人评估以达到相对准确。我觉得后续可以改成大模型评估，避免团队与团队之间的标准不统一的问题。但为什么要做这样的评估？对一线开发者来说又有什么好处？这又是值得思考的问题，或者是对超级个体可以做一些额外的激励，或者作为绩效评估的一部分输入。</p><h2 id="三、关于AI-组织文化"><a href="#三、关于AI-组织文化" class="headerlink" title="三、关于AI + 组织文化"></a>三、关于AI + 组织文化</h2><p>如何鼓励开发者或者泛开发者尽可能多的使用AI Coding，营造组织氛围？AI hackthon可能可以，不需要24h的连续熬夜，AI Coding时代的hackthon，3h足够了。3h AI Coding + 1h评分颁奖，一下午就能做一场。比赛最好是命题作文，</p><p><img src="/blog/%22null%22"></p><p>如何激励开发者更主动的拥抱AI？公司的激励机制可以有一些变化，网易易盾采用的“积分制”可能是一种解法。他们把开发者的各种工作映射为“积分”，积分跟奖金直接挂钩。使用AI提效，多劳多得，他们团队年轻的开发者往往能拿到1.5~2倍的报酬。不拥抱AI的开发者就不会有额外的激励。</p><p>对这部分我还挺困惑的，完成需求、处理告警等等不应该是开发者份内的工作吗，怎么又有额外激励呢？难道是一些大家都不愿意去干的事情？或者组织鼓励的事情？这部分还没来及跟相关同学求证。我猜跟我们的菜籽有点像，都是激励工具，但菜籽只能兑换商品，而网易是可以直接换钱。</p><p>我特地搜了一下网易的积分制，发现稀土掘金的一篇文章，说他们在2024年初就开始这么玩了，如果有了解的小伙伴可以确认下真实性和细节。这些外包的任务，公布于内部系统，员工可以自愿抢单。</p><p><img src="/blog/%22null%22"></p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>这篇文章写于大会的第二天，一天密集的知识和信息的输入，给了我很多启发。转眼间已经过去一周，有一些变化已经在我们的场景内发生，很欣慰。</p><p>借用Manus创始人的一句话结尾，如果模型进步是上涨的潮水，我希望大家都能做一条船，而不是绑在海床上的柱子。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/4b20f94b.html</id>
    <link href="https://www.rockbot.cc/blog/posts/4b20f94b.html"/>
    <published>2025-12-12T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="题记"><a href="#题记" class="headerlink" title="题记"></a>题记</h2><p>GTLC是极客邦旗下的TGO鲲鹏会举办的一个技术大会活动，极客邦旗下还有极客时间、InfoQ中国、QCon大会、ArchSummit大会，开]]>
    </summary>
    <title>GTLC杭州站参会笔记-已晨</title>
    <updated>2026-05-10T12:24:25.529Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<h1 id="如何优雅地为“祖传代码”添加测试？"><a href="#如何优雅地为“祖传代码”添加测试？" class="headerlink" title="如何优雅地为“祖传代码”添加测试？"></a>如何优雅地为“祖传代码”添加测试？</h1><hr><blockquote><p>本文为阅读笔记，文章来源：The best way to start testing untested code</p></blockquote><p><img src="/blog/"></p><h3 id="一、常见困境：为什么给遗留代码加测试这么难？"><a href="#一、常见困境：为什么给遗留代码加测试这么难？" class="headerlink" title="一、常见困境：为什么给遗留代码加测试这么难？"></a><strong>一、常见困境：为什么给遗留代码加测试这么难？</strong></h3><p>当你接手一个庞大、复杂且完全没有自动化测试的遗留代码库时，是不是总会陷入这种两难境地：</p><ul><li>• <strong>代码如山，零测试</strong>：逻辑错综复杂，牵一发而动全身，任何改动都心惊胆战。</li><li>• <strong>时间紧迫，没空测</strong>：项目排期紧张，老板总觉得重构和补测试会拖慢进度。</li><li>• <strong>无从下手，怎么测</strong>：就算有时间，面对代码山，也不知道该从哪种测试开始。</li></ul><p>很多人首先会想到两种主流的测试策略：<strong>端到端测试</strong>和<strong>单元测试</strong>。但在遗留代码面前，它们都有明显的局限性。</p><h4 id="端到端测试-E2E-Test-的痛点"><a href="#端到端测试-E2E-Test-的痛点" class="headerlink" title="端到端测试 (E2E Test) 的痛点"></a><strong>端到端测试 (E2E Test) 的痛点</strong></h4><p>虽然它能模拟真实用户场景，覆盖范围广，但是：</p><ul><li>• <strong>设置太耗时</strong>：需要搭建完整的测试环境。</li><li>• <strong>运行太缓慢</strong>：跑一个用例可能要几分钟。</li><li>• <strong>反馈周期太长</strong>：不适合在开发过程中快速验证，等到CI挂了才发现问题，黄花菜都凉了。</li></ul><h4 id="单元测试-Unit-Test-的窘境"><a href="#单元测试-Unit-Test-的窘境" class="headerlink" title="单元测试 (Unit Test) 的窘境"></a><strong>单元测试 (Unit Test) 的窘境</strong></h4><p>虽然它运行快，反馈及时，但对于遗留代码：</p><ul><li>• <strong>改造难度大</strong>：遗留代码通常不是为测试而设计的，依赖复杂，很难拆分和隔离。</li><li>• <strong>容易测歪</strong>：一不小心就变成了对实现细节的测试，导致代码一重构，测试就大片大片地挂掉。</li><li>• <strong>可能固化坏设计</strong>：为了让代码可测试而做的修改，有时反而会固化现有的不良结构。</li></ul><hr><h3 id="二、最佳实践：从外到内，逐层击破"><a href="#二、最佳实践：从外到内，逐层击破" class="headerlink" title="二、最佳实践：从外到内，逐层击破"></a><strong>二、最佳实践：从外到内，逐层击破</strong></h3><p>面对以上困境，文章提出一种更高效、更务实的策略，其核心思想就是：</p><blockquote><p><strong>从外部开始测试 (Start testing from the OUTSIDE)，</strong> <strong>从内部开始重构 (Refactor from the INSIDE)。</strong></p></blockquote><p>这个策略的精髓在于，我们不立即深入代码的汪洋大海，而是先为要修改的部分建立一个“安全网”，确保重构不破坏现有功能。有了这个安全网，我们就可以在网内充满信心地进行“外科手术式”的改造了。</p><hr><h3 id="三、解决方案：两步走策略"><a href="#三、解决方案：两步走策略" class="headerlink" title="三、解决方案：两步走策略"></a><strong>三、解决方案：两步走策略</strong></h3><h4 id="第一步：验收测试-Approval-Testing-快速构建安全网"><a href="#第一步：验收测试-Approval-Testing-快速构建安全网" class="headerlink" title="第一步：验收测试 (Approval Testing) - 快速构建安全网"></a><strong>第一步：验收测试 (Approval Testing) - 快速构建安全网</strong></h4><p><strong>验收测试</strong>是为遗留代码快速建立测试覆盖的超级利器。它不关心代码内部的逻辑对错，只关心在给定输入下，代码的输出行为是否与“已验收”的样本一致。</p><p>它也被称为 <strong>黄金副本测试 (Golden Master Testing)</strong> 或 <strong>快照测试 (Snapshot Testing)</strong>。</p><p><strong>执行四步法：</strong></p><ol><li>1. <strong>安排 (Arrange)</strong>：准备测试所需的环境和输入数据。</li><li>2. <strong>执行 (Act)</strong>：运行需要被测试的代码逻辑。</li><li>3. <strong>打印 (Printer)</strong>：将代码执行产生的所有输出（返回值、状态变更、日志等）序列化为一个长字符串。</li><li>4. <strong>断言 (Assert)</strong>：</li></ol><ul><li>• <strong>首次运行</strong>：将生成的字符串保存为“黄金副本”文件。人工检查并“验收”。</li><li>• <strong>后续运行</strong>：将新生成的输出与“黄金副本”比对。如果不一致，测试就失败。</li></ul><p><strong>验收测试的巨大优势：</strong></p><ul><li>• <strong>快速建立安全网</strong>：只需运行一次并验证结果，就能为大块代码提供保护。</li><li>• <strong>无需完全理解代码</strong>：你不需要弄懂每一行，只需要确认整体行为符合预期。</li><li>• <strong>立即发现问题</strong>：任何对代码行为产生影响的修改都会立刻导致测试失败。</li></ul><h4 id="第二步：安全重构-Safe-Refactoring-在网内大胆改造"><a href="#第二步：安全重构-Safe-Refactoring-在网内大胆改造" class="headerlink" title="第二步：安全重构 (Safe Refactoring) - 在网内大胆改造"></a><strong>第二步：安全重构 (Safe Refactoring) - 在网内大胆改造</strong></h4><p>有了验收测试建立的安全网，我们就可以放心地开始重构了。</p><ul><li>• <strong>处理小块代码</strong>：将大段复杂逻辑逐步拆解成更小、更易于管理的部分。</li><li>• <strong>提取有意义的部分</strong>：将可复用的逻辑提取成独立的函数或类。</li><li>• <strong>测试验证整体行为</strong>：在重构过程中，随时运行验收测试。只要测试通过，就证明你的修改是安全的。</li><li>• <strong>为新单元编写更好的测试</strong>：当你提取出设计良好的新单元时，就可以轻松地为它们编写高质量的单元测试了。</li></ul><hr><h3 id="四、核心价值：告别调试地狱"><a href="#四、核心价值：告别调试地狱" class="headerlink" title="四、核心价值：告别调试地狱"></a><strong>四、核心价值：告别调试地狱</strong></h3><p>采用“从外部测试，从内部重构”的策略，能为你带来巨大的价值：</p><ul><li>• <strong>用最小成本建立信心</strong>：不再对修改遗留代码感到恐惧。</li><li>• <strong>安全重构，避免 Bug</strong>：大大降低在重构过程中引入新错误的风险。</li><li>• <strong>提升效率，告别调试地狱</strong> ：将大量时间从手动测试和事后调试中解放出来。</li><li>• <strong>熟练后比不测试更快</strong>：从长远看，它所节省的时间远超前期投入，最终会显著提升开发效率。</li></ul>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/e6ea8492.html</id>
    <link href="https://www.rockbot.cc/blog/posts/e6ea8492.html"/>
    <published>2025-11-22T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h1 id="如何优雅地为“祖传代码”添加测试？"><a href="#如何优雅地为“祖传代码”添加测试？" class="headerlink" title="如何优雅地为“祖传代码”添加测试？"></a>如何优雅地为“祖传代码”添加测试？</h1><hr>
<blockqu]]>
    </summary>
    <title>如何优雅地为“祖传代码”添加测试？</title>
    <updated>2026-05-10T12:24:25.527Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p><img src="/blog/"><img src="/blog/"></p><p>9月25日，菜鸟应邀在云栖大会做了主题分享。菜鸟平台团队围绕开发者的各个环节积极探索AI，希望可以用AI让菜鸟的开发者有十倍的效率提升。作为质量效能与基础架构团队的负责人，已晨在云栖大会分享了菜鸟SRE Agent在上下文工程上的实践。此次分享围绕四个核心问题展开：</p><p>● 第一，菜鸟的SRE Agent解决了什么问题</p><p>● 第二，我们如何实现SRE Agent</p><p>● 第三，如何度量SRE Agent的效果</p><p>● 第四，如何提升SRE Agent的表现</p><p>通过这次分享，你能看到一款Agent产品从0到1的过程，希望我们的实践经验，让你能了解sre agent的产品与技术的实践细节，理解企业级agent的实践方法论，并加深对于上下文工程的理解。</p><p><strong>第一部分：SRE Agent 解决了什么问题</strong></p><p><strong>▐ SRE背景介绍</strong></p><p>SRE的全称是站点可用性工程（Site Reliability Engineering），由Google提出的概念。在菜鸟，我们融入了菜鸟产业互联网特色，并做了体系化的设计和实践，称之为菜鸟的安全生产体系。</p><p><img src="/blog/"></p><p>菜鸟的安全生产体系通过多维度的过程指标和结果指标进行牵引，覆盖研发的全生命周期。在平台层面，我们重点建设四个核心能力：</p><ol><li><p>工程化的管理能力</p></li><li><p>预警观测诊断能力</p></li><li><p>资损安全的保障能力</p></li><li><p>大促等关键场景的应对能力</p></li></ol><p>希望用这些能力让开发者做安全生产更简单。</p><p><strong>▐ SRE AI演进历程：从AIOps到SRE Agent</strong></p><p>介绍完SRE，再来看一看AI Agent的发展历程。早在2016年Gartner提出了AIOps这个概念，当时的定义是从海量的运维数据中进行学习，用算法来增强IT运维的能力，主要实践方向是对时序数据做异常检测、告警合并降噪、故障的根因分析等。但当时的实现成本非常高，它要求有很强大的算法团队支撑。比如，</p><ul><li>数据工程师，负责数据采集、清洗、存储运维数据，设计数据模型，支持算法模型训练和分析</li><li>算法工程师，负责构建和优化AIOps核心算法模型，比如设计时序数据的异常检测算法，调整模型参数，对模型进行部署监控等</li><li>开发工程师，负责开发AIOps平台的后端系统功能，集成算法模块到运维平台等</li></ul><p>一个异常检测项目往往需要3-6个月的开发周期，还要持续的模型维护和调优。这对一般公司来说是一件非常奢侈的事，所以AIOps主要集中在学术界或很大型的公司。</p><p><img src="/blog/"></p><p><img src="/blog/"></p><p>大模型技术让AI能力真正普及到了各个领域，大模型可以直接理解告警、日志、时序数据，内置了通用的推理能力，可以用Prompt来约束推理方式，只需要开发工程师设计Prompt，调用大模型API，集成到现有运维系统中，开发周期从几个月缩短到几周，维护成本也大幅降低。</p><p><strong>▐ 识别SRE Agent的黄金场景</strong></p><p>平时SRE同学有大量的任务需要完成，比如处理告警、识别风险、排查工单、容量规划等。那么菜鸟SRE Agent应该优先解决哪个问题呢？</p><p>为了让SRE Agent的MVP版本发挥出最大的效果，我们建立了一个评估框架，从用户规模、使用频率、效果感知这三个维度进行分析。用户规模大、使用频率高、用户感知程度强的场景是AI实践的黄金场景。对菜鸟而言，这个黄金场景就是<strong>预警任务处理</strong>。</p><p>菜鸟的预警任务跟普通的告警消息不同，具体来说，我们会订阅所有监控平台的告警消息，在SRE工作台进行合并降噪，形成预警处理任务，然后下发给相应的开发者进行处理。如果开发者不处理，任务会有超时升级的机制，层层升级，确保每个预警任务都会有闭环处置。</p><p><img src="/blog/"></p><p>从从业界实践来看，各家公司在SRE Agent方面的探索大同小异。比如Azure的SRE Agent主要做监控状况和性能表现分析，提供基础设施最佳实践和自动化响应能力；FuzzyLab的SRE Agent主要做告警的诊断</p><p><img src="/blog/"></p><p><img src="/blog/"></p><p><strong>第二部分：如何实现SRE Agent</strong></p><p><strong>▐ 产品形态选择：用户在哪儿，Agent就应该在哪儿</strong></p><p>当我们准备要做出来SRE Agent的时候，我们面临的第一个问题是选择agent的产品形态，是要做一个钉钉聊天机器人，还是嵌入在工作台右侧的智能对话框，还是像Cursor一样，做一个智能的IDE呢？</p><p>这里我们受Cursor的启发，Cursor没有改变用户的习惯，而是托管掉用户复杂的编码过程，只需要用户决策是accept还是reject。我们的sre agent，也选择尊重用户习惯，而只托管掉复杂的排查过程，只需要用户决策是否采纳AI的判断。</p><p>用户在哪儿，Agent就应该在哪儿</p><p><img src="/blog/"></p><p>当预警任务创建后，会自动触发SRE Agent进行定位分析，它会调用我们预制的一些MCP工具获取更多的数据，比如根据TraceID分析下游的错慢调用节点、查询应用的错误日志，查询应用最近的变更事件等。</p><p><img src="/blog/"></p><p>中间的分析过程会收起来，会描述调用MCP的入参和返回结果，分析结果显示在右边栏，最下方提供”采纳”或”拒绝”按钮。通过这种方式，Agent有效屏蔽了复杂的排查过程，用户只需做最后的决策判断。</p><p>并且在实践过程中，我们有一个重要认知是：Agent的产品形态不一定非得是对话形式，它可以是任意事件触发的。我们在设计的时候也没有对话框，只在点击“拒绝”之后，会有一个对话框让你输入原因，后续会根据这个原因来进行关单，或者做快恢的动作</p><p><strong>▐ 技术选型决策</strong></p><p><strong>Agent架构模式选择：用ReAct模式构建菜鸟SRE Agent</strong></p><p>我们观察到业界对Agent的认知也在逐渐提升。从最开始RAG + System Prompt的聊天机器人，到用低码搭建的各种智能工作流，再到用源码框架开发的的更自主的智能体。参考Anthropic对Agent的定义：Agent是一个大模型的循环，每次根据环境的反馈，决策下一步执行动作，直到大模型认为目标达成或无法再继续下去，停止循环。</p><p><img src="/blog/"></p><p>在这个过程中，大模型一步一步达成最终的目标，而不需要提前编排好的、固定的流程。这种设计实现非常适合复杂的、开发性的场景，跟固定的流程编排相比，它的泛化性会更好，可以处理自己之前没有见过的场景。</p><p><img src="/blog/"></p><p>预警任务的根因分析是复杂的、开放的场景，既没有办法枚举所有可能的场景，也无法固定根因定位的步骤，非常适合用这种ReAct的agent模式</p><p><strong>开发框架选择：选择适合自己的企业级开源框架</strong></p><p>在具体开发框架的选型方面，我们也遇到了一些纠结，我知道很多公司跟我们一样，业务系统都是用JAVA写的，而JAVA的AI生态相比于Python要落后一些。</p><p>但是，公司里python人才又相对缺乏，Python跟JAVA之间的相互调用，以及python对已有的中间件体系的兼容又不太好，这些都是使用Python框架的硬伤，很难被解决。在这里我也建议大家，尽量选择一个跟你们公司主流语言一致的开发框架，这样后续的维护成本会更低一点。</p><p>我们调研了几款流行的Java Agent开发框架，Spring AI，LangChain4J，Spring AI Alibaba，从模型接入、RAG、会话管理、MCP等多个方面对比，Spring AI Alibaba都处于领先地位。</p><p><img src="/blog/"></p><p>SRE agent选择了基于Spring AI Alibaba的JManus模块进行开发，JManus是一个通用的AI agent框架，可以对多个agent去做编排，完成一些复杂的通用的任务。我们虽然不是通用的任务，但我们更看重它支持UI界面配置agent和工具，并且原生支持plan to act模式，让agent具备复杂的推理，分解，执行和调度的能力</p><p><strong>▐ 菜鸟的改造实践</strong></p><p>在实践过程中，我们复用了Jmanus的Plan-Act的运行框架，但每次只选择一个Agent执行，避免多个Agent上下文一致性的问题。当预警任务出现，Planner会组装初始的Prompt，并选择根因分析Agent执行。根因分析Agent是一个循环，每次会调用一个MCP工具，比如根据TraceID查询下游的错慢节点、异常日志等。</p><p><img src="/blog/"></p><p>如果要扩展到预警的快速恢复领域，可以再增加一个做快速恢复的Agent，同样由Planner选择调度。在这个过程中，如果超过了上下文窗口的限制，我们会调用大模型对历史上下文做一下压缩。</p><p>我们还把Jmanus的Web模块改成了SDK，嵌入到了我们的内部应用里边，因为我们用不上Web端的能力，而只看中了它的Agent控制台和Plan-Act的模式，同时，我们还对Jmanus的Planner做了扩展，支持组装更丰富的上下文。</p><p>我们使用的部分MCP工具包括了，历史预警任务处理结论、根据traceId查询异常日志、根据traceId查询错慢调用节点、应用的基础监控异常指标、应用在告警之前的变更事件等。</p><p>同时我们对于Spring AI Alibaba也做了一些优化改造，比如H2内存DB改成支持MySQL、支持Agent的命名空间隔离，支持预发环境等等，目前已经回馈到了社区</p><p><strong>第三部分：如何度量SRE Agent效果</strong></p><p><strong>▐ 采纳率的口径问题</strong></p><p>为了度量SRE Agent的效果，我们最开始我们设计了 采纳&#x2F;拒绝 按钮，以及 点赞&#x2F;点踩 的反馈，期待通过用户反馈来度量效果。</p><p><img src="/blog/"></p><p>但发现反馈的用户非常少，并且发现这是一个相当普遍的问题。除非在流程强要求，否则用户不会主动反馈的，核心原因大概有两个，</p><ol><li><p>用户不知道点了之后会有什么后果，或者认为点击 采纳&#x2F;拒绝，是否意味着承诺或确认了什么，有比较大的心理压力</p></li><li><p>“根因”本身没有一个绝对正确的黄金标准，导致告警的原因有多个，或者受限于根因颗粒度的问题，用户对AI生成的结论并非100%采纳</p></li></ol><p>考虑到现阶段AI的能力还有局限性，我们目前重点考察的不是传统根因分析的召回率和精确率，而是希望看AI有没有帮助我们的开发者，因此后来我们自己设计了一个「有效率」的口径，有效率 &#x3D; 覆盖率 * 采纳率。其中，</p><p>覆盖率：<code>Agent成功输出了分析结论的告警事件数 / 总告警事件数 * 100%</code></p><p>采纳率：如果Agent定位出来的根因分类，跟最后用户打标的根因分类一致，就认为是采纳。SRE Agent可能还不能做到完全正确，但我们现阶段更关注“有没有用”</p><p><img src="/blog/"></p><p>如果Agent推荐的分类与用户最终打标的分类一致，我们就认为是有效的。</p><p><strong>▐ 采纳率低的核心原因分析：缺失关键上下文数据</strong></p><p>目前我们通用类SRE Agent的采纳率在30%~40%之间，这个采纳率不能算高。我们分析发现SRE Agent推荐不准确有两种原因</p><ol><li><p>LLM幻觉或推理能力不足</p></li><li><p>LLM推理所依赖的数据缺失或质量不足</p></li></ol><p>一般来说，Agent出现问题主要是因为缺少必要的数据。我们现在能获取到的数据包括</p><ol><li><p>历史预警任务处理结论</p></li><li><p>根据traceId查询异常日志</p></li><li><p>根据traceId查询错慢调用节点</p></li><li><p>应用的基础监控异常指标</p></li><li><p>应用在告警之前的变更事件</p></li><li><p>…</p></li></ol><p>但还有一些数据获取不到，比如业务同学新配置了某条线路、或者新接入了某个大商家，这些事件并没有跟我们的SRE系统打通，我们也没法在根因定位中使用到它们。</p><p>换言之，如果要提升Agent的采纳率，就一定要提升提供给Agent的上下文质量。</p><p><strong>第四部分：如何提升SRE Agent表现</strong></p><p><strong>▐ Context Engineering：提升Agent表现的关键理念</strong></p><p>当上下文工程刚流行起来的时候，我们发现这个理念跟我们的实践经验不谋而合。上下文工程是构建一个动态系统，以合适的格式提供准确的信息和工具，让大模型更有效地完成任务。它有几个关键特征：</p><p>1. <strong>系统工程</strong>：上下文可以来自多个数据源（历史文档、工具返回、用户输入），整合这些数据是复杂的系统工作</p><p>2. <strong>动态特性</strong>：不同于静态的Prompt Engineering，上下文工程聚焦于与外部交互，动态组装提示词</p><p>3. <strong>准确信息</strong>：确保提供的信息准确可靠</p><p>4. <strong>合适工具</strong>：提供恰当的工具支持</p><p>5. <strong>适当格式</strong>：用合适的格式组织信息</p><p>提示词工程、RAG、MCP都包含在上下文工程内，只有给模型高质量的上下文输入，大模型才可能得到高质量的输出。在这里我重点介绍一下Memory</p><p><strong>▐ 构建Memory体系，持续提升Agent的采纳率</strong></p><p>很多人会把memory误认为就是rag，但这两个是完全不同的技术。rag是把知识库或者文档做向量化，这样大模型就可以用语义的方式搜索到相关的信息，做生成内容的增强。而Memory则是为了维持对话或任务的上下文连贯性。</p><p>用一个可能不太精确的类比，RAG像是给大模型一个图书馆，当模型不知道答案时，去图书馆查资料再回答。Memory则是给了大模型一个记事本，记录和用户说过什么、做过什么，避免重复问或忘记。</p><p><img src="/blog/"></p><p>我们希望为每一个预警任务创建一个memory，记录这一个预警任务的处理经验。成千上万个告警任务，写成千上万个文档肯定不合适。我们用大模型可以自动把用户的历史操作记录，做成这个预警任务的初始的memory，Memory可以由用户自行修改。</p><p>当预警任务创建的时候，Planner会查询这个预警任务的Memory，用以指导具体的排查过程，以及操作建议。比如，某一个预警信息里边有错误码，我们把错误码以及对应的文案、SOP也放进去，这样就可以推出来一个非常准确的信息，更容易被采纳</p><p><img src="/blog/"></p><p>举例，很多告警会把错误码打印出来，我们把错误码和错误码对应的处理方案作为Memory，当预警任务告警时，可以自动推荐出来准确的处理SOP</p><p><img src="/blog/"></p><p><strong>结语：实践踩坑总结</strong></p><p>以上就是我们在菜鸟SRE Agent方面的完整实践经验，当前我们也仍在实践当中，希望我们的踩坑经验能给大家带来一些帮助：</p><p>1. <strong>构建开箱即用的Agent</strong>：不要做需要用户配置的Agent，因为用户往往不会进行任何配置</p><p>2. <strong>Memory &gt; RAG</strong>：将历史处理记录、应急文档生成更轻量级的Memory，直接放入上下文中</p><p>3. <strong>轻量级反馈机制</strong>：用户可能不会详细反馈，简单的”有帮助”&#x2F;“没帮助”按钮更实用</p><p>4. <strong>设定合理预期</strong>：不要设定过于激进的目标，对核心业务要有容错空间</p><p>5. <strong>上下文工程是核心</strong>：上下文工程是构建高效Agent的最佳指导思想</p><p>6. <strong>选择合适技术栈</strong>：企业级应用推荐使用与主流开发语言一致的技术栈</p><p><strong>END</strong></p><p><img src="/blog/"></p><p><strong>阅读更多好文</strong></p><ul><li><a href="https://mp.weixin.qq.com/s?__biz=MzkxNTM0MDM3NA==&mid=2247489007&idx=1&sn=e7aa72bd8a509b2ef6aecf86cd6c3bc8&scene=21#wechat_redirect">一次线上JVM Crash的排查和思考</a></li><li><a href="https://mp.weixin.qq.com/s?__biz=MzkxNTM0MDM3NA==&mid=2247488958&idx=1&sn=f9ce3ff57bb737ef94054395e9e54cb5&scene=21#wechat_redirect">浅入浅出——MySQL索引</a></li><li><a href="https://mp.weixin.qq.com/s?__biz=MzkxNTM0MDM3NA==&mid=2247489034&idx=1&sn=f49a7e08e5634faf3ff475d86728a974&scene=21#wechat_redirect">优雅的参数校验，告别冗余if-else</a></li></ul>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/f6ca4919.html</id>
    <link href="https://www.rockbot.cc/blog/posts/f6ca4919.html"/>
    <published>2025-09-26T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p><img src="/blog/"><img src="/blog/"></p>
<p>9月25日，菜鸟应邀在云栖大会做了主题分享。菜鸟平台团队围绕开发者的各个环节积极探索AI，希望可以用AI让菜鸟的开发者有十倍的效率提升。作为质量效能与基础架构团队的负责人，已晨在云栖大会]]>
    </summary>
    <title>9月25日，菜鸟应邀在云栖大会做了主题分享。已晨分享了菜鸟在SRE Agent领域的实践</title>
    <updated>2026-05-10T12:24:25.525Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>最近看到了一个166页的讲上下文工程的综述论文《A Survey of Context Engineering for Large Language Models》，一边感叹还是学术圈严谨，一边默默点击了关闭按钮</p><p>如果你只是想用上下文工程的理念构建自己的Agent，那大可不必这么体系化的啃论文，其实LangChain的blog《The rise of “context engineering”》写的非常简单清晰，用一句话定义就是：上下文工程旨在构建动态的系统，以合适的格式提供准确的信息和工具，从而使大语言模型能够有效完成任务。</p><p><img src="/blog/"></p><p>关键词我已经在配图圈出来了，逐字解读一下：</p><p>1、上下文工程是一个系统工程。这里的Context上下文可以来自很多数据源，比如历史文档知识、工具返回的结果、用户的输入等，把这些数据源整合成一段上下文，是一个复杂的系统性工作</p><p>2、这个系统是动态的。许多上下文信息是动态获取的，这点跟静态的提示词工程Prompt Engineering不同。提示词工程主要聚焦在用各种奇技淫巧把提示词写好，最后prompt甚至成了玄学。上下文工程每次组装的提示词也是动态的，比如把某次工具执行的报错信息直接放到提示词的末尾，让大模型再决策下一步动作</p><p>3、你需要准确的信息。你的Agent表现不佳不一定是基础模型推理能力不行，更可能是你没有给到大模型足够有效的信息。大模型不会读心术</p><p>4、你需要合适的工具。大模型的能力有限，工具是连接大模型和真实世界的桥梁。大模型通过工具查询更多专有数据，或者执行特定的动作</p><p>5、格式也非常重要。简短但描述清晰的错误信息，远比一大段看似结构化的JSON数据更有价值。工具调用也是一样，入参尽可能简单没有歧义，是让大模型正确调用的关键</p><p>6、这个任务有可能完成吗？Agent把事情搞砸是因为信息缺失、工具不足？还是因为这件任务根本就无解？人都不知道怎么做的事情，就不要“强AI所难”了</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/fd33f2f2.html</id>
    <link href="https://www.rockbot.cc/blog/posts/fd33f2f2.html"/>
    <published>2025-08-16T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>最近看到了一个166页的讲上下文工程的综述论文《A Survey of Context Engineering for Large Language Models》，一边感叹还是学术圈严谨，一边默默点击了关闭按钮</p>
<p>如果你只是想用上下文工程的理念构建自己的Age]]>
    </summary>
    <title>上下文工程旨在构建动态的系统，以合适的格式提供准确的信息和工具，从而使大语言模型能够有效完成任务</title>
    <updated>2026-05-10T12:24:25.521Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<h3 id="序、要想写好System-Prompt，关键不在具体的提示词技巧"><a href="#序、要想写好System-Prompt，关键不在具体的提示词技巧" class="headerlink" title="序、要想写好System Prompt，关键不在具体的提示词技巧"></a>序、要想写好System Prompt，关键不在具体的提示词技巧</h3><p>前段时间笔者作为评委参加了一个其他BU的Agent评审比赛，发现对于很多Agent，其实没有必要看它的技术实现，从最朴素的用户视角就能知道孰优孰劣。</p><p>原因在于Agent本质上是一款“软件产品”，但又不是普通意义上的产品。比如，产品需要明确自己的用户，Agent也需要明确自己的角色；产品要回答解决了什么场景下的什么问题，Agent也需要明确自己的职责范围与工作目标。我们可以借鉴产品的设计思路来设计AI Agent，一旦能清晰回答这些灵魂拷问，写好System Prompt就是水到渠成的事了。否则，学习再多Prompt技巧也只是“屠龙之技”。</p><p>本文不探讨具体的提示词框架和提示词技巧，主要探讨在System Prompt背后的Agent设计逻辑。</p><h3 id="1、产品的用户是谁？Agent是什么角色？"><a href="#1、产品的用户是谁？Agent是什么角色？" class="headerlink" title="1、产品的用户是谁？Agent是什么角色？"></a>1、产品的用户是谁？Agent是什么角色？</h3><p>如果你在做产品，必须要先回答产品的目标用户是谁。对目标用户的画像，越细致越好，越“局限”越好。比如李想之前讲理想汽车从一开始就坚定地选择了只服务家庭用户，甚至会讨论什么样的用户算家庭用户，比如一对新婚夫妻没有孩子，算不算？或者夫妻俩没有孩子但养着一条狗，算不算？只有目标用户足够清晰，才能围绕着用户做更深的研究洞察。</p><p>对于一款Agent来说，不仅要回答你的用户是谁，还要回答Agent的角色是什么。这里经常用的套路是：Agent就是高阶版的「具体用户」的角色或「具体用户角色」的助理。比如Cursor的角色是<code>You are a powerful agentic AI coding assistant.</code> Devin的角色是<code>You are Devin, a software engineer using a real computer operating system.</code></p><p>这里的核心点在于一定要有具体的、清晰的用户角色，如果一款Agent号称可以满足各类用户的各类需求，那它最终可能满足不了任何需求，因为它的System Prompt只能泛泛地写<code>You are a helpful assistant.</code></p><h3 id="2、用户的黄金场景是什么？Agent的工作界面是什么？"><a href="#2、用户的黄金场景是什么？Agent的工作界面是什么？" class="headerlink" title="2、用户的黄金场景是什么？Agent的工作界面是什么？"></a>2、用户的黄金场景是什么？Agent的工作界面是什么？</h3><p>梁宁在《真需求》中描述了如何用「使用频率」、「感知程度」两个维度来识别用户的“黄金场景”。高频 &gt; 低频，用户强感知 &gt; 用户弱感知，只有黄金场景场景，才值得投重兵去做。</p><p>比如，我所负责企业内部的SRE平台，用户使用最高频且强感知的场景就是“处理告警”，开发者每天都会处理系统的告警，并且每次接收告警之后都要查看各种监控指标、分析日志、排查调用链路、检查是否有变更，甚至还要翻代码才能最终定位原因，在紧急的故障处理场景下，这种定位流程显得非常耗时。“告警处理”就是我做SRE Agent的黄金场景，而“故障处理”则不是，“大促盯屏观测”也不是。</p><p>用户的黄金场景决定了Agent的工作界面，做产品不要轻易改变用户习惯，做Agent最好要嵌入用户已有的工作流程中。虽然大模型的编码能力越来越强，但开发者最喜欢用的还是像Cursor这样的编程IDE。</p><h3 id="3、在此场景下，用户“任务”是什么？Agent的目标是什么？"><a href="#3、在此场景下，用户“任务”是什么？Agent的目标是什么？" class="headerlink" title="3、在此场景下，用户“任务”是什么？Agent的目标是什么？"></a>3、在此场景下，用户“任务”是什么？Agent的目标是什么？</h3><p>“用户任务”是克莱顿·克里斯坦森提出来的理论，核心观点是“用户‘雇佣’你的产品，本质是为了完成自己的任务”。“用户任务”与“用户需求”仅一词之差，却点明了产品创新的真相。为什么用户提的需求，等你实现之后ta又不用了？很可能这个只是ta的需求，而不是任务，任务毕竟自带“必须要做”的属性。</p><p>看起来这个道理很简单，但对用户任务的理解很考验产品经理功底。正如那句经典的话：“客户不是要买电钻，而是要买墙上的那个洞。”</p><p>Agent的目标应该是用户的本质任务（墙上的洞），而不是拘泥于具体的实现（电钻），具体实现留给大模型发挥。比如Cursor的目标设定是<code>You are pair programming with a USER to solve their coding task</code>，不是请帮用户编写测试用例或者补充注释。我们SRE Agent的目标是帮助用户把系统恢复或保持在稳定状态，不是帮用户完结预警任务。</p><h3 id="4、产品是否能减少用户完成任务的步骤？Agent是否能托管掉用户的某些步骤？"><a href="#4、产品是否能减少用户完成任务的步骤？Agent是否能托管掉用户的某些步骤？" class="headerlink" title="4、产品是否能减少用户完成任务的步骤？Agent是否能托管掉用户的某些步骤？"></a>4、产品是否能减少用户完成任务的步骤？Agent是否能托管掉用户的某些步骤？</h3><p>在识别到用户真正的任务之后，工具类产品要提供的能力是降低用户完成任务的步骤，让用户更方便的完成任务。《增长黑客》提出了一个简单的公式：欲望 - 摩擦 &#x3D; 转化，完成任务的每一步都是用户体验中的“摩擦”，每一步都会有转化漏斗。好的产品要化繁为简，减少步骤，提高转化率。</p><p>基于AI强大的推理能力，Agent类产品可以更进一步，托管掉用户的某些步骤。比如，为什么我们觉得Cursor这样的编程好用，是因为它代替我们做了需求分析、代码仓库理解、编码等一系列用户的工作，留给用户的只是“接收”&#x2F;“拒绝”按钮。SRE Agent也托管了开发者查看历史预警处理记录、预警现场、异常日志的用户工作，把复杂的根因分析过程变成了根因推荐，把最终的结果交给用户“采纳”&#x2F;“拒绝”。Agent把填空题、问答题都变成了判断题，让用户更简单。</p><p>说得再直白一些，如果你的Agent没有托管掉用户的任何步骤，那它不是一个合格的Agent，甚至不能称之为Agent，可能得叫ChatBot或者Copilot.</p><h3 id="结语、System-Prompt是“指向月亮的手指”，Agent才是“月亮”"><a href="#结语、System-Prompt是“指向月亮的手指”，Agent才是“月亮”" class="headerlink" title="结语、System Prompt是“指向月亮的手指”，Agent才是“月亮”"></a>结语、System Prompt是“指向月亮的手指”，Agent才是“月亮”</h3><p>写好System Prompt的目标是做出“好用”的AI Agent。现在的行业共识是，如果想要做好Agent，最重要的是行业know-how，是Agent设计者对于一个领域、一个行业，一个细分场景的深刻理解。</p><p>抛砖引玉，欢迎留言</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/97ffe8a6.html</id>
    <link href="https://www.rockbot.cc/blog/posts/97ffe8a6.html"/>
    <published>2025-07-18T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h3 id="序、要想写好System-Prompt，关键不在具体的提示词技巧"><a href="#序、要想写好System-Prompt，关键不在具体的提示词技巧" class="headerlink" title="序、要想写好System Prompt，关键不在具体的提]]>
    </summary>
    <title>要想写好System Prompt，关键不在具体的提示词技巧，而在于对具体场景的理解</title>
    <updated>2026-05-10T12:24:25.518Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>今年GTLC的主题是《Hi，中国AI》，“AI + 出海”，覆盖了中国企业在当下最火爆的两个话题。大会日程比较紧凑，上午1个主会场、下午有3个分会场和2个闭门会。我想听的主题比较多，但无奈分身乏术。这两天的策略都是上午主会场，下午闭门会。主会场和闭门会质量都很高，精彩的内容比较多，我捡着对我触动比较大的点，记录一下</p><p>1、AI时代的劳动力革命：劳动力的主体正在从人类转变成AI数字员工。我从好几场分享中都听到了对这个观点的论述，或隐晦、或直白，可以说是投资者和创业者们对未来趋势的共识。我们都以为AI Agent是辅助我们工作，没想到Agent是要代替我们的（某些）工作。随着AI能力的不断提升，这一天几乎必然会发生。对于这样的大势，我们只能顺势而为，在自己的业务内更加坚定的实践Agentic，更大范围地实践“托管”的理念</p><p>2、AI时代的软件商业模式，正从“按服务付费”变成“按Agent的效果付费”。AI数字员工可以做到“0底薪” + 按效果拿提成。比如Clay、Sierra都是按照“成交量”来收费，让客户实实在在觉得这笔钱花得值。另外，如果从公司损益表来观察智能体的价值，那增收型Agent的价值远大于降本型Agent</p><p>3、AI对中层岗位的影响最大，在日常决策领域，AI通过大数据和算法取代人的经验，克服人类的偏见，并取得了更优的效果。AI会逐步从辅助决策变成代替人类决策。老司机们不要沉迷于自己的成功的经验，也不要过于悲观。我们可以用更多的时间关注用户和客户的“问题”，深度思考其中蕴含的机会，机会往往以问题的形式出现</p><p>4、产品的核心价值是什么？产品的核心价值是对外提升体验，对内提升效率。实现路径是用产品把人的部分工作自动化掉。从这个角度看，我们很多的需求没有价值，或者讲不清楚价值，那为啥要做呢？如果对用户提出来的需求来者不拒，研发团队势必会疲于加班，没有时间做有价值的创新。如何实现对外10倍产品体验 x 对内10倍效率提升？这是AI时代的必答题，值得探索</p><p>5、选择大于努力。不要用战术上的勤奋掩盖战略上的懒惰。这句话雷军在移动互联网风口的时候说过，也送给所有AI时代的你我，共勉。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/c232d2ee.html</id>
    <link href="https://www.rockbot.cc/blog/posts/c232d2ee.html"/>
    <published>2025-06-14T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>今年GTLC的主题是《Hi，中国AI》，“AI + 出海”，覆盖了中国企业在当下最火爆的两个话题。大会日程比较紧凑，上午1个主会场、下午有3个分会场和2个闭门会。我想听的主题比较多，但无奈分身乏术。这两天的策略都是上午主会场，下午闭门会。主会场和闭门会质量都很高，精彩的内容]]>
    </summary>
    <title>今年GTLC的主题是《Hi，中国AI》，“AI + 出海”，覆盖了中国企业在当下最火爆的两个话题。</title>
    <updated>2026-05-10T12:24:25.516Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<h2 id="前言：有了MCP，就有好用的AI-Agent了吗"><a href="#前言：有了MCP，就有好用的AI-Agent了吗" class="headerlink" title="前言：有了MCP，就有好用的AI Agent了吗"></a>前言：有了MCP，就有好用的AI Agent了吗</h2><p>MCP还在持续火热，开源和企业内部平台正在提供API一键转成MCP Server的能力，越来越多的MCP工具催生了Awesome MCP Servers这样的“开源工具商店”，像极了互联网初期的hao123网址导航。</p><p>MCP AI能调用的工具已经琳琅满目，但开发者对于如何把AI集成到自己的系统内还是一头雾水。在深入学习Cline的System Prompt后，我发现MCP工具协议固然重要，但做好Agent更重要的是System Prompt，那是Agent的“灵魂”或“人格”。当然，System Prompt + MCP也不是Agent的全部，好用的Agent就像找对象一样，需要用户在对的时间、对的地点遇到对的Agent，才会有丝般顺滑的使用感受。</p><p>MCP是大模型的“USB Type-C”，但用户需要的是一个好用的AI APP。如何做出一款好用的AI APP，是本文想要讨论的话题。</p><h2 id="一、存在形式：是AI-Agent还是Agentic-AI？"><a href="#一、存在形式：是AI-Agent还是Agentic-AI？" class="headerlink" title="一、存在形式：是AI Agent还是Agentic AI？"></a>一、存在形式：是AI Agent还是Agentic AI？</h2><p>很多人都在说2025是AI Agent元年，Agent可以自主完成需求分析、执行工具、交付最终结果。前段时间爆火的Manus让更多人对Agent有了更感性的认识：做旅行攻略、订机票、简历筛选、股票分析等，甚至Manus的界面和Todolist的设计都被认为是AI Agent的标配。一时间，各种Manus同款纷纷上线，只留下我对着“今天你想做点什么”的对话框不知所措。Agent真的只能是这样吗？</p><p>前几天，吴恩达和LangChain的联合创始人展开了一场对话，他又阐述了一遍自己Agentic的理念：与其争论某个实现是不是Agent，有没有自主性，不如把“Agenticness（代理性）”看作一个连续的光谱，有些系统的Agentic强一些，有些弱一些。我深以为然。</p><p>Agent和Agentic的争论让我想起前几年的“互联网+”和“+互联网”路线之争。曾经很多互联网企业想用“互联网”手段把所有传统行业重做一遍，但几轮补贴烧钱之后一片狼藉，真正为社会带来变革的反而是传统行业老兵，用互联网的技术完成数字化转型，凤凰涅槃后重获新生。</p><p>马克吐温说：“历史不会重复，只总会押着同样的韵脚”。不要为了智能而智能，更不要强行智能。与其让用户用“对话”形式完成所有工作，不如想办法让用户在现有流程中更高效。你看，虽然大模型的编码能力越来越强，但开发者最喜欢用的还是像Cursor这样的编程IDE。</p><h2 id="二、触点：选择用户高频且强感知的场景"><a href="#二、触点：选择用户高频且强感知的场景" class="headerlink" title="二、触点：选择用户高频且强感知的场景"></a>二、触点：选择用户高频且强感知的场景</h2><p>在明确了Agentic形式之后，我们面临的第二个问题是，要把AI集成在系统的哪里？答案很简单，集成在用户的高频且强感知的场景里。</p><p>梁宁在《真需求》中描述了如何用「使用频率」、「感知程度」两个维度来识别用户场景，</p><p><img src="/blog/%22null%22"></p><ul><li>• 用户使用频率：很多场景会表现出周期性，我们做产品也要尽量选择高频场景。比如为什么京东要入局做外卖，核心就是电商是个相对低频的场景，而外卖则相对高频。你可能一年才买一次数码产品，但可能天天点外卖。</li><li>• 用户感知程度：用户对这个场景的优化有没有“体感”，“体感”有多强？就像手机厂商再怎么宣传手机的性能参数，也不如重点打美颜自拍，“照亮你的美”</li></ul><p>对于我所负责企业内部的高可用平台，用户使用最高频且强感知的场景就是“处理系统告警”。</p><h2 id="三、目标：帮用户完成ta的“任务”"><a href="#三、目标：帮用户完成ta的“任务”" class="headerlink" title="三、目标：帮用户完成ta的“任务”"></a>三、目标：帮用户完成ta的“任务”</h2><p>理解用户要完成的核心任务，是设计好用Agent的关键。克里斯坦森在《创新者的窘境》中提出了著名的”Job to be Done”理论：用户购买产品不是为了拥有产品本身，而是为了”雇佣”这个产品来完成某项特定的工作。这个理论放在AI Agent的设计上同样适用——用户使用你的Agent，本质上是想“雇佣”它来完成自己的某项任务。</p><p>就像Uber的核心任务不是”提供出租车”，而是”帮用户从A点到B点”；外卖平台的核心任务不是”送餐”，而是”解决用户的饥饿问题”。同样，我们的高可用平台Agent的核心任务也不是”处理告警”，而是”帮助用户快速恢复系统稳定性”。明确了核心任务后，Agent的设计就有了清晰的方向：</p><h3 id="1、如何缩短用户完成工作的步骤？"><a href="#1、如何缩短用户完成工作的步骤？" class="headerlink" title="1、如何缩短用户完成工作的步骤？"></a>1、如何缩短用户完成工作的步骤？</h3><p>拿系统告警处理举例，传统的告警处理流程往往冗长：接收告警→查看各种监控指标→分析日志→定位问题→执行修复→验证结果。每个环节都需要用户手动操作，在紧急故障面前，这种流程既耗时又容易出错。</p><p>Agent的价值就在于把这个多步流程压缩成一步操作。当系统告警触发时，Agent自动拉取相关监控数据、分析异常模式、提供修复建议，甚至在用户确认后直接执行修复操作。用户从原来的“手忙脚乱找问题”变成了“确认Agent的诊断和建议”。</p><p>这让我想起iPhone刚发布时，乔布斯演示如何用手指放大网页的那个瞬间——原来需要键盘快捷键的复杂操作，变成了直觉的手势。好的Agent设计也应该有这种“化繁为简”的魅力。</p><h3 id="2、主动服务，而非被动响应"><a href="#2、主动服务，而非被动响应" class="headerlink" title="2、主动服务，而非被动响应"></a>2、主动服务，而非被动响应</h3><p>更进一步，优秀的Agent不应该只是等待用户的指令，而要像一个贴心的助手一样主动发现问题、主动提供帮助。</p><p>在我们的实践中，当出现告警任务时Agent会主动接手，基于告警内容，结合我们暴露的MCP Server主动寻求答案，当用户点开告警任务去处理时，发现Agent已经准备好了答案，或已经搜集好了更多的信息，只等开发者决策是扩容还是回滚。</p><p>这种主动服务的理念，其实就是把Agent从“工具”升级为“伙伴”。用户不再需要记住各种提示词技巧，Agent会在恰当的时机主动出现，提供恰当的帮助。当Agent真正理解了用户要完成的任务，并能够主动、高效地帮助用户达成目标时，才会有“你懂我”的超预期体验。</p><h2 id="四、设计系统提示词，而非搭建工作流"><a href="#四、设计系统提示词，而非搭建工作流" class="headerlink" title="四、设计系统提示词，而非搭建工作流"></a>四、设计系统提示词，而非搭建工作流</h2><p>Rich Sutton在《The Bitter Lesson》（苦涩的教训）中写道：70年的AI研究历史告诉我们一个最重要的道理，以来纯粹算力的通用方法，最终总能以压倒性优势胜出。这个观点放在Agent设计上同样适用，与其精心设计复杂的工作流，不如相信语言模型的推理能力，用好的系统提示词来引导它。</p><p>Anthropic在《Building Effective Agents》对Agent和Workflow有着清晰的界定和描述，Workflow是预定义的步骤序列，适合处理结构化、可预测的任务；而Agent则更适合处理开放性、需要推理和决策的复杂场景。很多开发者在构建Agent时陷入了一个误区：试图用工作流的思维来设计Agent，结果做出来的系统既不如工作流稳定，也没有Agent的灵活性。</p><p><img src="/blog/%22null%22"></p><p>图来自Anthropic的博客，Agent的设计有着简单的美感</p><p>在我们的高可用平台实践中，最初的设计思路也是工作流导向的：先判断告警是什么类型，对于单机类问题要如何处理，对于业务指标异常要如何处理，Agent要按照人类专家经验来做。这种方式看似逻辑清晰，但实际运行中问题重重，不仅要配置难以维护的复杂流程图，还扼杀了Agent的灵活性。</p><p>在我看到Cline、Cursor、Devin的System Prompt之后惊讶的发现，这么好用的编程Agent竟然没有在系统提示词中写任何编程技巧，它们没有写用Java应该如何编程，遇到特定的需求要用什么样的设计模式，只写了目标、能力、能调用的工具列表、工作原则、约束条件。我恍然大悟。</p><p>当然，这并不意味着工作流毫无价值。在确定性高、重复性强的场景下，工作流仍然是最优选择。关键是要明确什么时候用Agent，什么时候用Workflow。正如Anthropic所说：使用最简单、最可靠的方法来完成任务。如果一个简单的工作流就能解决问题，就不要过度设计Agent；但如果任务需要推理、判断和灵活应对，那就要充分发挥Agent的优势。</p><h2 id="结语、从“按我说的做”到“你看着办”"><a href="#结语、从“按我说的做”到“你看着办”" class="headerlink" title="结语、从“按我说的做”到“你看着办”"></a>结语、从“按我说的做”到“你看着办”</h2><p>做Agentic的开发，其实代表着人类与AI协作关系的重新定义。在传统软件开发中，产品经理和程序员扮演着“上帝”的角色：我们精确定义每一个功能点，设计每一个交互流程，编写每一行代码逻辑。系统必须严格按照我们的设计意图执行，不允许有任何越界行为。但在AI的世界里，我们不再试图穷尽所有可能的场景，而是告诉Agent：“我有这些工具，面对用户的需求，怎么做你看着办。” 从此，我们不再是AI的“指挥官”，而更像是AI的“教练”。</p><p>这种转变对开发者提出了新的要求。我们需要更深入地理解业务本质，因为只有理解了“为什么”，才能设计出好的系统提示词；需要更敏锐的产品直觉，因为Agent的表现很大程度上取决于我们对用户需求的理解；需要更开放的心态，因为AI可能会给出我们从未考虑过的解决方案。</p><p>在这个AI Agent的元年，让我们从“按我说的做”的控制思维，转向“你看着办”的协作思维。相信AI，但也要引导AI；放手让AI发挥，但也要设定好边界。只有这样，我们才能做出更“好用”的AI Agent。</p><p>延伸阅读：</p><ul><li>• <a href="https://mp.weixin.qq.com/s?__biz=MzkzNzYzMjQ3Mw==&mid=2247483916&idx=1&sn=93d1048ef3acbe9829840d9ff6afd004&scene=21#wechat_redirect">MCP到底解决了谁的什么问题？</a></li><li>• <a href="https://mp.weixin.qq.com/s?__biz=MzkzNzYzMjQ3Mw==&mid=2247483903&idx=1&sn=c1fc90795fc516ec6c44c45067e6b36a&scene=21#wechat_redirect">如何做出好用的开发者产品？</a></li><li>• <a href="https://mp.weixin.qq.com/s?__biz=MzkzNzYzMjQ3Mw==&mid=2247483928&idx=1&sn=10996d4f75ac97626e4c32193eadaa76&scene=21#wechat_redirect">如何与Cursor结对编程？</a></li></ul>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/9f3aed25.html</id>
    <link href="https://www.rockbot.cc/blog/posts/9f3aed25.html"/>
    <published>2025-05-31T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h2 id="前言：有了MCP，就有好用的AI-Agent了吗"><a href="#前言：有了MCP，就有好用的AI-Agent了吗" class="headerlink" title="前言：有了MCP，就有好用的AI Agent了吗"></a>前言：有了MCP，就有好用的]]>
    </summary>
    <title>别再堆MCP工具了，好用的AI Agent始于一个“懂你”的System Prompt！让Agent从“能干活”变“懂人心”，理解比调用更重要。</title>
    <updated>2026-05-10T12:24:25.515Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<h1 id="前言、人人都是开发者？"><a href="#前言、人人都是开发者？" class="headerlink" title="前言、人人都是开发者？"></a>前言、人人都是开发者？</h1><p>编码正在变得越来越简单。N年之前就有低代码平台让非技术人员用“拖拉拽”的方式搭建页面，在大语言模型迅猛发展的今天，各种AI编程助手更是让“人人都是开发者”成为可能，外网火爆的8岁小孩哥用Cursor写游戏的新闻让许多人惊呼“编程门槛已被彻底打破”，“5分钟写出一个App&#x2F;微信小程序”的自媒体文章更让我们这些大龄码农倍感焦虑。</p><p>然而，我在使用Cursor写代码的时候发现它并不是那么听话，跟它说一个需求它常常脑补一些别的功能，让它改一个bug，可能又顺带着引入一个别的bug。在长时间跟Cursor“斗智斗勇”之后，我发现要让AI成为靠谱的开发者同事，还并不仅仅是会生成代码那么简单。真正的开发能力源于对系统性思维的掌握，而非单纯的代码编写技巧。就像一个优秀的建筑师不仅需要懂如何堆砌钢筋混凝土，更需要掌握空间规划、力学原理甚至有美学思维，一名优秀的开发者不仅要会堆砌代码，更需要具备领域建模、业务流程抽象、上下游协同等更全面的能力。</p><p>本文将探讨在AI时代，哪些开发者背后的隐藏技能仍然不可或缺，以及如何让在企业内真正落地“人人都是开发者”。</p><h1 id="一、建模：万物皆有模型"><a href="#一、建模：万物皆有模型" class="headerlink" title="一、建模：万物皆有模型"></a>一、建模：万物皆有模型</h1><p>什么是“建模”？建模就是“构建模型”的缩写，是将不同的、复杂的现实世界抽象为通用的、便于理解的形式。在软件开发中，建模意味着识别出系统中的关键元素及其关系，并以结构化的方式表达出来。</p><p>《Thinking in UML》一书把所有的软件系统抽象为人、事、物、规则 这几个核心要素，</p><ul><li>• 人：系统的使用者和参与者，具有不同的角色、权限和行为特征</li><li>• 事：系统中发生的活动、事件和流程</li><li>• 物：系统中的资源、数据和对象</li><li>• 规则：定义系统运行边界和约束的各种条件</li></ul><p>这种抽象的模式亘古不变，并且会让原本复杂的世界变得简单清晰很多。比如，设计一个在线选课平台，用人、事、物、规则来建模的话，可以画一个类似的图</p><p>基于这个底层模型，可以设计数据库表的结构，比如学生信息都有哪些，课程的信息都有哪些，学生跟所选课程之间的关系通过什么表来记录等等。</p><p>这个底层模型需要开发者事先跟AI讲清楚达成共识，否则一句话需求“设计一个在线选课系统”，在现阶段很难让AI直接生成可用的版本。如果你再有个性化的需求，AI就更无法帮你实现出来了。</p><h1 id="二、画流程图：让复杂过程可视化"><a href="#二、画流程图：让复杂过程可视化" class="headerlink" title="二、画流程图：让复杂过程可视化"></a>二、画流程图：让复杂过程可视化</h1><p>之前听一个架构师讲，“凡是动词都有其流程”。在确定系统的底层模型之后，需要再把核心的流程图画出来。流程定义了业务如何运转、数据如何流动、用户如何与系统交互。比如要实现“学生登录系统”这个动作，健壮的系统需要考虑到通过什么方式认证身份，如果用户名不合法要怎么处理，密码遗忘要怎样找回等等流程。比如，</p><p>流程图是开发者与业务人员的共同语言，它能够清晰展示业务逻辑和系统工作流，发现潜在的逻辑缺陷和优化空间，是开发实现和测试验证的基础。</p><p>在实际开发中，AI已经可以根据自然语言描述生成流程图代码（如Mermaid或PlantUML），但开发者可能仍需要手动微调，确保流程符合业务需求。</p><h1 id="三、确定通信协议：系统互联的桥梁"><a href="#三、确定通信协议：系统互联的桥梁" class="headerlink" title="三、确定通信协议：系统互联的桥梁"></a>三、确定通信协议：系统互联的桥梁</h1><p>在对流程图达成共识之后，需要进一步设计交互协议&#x2F;API。这些API出现在不同的对象相互通信的交互点。比如上图的前端与后端有一个交互是“发送登录请求”，那么就需要有一个API的定义。完善的API文档应包括URL、请求格式、响应格式、认证方式等信息。这个用户登录API的文档可能如下：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line">API: 用户登录  </span><br><span class="line">URL: /api/v1/auth/login  </span><br><span class="line">方法: POST  </span><br><span class="line">内容类型: application/json  </span><br><span class="line">  </span><br><span class="line">请求体:  </span><br><span class="line">&#123;  </span><br><span class="line">  &quot;username&quot;: &quot;string&quot;, // 用户名  </span><br><span class="line">  &quot;password&quot;: &quot;string&quot;  // 密码  </span><br><span class="line">&#125;  </span><br><span class="line">  </span><br><span class="line">成功响应 (200 OK):  </span><br><span class="line">&#123;  </span><br><span class="line">  &quot;token&quot;: &quot;string&quot;,       // JWT令牌  </span><br><span class="line">  &quot;user&quot;: &#123;  </span><br><span class="line">    &quot;id&quot;: &quot;string&quot;,        // 用户ID  </span><br><span class="line">    &quot;username&quot;: &quot;string&quot;,  // 用户名  </span><br><span class="line">    &quot;role&quot;: &quot;string&quot;       // 用户角色  </span><br><span class="line">  &#125;  </span><br><span class="line">&#125;  </span><br><span class="line">  </span><br><span class="line">错误响应 (401 Unauthorized):  </span><br><span class="line">&#123;  </span><br><span class="line">  &quot;error&quot;: &quot;string&quot;,       // 错误代码  </span><br><span class="line">  &quot;message&quot;: &quot;string&quot;      // 错误描述  </span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>上下游交互的API设计方式与上方类似，只是在企业内部可能会有通信更加高效的RPC协议。</p><p>当前AI可以帮助生成API文档，但开发者仍需要理解业务需求，确定合适的接口粒度，评估AI生成的接口设计是否符合安全性、性能和可扩展性要求。在与上下游确定API协议之后，就可以分别进行开发啦。</p><h1 id="四、设计测试用例：AI质量保障的基石"><a href="#四、设计测试用例：AI质量保障的基石" class="headerlink" title="四、设计测试用例：AI质量保障的基石"></a>四、设计测试用例：AI质量保障的基石</h1><p>现在可以让AI写代码了吗？且慢。如同再优秀的程序员也会写bug一样，AI也会写出bug。并且AI在开发者的提示之后，可能越改越乱。如果你不懂代码，简直不知道它在修复这个bug的过程中，是否引入了新的bug</p><p>让代码没有bug的方式是测试。在传统软件行业中，开发者和测试人员是两种不同的角色，测试人员根据对产品流程的理解产出测试用例。良好的测试用例应覆盖所有关键功能和业务场景，包含正常流程和各种异常情况。</p><p>在1990～2000年，软件开发流行一种“测试驱动开发（TDD，Test-Driven Development）”的方法论，其核心思想是 先编写测试用例，再实现功能代码。在确保所有测试通过后，对代码进行优化和重构。有测试作为保障，开发者可以放心地进行重构，而不必担心引入新的错误。如此重复循环，逐步完善系统功能。</p><p>听起来很不错，但实际落地过程中会面临很多挑战，由于需要额外编写测试代码，TDD可能会增加开发时间，红-绿-重构的流程显得过于繁琐和教条。更麻烦的是，在测试过程中需要构造各种测试数据，传统方式不仅麻烦，还可能会遗漏。</p><p>好消息是TDD理论有望在AI时代重焕升级，毕竟测试用例、测试数据都可以让AI来生成嘛。</p><ul><li>• 不想自己写测试用例？只需要告诉AI：<code>请根据PRD用产出测试用例，需要考虑各种边界条件，用Xmind的格式输出</code>。开发者只需要review测试用例，确保测试用例的设计与产品原型保持一致。</li><li>• 测试数据不好构造？只需要告诉AI：<code>以下是我的建表语句: CREATE TABLE xxxxxx，请针对于XX文件XX方法帮我生成测试数据的insert SQL，正常场景和各种异常场景都要考虑到</code>就可以得到直接能用的测试数据。</li></ul><h1 id="五、设置编码规约：一致性的保障"><a href="#五、设置编码规约：一致性的保障" class="headerlink" title="五、设置编码规约：一致性的保障"></a>五、设置编码规约：一致性的保障</h1><p>在设计完所有的测试用例之后，在正式写代码之前，还有一件事需要做。为了让AI能写出可读性强、扩展性好、风格统一的代码，必须要让它遵循一些约束条件。比如，变量如何命名、代码如何缩进、日志如何打印、异常如何处理等等。</p><p>阿里巴巴Java开发规约是业内广泛采用的编码规约，可以把强制、建议的规约显式写出来让AI遵循，在Cursor中可以使用Rules来完成对规约的设置，</p><h1 id="六、正式编码：一次只做一件事"><a href="#六、正式编码：一次只做一件事" class="headerlink" title="六、正式编码：一次只做一件事"></a>六、正式编码：一次只做一件事</h1><p>终于可以开始写代码了，为了让整个开发过程太过发散，避免“胡子眉毛一把抓”，强烈建议“一次只做一件事”，每次代码修改只聚焦在一个功能点，完成之后提交，然后再做下一个。</p><p>“一次只做一件事”也体现了软件工程中的单一职责原则（Single Responsibility Principle）：一个类应该只有一个引起它变化的原因。即每个类只负责一个功能领域，每个方法只完成一个明确定义的任务。</p><p>体现在AI编程上的最佳实践是开发者先写注释，由AI生成代码。这样每个方法上都有标准的注释，极大增强了代码的可读性。把业务逻辑全部都写完之后，可以让AI把代码的流程图用<code>mermaid</code>语法输出出来，跟PRD中流程做一次double check</p><h1 id="结语：人人都可以是“创造者”"><a href="#结语：人人都可以是“创造者”" class="headerlink" title="结语：人人都可以是“创造者”"></a>结语：人人都可以是“创造者”</h1><p>AI编程可以说是AI应用领域中最早找到PMF（Product Market Fit，产品市场匹配）的方向之一，并且已经展现出强大的商业化潜力。</p><p>AI工具可以降低开发门槛，提高开发效率，然而，想要真正用好AI，跟它结对编程，更重要的是建模能力、把复杂的问题拆解成简单任务的能力，以及能跟其他角色更好的协作能力。</p><p>AI时代，必将“人人都是开发者”、“人人都是产品经理”、“人人都是设计师”、“人人都是XXX”，在这个新的范式里，人人都可以是“创造者”，用AI释放自己的想象力、执行力与影响力。不会某项技能不会决定你的天花板，能不能提好问题、能不能带着AI一起解决问题，才是AI时代的核心竞争力。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/a4db54e2.html</id>
    <link href="https://www.rockbot.cc/blog/posts/a4db54e2.html"/>
    <published>2025-04-18T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h1 id="前言、人人都是开发者？"><a href="#前言、人人都是开发者？" class="headerlink" title="前言、人人都是开发者？"></a>前言、人人都是开发者？</h1><p>编码正在变得越来越简单。N年之前就有低代码平台让非技术人员用“拖拉拽]]>
    </summary>
    <title>人人都是开发者？人人都是创造者</title>
    <updated>2026-05-10T12:24:25.514Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<h1 id="序言、为什么写这篇文章"><a href="#序言、为什么写这篇文章" class="headerlink" title="序言、为什么写这篇文章"></a>序言、为什么写这篇文章</h1><p>在程序员的世界中，有一条广为人知的“鄙视链”：“Talk is cheap, show me the code”。这句话常用来强调代码的实际价值，而轻视那些夸夸其谈的人。我们常常把这句话奉为圭臬，然而，生成式AI让这句话发生了反转，现在是“Code is cheap, show me the prompt”。让AI生成代码、让AI生成文字、让AI生成XX，“talk”成了影响AI生产力的核心因素。</p><p>在实际工作中，不论是技术规划、技术交流、技术方案等，都需要通过文字来表达，我把这些文字统称为技术类文章。文章写得好可以极大提升自己的技术影响力，但写技术文章无疑是比写prompt更复杂、更困难的任务。身边很多程序员同事会因为觉得日常工作过于简单而无事可写，或因为自己“小时候语文不好”而无从下笔。如果再要求要写出深度，就更是“难于上青天”了。</p><p>写出高质量的技术类文章通常意味着清晰的选题、充分的调研、深入的思考，以及清晰有逻辑的表达。笔者在近两年累计写了百余篇技术类文章，以下是我对写作“套路”的经验总结，欢迎批评指正。</p><h1 id="一、以“问题”驱动选题"><a href="#一、以“问题”驱动选题" class="headerlink" title="一、以“问题”驱动选题"></a>一、以“问题”驱动选题</h1><p>写技术类文章不是“为赋新词强说愁”，它的首要目标是解决现实问题。现实问题可以是要对某个方案达成共识，可以是一次向上汇报，也可以是围绕自己的经验教训做分享。例如，在国内企业大规模出海的过程中，肯定会面临多国家部署、多时区、多币种等问题，对于这类问题是否有最佳实践，是否能沉淀成架构模式，或是指导手册，或是工具能力？</p><p>还有一种选题思路是“举一反三”，遇到一个小问题，可以思考在更大范围内该问题是否也存在，或者其他同类型的问题是否存在。例如，某个技术类工单是因为网络抖动导致调用下游失败，可以思考针对下游异常的通用重试策略是怎样的？如果遇到NullPointerException导致的故障，可以思考通用的异常处理模式是怎样的，如何分级处理异常？</p><p>当然，如果一时想不起来也没关系，可以保持对问题的持续“探测”。工作就是在不断解决问题，如果在解决问题时更再多想一层、更进一步，那就会持续超出别人的预期。如果同时还能有技术类文章的沉淀产出，那就是一石三鸟了。</p><p>机会总以问题的形式出现。</p><h1 id="二、用“卡片笔记法”积累素材"><a href="#二、用“卡片笔记法”积累素材" class="headerlink" title="二、用“卡片笔记法”积累素材"></a>二、用“卡片笔记法”积累素材</h1><p>没有人从零开始写作，高质量的输出需要更多高质量的输入。在写作之前至少要看看市面上是否已经有了相关主题的内容，别人的角度是怎样的，避免自己以为写的是洞见，但其实早已经是常识了。既然花时间写，那就说点别人不知道的，写点真正新鲜的内容。</p><p>很多同学反馈说，读过很多书但是记不住啊。对此，我深有同感，我现在重读一些书，看到自己之前在空白处写的读书笔记会有种错觉：“这是我写的吗？”，完全没印象了。《卡片笔记写作法》一书把这种笔记称为“思想的坟场”。这里的残酷真相是：</p><blockquote><p>很多人在阅读时习惯划线、标注，甚至摘抄原文。然而，这些做法看似是在记录信息，实际上很少能帮助我们真正理解和消化内容。如果不经过主动的思考和总结，这些所谓的“笔记”其实并没有多大作用。</p></blockquote><p>真正有用的笔记方法是德国社会学教授卢曼创造的卡片笔记法。卢曼使用这种方法在30年内出版了58本著作和数百篇文章，成为20世纪最伟大的社会学家之一。我也是卡片笔记法的拥趸，使用flomo（浮墨笔记）两年多，已积累了2600+笔记卡片，近400个标签，并还在持续记录中。</p><p>flomo也是受卢曼卡片笔记法启发做的笔记软件，他们的创始人去年出了一本《笔记的方法》，把记笔记的关键方法进一步提炼为三个，</p><h2 id="1、用自己的话做笔记"><a href="#1、用自己的话做笔记" class="headerlink" title="1、用自己的话做笔记"></a>1、用自己的话做笔记</h2><p>真正有效的笔记应该是用自己的话复述。不是说要摘录原文的话，再写自己的感想，而是要用自己的话，用自己的经验，把作者的观点推导出来，变成就像自己说的一样。这两种方式是完全不同的，一种是评论，另一种是阐述。</p><p>这一点跟“费曼学习法”的道理是一样的，你只有能把别人教会，你才算真的懂了。很多时候你以为你看懂了，合上书之后，并不能把作者的观点复述出来，这还不是真正的理解</p><h2 id="2、笔记的标签管理法"><a href="#2、笔记的标签管理法" class="headerlink" title="2、笔记的标签管理法"></a>2、笔记的标签管理法</h2><p>《笔记的方法》讲，笔记的价值在于增援未来的自己。我们需要高效地对已有笔记进行管理，才能在未来用的时候找得到、用得上。而“标签”就是对笔记做管理的最佳实践。</p><p>例如，在传统的文件夹模式下，「电动按摩椅」要么被放在「家用电器」中，要么被放在「家具」中，相互排斥。而标签的好处在于，你可以在任意一个卡片上添加多个标签，方便你将来的回忆和查找。在flomo中还可以通过多级标签的方式对笔记做更结构化的管理。例如，我最近在读《华为数字化转型之道》，就用标签把这本书和我们的一款产品联系了起来</p><p><img src="/blog/"></p><h2 id="3、持续不断回顾"><a href="#3、持续不断回顾" class="headerlink" title="3、持续不断回顾"></a>3、持续不断回顾</h2><p>做了笔记并不是终点，持续回顾不仅能抵抗遗忘曲线，还能让老笔记与新想法产生碰撞，说不准会有新的启发。flomo支持每天随机回顾4~24条笔记，在回顾卡片笔记时，我一般会对笔记做重新整理：</p><ul><li>• 删：删除不知所云的笔记，删除只有url的笔记、删除重复的内容、删除有事实错误的卡片。大胆删吧，很多内容以前没看，以后也不会看</li><li>• 加：增加标签，关联已有卡片。比如，2023年记录的一个卡片，突然发现跟2024年的项目相关，那就在原来的基础上增加项目标签。这里的本质是新增连接，新连接产生的新想法，就是知识的复利。</li></ul><h1 id="三、用“黄金思考圈”深入思考"><a href="#三、用“黄金思考圈”深入思考" class="headerlink" title="三、用“黄金思考圈”深入思考"></a>三、用“黄金思考圈”深入思考</h1><p>很多技术同学很擅长解决实际问题，可能最终结果也不错，但在项目复盘的时候，问及“为什么这么做不那么做”、“为什么做这个不做那个”、“为什么是你做不是ta做”的时候就懵了。要避免项目复盘的时候被别人问懵，需要自己在立项方案中事先回答这些“灵魂拷问”。</p><p>作家Simon Sinek在《Start With Why》一书中提出一种思考模型：“黄金思考圈”，它强调伟大的领导者和组织不是从“做什么”开始思考和沟通，而是从“为什么”开始，然后是“怎么做”，最后才是“做什么”。</p><p><img src="/blog/"></p><p>（网图，侵删）</p><p>由于技术类文章是为了解决实际问题，因此最好也遵循这样的模式，写出自己的解决方案的推演逻辑。这样不仅可以让文章的结论更有说服力，也可以避免读者再通过问题来获取你的思考过程，让文章更清晰。</p><p>现在我越来越赞同卢曼的观点：“不写，就不可能系统性地思考”。写作不仅是思考的外化，更可能是思考的本身。</p><h1 id="四、站在“读者视角”做结构化表达"><a href="#四、站在“读者视角”做结构化表达" class="headerlink" title="四、站在“读者视角”做结构化表达"></a>四、站在“读者视角”做结构化表达</h1><p>写到这里，终于可以说说如何落笔了。如果前面准备得比较充分，写下来就是水到渠成的事。我们唯一需要注意的就是要站在“读者视角”表达。</p><p>当你看到这个观点的时候，先不要盲目赞同，用黄金思考圈审视一下，至少应该能问出3个问题，</p><ol><li><ol><li>Why，为什么要站在读者的视角写作？</li></ol></li><li><ol start="2"><li>How，如何站在读者视角写作？</li></ol></li><li><ol start="3"><li>What，站在读者视角写作具体包括哪些内容？</li></ol></li></ol><p>这么简单且正确的一句话，如果你不能清晰地回答这3个问题，那说明你并没有真的理解，而只是“知道了”。下面是我的回答</p><ol><li><ol><li>为什么要站在读者视角写作？</li></ol></li></ol><ul><li>• 读者不是必须要读你的文章，你的文章必须要对读者有用，才能吸引他们读下去</li><li>• 读者读文章需要消耗精力，你需要尽量不“额外”消耗对方精力，才能让ta读完（还可以追问：为什么读者读文章需要消耗精力？我们大脑是如何理解一件事的？）</li></ul><ol start="2"><li><ol start="2"><li>如何站在读者视角写作？使用“金字塔”的结构呈现，先提出结论，然后再提供支持这个结论的论据，包括数据、事实、分析等。（市面上讲职场写作的培训课，底层都是《金字塔原理》）</li></ol></li><li><ol start="3"><li>站在读者视角写作具体包括哪些内容？</li></ol></li></ol><ul><li>• 有吸引力的开头：用故事化的方式写序言，写出背景、<strong>冲突</strong>、疑问、回答。</li><li>• 金字塔内部的纵向关系：父主题用于勾起读者的疑问，子主题是父主题的回答</li><li>• 金字塔内部的横向关系：归纳与演绎是仅有的两种思想组织形式</li></ul><p>你有没有发现本文也是按照金字塔的方式构建的？</p><ul><li>• 序言中的“然而”、“但是”都是表达“冲突”，核心是要回答读者头脑中已有的问题，或者可能会提出的问题，确保能够吸引读者的注意</li><li>• 本文的每一个父标题、子标题都遵循了金字塔的结构，用户可能对父标题产生疑问，为什么这么说？应该怎么做？子标题负责回答、解释、阐述</li><li>• 同级的标题与标题之间是在同一个层级，并且符合归纳或演绎逻辑。例如，“以问题驱动选题”、“用卡片笔记积累素材”、“用黄金思考圈深入思考”、“站在读者视角做结构化表达”是归纳了“写出高质量技术文章”的四个步骤；演绎的形式一般会用“故”、“所以”、“因此”的关键词来呈现，大家后续在读文章的时候，也可以做一些留意。</li></ul><h1 id="结语、我们的写作能力从何而来？"><a href="#结语、我们的写作能力从何而来？" class="headerlink" title="结语、我们的写作能力从何而来？"></a>结语、我们的写作能力从何而来？</h1><p>至此，本文的正文就写完了，希望能对你有一些启发。最后我想跟你探讨一下：我们的写作能力是从哪儿来的？</p><p>写作能力当然不是天生的，它只是一种技能。回顾我们的教育过程，高考作文要求不低于800字，有范文、要用“好词好句”；大学生、研究生要求写论文，但并没有老师系统性地讲过如何写论文，如何用概念、逻辑、数据、实例对观点进行证明；工作之后，更没有动力学习如何写作。也就是说，哪怕你已经工作了很多年，如果没有刻意练习，你的写作能力可能还停留在高中水平，甚至更低。</p><p>对于技术类文章，或者论文等非虚构类写作，生成式AI很可能也指望不上。我们不需要AI生成正确的废话，更需要提供洞见、解决问题。短期而言，AI无法替代具有洞见的人类工程师，更无法替代掉能解决实际问题的工程师。AI可以作为写作的辅助工具，但它不是写作的全部，更不是写作本身。</p><p>好在写作并不难，只需要持续地学习和练习。《卡片笔记写作法》说，“如果你想写好一篇文章，你只需要对一个好的草稿去做打磨；如果你想写出一个好的草稿，你只需要把一些笔记变成连贯的文字；如果你想把文字变得连贯，只需要整理那些卡片盒中的相关笔记；如果你想有很多相关联的笔记，只需要在阅读时有一支笔。”</p><p>翻开书，拿起笔，从阅读开始，从记录卡片笔记开始。祝每位技术同学都能写出既有深度又有洞见的文章，发挥出更大的影响力。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/cc7b7c56.html</id>
    <link href="https://www.rockbot.cc/blog/posts/cc7b7c56.html"/>
    <published>2024-10-06T16:00:00.000Z</published>
    <summary>
      <![CDATA[<h1 id="序言、为什么写这篇文章"><a href="#序言、为什么写这篇文章" class="headerlink" title="序言、为什么写这篇文章"></a>序言、为什么写这篇文章</h1><p>在程序员的世界中，有一条广为人知的“鄙视链”：“Talk is ch]]>
    </summary>
    <title>写出高质量的技术类文章通常意味着清晰的选题、充分的调研、深入的思考，以及清晰有逻辑的表达</title>
    <updated>2026-05-10T12:24:25.512Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>前言</p><p>朱光潜（1897年10月14日－1986年3月6日），中国现代著名的美学家、文艺理论家、教育家。早年在北京大学学习，后赴英国留学，先后在爱丁堡大学和伦敦大学学习，获得博士学位。他的主要学术贡献包括对西方美学理论的引进和研究，其著作《西方美学史》是中国美学研究的经典之作。</p><p>《给青年的十二封信》是朱光潜先生在20世纪30年代写给青年读者的一系列信件，最初发表在《中学生》杂志上，后被集结成书。值得一提的是，《谈美》也是以书信体的形式，将美学知识娓娓道来，是经典的美学启蒙读物。</p><p>我觉得先生偏爱书信体，体现了一种平等的尊重，也拉近了与读者的距离，用现在的流行语来说就是”没有爹味“，就像与朋友聊天一样，聊自己的观点和思考，让人如沐春风。前段时间团建时，无意中听到同事推荐，读起来爱不释手，分享几篇我的读书笔记，权当是学生的一点反馈。</p><p>谈动</p><p>我们上大学的时候流行“郁闷”，现在的年轻人流行“emo”。无意义感、不爽的感觉在持续侵扰着不同时代的青年，但我没想到朱光潜是这么劝慰大家的：“我们究竟还是自然的奴隶，要想’征服’自然，必须先服从自然、顺应自然，我们是’动物’，所以天性就是动。人好动、好发展和创造。动、发展、创造，是顺应天性，就会快乐，不动、不发展、不创造就会烦恼。”</p><p>动起来！行动起来！作为大厂的一颗大号螺丝钉，我会习惯性焦虑，项目的进展、团队的方向、职业的规划，时常萦绕于心，但这些啊，归根结底在于想得太多做得太少，一旦动起来，就不觉得惶惶不可终日了。毕竟，不动什么都不会改变，动起来总有一丝生机。</p><p>在财务自由之后，就会开心吗？叔本华说，人总是在痛苦和无聊之间来回摇摆。对于有着“闲愁”烦恼的人来说，消解的方式也是一样的。动起来！弹弹琴、养养花、打打球，即便不喜欢这些，就说说笑笑、跑跑跳跳也是好的。</p><p>谈静</p><p>人生乐趣，一半得于活动，一半得于感受。动静结合，互为补充。《谈静》主要说的就是“感受”。不同的人对同一件事的感受能力有很大差别。比如同样看到一条鱼，有的人看到的是食材，有的人看到的是鱼的种类和习性，有的人看到的是鱼的自由自在或是鱼与水的关系。</p><p>很多天才或有成就的人，不仅仅是他们做得好，更多的可能是他们的感受力异于常人。比如音乐家能听出多个音的和谐与否，音盲甚至区分不了自己是否跑调。优秀的演员之所以优秀，首先是他们能感受到什么是自然的表演，知道“应该”是什么样的。</p><p>这种感受力，一半是天生，一半是后天修炼。很多时候我们麻木不仁，是“心”太忙了。但是到底应该于百忙之中偶然获得“静趣”？作者没有说，可能也是每个人都不一样。多读书、多旅行，偶尔把身体和大脑抽离出日常环境，可能是一种途径。</p><p>谈升学与选课</p><p>这篇非常具体。我惊讶于他作为”青年人的导师“，竟然这么接地气。因为升学和选课的问题，我曾经也被亲戚家的小孩问过。年轻的大学生不知道怎么选课，跟我们当时读大学时如出一辙。我现在知道选课不要急功近利，要更多基于自己兴趣，而不是基于臆断出来的工作需要。一方面是工作需要与学校教育之间相差太大，在大学里学到的内容很难直接用于工作；另一方面是这样的心态会消解掉”好奇心“和”求知欲“。好奇心会会让人主动思考，“工作需要”对每个知识点都会权衡是否会考，反而心浮气躁、患得患失。</p><p>先生说职业教育需以宽大自由的博雅教育或通识教育为基础，否则人会肤浅乏味。现代社会过度强调”效率“，甚至有种把人异化的倾向，在社会这个大机器上作为一颗螺丝钉或齿轮，当停下来的时候反而不知所措。从个人幸福的角度出发，我们也要尽可能多涉猎其他领域的知识，在自己的精力范围因，尽可能多选择自己喜欢的课程。</p><p>还有有的时候选课犹豫，可能是害怕选错课导致的时间或精力的浪费。但我认为很多时候”遗憾“比”浪费“更可惜，尤其是在提升自己这个大的”战略“方向上，需要做到”饱和式攻击“，哪怕有点点浪费，也认了。</p><p>谈人生与我</p><p>先生说，“我有两种看待人生的方法，一种是把自己放在前台，跟世界的一切人和物玩把戏；一种是把自己摆在后台，袖手看旁人在那里装腔作势。”</p><p>站在前台时，不把自己看得太特殊，甚至主动把自己“物化”等同于花鸟鱼虫。对此我是认同的，这样不会太敏感，遇到一些不开心的遭遇可以很快调节自己，在遇到开心的事情也可以心存感激。再有啊，花鸟鱼虫可能比人类更幸福啊。“我请你在春天到百花齐放的园子里去，看看蝴蝶飞，听听鸟儿鸣，然后再回到十字街头，仔细瞧瞧人们的面孔，你看谁是活泼，谁是颓废？请你在冬天积雪凝寒的时候，看看雪压的松树，看着站在冰上的鸥和游在水中的鱼，然后再回头看看遇苦便叫的那“万物之灵”，你以为谁比较能耐苦持恒呢？”</p><p>先生站在后台看人生的态度呢？俩字：看戏。没有是非善恶视角，纯看戏。“悲剧也就是人生一种缺陷。它好比洪涛巨浪，令人在平凡中见出庄严，在黑暗中见出光彩。假如荆轲真正刺中秦始皇，林黛玉真正嫁了贾宝玉，也不过闹个平凡收场，哪得叫千载以后的人唏嘘赞叹？”</p><p>话虽如此，但对此我并不以为然。比如我之前读蔡磊的《相信》，就被他的故事震撼和感动。在蔡磊自己病情逐渐恶化的情况下，他向渐冻症发起了史无前例的、自不量力的、愚公移山般的“反击”，在被劝无数次“别折腾了”之后，竟然被他劈出一条小路，先以自己作为节点连接了众多病友，创建了全球最大的渐冻症病友大数据平台，再通过自己的人脉不断寻找外部资源，亲自带队做新技术的探索与研发，让整个流程变得更高效成本更低。我想这样的故事，是没有办法用冷眼来看的，必须有热血的行动。</p><p>后记</p><p>本书是很薄的小册子，虽然是几十年前的书，但很多建议还是颇有启发，不觉过时。太阳底下无新事，很多事情也在重复发生，我们不要觉得物质世界的发展、科技的进步造就了有更先进思想的人，知识不能遗传，也就意味着历史上有太多的人经历了我们类似的苦闷烦忧，他们的困境、他们的思考、他们的行动，都可以供我们借鉴。</p><p>最近读了几本“故事书”，感觉都颇有启发，也很有趣。读李飞飞的《我看见的世界》，写自己如何从底层的华人移民一步步成为斯坦福大学教授，并被人们尊称为”AI教母“；读田浩江的《歌剧院的图兰朵》，写自己从北京锅炉厂工人到纽约大都会歌剧院的一幕幕酸甜苦辣。我们花几个小时看过的书啊，都是凝结了别人几年甚至几十年的生活经验，这信息密度，这智慧含量，怎么能让人不读下去！</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/cfeca329.html</id>
    <link href="https://www.rockbot.cc/blog/posts/cfeca329.html"/>
    <published>2024-07-20T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>前言</p>
<p>朱光潜（1897年10月14日－1986年3月6日），中国现代著名的美学家、文艺理论家、教育家。早年在北京大学学习，后赴英国留学，先后在爱丁堡大学和伦敦大学学习，获得博士学位。他的主要学术贡献包括对西方美学理论的引进和研究，其著作《西方美学史》是中国美学]]>
    </summary>
    <title>历史上有太多的人经历了我们类似的苦闷烦忧，他们的困境、他们的思考、他们的行动，都可以供我们借鉴</title>
    <updated>2026-05-10T12:24:25.511Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>一、引言</p><p>最近，“萝卜快跑”的新闻频频出现在我们的视野中，无人驾驶技术正在逐步走进我们的生活。这一技术的出现不仅预示着交通方式的变革，也引发了关于就业、安全和社会变革的广泛讨论。</p><p>有人为科技进步和创新的便捷性欢呼，认为这是中国技术进步的象征；也有人担忧这将威胁到网约车司机的生计，甚至可能引发社会不稳定因素。无人驾驶真的来了吗？以后还用买车吗？网约车司机何去何从？无人驾驶是好的技术吗？虽然我不是从业者，但希望管中窥豹，推演一下未来的样子</p><p>二、自动驾驶的分级及当下坐标</p><p>根据国际汽车工程师学会SAE的标准，自动驾驶技术分为六个等级，从完全手动驾驶的L0到无需人工干预的L5。L1提供单一自动化功能支持，L2能同时执行多个自动化功能，L3在特定条件下实现完全自主驾驶，L4在限定区域内无需人工干预，而L5则在任何区域都能完全自主驾驶。</p><p>工信部2024年公布有9家车企进入全国首批L3自动驾驶上路通行试点名单，包括一汽、上汽、广汽、长安、北汽蓝谷、比亚迪、蔚来、上汽红岩以及宇通客车。百度Apollo、小马智行（Pony.ai）等企业具备L4级无人驾驶能力。</p><p>目前没有企业能做到L5级别的无人驾驶，不管是以特斯拉为代表的纯视觉方案（FSD），还是国内车企常见的多传感器融合方案，都面临复杂环境下的种种挑战。例如，摄像头在夜间或恶劣天气下的视觉感知能力会下降，激光雷达在雨雾天的穿透能力有限。在遇到陌生交通环境时，相比于人类驾驶员，自动驾驶的泛化能力明显不足，比如在武汉发生过两辆萝卜快跑出租车因互相谦让对方，导致交通堵塞。</p><p>三、不同视角下的无人驾驶</p><p>根据Fortune Business Insights的调研报告，2023年全球自动驾驶汽车市场规模达到18.8亿美元，预计到2032年将增长至387.8亿美元，复合年增长率为 42.3%，显示出这一领域的巨大潜力和增长速度。自动驾驶的技术进步不是自然发生的，其背后有一个巨大的市场引擎作为驱动。会涉及到交通行业上下游的各个角色，我们看看比较关键的几个视角，</p><p>1、政府视角</p><p>中国政府对自动驾驶技术的发展是高度重视和支持的，不仅在政策上提供便利，还在多个城市设立了测试区域，以促进技术的发展和应用。比如，《新一代人工智能发展规划》将自动驾驶列为重点发展领域，并提出到2025年实现高度自动驾驶的商业化应用目标。</p><p>在社交媒体平台上，“无人驾驶震惊外国人”等相关视频不断破圈，也让无人驾驶成为武汉的科技名片。最近几天外交部发言人也点赞了“赛博武汉”，称这些外国游客沉浸式的随手拍展现了中国发展的勃勃生机。可见，不管是地方政府还是中央，都对无人驾驶的这种科技创新持正面态度。</p><p>2、企业视角</p><p>新能源车企、传统车企、互联网相关企业都在积极布局自动驾驶赛道，加上下游的配件、传感器、控制系统等，自动驾驶是一个完整的产业链。</p><p>根据前瞻经济学人的报道，2014-2023年间，中国无人驾驶汽车领域共发生投资事件620起，投资金额2122.12亿元人民币，显示出资本市场对这一领域的高度关注和投入。</p><p>最近火出圈的萝卜快跑号称已经在L4路测1亿公里，虽然现在还在贴钱教育市场，但“低价”收集到的轨迹数据才最核心的技术壁垒。</p><p>3、网约车司机视角</p><p>网约车司机作为即将被无人驾驶“颠覆”的对象，心中可能五味杂陈。一方面是本身网约车已经很卷，性价比越来越低；另一方面是几千万的员工数量，一旦被失业将会是几千万个家庭的苦难，甚至是整个社会的不安全因素。</p><p>考虑到网约车司机的受教育程度和年龄，拥抱新技术的挑战还是很大的。车企如何吸纳这部分人员的就业，以及政策上是否能通过再教育、补贴等方式让这部分人“软着陆”，是构建和谐社会的关键措施。</p><p>4、乘客视角</p><p>乘客对萝卜快跑大多是正面反馈，其中最明显的感知是“便宜”，叠加上优惠券平均每公里不到￥1块钱；其次是“安全”，在行驶过程中会保持安全距离，遇到行人或车辆时会明显减速或急刹车，据百度的数据显示，萝卜快跑实际车辆出险率仅为人类司机的1&#x2F;14；还有“省心”，不需要考虑车里是否有异味、是否需要跟司机尬聊等等</p><p>从这几个视角推演下来，自动驾驶已经是大势所趋，就像纺织工人砸向蒸汽机的铁锤无法阻挡工业革命一样，自动驾驶的技术进步也不会眷顾因循守旧的人。</p><p>四、面向未来，适者生存</p><p>对于车企而言，降低成本和提高安全性是赢得市场的关键。例如，通过采用更高效的传感器和算法，可以减少车辆成本并提高其在复杂环境中的适应性。百度称萝卜快跑的整车成本已经从45万下降到了20多万，成本降低了60%；为了更安全，在云端还有云驾驶员处理一些特殊情况。在未来，谁能更安全地服务乘客，谁能把运营成本做到更低，谁就能立于不败之地。</p><p>对于网约车司机，虽然无人驾驶不会立刻让大量网约车司机失业，但未来生存空间一定越来越小。好在无人驾驶的到来，也必将催生新职业的诞生，比如传统司机转型为无人驾驶的”路测安全员“、无人驾驶车辆的监控员、做无人驾驶车的清扫运维等，可能是适应这一变革的有效途径。当然，可以在政策的引导下转做其他行业，毕竟，我们说这辆车是一辆车，和我们说这个人是一个司机是完全不同的。车无法决定自己的身份和用途，而司机如果下班或者转行，他就不再是一个司机了。</p><p>在这个快速变化的时代，每个人都应该具备终身学习的能力，不断掌握新的技能、适应新环境。或许，无人驾驶带来的不只是技术革命，还有人的重新定位，以及无限可能。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/2a8a4cab.html</id>
    <link href="https://www.rockbot.cc/blog/posts/2a8a4cab.html"/>
    <published>2024-07-13T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>一、引言</p>
<p>最近，“萝卜快跑”的新闻频频出现在我们的视野中，无人驾驶技术正在逐步走进我们的生活。这一技术的出现不仅预示着交通方式的变革，也引发了关于就业、安全和社会变革的广泛讨论。</p>
<p>有人为科技进步和创新的便捷性欢呼，认为这是中国技术进步的象征；也有]]>
    </summary>
    <title>无人驾驶技术正在逐步走进我们的生活，这不仅预示着交通方式的变革，也引发了关于就业、安全和社会变革的广泛讨论。未来已来</title>
    <updated>2026-05-10T12:24:25.511Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>引言</p><p>本周5月14日，OpenAI发布了最新的大模型GPT-4o，多项优化能力以及与AI实时互动的场景让人印象深刻。看很多公众号文章已经在各种吹捧GPT-4o，我们也来凑个热闹看看未来世界的样子。</p><p>GPT-4o（“o”代表“全能”）是更自然的人机交互的一步——它可以接受任何文本、音频、图像和视频的组合作为输入，并生成任何文本、音频和图像的组合输出。它可以在 232 毫秒内响应音频输入，平均响应时间为 320 毫秒，这与人类在对话中的响应时间相似。</p><p>测试下来，感觉GPT-4o已经不仅仅是传统意义上的大“语言”模型，而是一个功能全面的智能体了。</p><p>一、图片识别：惊人的细节捕捉能力</p><p>随手拍一张小朋友在上网课的照片，让GPT-4o来识别，相比于GPT-4来说，GPT-4o描述了更多的细节</p><p><img src="/blog/"></p><p>可以看出来，GPT-4o的图片识别不仅限于表面，它甚至能够深入到图片的语义层面。它能够识别出图片中的情感和故事，比如孩子对学习的渴望，或是家庭环境中的温馨和安宁。这种深层次的理解，让GPT-4o在图片识别上超越了简单的图像处理，它能够提供更加丰富和人性化的解读。</p><p>二、批改作业：小学生的学习助理</p><p>不少小学生家长对辅导作业都非常头疼，尤其是对语文的写作。我们试试GPT-4o是否可以承担学习助理的职责，把“看图写话”拍照给它。这对AI是一个很大的挑战，首先它要理解哪个区域是题目，哪个区域是回答；其次要能理解这幅画想要表达的内容；再次要将所有的手写体正确识别为标准汉字；最后进行批改审阅后输出</p><p><img src="/blog/"></p><p><img src="/blog/"></p><p>这个能力显著超越GPT4，GPT4不仅没有理解哪部分是题目，还把题目中的汉字识别错了，把”小朋友，猜一猜，这是什么季节？“ 识别为”小熊熊，挥一挥，这是什么树？“</p><p><img src="/blog/"></p><p>对比GPT4的图片识别能力，就能意识到GPT-4o能力的”恐怖“。在辅导作业这件事上，AI已经超越我了。可以想象，随着模型的不断升级，GPT-4o在教育领域的应用将更加广泛，为孩子们提供更加丰富和个性化的学习体验，优质的教育资源从此不再稀缺，真正实现因材施教。</p><p>三、编辑音乐：0基础0代码搞定</p><p>音乐是人类情感的表达，现在也可以用AI生成各种风格的音乐了，我之前写了两篇用Suno.ai生成音乐的文章可以查阅。用Suno.ai生成音乐虽然简单，但音质较差，没法发布成网易云音乐中的歌曲。这次，我们让GPT-4o来帮忙升级一下音质</p><p><img src="/blog/"></p><p>GPT-4o可以分析声音的质量，并提供改善音质的建议，但这还不够，因为太复杂了，我不想掌握这些音乐编辑软件。再提一个更“过分”的要求，</p><p><img src="/blog/"></p><p>GPT-4o的服务态度，真的很好呢。下载后，真的可以用，音质似乎提高了很多，尽管我听不出来明显差别</p><p>四、搜索RAG：有待提升</p><p>直接问最近比较火的综艺节目《我是歌手2024》参赛歌手和排名情况，虽然GPT-4o已经可以搜索了，但回答的结果并不正确。第二期排名里，海来阿木是第5名，杨丞琳是第7名被淘汰。</p><p>拿同样的提示词来问Kimi（左图），回答出正确的答案，并且Kimi在参考资料的数量和推理结果上都优于GPT-4o（右图）</p><p><img src="/blog/"></p><p>五、语音交互：最自然的沟通方式</p><p>在人机交互的历史中，语音一直是一种最自然、最直接的沟通方式。GPT-4o的语音交互功能，正是将这种自然沟通方式提升到了一个新的水平。语音交互只在手机App上可用，网页版是没有的。</p><p>这里要说一下字节的豆包app，我认为豆包的语音是国内AI App中声音是最自然流畅的，停顿、音色、语气助词都恰到好处，毫无AI痕迹。</p><p><img src="/blog/"></p><p>六、实时交互：尚未开放</p><p>跟Google2个多小时I&#x2F;O大会相比，OpenAI的26分钟“发布会”，狙击Google的意味太明显了。Introducing GPT-4o的视频中，主持人演示了可以与ChatGPT进行实时交互，非常自然流畅，但这个能力还没有对所有人开放。</p><p><img src="/blog/"></p><p>GPT-4o的实时交互能力，在技术上是完全可行的，这预示着实时交互技术已经达到了一个新的高度，它不仅提升了用户体验，还为未来开辟了新的应用场景，结合着VR、AR，提供沉浸式的体验</p><p>评测总结：大模型还没到边界</p><p>现在回看ChatGPT3.5，GPT3.5是AI时代的“iPhone4时刻”，它开启了AI时代。但不得不说，纯纯的大语言模型现在已经显得笨拙和落伍。我们现在看到的GPT-4o已经俨然是一个智能体了。GPT-4o在图像识别以及复杂任务规划方面表现的相当亮眼，如果再加上实时图像识别和语音交互功能，将带来极具科幻感的体验。</p><p>其实真正让我惊讶的不是GPT-4o的能力，而是GPT-4o的输入混合了文本、视觉和音频，所有的输入和输出都由同一个神经网络处理。“由于 GPT-4o 是我们第一个结合所有这些模态的模型，我们仍然只是在探索模型能做什么以及它的局限性。” 说大白话就是It works，但我们都不知道是怎么回事，我们正在朝着未知的未来狂奔…</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/68484eb4.html</id>
    <link href="https://www.rockbot.cc/blog/posts/68484eb4.html"/>
    <published>2024-05-18T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>引言</p>
<p>本周5月14日，OpenAI发布了最新的大模型GPT-4o，多项优化能力以及与AI实时互动的场景让人印象深刻。看很多公众号文章已经在各种吹捧GPT-4o，我们也来凑个热闹看看未来世界的样子。</p>
<p>GPT-4o（“o”代表“全能”）是更自然的人机]]>
    </summary>
    <title>GPT-4o正在模糊大模型与智能体的边界</title>
    <updated>2026-05-10T12:24:25.510Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p><img src="/blog/"></p><p>CAP定理，这个名字你可能听过无数次，但你真的了解它吗？本文将从似懂非懂的CAP定理入手，深入理解「分区」的关键因素，探讨CAP的进阶版本：PACELC，帮助你在十分钟内理解CAP定理。</p><p><strong>目录</strong></p><ul><li><ol><li>前言：似懂非懂的CAP定理</li></ol></li><li><ol start="2"><li>对「分区」的理解是关键因素</li></ol></li><li><ol start="3"><li>CAP的进阶版本：PACELC</li></ol></li><li><p>3.1 只有分区出现时，才需要抉择A和C</p></li><li><p>3.2 没有分区问题时，需要考虑L和C</p></li><li><p>4. PACELC对我们的启发</p></li></ul><p><strong>1. 前言：似懂非懂的CAP定理</strong></p><p>大名鼎鼎的CAP定理，相信很多人都听过，但具体是什么意思，对我们日常工作有什么指导价值呢？最近在学习数据架构，翻阅了一些资料，发现能讲明白的比较少。比如，CAP定理在百度百科中，它是这么解释的：</p><p>CAP原则又称CAP定理，指的是在一个分布式系统中， Consistency（一致性）、 Availability（可用性）、Partition tolerance（分区容错性），三者不可兼得。</p><ul><li>一致性（C）：在分布式系统中的所有数据备份，在同一时刻是否同样的值。（等同于所有节点访问同一份最新的数据副本）</li><li>可用性（A）：保证每个请求不管成功或者失败都有响应。</li><li>分区容忍性（P）：系统中任意信息的丢失或失败不会影响系统的继续运作。</li></ul><p>再来看维基百科的词条解释：</p><ul><li>一致性（Consistency）（等同于所有节点访问同一份最新的数据副本）</li><li>可用性（Availability）（每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据）&#x2F;&#x2F; Every request receives a (non-error) response, without the guarantee that it contains the most recent write.</li><li>分区容错性（Partition tolerance）（以实际效果而言，分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性，就意味着发生了分区的情况，必须就当前操作在C和A之间做出选择。）</li></ul><p>理解CAP理论的最简单方式是想象两个节点分处分区两侧。允许至少一个节点更新状态会导致数据不一致，即丧失了C性质。如果为了保证数据一致性，将分区一侧的节点设置为不可用，那么又丧失了A性质。除非两个节点可以互相通信，才能既保证C又保证A，这又会导致丧失P性质。</p><p>维基百科中对于可用性的描述，「非错的响应」跟「不管成功或失败都有响应」的描述应该是同一个意思，但明显有歧义；单纯看这两个定义非常的晦涩和抽象。比如，「分区容错性」到底是什么意思呢？CAP的一致性一般是指「强一致性」，但现实中的分布式系统大量都是最终一致性，它是否还具备指导意义？还有还有一些文章会结合着ACID，BASE一起讲，概念叠概念，缩写加缩写，看得我也是云山雾罩。</p><p>这些问题困扰了我好久，本篇文章算是自己的一篇笔记，如有不正确的地方，欢迎批评指正。</p><p>&#x2F;&#x2F; 核心观点，省流不看版本</p><ul><li>当我们谈论“分区”时，就是在指节点之间的通信已经中断或不可达，形成两个或多个独立运行的分区；</li><li>只有分区出现时，才需要抉择A和C；</li><li>没有通信问题时，需要选择延迟L和C。</li></ul><p><strong>2. 对「分区」的理解是关键因素</strong></p><p>「分区容错性」在很多文章中被解释为：系统可以在网络分区情况下继续运行。但这句话过于抽象，应该如何理解？</p><p>在分布式系统中，节点分布在不同的机器、不同的网段，甚至不同的机房内。当网络故障时，会把系统分成两个或多个独立的运行单元。而<strong>当我们谈论“分区”时，就是在指节点之间的通信已经中断或不可达</strong>，形成了两个或多个分区。</p><p>通过几道测试题，验证你是否真的懂了</p><p>Q1</p><p>点击空白处查看答案</p><p>如果系统的节点都分布在同一个机房，这个系统还会出现分区吗？</p><p>是。即使在同一个机房内，分布式系统设计者仍然需要考虑到分区容错性。事实上，在现代的云架构和微服务架构中，即使在同一数据中心内，设计者仍然假设分区是可能发生的，并使用合适的策略和技术来应对这种情况。</p><p>Q2</p><p>点击空白处查看答案</p><p>如果系统有10台机器，无状态地提供服务，这个系统还是出现分区的吗？</p><p>是。当我们谈论分区容错性或网络分区时，我们指的是系统中某些机器可能由于网络原因而无法与其他机器通信。这与系统是否有状态或无状态无关。</p><p>Q3</p><p>点击空白处查看答案</p><p>所有的分布式系统都可能出现分区，对吗？</p><p>对。任何涉及多台计算机之间网络通信的分布式系统都可能遭遇网络分区，无论网络基础设施有多可靠，总存在失败的可能性。</p><p>Q4</p><p>点击空白处查看答案</p><p>在物流供应链系统中，会有多个子系统；订单从电商系统进入到物流履约系统、再经过处理进入仓储系统、打包出库后进入配送系统，最后进入末端站点系统；如果把整个供应链看成一个大的系统的话，这多个子系统是否可以理解为多个「分区」？</p><p>不可以。这些子系统有独立的职责，它们在正常操作中并不被视为不同的“分区”，而是正常和预期的数据交换。但是，如果在某些情况下，例如由于网络问题或其他故障，导致物流履约系统无法与仓储系统通信，那么在那个特定时刻，这两个子系统可以被视为处于不同的“分区”。</p><p>由于分布式系统中，总是可能存在因网络原因导致的“分区”存在，所以CAP定理可以退化为是选择CP还是选择AP的问题，即分布式系统需要在「可用性」和「一致性」之间作出选择。看起来好像变简单了，但我再问你：</p><p>Q</p><p>点击空白处查看答案</p><p>在分布式系统中，是否可能不存在分区？</p><p>是。在上文中，我说**「当我们谈论“分区”时，就是在指节点之间的通信已经中断或不可达**，形成两个或多个独立运行的分区」。节点之间的通信当然可能恢复，当网络没有问题的时候，就可以理解为不存在“分区”了。而当没有分区P的时候，我们自然不需要做可用性和一致性的抉择，鱼和熊掌我们都要。</p><p>你有没有发现，CAP并没有考虑一个分布式系统中的重要因素？分布式系统的关键特性在于，系统中的组件通常在物理上是分散的，并且在运行时彼此独立，分布式系统之间的相互通信必须要考虑到「网络延迟」。对，CAP忽略的重要因素就是「延迟」，Latency。</p><p><strong>3. CAP的进阶版本：PACELC</strong></p><p>CAP定理是Eric Brewer在2000年提出的猜想，虽然在2002年得到了证明，但距离现在已经有20多年，我们大可抱着怀疑的态度来审视它。事实上，Eric Brewer自己在2012年写过一篇文章对CAP定理做了一版更新的解释：CAP Twelve Years Later: How the “Rules” Have Changed，其中补充了对延迟的描述</p><p>In its classic interpretation, the CAP theorem ignores latency, although in practice, latency and partitions are deeply related. Operationally, the essence of CAP takes place during a timeout, a period when the program must make a fundamental decision-the partition decision:</p><ul><li>cancel the operation and thus decrease availability.</li><li>proceed with the operation and thus risk inconsistency.</li></ul><p>在其经典的解释中，CAP 定理忽略了延迟，尽管在实践中，延迟和分区是密切相关的。在操作上，CAP 的本质发生在一个超时期间，一个程序必须做出一个基本决策的时期——分区决策:</p><ul><li>取消操作，降低可用性</li><li>继续操作，存在一致性的风险</li></ul><p>2010年耶鲁大学Daniel J. Abadi提出的PACELC可以看作是CAP定理的一个扩展或是校准。不要被PACELC这么多字母吓到了，它其实很简单，核心说了两件事：</p><ol><li><p>如果存在分区P，那么系统需要选择A或者C，跟CAP一样；</p></li><li><p>否则Else，选择延迟Latency或是C &#x2F;&#x2F; 要么延迟低 &amp;&amp; 无法保证强一致性，要么延迟高 &amp;&amp; 保证强一致。</p></li></ol><p><strong>▐ 3.1 只有分区出现时，才需要抉择A和C</strong></p><p>用两个案例来说明CP和AP的场景</p><p>**【历史工单案例】**商家ERP调用仓储发货接口，某次发货请求调用超时后被统一封装成了调用失败的错误码，但实际仓储成功作业后出库。上游ERP看到失败后重新发起对菜鸟仓储的推单请求，导致重复发货资损。</p><p><img src="/blog/"></p><p>这个案例中，调用请求超时让商家ERP和菜鸟仓储系统形成了两个「网络分区」，双方的状态都处于一个不确定态；在这个案例中，菜鸟的系统选择了可用性A，显式地告诉商家ERP确定性的结果，结果就是放弃了一致性C，数据不一致导致重复发货资损。</p><p>在这种场景更好的做法是选择一致性C，放弃可用性A。也就是说，如果没有办法保证一致性，宁可不可用。毕竟跟重复发货导致的资损相比，单笔请求不可用的危害小多了。不可用之后可以由系统规则或人工做兜底的检查，最终实现一致性。</p><p>**【架构设计案例】**菜鸟快递员使用揽件app上门揽件，为了不阻塞快递员的操作，在弱网或者离线环境下，允许快递员先使用app完成揽收操作，等网络状况恢复后再进行数据同步。</p><p><img src="/blog/"></p><p>这种在弱网或没有网络的场景下，手机端的app和云端的server形成了两个分区。这里明显是选择了可用性A，而短暂地放弃了数据的一致性C。从这里也能发现，CAP定理还有一点没有讲，那就是当分区不存在之后，恢复数据一致性需要基于业务场景提前设计策略。</p><p><strong>▐ 3.2 没有分区问题时，需要考虑L和C</strong></p><p>A high availability requirement implies that the system must replicate data. As soon as a distributed system replicates data, a trade-off between consistency and latency arises.</p><p>高可用性要求意味着，系统必须复制数据。一旦分布式系统复制了数据，就会出现一致性和延迟之间的权衡。</p><p>**【架构设计案例】**菜鸟某业务作为物流行业的基础设施，在N年前实现了异地双活架构，要求在各数据节点保持强一致同步，折中接受了跨城写的延迟。</p><p><img src="/blog/"></p><p>**【架构设计案例】**以下是两个例子说明了在没有分区存在时，选择延迟（Latency）而放弃一致性（Consistency）的场景：</p><ul><li>实时多人在线编辑文档（如 Google Docs）：当多个用户同时编辑同一个文档时，为了提供流畅的用户体验，系统可能会允许短暂的不一致性（比如，不同用户看到的内容稍有差异）。一旦用户的编辑被提交，系统会尝试合并这些更改。</li><li>社交媒体的时间线或信息流（如 Twitter 或 微博）：当用户发布新的动态或图片时，为了快速响应，这些更新可能不会立刻对所有用户可见。系统可能会选择首先将这些更新存储在某些节点上，而其他节点稍后再获取这些更新。这意味着，在某个短暂的时间内，不同的用户可能看到的信息流是不同的。</li></ul><p><strong>4. PACELC对我们的启发</strong></p><p>对于程序员或架构师来说，掌握PACELC协议不仅是体现了对分布式系统设计原理的深刻理解，更重要的是可以指导系统设计。由于CAP和PACELC定理已经被证明是存在的，我们在实际工程实践中，针对于一致性（Consistency）、可用性（Availability）、分区容忍性（Partition Tolerance）和延迟（Latency）需要做一些折中和权衡。</p><p>在云原生架构下，分布式系统面临着更复杂的网络及运行环境，网络分区、节点故障等异常已经是“常态”或者“共识”。如何在网络异常或延迟的情况下，保障业务系统的稳定性与健壮性，是每一位开发者不得不面对的问题。希望本篇文章可以对开发者有所启发，让每位同学都能用通过健壮的代码为用户提供稳定、高效和可靠的服务。</p><p><strong>▐ 延伸阅读</strong></p><p>[01]. CAP Twelve Years Later: How the “Rules” Have Changed</p><p><em><a href="https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed/">https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed/</a></em></p><p><strong>END</strong></p><p><img src="/blog/"></p><p><strong>阅读更多好文</strong></p><ul><li><a href="http://mp.weixin.qq.com/s?__biz=MzkxNTM0MDM3NA==&mid=2247488655&idx=1&sn=40024efe5f33cfe45d47bde8b5f09269&chksm=c161f9b6f61670a040045b2c9729f2d441ec137054523886ff919b659d60e8e24470b087bf27&scene=21#wechat_redirect">应用机器内存过高的排查&amp;优化</a></li><li><a href="http://mp.weixin.qq.com/s?__biz=MzkxNTM0MDM3NA==&mid=2247488605&idx=1&sn=d4da012ada52530944b7d070bba996f9&chksm=c161f964f616707289412b72a94210f764f367f357f4bd647f27d3dba0aae910a86748398542&scene=21#wechat_redirect">你怎么知道我用Arthas火焰图排查了性能问题？</a></li><li><a href="http://mp.weixin.qq.com/s?__biz=MzkxNTM0MDM3NA==&mid=2247487982&idx=2&sn=0d39f805af50ed1b8a15ce5129690b23&chksm=c161fcd7f61675c17b8b9765fb8e3cafb00e265ff6fff49d9aba283c847b2bb92e3e6ae3c9dd&scene=21#wechat_redirect">菜鸟通用导入导出解读篇</a></li></ul>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/ba0acef9.html</id>
    <link href="https://www.rockbot.cc/blog/posts/ba0acef9.html"/>
    <published>2024-04-19T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p><img src="/blog/"></p>
<p>CAP定理，这个名字你可能听过无数次，但你真的了解它吗？本文将从似懂非懂的CAP定理入手，深入理解「分区」的关键因素，探讨CAP的进阶版本：PACELC，帮助你在十分钟内理解CAP定理。</p>
<p><strong>目录]]>
    </summary>
    <title>通过在物流系统中的应用实践，带你理解分布式系统的CAP定理</title>
    <updated>2026-05-10T12:24:25.509Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>题记：创作音乐还能不能再简单一点儿</p><p>书接上篇：<a href="http://mp.weixin.qq.com/s?__biz=MzkzNzYzMjQ3Mw==&mid=2247483818&idx=1&sn=1785b7beeeac8aa4625621ecd37e8bde&chksm=c28d361cf5fabf0ab4e8ddba1b945fbb1d3ba9c06539c015932d45f5d7ba24c60a951652b1f5&scene=21#wechat_redirect">如何用Suno.ai创作音乐？</a> 毕竟订阅Suno花了$10，为了不浪费，就再写一篇咯。最近事情也比较多，就延续这个主题再写写。</p><p>用Suno创作音乐虽然简单，但自己随便生成的音乐很多都没法听，跟别人用AI创作的音乐相去甚远。今天我就再拆解一下，看怎么把创作的质量提上来，效率提上来。终极目标是我们只说“创作动机”，其他剩下的事全部让AI一条龙承接掉。创作动机可以是一件事、一段话，甚至一个词，从“创作动机”到音乐生成再到上传到网易云音乐播客，有几个因素绕不开，即：</p><ol><li>歌词，如果你不是创作纯音乐的话，歌词可能需要反复调整打磨</li><li>歌名，一般是基于歌词进行提炼，可以用AI生成</li><li>音乐风格，如何为音乐选择一个合适的曲风，也是一件比较头疼的事</li><li>单曲封面，为创作的音乐生成一张图片，这个用DALL-E3就可以</li></ol><p>好像也还是挺复杂的，有没有什么办法能用AI做进一步简化？当然有，那就是“AI套娃”~ 来看看怎么让AI更高效地给我们打工吧，here we go~</p><p>一、创作歌词的一些背景知识</p><p>“请为我生成一首歌词”，像这种“0-shot prompt”的用法，AI生成的歌词质量大概率不太行。那怎么才能行呢？我也不知道，不过AI肯定知道啊</p><p><img src="/blog/"></p><p>还有一般歌词里边都有前奏、副歌、solo等标签，我们看Suno一些其他的歌词中也有这样的标签，那么都有哪些呢？</p><p><img src="/blog/"></p><p>OK，背景知识基本上差不多了。那么，如何让AI“一次性”生成“看起来”很专业的歌词呢？</p><p>二、用Workflow对LLM进行编排</p><p>在创作的时候，你可以为Bot写一个超复杂的提示词Prompt，用一个Bot来解决所有问题，我把它称作“诸葛亮模式”。相对应的，我们还可以用多个职责单一的Bot来实现同样的效果，就叫它“臭皮匠模式”吧。“诸葛亮模式”一般人没那个实力，“臭皮匠模式”对普通用户倒是更好操作一些。</p><p>这里用到了字节的Coze.com的workflow功能，考虑到国内版的“扣子”在模型基座上稍微比较弱，我就不尝试啦。如何使用coze，可以参考我的文章：<a href="http://mp.weixin.qq.com/s?__biz=MzkzNzYzMjQ3Mw==&mid=2247483712&idx=1&sn=bf1706fde20f95a96a245465cdc97d2e&chksm=c28d36f6f5fabfe026e4b878b0d8bf2d96b57a0e4181909494521c180825aaae0234b6ce7932&scene=21#wechat_redirect">字节Coze平台调研：还不仅仅是免费用GPT4</a></p><p><img src="/blog/"></p><p>打开Coze，我创建了一个create_lyrics的流程，点击进入编辑页面。一个新的workflow至少了两个固定的节点，Start和End，Start节点里边有一个Input字段，这里就是我们要填写的”创作动机“，比如我命名它为subject</p><p><img src="/blog/"></p><p>然后，我们先拖动一个LLM节点过来，跟Start节点连上。这个LLM节点我们把它重命名为lyrics_creator，节点的Input是Start节点的subject变量，在Prompt里边我们可以用{“ }subject}}” }来获取具体传入的内容。有点编程基础的小伙伴很容易理解，{“ }}}” }就是模板里边的占位符，subject就是传入的变量。</p><p>我们把刚从GPT那儿获取的歌词创作背景知识拷贝过来。为了避免LLM节点的废话，我们再多嘱咐一句“请不需要有任何多余的说明，只输出歌词”。</p><p>最后，Output就是LLM输出的内容了，为了方便跟后面的变量区分，我们把output的变量重命名为lyrics（当然不改也行）</p><p>三、把歌词再打磨一下</p><p>为了保证歌词的质量，我们再添加一个名为lyrics_judger的LLM节点，对歌词再做一次修改。这个人还会给歌词增加元标签，让它显得更专业一些</p><p><img src="/blog/"></p><p>经过这个节点生成的歌词，我们叫它modified_lyrics。经过二次创作后的歌词就出现啦。</p><p>四、基于歌词创作标题</p><p>轻车熟路，我们再来一个LLM节点，这次的Input就是上一个节点的Output，也就是modified_lyrics</p><p><img src="/blog/"></p><p>创作标题的逻辑描述我们放在Prompt里边，即标题就是歌词中反复出现的主题和元素。最后的Output就是歌名title啦</p><p>五、基于歌词创作音乐风格</p><p>歌词和曲风肯定是要相匹配的，不然听起来违和感会比较严重。考虑到我们也不知道都有哪些风格，就还是辛苦LLM告诉我们吧</p><p><img src="/blog/"></p><p>这个节点的输出信息就是Output中的styles，即音乐风格</p><p>六、整合起来，大功告成</p><p>把这些节点跟End节点连起来，设置好输出的变量，就是前面几个节点生成的标题、歌词、音乐风格，</p><p><img src="/blog/"></p><p>最后把这些输出的内容贴到Suno.ai上，就可以啦。音乐风格可以调整，可以根据自己喜好进行删减。整体生成的质量比之前随机生成的要好很多</p><p><img src="/blog/"></p><p>魔法时间：听听在经过多层AI创作之后生成的音乐</p><p>七、一些拓展思路</p><p>用“AI套娃”本质上是多用几个LLM来帮我们干活儿。这个思路在工作中其实很常见，我们不同职位的同事就是不同的零部件，各司其职，通过“workflow”支撑着公司这部巨大机器的高效运转。当你发现LLM不好用的时候，不妨多用几个，让它们每个人只完成任务流的一个环节，说不准就能搞定了。</p><p>在LLM领域里，除了workflow之外，还有一种模式叫Multi-agents，顾名思义就是用多个LLM定义的Agent，区别于我们平时用的ChatGPT或GPTs（Single-agent）。Multi-agents通过模拟多人协同，可以解决更贴近真实场景的问题。比如，在我的打工范畴里有Code review、需求实现、故障定位等等，在你们打工的机会点就留给你们自行思考啦。</p><p>以上就是文章全部内容，如果对你有点点启发，欢迎点一下“在看”和“点赞”~</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/b448bad8.html</id>
    <link href="https://www.rockbot.cc/blog/posts/b448bad8.html"/>
    <published>2024-04-13T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>题记：创作音乐还能不能再简单一点儿</p>
<p>书接上篇：<a href="http://mp.weixin.qq.com/s?__biz=MzkzNzYzMjQ3Mw==&mid=2247483818&idx=1&sn=1785b7beeeac8aa4625621ecd]]>
    </summary>
    <title>让创作音乐更简单</title>
    <updated>2026-05-10T12:37:31.027Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>题记：实践后的独立判断</p><p>本周Suno.ai火到了国内，很多公众号都发了Suno相关文章，对其生成的音乐质量或赞或踩，众说纷纭。</p><p>作为一名音乐爱好者和独立思考者，我对这些说法颇不以为然。首先，音乐“好听”&#x2F;“不好听”本身就是主观的判断，没有客观标准；其次，AIGC现阶段一定比不上具体领域内的大师，这是对现阶段AI的基本判断，期待过高或者鄙视都不是正确的态度。</p><p>为了避免人云亦云，我决定实际体验一下Suno，看看到底咋样~</p><p>一、为什么用AI创作音乐是靠谱的</p><p>AIGC本质上是预测，所谓创作，也都有迹可循。虽然我并非音乐专业，但对于一些陌生的歌，偶尔也可以准确地预测出最后一个字是什么音调。经过大量音乐数据训练过的AI，肯定比我的预测能力更强。</p><p>AIGC预测的前提是“理解”，对于音乐而言，不同的音乐风格有着不同的节奏和旋律，相同风格的音乐组成部分大同小异。比如重金属大都有强烈的吉他演奏和快速的节奏，华尔兹一定是3&#x2F;4的蹦擦擦。一般来说AI是理解不了这些抽象概念的，BUT，LLM好像找到了另一把打开音乐之门的钥匙。借用GTC大会上黄仁勋的话说：“只要可以被数字化的内容，都可以被AI理解，一旦可以被理解，就可以被AI生成。”</p><p>先给你听一段我用AI创作的一首曲子，春日序曲</p><p>是不是很像那么回事儿，事实上我只设定了这首曲子的音乐风格和标题，其他都是AI自动生成的。</p><p>AI让“人人都可以创作音乐”，这个把音乐创作门槛铲平的公司就是Suno，一家成立于2022年的初创公司，创始人Mikey Shulman是物理学博士，emmm，怎么说呢，一切皆有可能吧~</p><p>二、教学：如何用Suno创作音乐</p><p>下面正式进入教学环节，请同学们打开Suno的网址，<a href="https://app.suno.ai/">https://app.suno.ai/</a>   蛤？你打不开？打不开就对啦，访问Suno首先需要翻越一堵高墙 🪜</p><p>下面假设你已经可以打开Suno.ai（毕竟本篇的重点不在🪜），首先映入眼帘的是Explore页，在这里可以看到其他网友用Suno创作的音乐，可以试听、点赞、分享，以及二次创作</p><p><img src="/blog/"></p><p>听完之后感觉还是很惊艳的，这种惊艳感不是看公众号文章能想象的到。Go~ 注册玩玩。</p><p>用Gmail注册之后，每天会送你50积分，可以创作5首歌，每首歌会同时生成2个版本供你选择。比如上面那首《春日序曲》，我选择的是自定义模式Custom Mode，没有歌词的Instrumental，音乐风格Style of Music是cheerful waltz, piano, Ambient Music, New Age Music，标题Title是Prelude to Spring，点击Create就会生成啦，就是这么Easy to use</p><p><img src="/blog/"></p><p>几秒钟之后，一首1~2分钟的音乐就生成了。但你可能会发现有一个问题，乐曲在2分钟后可能还没结束，但2分钟的时间到了。没关系，你可以点击…选择Continue From This Sone继续创作下一个片段，直到结束</p><p><img src="/blog/"></p><p>所有生成的音乐，都是可以免费下载的。至此，教学结束，撒花~</p><p>三、等等，好像还有点问题</p><p>刚才创作了几个音乐片段，我想把它们拼接起来应该怎么办？或者某个片段只想截取某一部分，又该怎么办呢？</p><p>不要捉急，我找到了一个免费的工具，<a href="https://clideo.com/merge-audio%EF%BC%8C%E5%8F%AF%E4%BB%A5%E5%AF%B9%E5%87%A0%E4%B8%AA%E9%9F%B3%E4%B9%90%E7%89%87%E6%AE%B5%E8%BF%9B%E8%A1%8C%E6%8B%BC%E6%8E%A5%EF%BC%8C">https://clideo.com/merge-audio，可以对几个音乐片段进行拼接，</a></p><p><img src="/blog/"></p><p>如果想要对音乐片段的某一小节进行裁剪，可以使用 <a href="https://clideo.com/tools">https://clideo.com/tools</a> 这里的Cut Audio，</p><p><img src="/blog/"></p><p>BTW，这个clideo里边的工具还是挺多的，不仅能对音频进行编辑，还能编辑视频，小而美的工具类网站</p><p>四、进阶教学：其他音乐风格的尝试</p><p>再来听一首由我，哦，由Suno创作的带歌词的重金属摇滚</p><p>这次会更为复杂一些，我使用了Coze做了一个Musician的Bot，让它帮我创作一首英文歌词吧</p><p><img src="/blog/"></p><p>拿着歌词，贴到Suno里边，这次的音乐风格使用了symphony, rock, chorus and melody,minor,Industrial metals。别被唬住，这些风格是我在Explore那里找的类似风格的音乐拷贝的别人的风格，当然啦，音乐风格也可以问问GPT，让它推荐一下</p><p><img src="/blog/"></p><p>我发现，一旦歌词里边有了[Outro]标签，Suno就能正常结束了，多写几首，我来挑挑~</p><p><img src="/blog/"></p><p>五、凭着Suno，我在网易云音乐出道了</p><p>欢迎大家订阅「Rock的AI音乐频道」 <a href="https://music.163.com/#/radio?id=1003136543&userid=1431662&app\_version=9.0.50">https://music.163.com/#/radio?id=1003136543&amp;userid=1431662&amp;app\_version=9.0.50</a></p><p><img src="/blog/"></p><p>本来是注册为网易云音乐的音乐人的，但无奈Suno生成的音乐音质不过关，只好改成播客了~</p><p>六、AIGC的能力边界是什么</p><p>著名的认知科学家侯世达（Douglas Hofstadter）在1979年提出过关于人工智能的十大问题和猜想。在当时看起来十分遥远的事正在变成现实，AI在2022年底开始加速，至少到现在Scaling Law还远没有失效，再过几年世界会是什么样呢？</p><ol><li>会出现能够打败人类的国际象棋程序吗？</li><li>计算机会谱写出优美的音乐吗？</li><li>计算机能够进行创造性的思考吗？</li><li>计算机能够拥有自我意识吗？</li><li>人工智能是否能够理解自己所操作的符号的含义？</li><li>人工智能是否能够发展出道德和伦理观念？</li><li>人工智能是否能够模拟人类的情感？</li><li>人工智能是否能够拥有艺术创造力？</li><li>人工智能是否能够完全理解和模拟人类的社会行为？</li><li>人工智能的最终发展是否会导致人类的终结？</li></ol>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/851ecaf7.html</id>
    <link href="https://www.rockbot.cc/blog/posts/851ecaf7.html"/>
    <published>2024-04-07T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>题记：实践后的独立判断</p>
<p>本周Suno.ai火到了国内，很多公众号都发了Suno相关文章，对其生成的音乐质量或赞或踩，众说纷纭。</p>
<p>作为一名音乐爱好者和独立思考者，我对这些说法颇不以为然。首先，音乐“好听”&#x2F;“不好听”本身就是主观的判断，没]]>
    </summary>
    <title>我用AI出道了</title>
    <updated>2026-05-10T12:24:25.508Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>题记：致敬丹尼尔·卡尼曼</p><p>我在2021年底读过丹尼尔·卡尼曼的《噪声》，当时正处于从个人贡献者到一线管理者的迷茫期，这本书帮我穿过迷雾，完成了认知升级和自我蜕变。本周四看到丹尼尔·卡尼曼在2024&#x2F;3&#x2F;27去世的消息，再看到书桌上的《思考，快与慢》、《噪声》，决定写一篇文章，算是对丹尼尔·卡尼曼的致敬。</p><p>一、丹尼尔·卡尼曼其人</p><p>丹尼尔·卡尼曼1934年出生在以色列，20岁就获得了以色列希伯来大学的心理学学位，27 岁获得加州大学伯克利分校心理学博士。博士毕业后，他选择留在了以色列希伯来大学工作一直到了1978 年。正是在这段时间，他和阿莫斯·特沃斯基一起提出了「展望理论」（prospect theory）。展望理论，也常被译为「前景理论」，颠覆了传统的「理性经济人」假设，并开创了行为经济学这一全新领域。</p><p>传统经济学假设人们总是「理性」地追求自身利益最大化，能够「完全理性」地评估风险和收益。然而，卡尼曼与特沃斯基的研究表明，人们在决策时往往受到各种「心理偏见」和启发式规则的影响，这些「认知偏差」会导致「非理性」的经济行为。行为经济学不仅在学术界产生了重要影响，也对政策制定、商业实践和个人决策有着实际的应用价值。丹尼尔·卡尼曼也因此荣获2002年的诺贝尔经济学奖。</p><p><img src="/blog/"></p><p>二、我们的决策真的是理性的吗？</p><p>在讨论这个问题之前，我们先定义出来，什么是需要“决策”或“判断”的问题？首先，这类问题不能是对事实的判断，因为每个理性的人都能得到相同的结论，比如太阳是否会从东方升起；其次，它也不能是个人品味相关的问题，因为这类问题没有高下之分，比如你是否喜欢摇滚乐或歌剧。</p><p>需要决策的问题介于事实判断和个人品味之间，可以判断结果的优劣，并且结果存在不确定性。比如，根据CT图像判断是否存在肿瘤，法官对量刑年限的判断，发生公共卫生事件决策是否要进行封控等。每个人在面对这类问题时，做出的决策或判断是可能存在分歧的。</p><p><img src="/blog/"></p><p>在《噪声》一书中，丹尼尔·卡尼曼通过对司法判决、金融理赔、医生诊断等多个行业的调研发现，噪声无处不在，“哪里有判断，哪里就有噪声”，比如</p><ul><li>在1981年进行的一项研究中，被试为208名美国联邦法官，这些法官要对16起完全相同的虚构案件进行判决，在一起诈骗案中，法官们建议的平均刑期为8.5年，而最长的刑期是终身监禁；在另一起案件中，法官们建议的平均刑期为1.1年，而最长的刑期为15年</li><li>经过卡尼曼的调研，在一家经营状况良好的保险公司中，理赔人员对同一个案件理赔评估的中位数差异为55%。这意味着，当一位理赔人员将保费定为9500美元时，另一位理赔人员不是将保费定为10500美元，而是定为16700美元</li><li>1964年，一项针对91名患者和10名有经验的精神科医生的研究发现，两名医生意见达成一致的可能性只有57%。在另一项早期的研究中，两名州立医院的精神科医生单独对426名患者进行诊断，结果显示，他们在诊断精神疾病的类型时，诊断的一致性只有50%</li></ul><p>三、决策过程中的偏差与噪声</p><p>卡尼曼认为人们的决策过程充满了偏差（bias）和噪声（noise），</p><ul><li>偏差，是指决策过程中的系统性错误，它会导致决策者在类似情境下反复做出相同的错误判断。例如，锚定效应是一种常见的认知偏差，在谈判中，第一个提出价格的一方往往会“锚定”谈判范围，其他参与者的决策会受到这个初始价格的影响</li><li>噪声，是指决策中的随机变异，即使是在相同的情境下，决策结果也会有所不同。比如，面对同样的候选人，不同的面试官可能会因为自己对候选人的毕业院校、工作履历、前几个候选人的面试结果、甚至是当天的心情等因素，而给出不同的录用结果</li></ul><p><img src="/blog/"></p><p>决策过程就像打靶一样，偏差在相同情境下会反复做出类似的错误判断，如B队，可能是因为瞄准器歪了；噪声是相同情境下的随机波动，比如C队，可能就是单纯的手抖；我们都倾向于认为自己的决策像A队，但事实上可能是D队，偏差与噪声共存。</p><p>四、如何提高决策水平？</p><p>提高决策水平的前提是要接受决策中存在偏差和噪声，《噪声》中给出了一个公式，单次误差 &#x3D; 偏差 + 噪声；总体误差（均方误差）&#x3D; 偏差² + 噪声²</p><p><img src="/blog/"></p><p>知道自己的决策中存在偏差和噪声，意味着我们需要尽可能降低决策中的偏差和噪声。</p><p>对于偏差而言，由于偏差是决策者在类似情境下反复做出相同的错误判断，是可以被观测和被理解的，心理学中的各种”效应“和“理论”就是在描述人类的认知偏差，比如”皮格马利翁效应“、”达克效应“、“认知失调理论”等。这部分在各个心理学研究中，被论述的比较充分和详细，我们只需要调整“瞄准器”，或者给自己的决策带上一个反方向的补偿就可以了。</p><p>对于噪声而言，在卡尼曼之前没有人系统性地研究过，卡尼曼把噪声拆解为3类，分别是</p><ul><li>水平噪声(level noise)：不同人做出的决策与平均值之间的差异。比如，有些法官是“铁面判官”，普遍更严厉，有些法官是“柔情法官”，普遍更仁慈。这种人与人的差异性带来的判决差异被称为“水平噪声”</li><li>模式噪声(pattern noise)：同一个人对特定模式的偏好。比如，法官们在自己审理的所有案件中并非表现得同样严格，在有些案件上，他们比自己量刑的平均水平严格；但在其他案件上，他们则表现得要宽容。模式噪声更像是高考时的加分，竞赛得奖或者少数民族加分</li><li>情境噪声(Ecological Noise)：决策环境中的变化对个体判断的影响。情绪、疲劳、天气、顺序效应等许多因素都可能导致同一个人在对同一件事做出判断时产生差异</li></ul><p>五、决策卫生，减少噪声的关键方法</p><p>由于噪声是不可预测的误差，既不容易看到，也不容易解释，这让噪声很容易造成严重损害却经常被忽视。减少噪声的策略重点是预防噪声的发生，就是用科学的决策过程尽可能降低噪声。这类比洗手可以预防各种细菌感染，虽然你看不到细菌，洗手液也无法完全消灭细菌，但洗手仍然是保持卫生的好方法。在决策中，我们也要遵循决策卫生的原则。比如，</p><ul><li>结构化决策：将复杂的决策分解为几个独立的任务，并分别进行审查。比如面试过程中，几个面试官考察的维度是不同的，有的关注基础知识掌握程度，有的侧重在项目能力，有的关注逻辑表达和团队协作能力，这有助于确保每个决策维度都得到关注，而不是被某个特定维度的判断影响</li><li>多人判断的平均化：汇总多位判断者的独立判断，并对结果进行平均化处理。这种方法可以减少个体差异带来的噪声，降低水平噪声</li><li>采用相对判断：相对于绝对判断，人们更擅长进行相对判断。例如，判断A比B风险更大，而不是尝试精确评估A和B的具体风险数值。比如，在绩效考核中采用排序，而非直接给绩效数字会更靠谱</li><li>独立判断：鼓励决策者独立形成判断，避免受到他人意见的影响，从而减少情境噪声的影响。这可以通过在团队中采用匿名方式收集和汇总意见来实现。</li></ul><p><img src="/blog/"></p><p>通过这些决策卫生的手段，组织和个人可以有效地减少决策过程中的噪声，提高决策的一致性和准确性。卡尼曼强调，虽然完全消除噪声是不可能的，但通过这些策略可以显著降低噪声水平，从而做出更好的决策。</p><p>六、总结</p><p>提升决策水平，需要承认我们的大脑不是完美的，哪里有决策，哪里就有偏差与噪声。尤其是对于管理者而言，决策的质量是最重要的，如何在有限信息内做出最优决策，是对每一个管理者，也是对每一个人的考验。比如，在绩效考核时，也存在主管“手松手紧”的问题（水平噪声），也存在主管的个人偏好问题（模式噪声），也存在主管与该员工近几天的关系因素（情境噪声）。虽然我们都认为自己是公正的，但实际上，绩效考核也充满“噪声”。面试也是一样，所有涉及判断决策的事情，都是如此。哪里有判断，哪里就有噪声。解决方案就是，按照科学的方法进行决策，保证决策卫生。</p><p>本文主要参考了丹尼尔·卡尼曼的《噪声》一书，重点介绍了噪声的分类，以及如何使用决策卫生的原则降低决策中的噪声。希望大家都可以通过科学的方法和严谨的态度，逐步提升决策能力，做出更明智的选择。</p><p>– 谨以此文，纪念丹尼尔·卡尼曼</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/12fba3b1.html</id>
    <link href="https://www.rockbot.cc/blog/posts/12fba3b1.html"/>
    <published>2024-03-30T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>题记：致敬丹尼尔·卡尼曼</p>
<p>我在2021年底读过丹尼尔·卡尼曼的《噪声》，当时正处于从个人贡献者到一线管理者的迷茫期，这本书帮我穿过迷雾，完成了认知升级和自我蜕变。本周四看到丹尼尔·卡尼曼在2024&#x2F;3&#x2F;27去世的消息，再看到书桌上的《思考，]]>
    </summary>
    <title>如何提升自己的决策水平？</title>
    <updated>2026-05-10T12:24:25.509Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>零、题记</p><p>以前我以为英伟达只是造GPU的，机缘巧合赶上了LLM的浪潮才爆发，但看完黄仁勋在GTC2024的分享，我发现英伟达不光只有GPU，还有很多黑科技。2h的GTC大会信息量还是很大的，演讲最后的一幅图总结了整体内容</p><p><img src="/blog/"></p><p>我不想复述或提炼老黄的Keynote，大家感兴趣可以看原视频或是视频解决，这里只说下自己的笔记和思考，</p><ol><li>未来属于「加速计算」</li><li>为什么AIGC是革命性的技术？</li><li>AI还可以生成什么数据？</li><li>Blackwell：更强大的GPU架构</li><li>NIMs：不让中间商赚差价</li><li>具身智能：英伟达在机器人领域的布局</li><li>未来已来</li></ol><p>一、未来属于「加速计算」</p><p>在老黄的论述中，依赖于CPU（中央处理单元）执行的计算任务被称作「通用计算」。在过去十年的发展历程中，集成电路上晶体管的密度增长趋势已逐渐减缓。随着晶体管尺寸的持续微缩，从10纳米（nm）演进至7nm、5nm，并展望未来的更小节点，量子力学效应及其他物理制约因素日益显著，导致单纯依赖晶体管尺寸缩小来提升性能的摩尔定律面临严峻挑战。</p><p>利用GPU（图形处理单元）进行的计算被称为「加速计算」，加速计算的核心在于通过并行处理能力的提升来加快计算速度，解决传统CPU计算无法高效处理的大规模数据和复杂计算问题，比如科学计算、图像处理、机器学习等。</p><p>通用计算逐渐失去动力，而加速计算在性价比上远超通用计算。2016年英伟达向OpenAI赠送世界上第一台DGX-1超级计算机；2017年Transformer模型的论文发表，世界进入了AI加速发展的阶段，DGX-1, HGX等平台通过A100, V100, H100, H200为AI的训练和推理提供了充足的算力；2022年底ChatGPT的发布，标识着AIGC达到了一个新的里程碑。</p><p><img src="/blog/"></p><p>2、为什么AIGC是革命性的技术？</p><p>之前只觉得AIGC很牛，但没想明白这意味着什么。老黄认为之前的内容是获取式的（Retrieved），互联网并不理解原始数据的含义，只能一股脑抓取过来供人来分析，得到结论。而在AI能理解文本、视频内容之后，可以综合分析并给出最终结论（Generative），这中间消耗的所有带宽、时间、精力都可以被省略，这会是一个新的时代，生产力会得到极大提升。</p><p>说到这里，可以顺带着提一下最近火爆的Kimi，Kimi是我认为中国产品化最好的一款LLM应用，基本上就是中文版的New Bing，用搜索的结果解决大模型的幻觉问题。反观前厂的文心一言app还是走娱乐化的幼稚Agent路线，很不看好李厂长啊</p><p><img src="/blog/"></p><p>3、AI还可以生成什么数据？</p><p>AIGC之所以先从生成文本、生成图像开始，是因为这些内容的数字化程度最高，理论上只要可以被数字化的内容，都可以被AI理解，一旦可以被理解，就可以被AI生成。视频、音乐已经不在话下了，还有比如蛋白质数据、基因数据、脑电波数据、气象数据等等。AIGC不仅仅能生成供用户娱乐的内容，它具备把世界变成数字孪生的能力，在digital twins中可以做各种模拟，对真实世界做出更准确的预测。</p><p><img src="/blog/"></p><p>比如，NVIDIA的Earth-2模型，能将原本天气预测精细度提升12.5倍，可以利用这套模型来预测更精准的台风路径与位置，利用更高品质的资讯来进行早期疏散，最大程度减少人员伤亡。</p><p>4、Blackwell：更强大的GPU架构</p><p>这部分看得不是很明白，整体就是Blackwell架构相比于Hopper架构，GPU在AI推理性能上比前一代产品提升了30倍，而能耗却降低了25倍。这无疑会成为驱动AI进步的新一代引擎，AGI在5年后来临，看来真的有希望</p><p><img src="/blog/"></p><p>5、NIMs：不让中间商赚差价</p><p>NVIDIA的NIMs（NVIDIA Inference Machines）平台，是专为AI推理工作负载设计的，它不仅包括高性能的GPU硬件，还整合了优化的软件堆栈和AI模型，旨在为用户提供端到端的AI推理解决方案。</p><p>说大白话就是，英伟达不仅仅要做GPU，还要往上层做AI模型了，不让中间商赚差价。在GTC大会上，老黄show了跟很多大型企业的合作，包括尼桑、西门子，甚至还有比亚迪。（看好BYD啊）</p><p><img src="/blog/"></p><p>6、具身智能：英伟达在机器人领域的布局</p><p>在GTC 2024大会上，英伟达在具身智能领域也有很多新产品发布，包括全球首个人形机器人通用基础模型“Project GR00T”、Jetson Thor计算平台、NVIDIA Isaac机器人平台升级以及一系列机器人预训练模型、库和参考硬件。总而言之都是为了推动机器人和具身智能方面的突破，使机器人能够学习技能并执行各种指令，实现与物理世界的交互。</p><p><img src="/blog/"></p><p>7、The future is now 未来已来</p><p>看完GTC2024，最大的感受是“未来已来”，很多科幻电影中的场景已经出现在了现实世界中，并且这个过程还在加速，scaling law还没有失效，现在才刚刚开始…</p><p>上周听一个内部分享，硅谷的头部AI公司都是AGI驱动，还在疯狂卷大模型，国内的头部AI公司都是商业驱动的，已经在考虑如何跟自己的业务结合起来商业化了。再想想国内的算力紧缺，内容还在各种限制，国内AI发展与硅谷的差距肉眼可见的越拉越大。在这种情况下，做头部的创新基本不太可能，即使是follow就已经很不容易了，保持对新技术的关注，投资相关企业，把最新的技术用好也是退而求其次的思路</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/ca159efb.html</id>
    <link href="https://www.rockbot.cc/blog/posts/ca159efb.html"/>
    <published>2024-03-24T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>零、题记</p>
<p>以前我以为英伟达只是造GPU的，机缘巧合赶上了LLM的浪潮才爆发，但看完黄仁勋在GTC2024的分享，我发现英伟达不光只有GPU，还有很多黑科技。2h的GTC大会信息量还是很大的，演讲最后的一幅图总结了整体内容</p>
<p><img src="/b]]>
    </summary>
    <title>未来已来，the future is now</title>
    <updated>2026-05-10T12:24:25.508Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<hr><p>一、横空出世的Devin</p><p>AI领域是不缺乏大新闻的，并且发展的太快了。可能你还没从Sora中缓过神来，上周又有一个大新闻，Cognition公司发布了devin.ai，号称全球首个完全自助的AI软件工程师。</p><p>从Cognition官网中可以看到对Devin的能力介绍，包括从一篇陌生的博客上学习知识并应用、从头到尾构建和部署应用、自主地在代码库中查找和修复错误等，从这个角度来说，它已经不仅仅是一个Copilot，而是一个真正的Agent了</p><p><img src="/blog/"></p><p>上图是从Semantic Kernel那里借来的，从Chatbot到Agent，AI的速度比我们想象的要快很多。从cognition官网blog来看，Devin在解决真实开源项目中的问题测试中，远超其他LLM</p><p><img src="/blog/"></p><p>感兴趣的同学可以访问 devin.ai 申请使用，我上周申请的，还没有通过，只能看文档了。从官方视频中可以看到，Devin的左侧是跟人类的对话框，右侧是自己的工作区，有Shell, Browser, Editor, Planner。Planner会完成任务的拆解，把模糊的项目拆解成step by step的步骤</p><p><img src="/blog/"></p><p>除了能写代码之外，Devin还能做持续发布，甚至可以训练和微调自己的AI模型，比如7B 的ollama。作为Agent，Devin是一个不知疲倦、技能娴熟的队友，无论是与你一起建立还是独立完成任务供你审查，它都能做到同样出色。</p><p>二、Devin其他的使用案例</p><p>根据daily.dev的文章，Devin已经开始在真实项目上工作，例如在自由职业者网站Upwork上。以下是人们使用Devin的一些方式：</p><ul><li>网站创建：Devin为客户制作了网站，关注网站的外观并将其连接到数据库</li><li>应用程序开发：对于移动应用程序，Devin帮助设计了应用程序的外观并编写了使应用程序运行的代码。这使得开发过程更快。</li><li>软件测试：Devin被用来检查软件问题，找出这些问题，并建议如何修复它们。这使得人类工程师更专注于创建新功能。</li></ul><p>感觉Devin是融入了人类的研发流程中，真的像人类员工一样工作。虽然说现在替代掉程序员还不太现实，但按照这个速度发展下去，假以时日，可能用不了多久就会真实发生。</p><p>三、这是“人人都是开发者”的时代</p><p>2024年2月，英伟达创始人黄仁勋在迪拜的世界政府峰会（World Government Summit）接受采访，称“在过去的10~15年，几乎每个站在这样一个舞台上的人都会告诉你，孩子学习计算机科学是至关重要的，每个人都应该学会如何编程。而现在世界上的每个人现在都是程序员（Everybody in the world is now a programmer），AI已经完全消除了技术上的差距。”</p><p>可能1个月前你还觉得老黄是耸人听闻，现在再看，Devin就是这段话的最佳注解。</p><p>这不仅仅是在传播焦虑，在这焦虑的背后，一是要看到这种势不可挡，二是要思考我们的机会点，顺势而为。作为在基础设施领域浸淫了十几年的老鸟，我们会发现，不管是人类工程师做项目，还是AI生成代码片段，要真实在企业内部跑起来，基础设施都必不可少，比如，代码脚手架、CI&#x2F;CD流程、线上运维等等。做好AI时代的基础设施，会是一个非常大的机会。</p><p>四、参考资料</p><ol><li><a href="https://www.cognition-labs.com/introducing-devin">https://www.cognition-labs.com/introducing-devin</a></li><li><a href="https://daily.dev/blog/what-is-devin-the-ai-software-engineer-everyone-is-talking-about">https://daily.dev/blog/what-is-devin-the-ai-software-engineer-everyone-is-talking-about</a></li><li><a href="https://xueqiu.com/1696733157/278643182">https://xueqiu.com/1696733157/278643182</a></li></ol>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/d233540f.html</id>
    <link href="https://www.rockbot.cc/blog/posts/d233540f.html"/>
    <published>2024-03-17T16:00:00.000Z</published>
    <summary>
      <![CDATA[<hr>
<p>一、横空出世的Devin</p>
<p>AI领域是不缺乏大新闻的，并且发展的太快了。可能你还没从Sora中缓过神来，上周又有一个大新闻，Cognition公司发布了devin.ai，号称全球首个完全自助的AI软件工程师。</p>
<p>从Cognition官网中可]]>
    </summary>
    <title>横空出世的Devin</title>
    <updated>2026-05-10T12:36:08.834Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p><strong>01</strong></p><p><strong>Coze值得写一篇调研文档</strong></p><p>最近在看国内外的一些智能助理平台，OpenAI的GPTs自不必说，一直是风向标级别的存在。除此之外，字节的Coze平台（coze.com）也值得拿来看看，一方面是Coze允许用户免费使用GPT4的模型，很适合用来薅羊毛，另一方面是产品体验做得很流畅，Bot Store有GPTs的影子，但又有很多细节上的创新。本文在介绍Coze的产品设计同时，会把它与GPT做一些对比，更方便看清楚产品设计背后的理念。以及重点会介绍我觉得一些很惊喜的点，在构造企业内部的助理平台时，可以用作参考。</p><p><strong>几点说明：</strong></p><ol><li>Coze.com国内访问不了，需要使用科学的上网能力；2024&#x2F;2&#x2F;1 字节上线了国内版coze.cn“扣子”，除了模型换成了云雀语言模型之外，其他功能大同小异</li><li>Coze的Bot等价于OpenAI的GPT，Bot Store等价于GPTs</li><li>Coze没有类似于OpenAI Assistant API的设计，但允许将Bot集成到其他社交App中</li></ol><p><strong>02</strong></p><p><strong>Creating bot in your workspace</strong></p><p>在ChatGPT中创建GPT，默认GPT归属于个人用户。在创建完成后你可以发布为“仅我自己”、“只有拥有链接的人”、“公开”，其中“公开”的GPT会上线到GPTs（官方的GPT Store）中。最初Coze在创建Bot时，也是默认归属于个人用户（Personal），近期上线了一个Workspace的概念，除了创建Personal之外，还允许创建团队Team，团队内的成员可以共享Bot、插件、知识和流程。</p><p><img src="/blog/"></p><p>创建个人助理</p><p><img src="/blog/"></p><p>创建团队助理</p><p>Workspace明显是面向企业的设计，不像GPT完全2C，不需要团队空间。Coze的产品野心应该是服务于企业用户。</p><p><strong>03</strong></p><p><strong>开放的Prompt，鼓励复制</strong></p><p>Coze Bot Store中的Bot，提示词是完全开放的，并且鼓励复制（右上角的Duplicate）；这跟GPTs封闭的Prompt形成了鲜明对比，可以让用户学习优秀的案例，写出更高质量的Prompt，只是这样的开放性可能会遏制一些个人Bot开发者。</p><p><img src="/blog/"></p><p>Bot Store排名第一的LovelyArtToy Bot</p><p><strong>04</strong></p><p><strong>Coze中的Plugins</strong></p><p>大模型要从Chatbot变成真正的生产力工具，必须打通真实世界的各种能力。GPTs的Action允许用户通过JSON描述外部的HTTP接口。不过这种产品设计过于极客，一般人搞不定。在这种情况下，GPTs的生态里也出现了Zapier, Gapier，语聚AI这样的第三方工具集成商，只需要在Action里边打通它们的API就可以调用到第三方工具平台</p><p><img src="/blog/"></p><p>以JSON描述Gapier的标准API</p><p><img src="/blog/"></p><p>Gapier中的所有Actions</p><p>Coze中的Plugins比GPTs的Action更容易集成一些，官方已经实现了各种工具平台，可以直接添加</p><p><img src="/blog/"></p><p>在Coze插件的右上方，支持Submit your plugin，再次验证了Coze要做企业级智能助理平台的观点。只是现在还是空空如也，应该还在迭代中。</p><p><img src="/blog/"></p><p><strong>05</strong></p><p><strong>Coze中的Workflow</strong></p><p>Coze中的Workflow也是非常好用的产品，非常适合轻量级的业务流程编排，编排完之后可以被大模型调用到。</p><p><img src="/blog/"></p><p>公开的workflow</p><p><img src="/blog/"></p><p>支持duplicate，伟大都是从模仿开始</p><p>workflow给用户提供轻量级的画布，可以拖拽、连线、写代码的方式编排简单的业务流程，支持调试和发布</p><p><strong>06</strong></p><p><strong>Coze中的Knowledge</strong></p><p><img src="/blog/"></p><p>支持上传的文本格式</p><p><img src="/blog/"></p><p>支持上传的表格格式</p><p><strong>07</strong></p><p><strong>Coze中的Database</strong></p><p>Database支持Bot开发者定义表格结构并在表格中存储用户数据。它使得收藏夹、待办事项列表、书籍管理和财务管理等功能成为可能。可以用来搜集并记录用户回复的关键信息。比如我看到一个有趣的bot，Read it later。它允许用户给它输入Url，bot会自动解析url内容并保存到自己的Database中</p><p><img src="/blog/"></p><p>Read it later机器人</p><p>待你有空的时候，可以让它把所有待阅读的文章列出来。如果是企业级的机器人，这个功能会非常实用，比如在客户反馈问题时，自动把用户的问题结构化记录，以便于后续的分析和回溯。</p><p><strong>08</strong></p><p><strong>把Bot与社交App集成</strong></p><p>不同于OpenAI把所有的GPTs圈定在自家平台，Coze独辟蹊径，允许将Bot集成到诸多社交App中，在国内也因地制宜打通了飞书和微信</p><p><img src="/blog/"></p><p>coze.com 打通墙外社交App</p><p><img src="/blog/"></p><p>coze.cn 打通国内社交App</p><p><strong>09</strong></p><p><strong>调研总结</strong></p><p>如果说Langchain, SemanticKernel是创造Agent的“工具”，那Coze就是创造Agent的“产品”。比起一窝蜂的2C“智能体”，Coze是我看过为数不多的有很多亮点的产品，它锚定解决的是释放企业场景内的生产力，很值得我们借鉴。</p><p>当然，处于起步阶段的Coze还有很多功能有待完善，比如如何创建自定义插件，如何消除企业内部数据泄露的风险，如何控制使用者的权限等等。</p><p>持续观测中，欢迎感兴趣的小伙伴一起交流</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/8897b81b.html</id>
    <link href="https://www.rockbot.cc/blog/posts/8897b81b.html"/>
    <published>2024-02-01T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p><strong>01</strong></p>
<p><strong>Coze值得写一篇调研文档</strong></p>
<p>最近在看国内外的一些智能助理平台，OpenAI的GPTs自不必说，一直是风向标级别的存在。除此之外，字节的Coze平台（coze.com）也值得]]>
    </summary>
    <title>字节“扣子”，值得借鉴的企业级智能助理创建平台</title>
    <updated>2026-05-10T12:24:25.504Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>随着LLM的持续火爆，各行业都在探索如何用LLM重构自己的产品。但需要看到，目前我们对LLM的使用方式，还处于非常表层的阶段，没有脱离最原生的Chat模式，还不涉及更高级的能力，比如如何跟已有知识库打通做「检索增强生成」、如何跟已有的API能力打通让AI干点更实际的事情、如何对LLM的回复做安全审查以及对输出质量做评判等。什么是下一代的LLM开发范式？企业内部的开发者怎么能更容易用LLM开发？LLM开发能在哪些场景给产品带来增益？带着这些问题，我对微软的Semantic Kernel做了调研。文章写于2023年8月份</p><p><strong>01</strong></p><p>一、对LLM编排，就像K8S之于Docker</p><p>回看当年Docker横空出世的时候，也是相当火爆，Docker颠覆性地解决了高昂的虚拟化成本，更轻量级的资源隔离、「镜像」封装能力更好地满足了云计算对弹性的需求。但现在生产环境普遍使用的模式，不是直接用Docker的API操作Docker，反而用的是Google开源的K8S，容器编排引擎，从此Docker被锁死在只能提供容器相关的能力上，成为K8S的一个组件。WHY？因为在生产环境中使用容器技术，不光是容器，还有流量路由、服务注册与发现、资源管理等，K8S是Google Borg的开源版本，在集群调度上领先业内同类公司数年，故很快K8S统一了容器编排市场，成为了事实标准。</p><p><img src="/blog/"></p><p>回到LLM这个领域，不管是OpenAI还是Meta，不管是GPT4还是llama2，开源闭源的LLM即使再进化、再多的参数、再智能，也只是「通用」大语言模型，基于公开的数据做训练。由于没有细分行业和企业内部的数据，通用型LLM无法准确回答企业内部的问题；没有跟企业内部的服务、小模型打通，通用型LLM也无法很好地解决企业面临的实际问题。</p><p>如果要让通用型LLM更有用，成为用户的Copilot，在架构层面一定有一个「LLM流程编排层」，连接LLM和企业内部知识和能力。在LLM时代开发copilot，一定跟传统的软件开发模式不同，2023年5月，微软CTO兼AI副总裁Kevin Scott在微软2023开发者大会上发表演讲，「the era of the AI Copilot」，推荐看一下，很有启发。另外，看这个图是否让你想到了经典的IAAS-PAAS-SAAS图？如出一辙</p><p><img src="/blog/"></p><p><strong>02</strong></p><p>选型：LangChain还是Semantic Kernel</p><p>在LLM编排这个领域，比较活跃的有LangChain和Semantic Kernel，对比如下表，</p><p><img src="/blog/"></p><p>综合来看，SK整齐的文档、清晰的抽象，尤其是微软在Copilot方面的成功实践，都让我更倾向于选择Semantic Kernel</p><p><strong>03</strong></p><p>Semantic Kernel的简要介绍</p><p><strong>1、什么是Semantic Kernel</strong></p><p>根据官方介绍，Semantic Kernel（简称SK）是一个开源的 SDK，允许您轻松地将 AI 服务（如 OpenAI、Azure OpenAI 和 Hugging Face）与常规编程语言（如 C# 和 Python）结合使用。通过这样做，您可以创建结合了两者优势的 AI 应用程序。简而言之，SK的目标是帮助你创建一个完全自主的Agent，最起码也得是一个副驾驶Copilot，替你在本地完成一些工作</p><p><strong>2、SK的核心模型</strong></p><p><img src="/blog/"></p><p><strong>3、Plugin</strong></p><p>一组Function的集合。Plugin除了作为function的集合&#x2F;目录之外，也可以有自己的Description，但目前还没有看到plugin description具体的作用；plugin起初在SK中是叫skill，这从现有的一些方法名称上还能看得到，但后来为了降低开发者的认知成本，统一改成了plugin，并跟OpenAI的plugin概念保持一致了</p><p><strong>4、Function</strong></p><p>prompt和代码在SK中被统一抽象为function，按照类型分为Semantic function和native function，通过kernel做统一的调用。</p><p><img src="/blog/"></p><p>不管是Semantic Function还是Native Function，要想使用都必须注册到kernel里边，才能被SK调用或者编排。</p><p><strong>5、Kernel</strong></p><p>之所以这里才介绍kernel，是因为对于开发者而言，我们直接感知的是function和plugin；但function的执行是依赖于kernel的，kernel封装了对上下文的透传、对function的调用入口，以及一些开箱即用的function。通过kernel去调度&#x2F;执行function需要有以下几步，</p><p><strong>Step1、Kernel集成Plugin</strong></p><p><img src="/blog/"></p><p><strong>Step2、通过Kernel获取function</strong></p><p>在SK中，所有的function执行都是要通过kernel的，包括语义函数和原生函数，参数也是需要通过kernel传入。尤其对于原生函数，跟普通的代码比较像，但仍然不能直接调用传参，而是通过kernel.run_async传参。</p><p><img src="/blog/"></p><p><strong>Step3、通过Kernel执行function</strong></p><p><img src="/blog/"></p><p><strong>Step4、将Semantic function和Native function串起来</strong></p><p>将两种Function串起来可以有两种模式，</p><ol><li>在prompt中调用native function来传入变量。用提示词模板来 {“ }plugin.function $param}}” }</li><li>识别用户意图，并执行对应动作。SK里边允许写编排器Orchestrator，主要起到了「意图识别」和「路由转发」的功能，其中，意图识别，根据用户的输入input，将意图分类，或提取用户输入中的参数，这里一般都是Semantic function，再根据意图分类，来调用不同的native function，如果有参数的话将必要的参数传入</li></ol><p><strong>6、Context</strong></p><p>SK借鉴了Unix中的“管道”设计理念，通过在内核上下文中的特殊变量input，在多个function之间传递信息</p><p><img src="/blog/"></p><p>也就是在Joke, Poem, Menu中都可以通过input获取上一个function的输出，最后也是通过input获取最终的结果。</p><p><strong>7、Planner</strong></p><p>因为用户的输入是千奇百怪的，判断用户的真实意图最好留给LLM来做，SK提供了Planner自动制定Plan去达成目标，核心依赖的是注册到kernel中的函数描述。而Planner在本质上也是传给LLM的一段prompt，比如basic_planner.py确</p><p><img src="/blog/"></p><p>最大的坑在于，LLM太玄学了。比如我就没跑通官方示例，ask &#x3D; “If my investment of 2130.23 dollars increased by 23%, how much would I have after I spent $5 on a latte?”，答案应该是2130.23*1.23-5 &#x3D; 2615.1829但我执行了几遍官方示例，除了提示报错之外就是执行的结果不正确，基本没办法用。</p><p><img src="/blog/"></p><p>这么尴尬的结果，SK团队是知道的，因为在接下来的Evaluate your plugins with Prompt flow文档中写到</p><p>If you began testing your planner with additional inputs, however, you may have noticed that it doesn’t always produce the desired results.</p><p>现阶段让LLM生成复杂的、准确的流程，还是有点困难的。</p><p><strong>04</strong></p><p>如何在国内使用Semantic Kernel？</p><p>由于SK是需要使用OpenAI的API，但OpenAI的账号、API受限于🪜比较难单独访问到，尤其是API需要有国外的信用卡。很多同学可能不知道，微软的Azure是有OpenAI的官方服务的，可以通过Azure购买和部署GPT的模型；并且Azure是有第一年$200的优惠券，只需要绑定国内信用卡即可。</p><p>推荐先通读一遍Semantic Kernel的手册，可以不求甚解，有个大概感觉；再手动执行一下Semantic Kernel的Python notebook案例，来帮助理解。</p><p><strong>05</strong></p><p>总结</p><p>本文对SemanticKernel做了初步调研，SK的很多设计思路都值得我们借鉴和学习，比如对于语义函数SemanticFunction和本地函数NativeFunction的抽象、两种Function的相互调用过程、Planner中通过结构化的Prompt模板和变量占位符来代替LangChain里边的Chain、用Kernel来简化LLM的调用和集成等。</p><p>当然，不管是SK还是LangChain，在生产环境中还不能直接拿来就用，在落地过程中必须结合着企业内部的研发流程与生态，避免水土不服。</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/84a6933d.html</id>
    <link href="https://www.rockbot.cc/blog/posts/84a6933d.html"/>
    <published>2024-01-12T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>随着LLM的持续火爆，各行业都在探索如何用LLM重构自己的产品。但需要看到，目前我们对LLM的使用方式，还处于非常表层的阶段，没有脱离最原生的Chat模式，还不涉及更高级的能力，比如如何跟已有知识库打通做「检索增强生成」、如何跟已有的API能力打通让AI干点更实际的事情、如]]>
    </summary>
    <title>对微软SemanticKernel的一篇调研笔记</title>
    <updated>2026-05-10T12:37:31.026Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p>不管在什么时代，对业务流程的抽象都不会发生变化，仍然是：人、事、物、规则</p><p>LLM的最大优势是理解语义、做决策、制定计划、生成内容，在LLM时代的编程，本质是让渡了大脑的部分能力给AI，可以把LLM当成第二大脑。</p><p>传统的编程范式会经过几个阶段，用户提出需求 → 产品设计业务流程 → 程序员绘制业务流程图 → 程序员翻译成代码语言 → 机器执行。在LLM时代可能会直接变成用户提出需求 → LLM → 机器执行。</p><p>LLM会极大缩短业务需求的交付周期，但正如火车在刚发明的时候甚至不如马车跑得快一样，LLM在最开始的稳定性和性能都是弱于传统编码方式的，但它是完完全全的新物种，有非常大的想象空间，并在持续进化中。</p><p>LLM的编程革命不是一蹴而就的，是逐步渗透的过程，我们需要做的就是拥抱变化，并加速这个过程的发生。在这个过程中，核心会经历以下几个阶段，</p><ol><li>通过语义描述生成代码。Github Copilot已经在这么干了，目前只是用来生成原子化的代码片段，如生成单元测试</li><li>将语义函数Semantic Function作为已有业务流程的一部分，用于实现那些无法通过代码直接实现的功能，比如解析工单、解析告警消息、解析用户的咨询等对非结构化文本的解析。这要求我们对LLM的调用进行封装，并注册为HTTP或微服务等内部协议，方便已有流程调用。语义函数有确定性的服务描述、确定性的返回结果、可以不确定性的入参String</li><li>将语义函数与传统函数Native Function进行编排，组装成业务流程。由于语义函数已注册到内部服务中心，可以方便被本地函数调用，也方便被其他语义函数调用，集成在已有的业务流程中。比如在告警处理流程中，嵌入一个语义函数将文本化的告警信息解析成结构化的内容，并提取关键信息</li><li>用语义（结构化的Prompt）实现低代码编排业务流程，结合着BPMN引擎，通过语义生成Flow的描述文件，需要程序员再做一层double check和调整。OpenAI的GPTs，通过Action来调用外部服务，本质上也是低代码的实现</li><li>零代码实现，将原始需求直接转化为结果，省略中间所有步骤。这里需要注意，最终可能不是一个全知全能的Agent自己设计精确的流程，很可能是Mixture of experts的形式，用一个团队来实现复杂的、模糊的需求</li></ol>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/7f424f6a.html</id>
    <link href="https://www.rockbot.cc/blog/posts/7f424f6a.html"/>
    <published>2024-01-05T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p>不管在什么时代，对业务流程的抽象都不会发生变化，仍然是：人、事、物、规则</p>
<p>LLM的最大优势是理解语义、做决策、制定计划、生成内容，在LLM时代的编程，本质是让渡了大脑的部分能力给AI，可以把LLM当成第二大脑。</p>
<p>传统的编程范式会经过几个阶段，用户]]>
    </summary>
    <title>不管在什么时代，对业务流程的抽象都不会发生变化，仍然是：人、事、物、规则</title>
    <updated>2026-05-10T12:24:25.503Z</updated>
  </entry>
  <entry>
    <author>
      <name>rockbot</name>
    </author>
    <content>
      <![CDATA[<p><strong>1</strong></p><p>在科技界，英文信息比中文更新</p><p>英文作为国际交流的主要语言，很多重要的科技发布、学术报告、国际新闻和商业信息首先会用英文发布。这导致了信息在英文世界的传播速度普遍比中文世界要快，尤其是以下几个方面：</p><ol><li>首发优势：很多国际公司和研究机构的官方语言是英语，他们会优先通过英文媒体或官网发布最新的科技发现、产品更新和行业报告。这些信息通常需要时间被翻译成中文并在中文媒体中传播。</li><li>媒体覆盖范围：英文媒体具有更广泛的国际影响力，覆盖范围更广，这意味着英文报道能够迅速吸引全球观众的注意。相比之下，中文媒体主要面向华语地区，国际影响力和传播速度相对较慢。</li><li>社交媒体和网络空间：英文社交媒体平台（如Twitter、LinkedIn）和论坛（如Reddit）活跃用户众多，往往成为第一手信息源和讨论热点的集散地。而中文社交媒体虽然用户基数庞大，但在全球范围内的信息传播效率可能不如英文社交媒体。</li></ol><p>作为IT领域的从业者，我经常需要浏览大量的英文网站获取最新的科技动态和深入的分析报告，尤其在大模型火爆之后，阅读英文网站、看英文视频对我来说更为迫切。在这个过程中，我遇到了几个主要的痛点：</p><ol><li>语言障碍：虽然英语是科技领域的主要语言，但对于非英语母语的读者来说，理解专业术语和复杂句子结构仍然是一个挑战。这会导致信息获取效率降低，有时甚至会误解信息。</li><li>信息过载：英文网站上的信息量巨大，从官方新闻稿到专业博客，信息多样性和复杂性都很高。筛选和识别出真正有价值和可信的信息需要大量的时间和精力。</li><li>访问限制：某些英文网站可能会因为地理位置或版权问题限制访问（“墙”）。这不仅阻碍了信息的自由流动，也使得获取全面视角变得更加困难。</li></ol><p>“墙”的问题不在这里讨论，我认为也不是核心难点，最棘手的问题是前两个，虽然可以通过提升自己英文水平来解决，但是效率无疑是太低了。市面上也有百度翻译、谷歌翻译、百度翻译等服务，但将英文内容拷贝出来再看翻译，体验会非常割裂。在大模型时代，我们需要更便捷的、效果质量更高的、最好是沉浸式的翻译工具。</p><p><strong>2</strong></p><p>推荐沉浸式翻译插件</p><p>我调研了几款浏览器的翻译插件，希望能找到最合适的工具。比如百度、有道翻译app的划词翻译，谷歌、微软的在线翻译、彩云小译、沉浸式翻译插件等。其中，在“看英文网站”和“看英文视频”这两大核心场景下，“沉浸式翻译插件”在产品体验上更胜一筹。安装及配置方式：</p><p>1、在Google扩展程序市场搜索：沉浸式翻译，或者Immersive Translate，并安装</p><p><img src="/blog/"></p><p>2、配置翻译服务，免费套餐就可以</p><p><img src="/blog/"></p><p>3、点击右侧边栏的插件图标，翻译</p><p><img src="/blog/"></p><p>4、试试YouTube的中英文翻译，点开CC和双语字幕</p><p><img src="/blog/"></p><p><strong>3</strong></p><p>集成ChatGPT让翻译更自然</p><p>本节为高阶用法，前提是你有OpenAI的API Key或者Azure OpenAI的API Key，在这里我主要介绍Azure OpenAI的API Key。Azure注册新账号就送$200时效为一年的服务，其中可以免费使用ChatGPT，具体申请和使用方式可以google或youtube搜索。</p><p>如果你已经申请了Azure的账号，之后的配置方式很简单，主要步骤可以参考沉浸式翻译文档<a href="https://immersivetranslate.com/docs/services/openai/#azure-openai">https://immersivetranslate.com/docs/services/openai/#azure-openai</a></p><p>1、新建ChatGPT的模型部署，比如gpt-35-turbo</p><p><img src="/blog/"></p><p>2、拿到“API KEY”和“END POINT”</p><p><img src="/blog/"></p><p>3、配置沉浸式插件自定义 API 接口地址，</p><p>https:&#x2F;&#x2F;{END_POINT}&#x2F;openai&#x2F;deployments&#x2F;{your-deployment-name}&#x2F;chat&#x2F;completions?api-version&#x3D;2023-03-15-preview</p><p>需要把END_POINT和your-deployment-name填入，your-deployment-name就是模型的名字，如果你没有改名的话通常就是“gpt-35-turbo”</p><p><img src="/blog/"></p><p>4、在翻译服务下方点击测试服务，验证是否配置正确</p><p><img src="/blog/"></p><p><strong>04</strong></p><p>总结与展望</p><p>选择合适的工具对于跨语言的信息获取和交流至关重要，如果语言不再是障碍，信息交流和协作会变得更加顺畅。我们要充分利用先进产品和大模型的优势，让技术真正成为“生产力工具”。期待未来能有智能眼镜、智能耳机可以做到完全无感、无障碍的跨语言交流。</p><p>欢迎留言交流，如果本篇文章对你有帮助，请帮忙点个“在看”，谢谢~~</p>]]>
    </content>
    <id>https://www.rockbot.cc/blog/posts/2df79fa1.html</id>
    <link href="https://www.rockbot.cc/blog/posts/2df79fa1.html"/>
    <published>2023-03-14T16:00:00.000Z</published>
    <summary>
      <![CDATA[<p><strong>1</strong></p>
<p>在科技界，英文信息比中文更新</p>
<p>英文作为国际交流的主要语言，很多重要的科技发布、学术报告、国际新闻和商业信息首先会用英文发布。这导致了信息在英文世界的传播速度普遍比中文世界要快，尤其是以下几个方面：</p>
<]]>
    </summary>
    <title>沉浸式翻译：看英文网站的神器</title>
    <updated>2026-05-10T12:24:25.502Z</updated>
  </entry>
</feed>
