<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Hexo For Dxc</title>
  
  
  <link href="http://example.com/atom.xml" rel="self"/>
  
  <link href="http://example.com/"/>
  <updated>2026-07-16T02:00:00.000Z</updated>
  <id>http://example.com/</id>
  
  <author>
    <name>Dxc</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>让 Agent 符合预期的十大实战经验</title>
    <link href="http://example.com/post/%E8%AE%A9Agent%E7%AC%A6%E5%90%88%E9%A2%84%E6%9C%9F%E7%9A%84%E5%8D%81%E5%A4%A7%E5%AE%9E%E6%88%98%E7%BB%8F%E9%AA%8C.html"/>
    <id>http://example.com/post/%E8%AE%A9Agent%E7%AC%A6%E5%90%88%E9%A2%84%E6%9C%9F%E7%9A%84%E5%8D%81%E5%A4%A7%E5%AE%9E%E6%88%98%E7%BB%8F%E9%AA%8C.html</id>
    <published>2026-07-16T02:00:00.000Z</published>
    <updated>2026-07-16T02:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="“为什么调了提示词，Agent-效果还是差？”"><a href="#“为什么调了提示词，Agent-效果还是差？”" class="headerlink" title="“为什么调了提示词，Agent 效果还是差？”"></a>“为什么调了提示词，Agent 效果还是差？”</h2><p>阿里云”云小二 Aivis”团队在近一年的 Multi-Agent 实践中踩过大量坑，从真实踩坑中总结出十条行之有效的经验。</p><p>在深入之前，先搞清楚一个前提：<strong>你的预期到底是什么？</strong></p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>“希望它更智能一点”、”它应该正确回答问题”——这些都是模糊预期，无法指导有效优化。</p></blockquote><p>好的预期应该包含三个维度：</p><table><thead><tr><th>维度</th><th>模糊预期</th><th>清晰预期</th></tr></thead><tbody><tr><td><strong>任务</strong></td><td>“判断安全组是否放行”</td><td>端口为 -1&#x2F;-1 且 IP 为 0.0.0.0 且策略为 Accept → 完全放行</td></tr><tr><td><strong>格式</strong></td><td>“给个诊断报告”</td><td>输出 JSON，含 instance_id、problem_category、conclusion 字段</td></tr><tr><td><strong>风格</strong></td><td>“回复要友好”</td><td>诊断超 3 步未解决时，以歉意语气回复”非常抱歉，正在深入排查…”</td></tr></tbody></table><hr><h2 id="十大经验速查"><a href="#十大经验速查" class="headerlink" title="十大经验速查"></a>十大经验速查</h2><table><thead><tr><th>#</th><th>经验</th><th>一句话</th></tr></thead><tbody><tr><td>1</td><td>上下文精准投喂</td><td>给其所需，去其所扰</td></tr><tr><td>2</td><td>身份与历史清晰化</td><td>不要 Mask 掉模型的真实执行历史</td></tr><tr><td>3</td><td>结构化表达逻辑</td><td>复杂流程用 JSON&#x2F;伪代码，别只用自然语言</td></tr><tr><td>4</td><td>自定义工具协议</td><td>领域化协议可能比通用协议更稳</td></tr><tr><td>5</td><td>Few-Shot 合理使用</td><td>单任务多用（注重多样性），灵活任务慎用</td></tr><tr><td>6</td><td>保持上下文苗条</td><td>超过 1 万 Token 遗忘率显著增加</td></tr><tr><td>7</td><td>记忆管理</td><td>多次增强 + 上下文压缩 + 外部存储</td></tr><tr><td>8</td><td>Multi-Agent 平衡</td><td>Workflow 控稳定，LLM 控灵活</td></tr><tr><td>9</td><td>自定义协议补充</td><td>领域场景值得尝试，但要能维护</td></tr><tr><td>10</td><td>HITL 人在回路</td><td>先搞清楚”人”是怎么做的</td></tr></tbody></table><hr><h2 id="逐条拆解"><a href="#逐条拆解" class="headerlink" title="逐条拆解"></a>逐条拆解</h2><h3 id="1-上下文精准投喂"><a href="#1-上下文精准投喂" class="headerlink" title="1. 上下文精准投喂"></a>1. 上下文精准投喂</h3><p><strong>给其所需，去其所扰。</strong> 该给的信息没给全，不该给的信息给太多——这是 Agent 效果不佳最常见的两个原因。</p><p>典型踩坑：财务工具返回十几个字段（可用金、冻结金额、信用金额……），一股脑塞给模型后，结论每次都不一样。正确做法是做一层<strong>信息筛选</strong>，只透传模型判断时真正需要的字段。</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>模型困惑时不会”承认自己不懂”，而是自由发挥——这才是幻觉的真正来源。</p></blockquote><h3 id="2-身份与历史执行清晰化"><a href="#2-身份与历史执行清晰化" class="headerlink" title="2. 身份与历史执行清晰化"></a>2. 身份与历史执行清晰化</h3><p><strong>模型需要明确知道有几方身份、自己做过哪些事。</strong></p><p>典型踩坑：把客服小二的对话直接当 History 喂给模型”续写”下一步动作，结果模型没调工具就直接编造了答案。根因是模型从 History 中”学”到了不调工具直接回复的模式，且”小二”的 Assistant 角色和模型的 Assistant 角色混淆。</p><p>正确做法：用户 ↔ 模型的交互作为主线；小二对话标为”参考记忆”；模型自己执行过的 Action History <strong>完整保留</strong>。</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>不要删除模型的真实执行历史，即使是那些”错误”的尝试。<strong>擦除失败会移除证据，没有证据模型就无法适应。</strong>（Manus：”Keep the Wrong Stuff In”）</p></blockquote><h3 id="3-结构化表达逻辑"><a href="#3-结构化表达逻辑" class="headerlink" title="3. 结构化表达逻辑"></a>3. 结构化表达逻辑</h3><p>大模型对 JSON、YAML、伪代码的理解能力远强于纯自然语言。”先调 A → 再调 B → 再调 C”这种流程，写成结构化形式遵循能力会好很多。</p><h3 id="4-自定义工具协议"><a href="#4-自定义工具协议" class="headerlink" title="4. 自定义工具协议"></a>4. 自定义工具协议</h3><p>云小二团队从 2023 年就开始 Agent 探索，自定义了一套工具协议。后来与 OpenAI Function Call 和 Anthropic MCP 做兼容测试——<strong>领域场景下自定义协议的准确性和稳定性反而优于通用协议</strong>。可能原因：模型为通用协议训练时逻辑固化，遇到你的领域需求不会完全遵循你的指令。</p><h3 id="5-Few-Shot-合理使用"><a href="#5-Few-Shot-合理使用" class="headerlink" title="5. Few-Shot 合理使用"></a>5. Few-Shot 合理使用</h3><table><thead><tr><th>场景</th><th>建议</th><th>原因</th></tr></thead><tbody><tr><td>单任务（抽取&#x2F;判断）</td><td>✅ 多用，注重<strong>多样性</strong></td><td>不同类型各给一条，效果比 1-2 条好得多</td></tr><tr><td>灵活开放任务（生成回复）</td><td>❌ 慎用或不用</td><td>模型容易”过拟合”示例，甚至把 Few-Shot 和工具返回搞混</td></tr></tbody></table><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>灵活任务效果不佳时，与其硬塞 Few-Shot，不如开启模型的”深度思考”让它多想一步。</p></blockquote><h3 id="6-保持上下文的”苗条”"><a href="#6-保持上下文的”苗条”" class="headerlink" title="6. 保持上下文的”苗条”"></a>6. 保持上下文的”苗条”</h3><p>大模型号称支持百万级 Token，但实测超过 1 万 Token 后遗忘率显著增加——System Prompt 里的核心要求都可能被”间歇性遗忘”。</p><p>建议：通过 RAG 动态筛选、删减重复提示词、测试移除某条指令后模型反应是否敏感。</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>一个高效的 Agent，一定是精雕细琢的结果，不是”堆料”堆出来的。</p></blockquote><h3 id="7-记忆管理三层策略"><a href="#7-记忆管理三层策略" class="headerlink" title="7. 记忆管理三层策略"></a>7. 记忆管理三层策略</h3><p>随着对话越来越长，模型遗忘越来越明显。三层策略：</p><ul><li><strong>多次增强</strong>：关键信息（实例 ID、IP 等）定期追加到对话中，或在工具入参出参中持续传入传出</li><li><strong>上下文压缩</strong>（”内存”）：最近 3-5 轮之外的 History 用 summary 精简</li><li><strong>外部存储</strong>（”外存”）：长期信息（咨询历史、用户画像）存入 Memory 池，按需查询注入</li></ul><h3 id="8-Multi-Agent-平衡"><a href="#8-Multi-Agent-平衡" class="headerlink" title="8. Multi-Agent 平衡"></a>8. Multi-Agent 平衡</h3><table><thead><tr><th>角色</th><th>职责</th><th>实现方式</th></tr></thead><tbody><tr><td><strong>主 Agent</strong></td><td>意图路由、调度决策</td><td>LLM 自主决策 + 业务经验约束，<strong>偏灵活</strong></td></tr><tr><td><strong>子 Agent</strong></td><td>复杂诊断、固定流程</td><td>Workflow 编排 或 单任务 LLM，<strong>偏稳定</strong></td></tr></tbody></table><p>强流程模块收敛到子 Agent，需要灵活处理的部分交给主 Agent。既可控又灵活。</p><h3 id="9-领域化协议优化"><a href="#9-领域化协议优化" class="headerlink" title="9. 领域化协议优化"></a>9. 领域化协议优化</h3><p>即使业界标准在统一，领域化的协议优化依然有价值。如果你发现模型在标准协议下对领域指令执行不够稳定，不妨自己定制一套——前提是你能维护好它。</p><h3 id="10-HITL-人在回路"><a href="#10-HITL-人在回路" class="headerlink" title="10. HITL 人在回路"></a>10. HITL 人在回路</h3><p>Agent 的本质是让大模型”模拟”<strong>人</strong>的行为。想做好 Agent，你必须先知道”人”是怎么做的：</p><ul><li>人是如何识别这个问题的？</li><li>什么情况应该查哪个工具？</li><li>查到结果后如何回复？</li></ul><p>做 Agent 就像”明星模仿秀”——不深入研究这个明星的造型、动作、演唱技巧，就模仿不像。</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>云小二团队做 Aivis 时，研发需要不停与客服、督导沟通，甚至去现场观察真实的接单过程，才能做出适合客服使用的数字员工。<strong>做 Agent 的人必须深入一线。</strong></p></blockquote><hr><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p><strong>参考来源</strong>：<a href="https://mp.weixin.qq.com/s/u6F93L0sCfR-rjqBSJi3lQ">如何让Agent更符合预期？基于上下文工程和多智能体构建云小二Aivis的十大实战经验</a></p></blockquote>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;“为什么调了提示词，Agent-效果还是差？”&quot;&gt;&lt;a href=&quot;#“为什么调了提示词，Agent-效果还是差？”&quot; class=&quot;headerlink&quot; title=&quot;“为什么调了提示词，Agent 效果还是差？”&quot;&gt;&lt;/a&gt;“为什么调了提示词，Agent 效</summary>
      
    
    
    
    <category term="编程" scheme="http://example.com/categories/%E7%BC%96%E7%A8%8B/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="Agent" scheme="http://example.com/tags/Agent/"/>
    
    <category term="上下文工程" scheme="http://example.com/tags/%E4%B8%8A%E4%B8%8B%E6%96%87%E5%B7%A5%E7%A8%8B/"/>
    
    <category term="Multi-Agent" scheme="http://example.com/tags/Multi-Agent/"/>
    
    <category term="阿里云" scheme="http://example.com/tags/%E9%98%BF%E9%87%8C%E4%BA%91/"/>
    
  </entry>
  
  <entry>
    <title>人生就是一场无法退出的投资游戏</title>
    <link href="http://example.com/post/%E4%BA%BA%E7%94%9F%E5%B0%B1%E6%98%AF%E4%B8%80%E5%9C%BA%E6%97%A0%E6%B3%95%E9%80%80%E5%87%BA%E7%9A%84%E6%8A%95%E8%B5%84%E6%B8%B8%E6%88%8F.html"/>
    <id>http://example.com/post/%E4%BA%BA%E7%94%9F%E5%B0%B1%E6%98%AF%E4%B8%80%E5%9C%BA%E6%97%A0%E6%B3%95%E9%80%80%E5%87%BA%E7%9A%84%E6%8A%95%E8%B5%84%E6%B8%B8%E6%88%8F.html</id>
    <published>2026-07-16T00:00:00.000Z</published>
    <updated>2026-07-16T00:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="每个人都在”炒股”"><a href="#每个人都在”炒股”" class="headerlink" title="每个人都在”炒股”"></a>每个人都在”炒股”</h2><p>不要以为自己不炒股不买基金就不算投资了。其实人生就是一场无法退出的投资游戏——买房、上学、考公…每一个选择都是在用自己的人生重仓下注，风险一点也不比炒股低。</p><p>这个时代最精妙的骗局，是让大多数人相信自己没在赌桌上。当所有人都在被动参与资产轮盘时，清醒的投机者至少知道自己在冒险，而蒙眼的人却把枷锁当护身符，把命运当确定性。</p><h2 id="考公-x3D-买入债券"><a href="#考公-x3D-买入债券" class="headerlink" title="考公 &#x3D; 买入债券"></a>考公 &#x3D; 买入债券</h2><p>考编大军在做多”体制稳定性”，把最宝贵的青春投入行测申论，本质是买入一份看涨国家治理体系的固定收益资产。</p><p>用投资的眼光来审视考公，其风险回报特点就像债券：</p><table><thead><tr><th>维度</th><th>考公&#x2F;债券</th></tr></thead><tbody><tr><td>收益</td><td>固定，没有太多想象力</td></tr><tr><td>风险</td><td>较低，波动不大</td></tr><tr><td>机会成本</td><td>放弃了外面潜在的高成长高收益</td></tr><tr><td>与经济周期的关系</td><td>经济越差、挣钱越难时，编制含金量越高（”债牛”）</td></tr></tbody></table><p>选择稳定就意味着要放弃外面的高成长机会——你的无限可能就成了你的机会成本。当外部经济增长快、大家都在挣大钱时，债的价值就下跌；反之当外面生意不好做、购买力在贬值时，编制的含金量就显现出来了。</p><h2 id="房贷-x3D-重仓加杠杆买一支-ETF"><a href="#房贷-x3D-重仓加杠杆买一支-ETF" class="headerlink" title="房贷 &#x3D; 重仓加杠杆买一支 ETF"></a>房贷 &#x3D; 重仓加杠杆买一支 ETF</h2><p>房贷族在构建城市发展 ETF——三十年杠杆绑定特定城市，相当于重仓持有某区域某板块的一支股票。</p><p>中国居民 80% 以上的资产都在房子里（可能还说少了，全家老小 6 个钱包连资产带负债，加上这辈子未来三十年的收入都在一个水泥壳子里）。房子就是大部分普通老百姓此生所做的最大一笔投资，但很多人并不把它当成投资来对待。</p><p>用金融世界观来看”房子”这支股票有多 bug：</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><ul><li>买一手最少要几百万，还要上杠杆把未来 30 年收入押上去</li><li>不能择时——必须 30 岁前买入，不然丈母娘就要封杀你</li><li>极难卖出，流动性极差</li><li>几乎没有分红，唯一分红（租金）回报率常年 1-2%</li><li>价格与当地经济发展高度挂钩——重仓做多某地未来 30 年的发展格局</li><li>30 年不确定性 + 杠杆重仓持有，完全违背分散配置原则</li></ul></blockquote><p>这样的股票如果叫别人买，别人估计要骂你憨憨。但换个名字叫”房子”，票面从纸质换成钢筋水泥，就瞬间身价暴涨、无数人趋之若鹜。</p><p>因为过去由于人口、城市化、货币化的多重逻辑下一路上涨，给大家造成了只赚不亏的假象。然而时至今日，应该没有人会认为这个世界上存在只涨不跌的神话了吧？</p><p><em>“这次一定不一样”——刚从房子里鼻青脸肿出来的人们如是说。</em></p><h2 id="卷学历-x3D-追高白马股"><a href="#卷学历-x3D-追高白马股" class="headerlink" title="卷学历 &#x3D; 追高白马股"></a>卷学历 &#x3D; 追高白马股</h2><p>考研培训机构不会告诉你：你在用三年时间和大量机会成本，做多”文凭溢价”这个持续贬值的资产。清北 PhD 竞聘社区干部，像极了追高爆雷白马股的散户。</p><p>高学历就像白马股——亮眼的业绩、知名的公司、高额的分红，天之骄子和白马公司都是众星捧月、前途一片光明。投资它们按理说是正确中的正确了吧？</p><p>但很多人没明白一个最简单的投资道理：<strong>好公司 ≠ 好价格 ≠ 你能挣钱</strong>。这是完全不同的三码事。</p><p>白马股的问题在于：如果预期过于一致、价格打得太满，分红不变的情况下分红收益率就会降低，好公司反而变成了性价比较低的投资。</p><p>卷教育也是一样。当家长不计成本地加大投入、卷不过金钱就卷孩子，高学历不再供不应求，原本 5% 的”分红比率”就降到了 2%——公司还是好公司，但投入产出比太低，你反而不一定挣钱。</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>人才供给小于需求的大前提变了。造成供需失衡的，既有经济切换发展模式的需求侧原因，也有多年来家长疯狂投入的供给侧原因。人的教育周期太长，人才市场自我出清要很长时间。</p></blockquote><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><h3 id="2-中年后选低波红利"><a href="#2-中年后选低波红利" class="headerlink" title="2. 中年后选低波红利"></a>2. 中年后选低波红利</h3><p>输不起了。这时候需要的是稳定现金流，不是高波动高弹性。</p><h3 id="3-找准自身策略"><a href="#3-找准自身策略" class="headerlink" title="3. 找准自身策略"></a>3. 找准自身策略</h3><p>选择价投就要波澜不惊，选择滑头就要顺势而为。最怕的是策略混乱——嘴上说长期持有，手上追涨杀跌。</p><p>选择热门行业、热门专业，就是在已经 price in 的板块里追涨杀跌。</p><h3 id="4-永远不要赌身家"><a href="#4-永远不要赌身家" class="headerlink" title="4. 永远不要赌身家"></a>4. 永远不要赌身家</h3><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>持有现金</td><td>做多通缩，赌未来经济发展放缓</td></tr><tr><td>进大公司</td><td>重仓白马股</td></tr><tr><td>进小公司</td><td>买入小盘成长股</td></tr><tr><td>选热门行业&#x2F;专业</td><td>在 price in 的板块追涨</td></tr><tr><td>保持健康</td><td>定投最确定不会爆雷的资产</td></tr></tbody></table><h2 id="小结"><a href="#小结" class="headerlink" title="小结"></a>小结</h2><p>人生就是一场永不退出的投资游戏，牌桌上的筹码除了金钱，还有你的学历、就业、结婚、买房、时间、精力、爱好…</p><p>好在人生的输赢比股市更宽广，衡量人生成功与否的远不只是金钱的涨跌，更是如何以自己想要的方式过好这一生。</p><p>如果非要推荐一个值得所有人义无反顾、重仓下注的标的——<strong>祝你身体健康</strong>。</p><hr><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p><strong>参考来源</strong>：<a href="https://mp.weixin.qq.com/s/ecmTKjyQHgm2OHhzm7Q7QA">人生就是一场无法退出的投资游戏</a></p></blockquote>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;每个人都在”炒股”&quot;&gt;&lt;a href=&quot;#每个人都在”炒股”&quot; class=&quot;headerlink&quot; title=&quot;每个人都在”炒股”&quot;&gt;&lt;/a&gt;每个人都在”炒股”&lt;/h2&gt;&lt;p&gt;不要以为自己不炒股不买基金就不算投资了。其实人生就是一场无法退出的投资游戏——买房、</summary>
      
    
    
    
    <category term="随笔" scheme="http://example.com/categories/%E9%9A%8F%E7%AC%94/"/>
    
    
    <category term="思考" scheme="http://example.com/tags/%E6%80%9D%E8%80%83/"/>
    
    <category term="投资" scheme="http://example.com/tags/%E6%8A%95%E8%B5%84/"/>
    
    <category term="人生" scheme="http://example.com/tags/%E4%BA%BA%E7%94%9F/"/>
    
  </entry>
  
  <entry>
    <title>Moonkite-Maliang - 让 AI 帮你写生图提示词</title>
    <link href="http://example.com/post/Moonkite-Maliang-%E8%AE%A9AI%E5%B8%AE%E4%BD%A0%E5%86%99%E7%94%9F%E5%9B%BE%E6%8F%90%E7%A4%BA%E8%AF%8D.html"/>
    <id>http://example.com/post/Moonkite-Maliang-%E8%AE%A9AI%E5%B8%AE%E4%BD%A0%E5%86%99%E7%94%9F%E5%9B%BE%E6%8F%90%E7%A4%BA%E8%AF%8D.html</id>
    <published>2026-07-15T15:30:00.000Z</published>
    <updated>2026-07-15T15:30:00.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="“脑子里有画面，笔下写不出”"><a href="#“脑子里有画面，笔下写不出”" class="headerlink" title="“脑子里有画面，笔下写不出”"></a>“脑子里有画面，笔下写不出”</h2><p>经常看到别人用 AI 生成的惊艳图片，提示词写得头头是道——真实摄影风、史诗级大片、辉光、神性、巨幅全景……</p><p>轮到自己上手的时候：</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>“一只猫。在花园里。嗯……然后呢？”</p></blockquote><p>这种挫败感太真实了。有时候脑子里有比较清晰的画面，写出来的 Prompt 却很苍白；有时候干脆只有一个模糊轮廓，提示词更是无从下笔。</p><p>写提示词靠两样东西：<strong>长时间练习</strong>和<strong>审美积累</strong>。很遗憾，这两样都不是一朝一夕能练成的。</p><p>那就让 AI 来帮忙吧——<strong>让 AI 出提示词，给 AI 生图</strong>。</p><h2 id="马良：让-AI-帮你”写咒语”"><a href="#马良：让-AI-帮你”写咒语”" class="headerlink" title="马良：让 AI 帮你”写咒语”"></a>马良：让 AI 帮你”写咒语”</h2><p><a href="https://github.com/huzhicheng/moonkite-skills">moonkite-maliang</a>（取名”神笔马良”）就是一个做这件事的开源 Skill。它的核心功能很简单：</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p><strong>你给出简单提示词 → Skill 自动丰富细节、设定场景、设置风格 → 输出结构清晰的专业级提示词</strong></p></blockquote><p>生成的提示词可以直接用于 Nano Banana 等生图模型。</p><h2 id="它是怎么做的"><a href="#它是怎么做的" class="headerlink" title="它是怎么做的"></a>它是怎么做的</h2><p>马良不是简单地”帮你多加几个形容词”。它通过一套**”苏格拉底式”对话流程**，一步步引导你完善想法：</p><h3 id="第一步：选择风格引擎"><a href="#第一步：选择风格引擎" class="headerlink" title="第一步：选择风格引擎"></a>第一步：选择风格引擎</h3><p>先确定这幅图的<strong>基础风格基调</strong>。目前内置 7 种风格：</p><table><thead><tr><th>风格</th><th>关键词</th></tr></thead><tbody><tr><td><strong>A. 摄影</strong></td><td>胶片质感、Kodak Portra、35mm</td></tr><tr><td><strong>B. 印刷与平面</strong></td><td>孔版印刷、半色调、扁平化设计</td></tr><tr><td><strong>C. 3D 与数字艺术</strong></td><td>C4D 渲染、粘土材质、柔光</td></tr><tr><td><strong>D. 厚涂与纯艺术</strong></td><td>厚油画、可见笔触</td></tr><tr><td><strong>E. 像素艺术</strong></td><td>8-bit 复古美学</td></tr><tr><td><strong>F. 中国水墨</strong></td><td>水墨晕染、留白、传统纹理</td></tr><tr><td><strong>G. 定格动画</strong></td><td>定格动画、手工细节</td></tr></tbody></table><h3 id="第二步：召唤大师"><a href="#第二步：召唤大师" class="headerlink" title="第二步：召唤大师"></a>第二步：召唤大师</h3><p>这是最有趣的部分——选定风格后，它会在该领域内挑选几位**”大师”**，让你选一个当”首席设计师”。然后大师会以他的视角重新审视你的提示词，帮你丰富细节和氛围。</p><h3 id="第三步：选择导演模式"><a href="#第三步：选择导演模式" class="headerlink" title="第三步：选择导演模式"></a>第三步：选择导演模式</h3><p>提供三种交互模式，对应不同的创作状态：</p><table><thead><tr><th>模式</th><th>适用场景</th><th>工作方式</th></tr></thead><tbody><tr><td><strong>自动模式</strong></td><td>只有模糊想法，想快速出效果</td><td>大师自动至少 8 轮自问自答，逐步完善提示词</td></tr><tr><td><strong>手动模式</strong></td><td>想控制更多细节</td><td>大师向你提问至少 6 轮，你逐个回答后生成</td></tr><tr><td><strong>脑暴模式</strong></td><td>想碰撞更多火花</td><td>召集多位大师一起头脑风暴，效果充满惊喜</td></tr></tbody></table><h2 id="实际效果"><a href="#实际效果" class="headerlink" title="实际效果"></a>实际效果</h2><p>来看几个”简单提示词 → 专业级效果”的例子：</p><p><strong>例 1</strong> — 原始提示词：<code>一只在城市花园的猫</code><br>→ 氛围感拉满的城市花园猫咪大片</p><p><strong>例 2</strong> — 原始提示词：<code>一位年轻中国女生的时尚大片</code><br>→ 高级感十足的时尚摄影</p><p><strong>例 3</strong> — 原始提示词：<code>CG风格的年轻女性，仰拍视角</code><br>→ 电影级 CG 构图</p><p><strong>例 4</strong> — 原始提示词：<code>如参考图中的女生，对着镜头，伸出食指，面带微笑</code><br>→ 精准还原并增强细节</p><p><strong>例 5</strong> — 原始提示词：<code>中国古代红色建筑群，屋顶上有一只白猫</code><br>→ 古风意境 + 萌宠的完美结合</p><p><strong>例 6</strong> — 原始提示词：<code>背景为深邃宇宙，史诗级巨幅摄影，空中一条古代木质长廊，一位身着白色拖地长裙女性走在长廊上（背影），遥远的下方为古代建筑群，有灯光闪烁</code><br>→ 宇宙 × 古建筑 × 人物的史诗级场景</p><p>作者的评价很实在：*”虽然比不上专业级别的创意和提示词，但做到平均水准以上还是轻而易举的。”*</p><h2 id="使用方式"><a href="#使用方式" class="headerlink" title="使用方式"></a>使用方式</h2><h3 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h3><p>Skill 已开源在 GitHub，可以直接安装：</p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash">npx skills add huzhicheng&#x2F;moonkite-skills</code></pre><p>或者手动将仓库 <code>skills/</code> 目录下的 <code>moonkite-maliang</code> 复制到你本地的 Claude Code &#x2F; Gemini CLI 目录下。</p><h3 id="调用"><a href="#调用" class="headerlink" title="调用"></a>调用</h3><p><strong>Claude Code</strong>：</p><pre class="line-numbers language-none"><code class="language-none">&#x2F;moonkite-maliang 你的提示词</code></pre><p><strong>Gemini CLI</strong>：</p><pre class="line-numbers language-none"><code class="language-none">moonkite-maliang 你的提示词</code></pre><p>之后跟着 Skill 的引导一步步操作就行。</p><h2 id="几个实用技巧"><a href="#几个实用技巧" class="headerlink" title="几个实用技巧"></a>几个实用技巧</h2><p>调优经验：</p><ul><li><strong>画面太单调</strong>：加入”细节丰富”、”增加细节”等关键词</li><li><strong>人物 AI 感太重</strong>：告诉它”加点自然瑕疵”、”要有胶片颗粒”、”要有镜头光晕”（摄影风格下 Skill 会主动询问）</li><li><strong>全景图缺乏纵深</strong>：加入”高景深”、”增加纵深感”</li><li><strong>最实用的一招</strong>：哪儿不行调哪儿——直接告诉 Skill 哪里不好，它会自己改</li></ul><h2 id="为什么这个思路值得借鉴"><a href="#为什么这个思路值得借鉴" class="headerlink" title="为什么这个思路值得借鉴"></a>为什么这个思路值得借鉴</h2><p>马良的设计有几个值得借鉴的地方：</p><ol><li><strong>把专业能力封装成 Skill</strong>：你不需要自己成为摄影&#x2F;绘画大师，Skill 替你”召唤”了一位</li><li><strong>苏格拉底式引导</strong>：不是简单的”扩写”，而是通过对话帮你<strong>想清楚</strong>你要什么</li><li><strong>多模式适配</strong>：从”随便玩玩”到”精心创作”，三种模式覆盖不同投入程度</li><li><strong>风格 + 大师 + 模式</strong> 三层架构：让提示词工程变得有结构、可组合</li></ol><h2 id="小结"><a href="#小结" class="headerlink" title="小结"></a>小结</h2><p>Prompt 工程不应该是一门枯燥的编程课，而应该是一场<strong>艺术对话</strong>。</p><p>当你脑海中浮现出一个绝妙的画面却无从下笔时，不妨试试让”马良”来帮你。毕竟，神笔马良的故事告诉我们：<strong>重要的不是你画得好不好，而是你手里有没有那支笔</strong>。</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p><strong>项目地址</strong>：<a href="https://github.com/huzhicheng/moonkite-skills">github.com&#x2F;huzhicheng&#x2F;moonkite-skills</a></p></blockquote>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;“脑子里有画面，笔下写不出”&quot;&gt;&lt;a href=&quot;#“脑子里有画面，笔下写不出”&quot; class=&quot;headerlink&quot; title=&quot;“脑子里有画面，笔下写不出”&quot;&gt;&lt;/a&gt;“脑子里有画面，笔下写不出”&lt;/h2&gt;&lt;p&gt;经常看到别人用 AI 生成的惊艳图片，提示词</summary>
      
    
    
    
    <category term="LLM" scheme="http://example.com/categories/LLM/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="工具" scheme="http://example.com/tags/%E5%B7%A5%E5%85%B7/"/>
    
    <category term="生图" scheme="http://example.com/tags/%E7%94%9F%E5%9B%BE/"/>
    
  </entry>
  
  <entry>
    <title>阿里商旅多智能体实践：从 50% 到 90% 准确率的架构升级之路</title>
    <link href="http://example.com/post/%E9%98%BF%E9%87%8C%E5%95%86%E6%97%85%E5%A4%9A%E6%99%BA%E8%83%BD%E4%BD%93%E5%AE%9E%E8%B7%B5-%E4%BB%8E50%%E5%88%B090%%E5%87%86%E7%A1%AE%E7%8E%87%E7%9A%84%E6%9E%B6%E6%9E%84%E5%8D%87%E7%BA%A7%E4%B9%8B%E8%B7%AF.html"/>
    <id>http://example.com/post/%E9%98%BF%E9%87%8C%E5%95%86%E6%97%85%E5%A4%9A%E6%99%BA%E8%83%BD%E4%BD%93%E5%AE%9E%E8%B7%B5-%E4%BB%8E50%%E5%88%B090%%E5%87%86%E7%A1%AE%E7%8E%87%E7%9A%84%E6%9E%B6%E6%9E%84%E5%8D%87%E7%BA%A7%E4%B9%8B%E8%B7%AF.html</id>
    <published>2026-07-15T15:00:00.000Z</published>
    <updated>2026-07-15T15:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="单-Agent-扛不住了"><a href="#单-Agent-扛不住了" class="headerlink" title="单 Agent 扛不住了"></a>单 Agent 扛不住了</h2><p>阿里商旅的差旅助手 AliGo 最初采用 <strong>workflow + 单智能体</strong> 的模式——所有事情交给一个大模型去做：识别意图、理解需求、调用工具、生成回答。</p><p>业务简单时还好，随着逻辑越来越复杂，问题开始暴露：</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><ul><li><strong>准确性不足</strong>：以点选需求为例，经过百余次 Prompt 调优，准确率仍只有 <strong>50% 左右</strong></li><li><strong>稳定性差</strong>：线上频繁出现”事项识别异常请重试”等核心问题</li><li><strong>Token 爆炸</strong>：Prompt 越来越长，大模型的注意力机制开始明显衰减</li><li><strong>无法协同</strong>：各 Agent 之间缺乏通信机制，能力无法复用</li></ul></blockquote><p>这是很多团队在 Agent 落地初期都会遇到的瓶颈——<strong>一个 Prompt 打天下，迟早会撞墙</strong>。</p><h2 id="架构升级：多智能体-混合调度"><a href="#架构升级：多智能体-混合调度" class="headerlink" title="架构升级：多智能体 + 混合调度"></a>架构升级：多智能体 + 混合调度</h2><p>AliGo 团队选择 <a href="https://github.com/agentscope-ai">AgentScope</a>（通义实验室开源的企业级智能体框架）作为底座，用 Python 写核心 AI 逻辑，Java 构建高并发服务层，完成了一次彻底的架构重构。</p><h3 id="调度模式：Handoffs-Routing-混合"><a href="#调度模式：Handoffs-Routing-混合" class="headerlink" title="调度模式：Handoffs + Routing 混合"></a>调度模式：Handoffs + Routing 混合</h3><p>他们没有选择单一的多 Agent 编排模式，而是<strong>按场景混合使用</strong>：</p><table><thead><tr><th>模式</th><th>适用场景</th><th>特点</th></tr></thead><tbody><tr><td><strong>Routing（路由）</strong></td><td>行程规划、知识库查询</td><td>主 Agent 统一分发，子 Agent 各自执行</td></tr><tr><td><strong>Handoffs（交接）</strong></td><td>信息查询、多轮对话</td><td>Agent 之间传递上下文，接力完成任务</td></tr></tbody></table><p>核心思路：<strong>模式不固定，按需调整</strong>。这比追求”一种架构搞定一切”务实得多。</p><h3 id="意图识别：快慢车道"><a href="#意图识别：快慢车道" class="headerlink" title="意图识别：快慢车道"></a>意图识别：快慢车道</h3><p>这是一个很有意思的设计——不是所有请求都需要过大模型：</p><pre class="line-numbers language-none"><code class="language-none">用户输入  │  ├─ 规则引擎命中？ ──→ 快车道：直接路由到对应 Agent（跳过 LLM）  │   例如&quot;为我规划行程&quot;、&quot;开始规划&quot;  │  └─ 未命中 ──────────→ 慢车道：交给大模型做多意图分析</code></pre><p><strong>快车道</strong>处理固定套路的指令，<strong>慢车道</strong>处理复杂的、多意图的自然语言。这个分层策略大幅降低了不必要的 LLM 调用延迟。</p><p>更进一步，主智能体会根据规则引擎的结果<strong>动态选择不同的 Prompt 模板</strong>：</p><pre class="line-numbers language-python" data-language="python"><code class="language-python">def get_prompt_main_plan(user_input: str) -&gt; str:    rule_match_result &#x3D; classifier.classify(user_input)    if rule_match_result:        # 规则匹配：简单意图，直接路由        return _get_simple_intent_prompt(...)    else:        # 规则未匹配：复杂意图，需要 LLM 分析        return _get_complex_intent_prompt(...)</code></pre><p>本质上是给 AI 构建了一个<strong>状态机</strong>——工程手段确定状态边界，AI 在边界内自主处理细节。</p><h2 id="实时思考链：让用户不再干等"><a href="#实时思考链：让用户不再干等" class="headerlink" title="实时思考链：让用户不再干等"></a>实时思考链：让用户不再干等</h2><p>多 Agent 架构不可避免地增加了响应耗时。AliGo 的解法是<strong>实时展示思考链</strong>，让用户看到系统在”想什么”。</p><h3 id="ReAct-Hook-机制"><a href="#ReAct-Hook-机制" class="headerlink" title="ReAct + Hook 机制"></a>ReAct + Hook 机制</h3><p>基于 AgentScope 的 ReActAgent（Reason-Act-Observe 循环），通过 <strong>Hook 机制</strong> 拦截每一条消息：</p><ul><li>捕获 <code>tool_use</code> 类型 → 记录工具调用，推送”正在查询…”状态</li><li>捕获 <code>tool_result</code> 类型 → 记录执行结果，更新任务状态</li><li>通过 <code>TaskCollector</code> 统一管理任务生命周期（PENDING → DOING → DONE&#x2F;FAILED）</li><li>最终通过 SSE 流式输出，实时渲染思考链</li></ul><p><strong>一句话经验</strong>：多 Agent 系统的”慢”不一定是问题，关键是让用户<strong>看到过程</strong>而不是面对一个空白的等待界面。</p><h2 id="上下文工程：比-Prompt-工程更重要"><a href="#上下文工程：比-Prompt-工程更重要" class="headerlink" title="上下文工程：比 Prompt 工程更重要"></a>上下文工程：比 Prompt 工程更重要</h2><p>这是文章中最值得深入的部分。AliGo 在上下文管理上的几个关键设计：</p><h3 id="1-记忆分层与共享"><a href="#1-记忆分层与共享" class="headerlink" title="1. 记忆分层与共享"></a>1. 记忆分层与共享</h3><ul><li>默认各 Agent <strong>独立管理</strong>自己的对话历史（数据隔离）</li><li>对高相关性 Agent <strong>动态开放</strong>必要的上下文（体验连续）</li><li>通过出入栈方式维护 Agent 调用链的层级关系，共享 sessionId</li></ul><pre class="line-numbers language-none"><code class="language-none">┌─────────────────────────────────────┐│           全局上下文管理              │├──────────┬──────────┬───────────────┤│ 审批记忆  │ 事项记忆  │ 行程规划记忆  ││ (独立)    │ (共享)   │ (独立)        │└──────────┴──────────┴───────────────┘</code></pre><p><strong>核心原则</strong>：基于<strong>最小权限原则</strong>动态供给上下文——每个 Agent 只拿到它需要的信息，而不是全部历史。</p><h3 id="2-数据存储三层分离"><a href="#2-数据存储三层分离" class="headerlink" title="2. 数据存储三层分离"></a>2. 数据存储三层分离</h3><table><thead><tr><th>存储层</th><th>内容</th><th>用途</th></tr></thead><tbody><tr><td>消息存储表</td><td>完整消息记录</td><td>调试、回溯</td></tr><tr><td>会话管理表</td><td>会话基本信息</td><td>会话管理</td></tr><tr><td>对话记录表</td><td>精简的 query → answer</td><td>上下文注入（减少 Token）</td></tr></tbody></table><p>这个分层非常关键——注入给 LLM 的上下文不需要完整的消息记录，只需要精简的对话摘要。</p><h3 id="3-动态-Prompt-x3D-状态机"><a href="#3-动态-Prompt-x3D-状态机" class="headerlink" title="3. 动态 Prompt &#x3D; 状态机"></a>3. 动态 Prompt &#x3D; 状态机</h3><p>之前把所有业务规则塞进一个 Prompt，本质是”线性工作流程说明书”。现在改为：</p><ul><li>工程手段识别用户当前所处的<strong>对话阶段</strong></li><li>根据阶段<strong>动态组装</strong> Prompt，只注入当前阶段需要的规则</li><li>模型注意力聚焦于<strong>当前主链路</strong>，而不是在全量规则中大海捞针</li></ul><p><strong>一句话经验</strong>：不要让模型在 100 条规则里找当前需要的那 3 条——<strong>工程先行，AI 殿后</strong>。</p><h2 id="Prompt-工程的工程化思维"><a href="#Prompt-工程的工程化思维" class="headerlink" title="Prompt 工程的工程化思维"></a>Prompt 工程的工程化思维</h2><p>AliGo 团队在 Prompt 工程上的一个核心认知转变：</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>不要把所有逻辑都塞进 Prompt。应该<strong>协同模型共同确定当前及下一轮对话的注意力焦点</strong>，明确业务边界后，在可控范围内交由 AI 自主处理。</p></blockquote><p>换句话说：</p><ul><li><strong>工程负责确定性</strong>：状态管理、流程控制、数据校验</li><li><strong>AI 负责灵活性</strong>：自然语言理解、模糊意图消歧、生成回答</li></ul><p>这种”工程与智能体结合”的思路，比纯粹的”Prompt 调优”靠谱得多。</p><h2 id="周边生态：不只是-Agent"><a href="#周边生态：不只是-Agent" class="headerlink" title="周边生态：不只是 Agent"></a>周边生态：不只是 Agent</h2><p>AliGo 的实践还覆盖了三个关键周边：</p><h3 id="知识库（RAG）"><a href="#知识库（RAG）" class="headerlink" title="知识库（RAG）"></a>知识库（RAG）</h3><p>基于 <strong>MaxKB</strong>（GitHub 19k+ stars）构建，支持：</p><ul><li>图文混排文档处理（差旅政策里的表格、图片）</li><li>多企业隔离（千人千面）</li><li>本地化部署</li></ul><p>选型理由：Python + PostgreSQL 技术栈匹配，开源成熟二次开发成本低。</p><h3 id="可观测性"><a href="#可观测性" class="headerlink" title="可观测性"></a>可观测性</h3><p>基于 <strong>Langfuse</strong>（开源）构建，实现：</p><ul><li>全链路追踪：用户输入 → 意图识别 → Agent 调度 → 工具调用 → 最终输出</li><li>多维度观测：Trace（单次对话）&#x2F; Session（会话）&#x2F; User（用户）</li><li>打通观测 → 评测闭环</li></ul><h3 id="自动化评测"><a href="#自动化评测" class="headerlink" title="自动化评测"></a>自动化评测</h3><ul><li>基于通义千问大模型自动评分（准确性 + 相关性）</li><li>完整的测试生命周期管理</li><li>可视化报告 + 版本对比</li></ul><h2 id="效果"><a href="#效果" class="headerlink" title="效果"></a>效果</h2><table><thead><tr><th>指标</th><th>升级前</th><th>升级后</th></tr></thead><tbody><tr><td>事项收集准确率</td><td>~50%</td><td><strong>90%+</strong></td></tr><tr><td>遗留 Bug</td><td>多个无法解决</td><td><strong>100% 解决</strong></td></tr><tr><td>系统稳定性</td><td>频繁异常</td><td>逐步趋稳</td></tr></tbody></table><p>该项目获得 InfoQ 2025 年度 AI Agent 最具生产力产品&#x2F;应用&#x2F;平台奖，以及量子位 2025 人工智能年度杰出解决方案奖。</p><h2 id="几个值得借鉴的思路"><a href="#几个值得借鉴的思路" class="headerlink" title="几个值得借鉴的思路"></a>几个值得借鉴的思路</h2><p>读完 AliGo 的实践，有几个点特别值得做 Agent 开发的同行参考：</p><h3 id="1-快慢车道设计"><a href="#1-快慢车道设计" class="headerlink" title="1. 快慢车道设计"></a>1. 快慢车道设计</h3><p>不是所有请求都要过 LLM。简单的、固定模式的指令，用规则引擎直接处理。<strong>把 LLM 用在刀刃上</strong>。</p><h3 id="2-上下文工程-gt-Prompt-工程"><a href="#2-上下文工程-gt-Prompt-工程" class="headerlink" title="2. 上下文工程 &gt; Prompt 工程"></a>2. 上下文工程 &gt; Prompt 工程</h3><p>与其花 100 次调 Prompt，不如好好设计上下文的分层、共享和裁剪。<strong>给模型看它该看的，而不是所有东西</strong>。</p><h3 id="3-动态-Prompt-x3D-状态机-1"><a href="#3-动态-Prompt-x3D-状态机-1" class="headerlink" title="3. 动态 Prompt &#x3D; 状态机"></a>3. 动态 Prompt &#x3D; 状态机</h3><p>把对话流程建模为状态机，每个状态只注入必要的上下文和规则。这比一个巨型 Prompt 高效得多。</p><h3 id="4-让用户看到过程"><a href="#4-让用户看到过程" class="headerlink" title="4. 让用户看到过程"></a>4. 让用户看到过程</h3><p>多 Agent 必然增加延迟，但<strong>实时思考链</strong>可以把”等待焦虑”转化为”信任感”。</p><h3 id="5-工程与-AI-各司其职"><a href="#5-工程与-AI-各司其职" class="headerlink" title="5. 工程与 AI 各司其职"></a>5. 工程与 AI 各司其职</h3><p>工程做确定性（状态管理、数据校验、流程控制），AI 做灵活性（语言理解、意图消歧、内容生成）。<strong>不要指望 AI 解决所有问题，也不要忽视 AI 的灵活性优势</strong>。</p><hr><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p><strong>参考来源</strong>：<a href="https://mp.weixin.qq.com/s/3MXwawLU716HM5aGARlTXA">准确率提升至 90%，阿里商旅基于 AgentScope 构建多智能体差旅助手最佳实践</a></p></blockquote>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;单-Agent-扛不住了&quot;&gt;&lt;a href=&quot;#单-Agent-扛不住了&quot; class=&quot;headerlink&quot; title=&quot;单 Agent 扛不住了&quot;&gt;&lt;/a&gt;单 Agent 扛不住了&lt;/h2&gt;&lt;p&gt;阿里商旅的差旅助手 AliGo 最初采用 &lt;strong&gt;w</summary>
      
    
    
    
    <category term="架构" scheme="http://example.com/categories/%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="Agent" scheme="http://example.com/tags/Agent/"/>
    
    <category term="多智能体" scheme="http://example.com/tags/%E5%A4%9A%E6%99%BA%E8%83%BD%E4%BD%93/"/>
    
    <category term="架构" scheme="http://example.com/tags/%E6%9E%B6%E6%9E%84/"/>
    
    <category term="AgentScope" scheme="http://example.com/tags/AgentScope/"/>
    
  </entry>
  
  <entry>
    <title>Models.dev - 开源 AI 模型百科全书</title>
    <link href="http://example.com/post/Models.dev-%E5%BC%80%E6%BA%90AI%E6%A8%A1%E5%9E%8B%E7%99%BE%E7%A7%91%E5%85%A8%E4%B9%A6.html"/>
    <id>http://example.com/post/Models.dev-%E5%BC%80%E6%BA%90AI%E6%A8%A1%E5%9E%8B%E7%99%BE%E7%A7%91%E5%85%A8%E4%B9%A6.html</id>
    <published>2026-07-15T14:00:00.000Z</published>
    <updated>2026-07-15T14:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="选模型，越来越像一场信息战"><a href="#选模型，越来越像一场信息战" class="headerlink" title="选模型，越来越像一场信息战"></a>选模型，越来越像一场信息战</h2><p>如今 AI 模型层出不穷——OpenAI 隔三差五发新版本，Anthropic、Google、Meta、xAI 各有所长，更别提阿里通义、DeepSeek、美团等国内厂商也在快速跟进。</p><p>作为开发者，我们经常面临这样的场景：</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>“这个项目要用一个支持 Function Calling、上下文窗口大一点的模型，哪个合适？”<br>“这个模型的定价是多少？支持结构化输出吗？权重开放吗？”<br>“有没有一个地方能一站对比所有模型的能力？”</p></blockquote><p>过去，这些信息散落在各家官网和文档里，想要横向对比非常麻烦。现在有了 <strong>Models.dev</strong>，事情变得简单多了。</p><h2 id="什么是-Models-dev"><a href="#什么是-Models-dev" class="headerlink" title="什么是 Models.dev"></a>什么是 Models.dev</h2><p><a href="https://models.dev/">Models.dev</a> 是一个<strong>开源的 AI 模型数据库</strong>，由 <a href="https://anoma.ly/">Anomaly</a> 团队维护（该团队同时也是 <a href="https://sst.dev/">SST</a>、<a href="https://opencode.ai/">OpenCode</a> 等知名开源项目的背后团队）。它把市面上主流 AI 模型的<strong>规格、定价、能力特性</strong>整合到一个可搜索的网页上，堪称 AI 领域的”百科全书”。</p><p>一句话概括：<strong>如果你需要在开发时挑选 AI 模型，这个网站值得加入浏览器书签。</strong></p><h2 id="页面结构：怎么”逛”这个站"><a href="#页面结构：怎么”逛”这个站" class="headerlink" title="页面结构：怎么”逛”这个站"></a>页面结构：怎么”逛”这个站</h2><p>Models.dev 的导航设计很清晰，整个站点分为四个层级，层层递进：</p><ol><li><strong>首页（模型总览）</strong> — 以厂商无关的方式展示所有模型的元数据，是快速浏览和对比的主入口</li><li><strong>模型详情页（Model Pages）</strong> — 点进某个模型后，会列出<strong>哪些供应商提供该模型</strong>，方便你比较不同渠道的价格和接入方式</li><li><strong>供应商页（Provider Pages）</strong> — 反过来，每个供应商页面列出<strong>它提供的所有模型</strong>，适合评估某个供应商的模型丰富度</li><li><strong>实验室&#x2F;厂商页（Lab Pages）</strong> — 按模型作者（OpenAI、Anthropic、Google 等）分组，集中展示每个实验室的”产品家族”</li></ol><p>这种”模型 ↔ 供应商 ↔ 实验室”的双向导航，让你无论带着哪种问题来，都能快速找到答案。</p><h2 id="核心功能"><a href="#核心功能" class="headerlink" title="核心功能"></a>核心功能</h2><h3 id="1-模型大全（Models）"><a href="#1-模型大全（Models）" class="headerlink" title="1. 模型大全（Models）"></a>1. 模型大全（Models）</h3><p>网站主页以表格形式展示了所有收录的模型，每个模型包含以下关键信息：</p><table><thead><tr><th>维度</th><th>说明</th></tr></thead><tbody><tr><td><strong>厂商&#x2F;实验室</strong></td><td>OpenAI、Anthropic、Google、Meta、xAI 等</td></tr><tr><td><strong>参数量</strong></td><td>模型参数规模</td></tr><tr><td><strong>上下文长度</strong></td><td>最大支持的 token 数</td></tr><tr><td><strong>能力标签</strong></td><td>是否支持输出&#x2F;输入&#x2F;推理&#x2F;工具调用&#x2F;结构化输出&#x2F;温度控制</td></tr><tr><td><strong>推理控制选项</strong></td><td>推理模型的调控方式（toggle 开关、budget_tokens 预算等）</td></tr><tr><td><strong>权重是否开放</strong></td><td>Open（开放权重）&#x2F; Closed（闭源）</td></tr><tr><td><strong>定价</strong></td><td>输入&#x2F;输出&#x2F;推理&#x2F;缓存读取&#x2F;音频输入输出 每百万 token 价格</td></tr><tr><td><strong>模型状态</strong></td><td>alpha（内测）&#x2F; beta（公测）&#x2F; deprecated（已弃用）</td></tr><tr><td><strong>基准测试</strong></td><td>Benchmark 分数、指标、来源链接</td></tr><tr><td><strong>发布&#x2F;更新日期</strong></td><td>模型版本时效性</td></tr></tbody></table><p>最新收录的模型包括 GPT-5.6 系列（Luna&#x2F;Sol&#x2F;Terra）、Claude Sonnet 5、Grok 4.3&#x2F;4.5&#x2F;4.20 系列（含 Reasoning&#x2F;Non-Reasoning 变体）、Gemini Omni Flash、Meta Muse Spark、Kimi K2 系列（Thinking&#x2F;Turbo&#x2F;K2.5&#x2F;K2.6&#x2F;K2.7-Code）、美团 LongCat-2.0 等。截至目前，网站共收录 <strong>255 个独立模型</strong>，覆盖 <strong>166 家供应商</strong> 和 <strong>23 个实验室&#x2F;厂商</strong>。</p><h3 id="2-供应商列表（Providers）"><a href="#2-供应商列表（Providers）" class="headerlink" title="2. 供应商列表（Providers）"></a>2. 供应商列表（Providers）</h3><p>这是 Models.dev 的另一大亮点——<strong>不仅列模型，还列供应商</strong>。</p><p>同一个模型可能通过多个 API 供应商获取（官方、Azure、AWS Bedrock、第三方代理……），Models.dev 把每个供应商都列了出来，并附上：</p><ul><li><strong>SDK 包名</strong>（如 <code>@ai-sdk/openai-compatible</code>、<code>@ai-sdk/anthropic</code>）</li><li><strong>API 端点 URL</strong></li><li><strong>文档链接</strong></li></ul><p>目前收录的供应商有 <strong>166 家</strong>，从大厂（OpenAI、Azure、AWS、Google）到中小供应商（Deep Infra、Fireworks AI、阿里云、Vercel AI Gateway、各种兼容 OpenAI 协议的代理）一应俱全。</p><h3 id="3-实验室-x2F-厂商页（Labs）"><a href="#3-实验室-x2F-厂商页（Labs）" class="headerlink" title="3. 实验室&#x2F;厂商页（Labs）"></a>3. 实验室&#x2F;厂商页（Labs）</h3><p>点击模型对应的 Lab 链接，可以查看该厂商的专属页面，集中展示其所有模型。</p><h3 id="4-搜索与快捷键"><a href="#4-搜索与快捷键" class="headerlink" title="4. 搜索与快捷键"></a>4. 搜索与快捷键</h3><p>按 <code>Ctrl + F</code> 即可唤起全站搜索，快速定位模型或供应商，在模型爆炸式增长的今天非常实用。</p><h3 id="5-模型元数据层：一份数据，多处复用"><a href="#5-模型元数据层：一份数据，多处复用" class="headerlink" title="5. 模型元数据层：一份数据，多处复用"></a>5. 模型元数据层：一份数据，多处复用</h3><p>这是 Models.dev 近期一个重要的架构升级——新增了 <code>models/</code> 目录，存放<strong>与供应商无关的模型通用元数据</strong>。</p><p>比如 OpenAI 的 GPT-5 模型，不管是从官方 API、Azure 还是第三方代理获取，其<strong>上下文长度、支持的能力、权重开放情况</strong>等事实是一样的，只是<strong>定价和限额</strong>因供应商而异。Models.dev 把这些通用事实提取到 <code>models/openai/gpt-5.toml</code> 中，各供应商通过 <code>base_model</code> 继承：</p><pre class="line-numbers language-toml" data-language="toml"><code class="language-toml"># providers&#x2F;azure&#x2F;models&#x2F;gpt-5.tomlbase_model &#x3D; &quot;openai&#x2F;gpt-5&quot;[cost]input &#x3D; 1.25   # 只写 Azure 特有的定价output &#x3D; 10.00</code></pre><p>还可以用 <code>base_model_omit</code> 精确排除不需要的继承字段。这种”一次定义、多处复用”的设计，大幅减少了数据冗余，也让同模型跨供应商的对比更加清晰。</p><p>目前已有 <strong>23 个实验室</strong>（OpenAI、Anthropic、Google、阿里、智谱、小米、月之暗面、Meta、NVIDIA 等）的模型建立了通用元数据。</p><h3 id="6-自动化同步：数据不只靠人维护"><a href="#6-自动化同步：数据不只靠人维护" class="headerlink" title="6. 自动化同步：数据不只靠人维护"></a>6. 自动化同步：数据不只靠人维护</h3><p>Models.dev 不只是社区手动维护——它 build 了一套<strong>自动化同步流水线</strong>：</p><ul><li>通过 GitHub Actions，<strong>每日自动</strong>从 OpenRouter、Vercel AI Gateway、CrossModel、BaseTen、Cloudflare 等多家供应商的 API 拉取最新模型目录</li><li>每个供应商独立生成 PR，附带同步报告（<code>.sync/model-sync-report.md</code>）</li><li>支持 <code>--dry-run</code>（预览变更）和 <code>--new-only</code>（只增不改）等模式</li><li>同步脚本会自动处理定价单位转换、日期解析、能力字段映射</li></ul><p>这意味着新模型上线后，<strong>几小时内</strong>就能在 Models.dev 上看到，不必等人工提交。</p><h3 id="7-AGENTS-md：AI-Agent-也能贡献"><a href="#7-AGENTS-md：AI-Agent-也能贡献" class="headerlink" title="7. AGENTS.md：AI Agent 也能贡献"></a>7. AGENTS.md：AI Agent 也能贡献</h3><p>有趣的是，仓库里还有一份 <code>AGENTS.md</code>，专门定义了 <strong>AI 编程 Agent（如 OpenCode）如何参与数据库维护</strong>：</p><ul><li>验证命令（<code>bun validate</code>）、代码风格约定、PR 审核清单</li><li>新供应商必须附带 SVG Logo</li><li>推理模型必须声明 <code>reasoning_options</code>（推理控制选项）</li><li>数据变更需引用来源链接</li></ul><p>这种”人机协作”的开源模式，让 Models.dev 在保持数据质量的同时，也能跟上 AI 模型日新月异的发布节奏。</p><h2 id="进阶用法：不只是”看看”"><a href="#进阶用法：不只是”看看”" class="headerlink" title="进阶用法：不只是”看看”"></a>进阶用法：不只是”看看”</h2><p>Models.dev 不只是一个网页浏览器——它还提供了一整套<strong>面向开发者的数据接口和资源</strong>。</p><h3 id="开放-API：把数据拉到你自己的程序里"><a href="#开放-API：把数据拉到你自己的程序里" class="headerlink" title="开放 API：把数据拉到你自己的程序里"></a>开放 API：把数据拉到你自己的程序里</h3><p>网站的所有数据都可以通过 JSON 接口直接获取，非常适合做自动化对比、计费预估或集成到内部工具中：</p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash"># 供应商数据curl https:&#x2F;&#x2F;models.dev&#x2F;api.json# 模型元数据（厂商无关）curl https:&#x2F;&#x2F;models.dev&#x2F;models.json# 完整目录（模型 + 供应商合并）curl https:&#x2F;&#x2F;models.dev&#x2F;catalog.json</code></pre><p>这意味着你可以用这些数据做很多有意思的事：</p><ul><li>写个脚本自动比较不同供应商的同模型定价</li><li>做内部工具时直接拉最新的模型能力列表</li><li>生成团队内部的模型选型报告</li></ul><h3 id="SDK：类型安全的-API-客户端"><a href="#SDK：类型安全的-API-客户端" class="headerlink" title="SDK：类型安全的 API 客户端"></a>SDK：类型安全的 API 客户端</h3><p>如果你在做基于 AI SDK 的应用，可以直接安装官方 SDK——它已经从简单的数据快照升级为<strong>正式的类型化 API 客户端</strong>：</p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash">npm install @opencode-ai&#x2F;models</code></pre><p>SDK 特点：</p><ul><li><strong>零依赖</strong>，纯 TypeScript 类型定义</li><li>提供三个入口：<code>@opencode-ai/models</code>（主入口）、<code>./effect</code>（Effect 集成）、<code>./snapshot</code>（离线快照）</li><li><strong>每日自动发版</strong>，确保数据始终最新（当前版本 <code>v0.0.13</code>）</li><li>不依赖网络请求即可在代码里查询模型信息，适合做运行时的模型能力判断</li></ul><h3 id="Logo-资源：直接拿去用"><a href="#Logo-资源：直接拿去用" class="headerlink" title="Logo 资源：直接拿去用"></a>Logo 资源：直接拿去用</h3><p>文章、PPT、产品页面里经常需要展示各家 AI 厂商的 Logo，Models.dev 贴心地提供了 SVG 格式的厂商&#x2F;实验室 Logo：</p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash"># 供应商 Logocurl https:&#x2F;&#x2F;models.dev&#x2F;logos&#x2F;anthropic.svg# 实验室&#x2F;厂商 Logocurl https:&#x2F;&#x2F;models.dev&#x2F;logos&#x2F;labs&#x2F;openai.svg</code></pre><p><code>&#123;provider&#125;</code> 和 <code>&#123;lab&#125;</code> 就是页面上的供应商&#x2F;实验室 ID，拿来即用，省去了到处找 Logo 的麻烦。</p><h3 id="参与贡献：数据就是-TOML-文件"><a href="#参与贡献：数据就是-TOML-文件" class="headerlink" title="参与贡献：数据就是 TOML 文件"></a>参与贡献：数据就是 TOML 文件</h3><p>Models.dev 是真正的开源协作项目——<strong>底层数据以 TOML 文件的形式存储在 GitHub 上</strong>，按供应商和规范模型分类组织。</p><p>这意味着：</p><ul><li>发现某个模型的定价信息过时了？直接改 TOML 文件提 PR</li><li>新出了一个模型想补录？按格式加一条 TOML 记录即可</li><li>想加一个新供应商？在对应目录下新增文件</li></ul><p>贡献门槛极低，会写配置文件就能参与。仓库地址：<a href="https://github.com/anomalyco/models.dev">github.com&#x2F;anomalyco&#x2F;models.dev</a></p><h2 id="对谁有用"><a href="#对谁有用" class="headerlink" title="对谁有用"></a>对谁有用</h2><ul><li><strong>AI 应用开发者</strong>：选型时快速对比模型能力、定价，省去翻官网的时间</li><li><strong>架构师&#x2F;技术负责人</strong>：评估多供应商策略，找到最优性价比方案</li><li><strong>AI 产品&#x2F;运营人员</strong>：跟踪行业动态，了解最新模型发布信息</li><li><strong>AI Agent&#x2F;工具开发者</strong>：通过 SDK 和 API 将模型元数据集成到自己的工具链中</li><li><strong>技术博主&#x2F;自媒体</strong>：需要写模型对比文章时，Models.dev 是极好的参考来源</li></ul><h2 id="为什么值得关注"><a href="#为什么值得关注" class="headerlink" title="为什么值得关注"></a>为什么值得关注</h2><ol><li><strong>开源可贡献</strong>：数据以 TOML 文件形式存在 <a href="https://github.com/anomalyco/models.dev">GitHub</a> 上，发现信息不准可以直接改文件提 PR（详见上文”参与贡献”）</li><li><strong>更新及时</strong>：新模型发布后几小时内即可收录，<strong>自动化同步流水线</strong>每日从多家供应商 API 拉取最新目录，社区响应速度很快</li><li><strong>开发者友好</strong>：提供 JSON API、npm SDK（每日发版）、SVG Logo 等一整套资源，不只是”看看”，还能直接”用起来”</li><li><strong>数据架构先进</strong>：<code>models/</code> 元数据层 + <code>base_model</code> 继承机制，消除了供应商间的数据冗余，让跨供应商对比更清晰</li><li><strong>中立客观</strong>：不偏向任何厂商，纯数据呈现，让你自己根据需求做判断</li><li><strong>Anomaly 生态加持</strong>：背后的 Anomaly 团队同时维护 OpenCode（★185K 的开源编程 Agent）、SST 等项目，Models.dev 作为其内部基础设施的一部分，项目质量有保障</li></ol><h2 id="小结"><a href="#小结" class="headerlink" title="小结"></a>小结</h2><p>在 AI 模型百花齐放的今天，Models.dev 就像一本**AI 模型的 “黄页”**，把散落在各处的信息整合到一起，降低了开发者选型的信息成本。</p><p>它既是一个可以浏览的网站，也是一个可以<strong>直接调用</strong>的数据源——JSON API、npm SDK（每日发版）、SVG Logo 一应俱全，甚至数据本身就开放在 GitHub 上供你贡献和 fork。随着自动化同步流水线和 AI Agent 协作贡献机制的引入，它在数据时效性和覆盖面上又上了一个台阶。</p><p>如果你在做 AI 相关开发，强烈建议收藏：<a href="https://models.dev/">https://models.dev</a></p><p>下次再有人问你 “XX 模型支持 Function Calling 吗”、”这个模型多少钱”，直接把链接甩给他就好。</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;选模型，越来越像一场信息战&quot;&gt;&lt;a href=&quot;#选模型，越来越像一场信息战&quot; class=&quot;headerlink&quot; title=&quot;选模型，越来越像一场信息战&quot;&gt;&lt;/a&gt;选模型，越来越像一场信息战&lt;/h2&gt;&lt;p&gt;如今 AI 模型层出不穷——OpenAI 隔三差五发</summary>
      
    
    
    
    <category term="LLM" scheme="http://example.com/categories/LLM/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="开源" scheme="http://example.com/tags/%E5%BC%80%E6%BA%90/"/>
    
    <category term="工具" scheme="http://example.com/tags/%E5%B7%A5%E5%85%B7/"/>
    
    <category term="大模型" scheme="http://example.com/tags/%E5%A4%A7%E6%A8%A1%E5%9E%8B/"/>
    
  </entry>
  
  <entry>
    <title>AI 的 80 分幻觉——「善后工程师」才是 AI 时代的核心竞争力</title>
    <link href="http://example.com/post/AI-%E7%9A%84-80-%E5%88%86%E5%B9%BB%E8%A7%89%E2%80%94%E2%80%94%E4%B8%BA%E4%BB%80%E4%B9%88%E3%80%8C%E5%96%84%E5%90%8E%E5%B7%A5%E7%A8%8B%E5%B8%88%E3%80%8D%E6%89%8D%E6%98%AF-AI-%E6%97%B6%E4%BB%A3%E7%9A%84%E6%A0%B8%E5%BF%83%E7%AB%9E%E4%BA%89%E5%8A%9B.html"/>
    <id>http://example.com/post/AI-%E7%9A%84-80-%E5%88%86%E5%B9%BB%E8%A7%89%E2%80%94%E2%80%94%E4%B8%BA%E4%BB%80%E4%B9%88%E3%80%8C%E5%96%84%E5%90%8E%E5%B7%A5%E7%A8%8B%E5%B8%88%E3%80%8D%E6%89%8D%E6%98%AF-AI-%E6%97%B6%E4%BB%A3%E7%9A%84%E6%A0%B8%E5%BF%83%E7%AB%9E%E4%BA%89%E5%8A%9B.html</id>
    <published>2026-07-14T07:30:00.000Z</published>
    <updated>2026-07-14T07:30:00.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="引言：80-分危机"><a href="#引言：80-分危机" class="headerlink" title="引言：80 分危机"></a>引言：80 分危机</h2><p>凌晨三点，老张盯着屏幕上 AI 生成的 2000 行代码，这是他改的第 47 个 bug。AI 用一分钟写完了整个模块，他已经调了三天。更绝望的是：每修一个 bug，AI 都能”贴心”地帮他补出三个新 bug。</p><p>这不是段子，这已经是很多开发者的日常。</p><p>最近知乎上突然爆火一个词：<strong>大模型善后工程师</strong>。</p><p>AI 已经能把一个项目做到 80 分了。但真正能上线、能卖钱、没 bug 的，仍然要你 20 分来救。而这 20 分，恰恰是最难的那部分。</p><p>更扎心的是：</p><ul><li>从 0 → 80 分，只需要一句 prompt</li><li>从 80 → 100 分，需要工程师半条命</li></ul><p>所以这份”善后”的工作，开始变成行业刚需。</p><h2 id="大模型的”80-分幻觉”"><a href="#大模型的”80-分幻觉”" class="headerlink" title="大模型的”80 分幻觉”"></a>大模型的”80 分幻觉”</h2><p>一句 prompt，AI 能给你：</p><ul><li>方向对</li><li>代码能跑</li><li>结构像样</li><li>文案顺眼</li><li>Demo 一键生成</li></ul><p>你觉得卧槽厉害啊，80 分了！</p><p>但很快你会发现它的成长曲线是这样的：</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p><strong>越复杂 → 越玄学</strong><br><strong>越细节 → 越离谱</strong><br><strong>越真实 → 越不行</strong></p></blockquote><p>原因很简单：</p><ul><li>它没有产品逻辑</li><li>它没有业务上下文</li><li>它没有边界意识</li><li>它没有安全意识</li><li>它不会思考后果，只会预测下一个 token</li></ul><p>所以你会看到一堆”莫名其妙但看似合理”的错误：漏字段、漏条件、逻辑跳步、变量改名、错误兜底消失……</p><p>你越让它补，它越能给你补出一个”新 bug 平行宇宙”。</p><p>新手的做法是：一句接一句喂给 AI，让 AI 修复 bug。</p><p>老手的做法是：**”行了行了，我自己来。”**</p><p>于是，”善后工程师”诞生了。</p><h2 id="80-→-100-分是地狱难度"><a href="#80-→-100-分是地狱难度" class="headerlink" title="80 → 100 分是地狱难度"></a>80 → 100 分是地狱难度</h2><p>为什么？因为 AI 不擅长”确定性”。看几个你一定遇到过的 AI 产品灾难：</p><h3 id="1）边界没处理"><a href="#1）边界没处理" class="headerlink" title="1）边界没处理"></a>1）边界没处理</h3><ul><li>用户输入异常 → 直接报错</li><li>接口没数据 → 直接挂</li><li>Token 失效 → 再见</li></ul><p>AI 永远假设：输入是完美的，网络是稳定的，用户是理性的。现实是：用户会输入表情包，会断网，会疯狂点击按钮。</p><h3 id="2）异常没兜底"><a href="#2）异常没兜底" class="headerlink" title="2）异常没兜底"></a>2）异常没兜底</h3><p>一个报错能把整个链路砸死。</p><h3 id="3）安全全靠运气"><a href="#3）安全全靠运气" class="headerlink" title="3）安全全靠运气"></a>3）安全全靠运气</h3><p>XSS？SQL 注入？权限？AI：我不知道，我只是预测文本。</p><h3 id="4）性能烂得离谱"><a href="#4）性能烂得离谱" class="headerlink" title="4）性能烂得离谱"></a>4）性能烂得离谱</h3><p>O(n³) 算法写得比谁都自信。</p><h3 id="5）上下文混乱"><a href="#5）上下文混乱" class="headerlink" title="5）上下文混乱"></a>5）上下文混乱</h3><p>API 字段昨晚叫 <code>userId</code>，今天变成 <code>userID</code>，明天变成 <code>uid</code>。这些东西，AI 永远不会主动告诉你。</p><p>于是，你必须”善后”。</p><h2 id="Agent-两大派系：为什么有的能落地，有的永远只能-PPT？"><a href="#Agent-两大派系：为什么有的能落地，有的永远只能-PPT？" class="headerlink" title="Agent 两大派系：为什么有的能落地，有的永远只能 PPT？"></a>Agent 两大派系：为什么有的能落地，有的永远只能 PPT？</h2><p>Agent 现在分两派：</p><h3 id="A-工作流型-Agent-——-现实可用，能规模化落地"><a href="#A-工作流型-Agent-——-现实可用，能规模化落地" class="headerlink" title="A. 工作流型 Agent —— 现实可用，能规模化落地"></a>A. 工作流型 Agent —— 现实可用，能规模化落地</h3><p>它有 SOP（标准流程）：输入 → 处理 → 输出。边界明确，有轨道可跑。可靠、可监控、结果可控。</p><p><strong>适用场景：</strong></p><ul><li>客服机器人（固定问答流程）</li><li>代码审查（检查清单明确）</li><li>数据处理（ETL 流程标准化）</li><li>文档生成（模板 + 规则）</li></ul><p><strong>为什么能落地？</strong> 因为<strong>可靠性 &gt; 灵活性</strong>。所以大厂能用的，都是这种。</p><h3 id="B-自主型-Agent-——-自由灵魂，现实灾难"><a href="#B-自主型-Agent-——-自由灵魂，现实灾难" class="headerlink" title="B. 自主型 Agent —— 自由灵魂，现实灾难"></a>B. 自主型 Agent —— 自由灵魂，现实灾难</h3><p>目标模糊、行为难控、结果不可复现。今天帮你干活，明天给你整活。适合展示，但绝不适合生产。</p><p><strong>现实问题：</strong></p><ul><li>今天帮你发邮件，明天给老板发了辞职信</li><li>今天帮你买东西，明天把你银行卡刷爆</li><li>今天帮你整理文件，明天把重要文档删了</li></ul><p><strong>核心原因：</strong> 自由度越大，不确定性越大，风险越高。<strong>这也是为什么创业公司喜欢吹自主 Agent，而工程团队只做工作流 Agent。</strong></p><h2 id="为什么「善后工程师」是-AI-产品落地的关键？"><a href="#为什么「善后工程师」是-AI-产品落地的关键？" class="headerlink" title="为什么「善后工程师」是 AI 产品落地的关键？"></a>为什么「善后工程师」是 AI 产品落地的关键？</h2><p>真正的产品，不是能跑就算结束。是能：</p><ul><li>持续跑</li><li>正确跑</li><li>安全跑</li><li>高性能跑</li><li>在各种诡异边界下依然跑</li></ul><p>这些，统统需要人类开发者介入。</p><p>善后工程师究竟在干什么？一句话：<strong>把一个”看上去能用”的 AI 产物，变成”真的能上生产”的产品。</strong></p><h3 id="①-校对"><a href="#①-校对" class="headerlink" title="① 校对"></a>① 校对</h3><p>检查 AI 生成物的逻辑漏洞：分支有没有漏？字段是不是一致？状态是否可能错乱？异常是否处理？</p><pre class="line-numbers language-java" data-language="java"><code class="language-java">&#x2F;&#x2F; AI 生成的登录逻辑：if (password.equals(user.password)) &#123;    login();&#125;&#x2F;&#x2F; 善后工程师补全：if (user &#x3D;&#x3D; null) return &quot;用户不存在&quot;;if (password &#x3D;&#x3D; null || password.isEmpty()) return &quot;密码不能为空&quot;;if (&quot;banned&quot;.equals(user.status)) return &quot;账号已封禁&quot;;if (user.loginAttempts &gt; 5) return &quot;登录次数过多&quot;;if (bcrypt.matches(password, user.passwordHash)) &#123;    resetLoginAttempts(user.id);    return login(user);&#125; else &#123;    incrementLoginAttempts(user.id);    return &quot;密码错误&quot;;&#125;</code></pre><h3 id="②-重构"><a href="#②-重构" class="headerlink" title="② 重构"></a>② 重构</h3><p>让 AI 代码变得可维护：</p><ul><li>模块化</li><li>类型补全</li><li>结构优化</li><li>单测补齐</li><li>性能调优</li></ul><p>比如说：AI 生成的”一锅乱炖”代码 → 善后工程师改成清晰的分层架构。</p><h3 id="③-打磨（很重要）"><a href="#③-打磨（很重要）" class="headerlink" title="③ 打磨（很重要）"></a>③ 打磨（很重要）</h3><p>让产品真正能上线：</p><ul><li>边界处理</li><li>异常兜底</li><li>安全策略</li><li>监控报警</li><li>性能提升</li><li>体验优化</li></ul><p>这些才是决定产品能不能上线、能不能赚钱的部分。</p><h2 id="真相：AI-不是在替代工程师，而是在淘汰「只会写代码的工程师」"><a href="#真相：AI-不是在替代工程师，而是在淘汰「只会写代码的工程师」" class="headerlink" title="真相：AI 不是在替代工程师，而是在淘汰「只会写代码的工程师」"></a>真相：AI 不是在替代工程师，而是在淘汰「只会写代码的工程师」</h2><p>AI 做了工程师过去 60%～80% 的”体力活”。但剩下的 20%，是<strong>「经验 + 思考 + 判断 + 产品理解」</strong>。</p><table><thead><tr><th>时代</th><th>分工</th></tr></thead><tbody><tr><td><strong>过去</strong></td><td>工程师负责 0→100</td></tr><tr><td><strong>现在</strong></td><td>AI 负责 0→80，工程师负责最难的 80→100</td></tr></tbody></table><p>这个 20%，决定了：</p><ul><li>产品能不能上线</li><li>用户会不会崩</li><li>公司能不能卖钱</li><li>项目会不会翻车</li></ul><p>所以，”善后工程师”不是低端岗位，而是<strong>价值更高的岗位</strong>。</p><p><strong>真正被 AI 取代的，是那些：</strong></p><ul><li>跟着教程敲</li><li>不懂架构</li><li>不看边界</li><li>不做兜底</li><li>不懂产品逻辑</li><li>不理解业务场景</li></ul><p>的 30 分工程师。</p><h2 id="写在最后"><a href="#写在最后" class="headerlink" title="写在最后"></a>写在最后</h2><p>目前来看，真正 AGI 到来之前，未来的软件开发将分成两类：</p><table><thead><tr><th>类型</th><th>特点</th></tr></thead><tbody><tr><td><strong>AI 写的</strong></td><td>快、便宜、能跑</td></tr><tr><td><strong>工程师修的</strong></td><td>稳、能上线、能赚钱</td></tr></tbody></table><p>「善后工程师」的价值在于：</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>不是写代码，而是<strong>把错误的地方修对，把不可靠的地方补稳，把模糊的部分变清晰</strong>。</p></blockquote><p>这才是 AI 时代真正的核心竞争力。</p><hr><p><strong>参考来源：</strong> <a href="https://juejin.cn/post/7572997791451070502">掘金 - 大模型善后工程师</a></p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;引言：80-分危机&quot;&gt;&lt;a href=&quot;#引言：80-分危机&quot; class=&quot;headerlink&quot; title=&quot;引言：80 分危机&quot;&gt;&lt;/a&gt;引言：80 分危机&lt;/h2&gt;&lt;p&gt;凌晨三点，老张盯着屏幕上 AI 生成的 2000 行代码，这是他改的第 47 个 b</summary>
      
    
    
    
    <category term="AI" scheme="http://example.com/categories/AI/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="编程" scheme="http://example.com/tags/%E7%BC%96%E7%A8%8B/"/>
    
    <category term="Agent" scheme="http://example.com/tags/Agent/"/>
    
    <category term="行业观察" scheme="http://example.com/tags/%E8%A1%8C%E4%B8%9A%E8%A7%82%E5%AF%9F/"/>
    
  </entry>
  
  <entry>
    <title>AI 前端 UI 技能生态全景——让 Agent 写出好设计的 Skill 合集</title>
    <link href="http://example.com/post/AI-%E5%89%8D%E7%AB%AF-UI-%E6%8A%80%E8%83%BD%E7%94%9F%E6%80%81%E5%85%A8%E6%99%AF%E2%80%94%E2%80%94%E8%AE%A9-Agent-%E5%86%99%E5%87%BA%E5%A5%BD%E8%AE%BE%E8%AE%A1%E7%9A%84-Skill-%E5%90%88%E9%9B%86.html"/>
    <id>http://example.com/post/AI-%E5%89%8D%E7%AB%AF-UI-%E6%8A%80%E8%83%BD%E7%94%9F%E6%80%81%E5%85%A8%E6%99%AF%E2%80%94%E2%80%94%E8%AE%A9-Agent-%E5%86%99%E5%87%BA%E5%A5%BD%E8%AE%BE%E8%AE%A1%E7%9A%84-Skill-%E5%90%88%E9%9B%86.html</id>
    <published>2026-07-14T02:45:00.000Z</published>
    <updated>2026-07-14T02:45:00.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="背景与趋势"><a href="#背景与趋势" class="headerlink" title="背景与趋势"></a>背景与趋势</h2><p>AI 编码智能体的 UI Skill 生态在 2025-2026 年快速成型。所有 Skill 遵循相同的 <code>SKILL.md</code> &#x2F; <code>CLAUDE.md</code> &#x2F; <code>DESIGN.md</code> 格式标准，通用于 Claude Code、Cursor、Codex、Windsurf、Copilot 等主流 AI 编码工具。</p><p><strong>生态要解决的核心痛点：</strong></p><ul><li><strong>AI-Slop 问题</strong>：AI 生成的 UI 默认是”Inter 字体 + 紫色渐变 + 居中 Hero”的千篇一律</li><li><strong>缺少设计约束</strong>：每次生成风格不一致</li><li><strong>组件复用率低</strong>：Agent 反复手写基础组件</li></ul><p><strong>解决方向：</strong></p><ul><li>反 AI-Slop 规则引擎（确定性 lint + 品味约束）</li><li>设计系统注册表（SKILL.md + DESIGN.md 双文件格式）</li><li>生产组件市场（21st.dev 等 shadcn&#x2F;ui 生态）</li><li>全流程设计工作流（约束 → 方向 → 生成 → 审核）</li></ul><hr><h2 id="六级分类体系"><a href="#六级分类体系" class="headerlink" title="六级分类体系"></a>六级分类体系</h2><h3 id="第一梯队：综合设计智库（功能最全面）"><a href="#第一梯队：综合设计智库（功能最全面）" class="headerlink" title="第一梯队：综合设计智库（功能最全面）"></a>第一梯队：综合设计智库（功能最全面）</h3><p>这类 Skill 的核心是<strong>确定性规则引擎 + 大量参考资料 + 命令行工具</strong>的组合。</p><h4 id="ux-skill-—-设计智能引擎"><a href="#ux-skill-—-设计智能引擎" class="headerlink" title="ux-skill  — 设计智能引擎"></a>ux-skill  — 设计智能引擎</h4><ul><li><strong>仓库</strong>：<a href="https://github.com/Laith0003/ux-skill">https://github.com/Laith0003/ux-skill</a></li><li><strong>安装</strong>：<code>pip install uxskill</code></li><li><strong>兼容</strong>：Claude Code、Cursor、Windsurf、Copilot 等 <strong>17 种工具</strong></li></ul><p><strong>核心能力：</strong></p><ul><li><strong>152 条确定性反 AI-Slop 规则</strong>（运行时无须调用 LLM，不消耗 Token）</li><li>12 个可查询 JSON 清单：84 种风格、176 套调色板、70 种字体配对、148 个组件等</li><li>7 轴合成器：从品牌、行业、风格等维度合成设计决策</li><li>18 个 MCP 工具 + 25 个斜杠命令 + 5 个子智能体</li></ul><p><strong>特色</strong>：唯一有 Python 推理内核的 Skill，规则确定性执行不耗 LLM Token。</p><h4 id="Impeccable-—-设计语言词典"><a href="#Impeccable-—-设计语言词典" class="headerlink" title="Impeccable  — 设计语言词典"></a>Impeccable  — 设计语言词典</h4><ul><li><strong>仓库</strong>：<a href="https://github.com/pbakaus/impeccable">https://github.com/pbakaus/impeccable</a></li><li><strong>兼容</strong>：Claude Code、社区浏览器扩展</li></ul><p><strong>核心能力：</strong></p><ul><li>23 个命名命令：<code>/polish</code>、<code>/audit</code>、<code>/critique</code>、<code>/distill</code>、<code>/animate</code> 等</li><li>27 条确定性反模式规则 + 12 条 LLM 评审规则</li><li>7 个领域参考文件：字体、颜色、空间设计、动效、交互、响应式、UX 文案</li></ul><p><strong>特色</strong>：CLI + 浏览器扩展，确定性规则离线运行不耗 API Key。从 Anthropic 官方 frontend-design 演进而来。</p><h4 id="ui-ux-pro-max-—-设计智库"><a href="#ui-ux-pro-max-—-设计智库" class="headerlink" title="ui-ux-pro-max  — 设计智库"></a>ui-ux-pro-max  — 设计智库</h4><ul><li><strong>仓库</strong>：<a href="https://github.com/nextlevelbuilder/ui-ux-pro-max-skill">https://github.com/nextlevelbuilder/ui-ux-pro-max-skill</a></li><li><strong>安装</strong>：<code>claude install-skill &lt;repo-url&gt;</code></li></ul><p><strong>核心能力：</strong></p><ul><li>161 条推理规则 + Design System Generator（AI 驱动设计系统生成引擎）</li><li>67 种设计风格、161 套调色板、57 种字体配对</li><li>24 种着陆页模式，支持 React&#x2F;Next.js&#x2F;Vue&#x2F;SwiftUI&#x2F;Flutter 等</li><li>Python 推理内核 + uipro-cli 命令行工具</li></ul><p><strong>特色</strong>：生态中 Star 数最高的 UI 设计 Skill（87K+）。v2.0 的 Design System Generator 可秒级生成完整设计系统。</p><hr><h3 id="第二梯队：设计技能注册表（拿来即用）"><a href="#第二梯队：设计技能注册表（拿来即用）" class="headerlink" title="第二梯队：设计技能注册表（拿来即用）"></a>第二梯队：设计技能注册表（拿来即用）</h3><h4 id="awesome-design-skills-—-67-个设计技能注册表"><a href="#awesome-design-skills-—-67-个设计技能注册表" class="headerlink" title="awesome-design-skills  — 67 个设计技能注册表"></a>awesome-design-skills  — 67 个设计技能注册表</h4><ul><li><strong>仓库</strong>：<a href="https://github.com/bergside/awesome-design-skills">https://github.com/bergside/awesome-design-skills</a></li><li><strong>安装</strong>：<code>npx typeui.sh pull &lt;slug&gt;</code></li></ul><p>包含 67 个设计技能，覆盖：极简&#x2F;现代、大胆&#x2F;表现、企业&#x2F;专业、创意&#x2F;艺术、复古&#x2F;风格、质感&#x2F;拟态、游戏&#x2F;文化、品牌&#x2F;编辑、框架&#x2F;系统等分类。</p><p>每个技能包含：SKILL.md（AI Agent 指令）、DESIGN.md（人类可读设计意图）、实时预览图。</p><p><strong>特色</strong>：规模最大，覆盖最全。TypeUI CLI 一键安装。</p><h4 id="awesome-design-md-—-58-品牌设计系统"><a href="#awesome-design-md-—-58-品牌设计系统" class="headerlink" title="awesome-design-md  — 58+ 品牌设计系统"></a>awesome-design-md  — 58+ 品牌设计系统</h4><ul><li><strong>仓库</strong>：<a href="https://github.com/VoltAgent/awesome-design-md">https://github.com/VoltAgent/awesome-design-md</a></li></ul><p>包含 Linear、Stripe、Apple、Vercel、Spotify、Notion、Ferrari 等 <strong>58+ 品牌的完整 DESIGN.md 文件</strong>。Agent 每次生成 UI 前自动读取，输出直接匹配品牌风格。</p><p><strong>特色</strong>：生态中 Stars 最高的仓库（87K）。社区有 MCP 版本 <code>awesome-design-mcp</code> 将其封装为 58+ 设计系统资源供 Claude 直接调用。</p><hr><h3 id="第三梯队：前端风格聚焦（美学定制）"><a href="#第三梯队：前端风格聚焦（美学定制）" class="headerlink" title="第三梯队：前端风格聚焦（美学定制）"></a>第三梯队：前端风格聚焦（美学定制）</h3><h4 id="frontend-design-—-8-个美学锚点"><a href="#frontend-design-—-8-个美学锚点" class="headerlink" title="frontend-design  — 8 个美学锚点"></a>frontend-design  — 8 个美学锚点</h4><ul><li><strong>仓库</strong>：<a href="https://github.com/Ilm-Alan/frontend-design">https://github.com/Ilm-Alan/frontend-design</a></li><li><strong>兼容</strong>：Claude Code、Codex、Gemini CLI</li></ul><p>8 个美学锚点：</p><table><thead><tr><th>锚点</th><th>颜色&#x2F;字体</th><th>特点</th></tr></thead><tbody><tr><td><strong>Swiss（瑞士）</strong></td><td>纯白、Akzidenz&#x2F;Helvetica</td><td>可见栅格、精准排版</td></tr><tr><td><strong>Industrial（工业）</strong></td><td>墨黑、IBM Plex Mono</td><td>纯等宽、单一语义色</td></tr><tr><td><strong>Brutalist（粗野）</strong></td><td>纯原色、系统字体</td><td>硬阴影、原生控件</td></tr><tr><td><strong>Aurora Maximalism</strong></td><td>深饱和渐变基底</td><td>网格渐变表面、霓虹辉光</td></tr><tr><td><strong>Retro-Futuristic</strong></td><td>墨黑+霓虹</td><td>CRT 扫描线&#x2F;色差</td></tr><tr><td><strong>Organic（有机）</strong></td><td>大地色系</td><td>圆角、细腻颗粒</td></tr><tr><td><strong>Lo-Fi（低保真）</strong></td><td>纸黄色、混合字体</td><td>旋转元素、半色调网点</td></tr></tbody></table><p>每个锚点锁定 Palette + 字体 + 纹理 Token，Token 跑偏了会判定锚点没保持住。</p><h4 id="claude-frontend-skills-pack-—-1400-生产组件"><a href="#claude-frontend-skills-pack-—-1400-生产组件" class="headerlink" title="claude-frontend-skills-pack  — 1400+ 生产组件"></a>claude-frontend-skills-pack  — 1400+ 生产组件</h4><ul><li><strong>仓库</strong>：<a href="https://github.com/mikeoptimax/claude-frontend-skills-pack">https://github.com/mikeoptimax/claude-frontend-skills-pack</a></li><li><strong>安装</strong>：复制 CLAUDE.md 到项目根目录</li></ul><p><strong>核心指令：</strong></p><ul><li>使用 1400+ 生产组件（来自 21st.dev）而非手写</li><li>选择独特字体配对（禁用 Inter、Roboto、Poppins、Montserrat、Open Sans）</li><li>Next.js 15 App Router 模式 + Framer Motion 动效</li><li>WCAG 2.1 AA 可访问性</li></ul><p>组件目录覆盖 20+ 类别：Buttons(130)、Inputs(102)、Cards(79)、Heroes(73)、Modals(37) 等。</p><p><strong>特色</strong>：复制一个 CLAUDE.md 就完事。思路就是”别手写组件，用 21st.dev 的”。</p><hr><h3 id="第四梯队：组件生态-MCP-工具"><a href="#第四梯队：组件生态-MCP-工具" class="headerlink" title="第四梯队：组件生态 + MCP 工具"></a>第四梯队：组件生态 + MCP 工具</h3><h4 id="ui-modernizer-—-一键-UI-现代化"><a href="#ui-modernizer-—-一键-UI-现代化" class="headerlink" title="ui-modernizer  — 一键 UI 现代化"></a>ui-modernizer  — 一键 UI 现代化</h4><ul><li><strong>仓库</strong>：<a href="https://github.com/Rosalina7515/ui-modernizer">https://github.com/Rosalina7515/ui-modernizer</a></li><li><strong>用法</strong>：在 Claude Code 中说 <code>modernize this UI</code></li></ul><p>Before → After 改造效果：</p><table><thead><tr><th>维度</th><th>改造前</th><th>改造后</th></tr></thead><tbody><tr><td>间距</td><td><code>p-2 m-2</code> 随意</td><td>4&#x2F;6&#x2F;8 节奏系统</td></tr><tr><td>颜色</td><td><code>gray-*</code> + <code>blue-500</code></td><td>zinc + indigo + 品牌感知</td></tr><tr><td>圆角</td><td><code>rounded</code></td><td><code>rounded-md</code> &#x2F; <code>rounded-xl</code> 按元素</td></tr><tr><td>暗色模式</td><td>不存在</td><td>每个颜色带 <code>dark:</code> 变体</td></tr><tr><td>动效</td><td>无</td><td><code>animate-in fade-in slide-in-from-bottom-2</code></td></tr></tbody></table><p>支持 React &#x2F; Vue &#x2F; Svelte + Tailwind。</p><h4 id="21st-dev-x2F-registry-—-私有组件注册表"><a href="#21st-dev-x2F-registry-—-私有组件注册表" class="headerlink" title="21st-dev&#x2F;registry  — 私有组件注册表"></a>21st-dev&#x2F;registry  — 私有组件注册表</h4><ul><li><strong>仓库</strong>：<a href="https://github.com/21st-dev/registry">https://github.com/21st-dev/registry</a></li><li><strong>安装</strong>：<code>npm install @21st-dev/registry</code></li></ul><p>AI Agent 能直接用 CLI 发布和安装组件，支持语义搜索、团队组件库、多注册表。shadcn 兼容格式。</p><hr><h3 id="第五梯队：全流程设计套件（端到端工作流）"><a href="#第五梯队：全流程设计套件（端到端工作流）" class="headerlink" title="第五梯队：全流程设计套件（端到端工作流）"></a>第五梯队：全流程设计套件（端到端工作流）</h3><h4 id="ai-frontend-design-kit-—-10-技能插件"><a href="#ai-frontend-design-kit-—-10-技能插件" class="headerlink" title="ai-frontend-design-kit  — 10 技能插件"></a>ai-frontend-design-kit  — 10 技能插件</h4><ul><li><strong>仓库</strong>：<a href="https://github.com/kkunkunya/ai-frontend-design-kit">https://github.com/kkunkunya/ai-frontend-design-kit</a></li><li><strong>兼容</strong>：Claude Code、Codex</li></ul><p><strong>7 阶段设计流程：</strong></p><ol><li><strong>主语言确定</strong> — 选择设计表达的主语言</li><li><strong>六维品味映射</strong> — 从 6 个维度定义审美偏好</li><li><strong>双轮面试</strong> — 通过面试形式明确设计需求</li><li><strong>情绪板锚定</strong> — 选择视觉参考方向</li><li><strong>动效规格</strong> — 定义动画和交互行为</li><li><strong>设计合约</strong> — 持久化到 design.md（15 段格式）</li><li><strong>约束内生成</strong> — 在设计合约约束下生成代码</li></ol><p><strong>特色</strong>：”约束先于生成”——先签严谨的设计合约，再在合约约束内写代码。每个后续 Agent 在写一行 JSX 前必须先读 <code>design.md</code>。</p><hr><h3 id="第六梯队：设计审核-x2F-反-AI-Slop"><a href="#第六梯队：设计审核-x2F-反-AI-Slop" class="headerlink" title="第六梯队：设计审核 &#x2F; 反 AI-Slop"></a>第六梯队：设计审核 &#x2F; 反 AI-Slop</h3><h4 id="claude-ui-ux-design-consultant-skill-★2"><a href="#claude-ui-ux-design-consultant-skill-★2" class="headerlink" title="claude_ui-ux-design-consultant-skill ★2"></a>claude_ui-ux-design-consultant-skill ★2</h4><ul><li><strong>能力</strong>：自动化设计审计、生成改进策略、重构前端代码以增强视觉层次和无障碍性。</li></ul><h4 id="design-skill-—-拒绝-AI-Slop"><a href="#design-skill-—-拒绝-AI-Slop" class="headerlink" title="design-skill  — 拒绝 AI-Slop"></a>design-skill  — 拒绝 AI-Slop</h4><ul><li><strong>能力</strong>：UI&#x2F;UX 视觉设计，拒绝 AI-Slop 反射，要求可辩护的设计方向，验证实现。</li></ul><hr><h2 id="实战推荐组合方案"><a href="#实战推荐组合方案" class="headerlink" title="实战推荐组合方案"></a>实战推荐组合方案</h2><h3 id="🥇-最快捷方案（30-秒投产）"><a href="#🥇-最快捷方案（30-秒投产）" class="headerlink" title="🥇 最快捷方案（30 秒投产）"></a>🥇 最快捷方案（30 秒投产）</h3><pre class="line-numbers language-none"><code class="language-none">1. awesome-design-skills → npx typeui.sh pull shadcn  （安装 shadcn 风格 Skill）2. claude-frontend-skills-pack → 复制 CLAUDE.md        （获取 1400+ 组件访问）   或 ui-modernizer → npx ui-modernizer                （一键现代化改造）</code></pre><p><strong>适合</strong>：快速出活，不想折腾配置。</p><h3 id="🥇-最标准方案（设计系统驱动）"><a href="#🥇-最标准方案（设计系统驱动）" class="headerlink" title="🥇 最标准方案（设计系统驱动）"></a>🥇 最标准方案（设计系统驱动）</h3><pre class="line-numbers language-none"><code class="language-none">1. awesome-design-md → 选择品牌 DESIGN.md              （锁定品牌设计系统）2. ui-ux-pro-max → 锁定策略层                           （67风格 × 96调色板 × 57字体）3. 21st-dev&#x2F;registry → 私有组件注册表                   （团队组件复用管控）</code></pre><p><strong>适合</strong>：团队项目，需要设计一致性。</p><h3 id="🥇-最漂亮方案（Awwwards-级别）"><a href="#🥇-最漂亮方案（Awwwards-级别）" class="headerlink" title="🥇 最漂亮方案（Awwwards 级别）"></a>🥇 最漂亮方案（Awwwards 级别）</h3><pre class="line-numbers language-none"><code class="language-none">1. frontend-design → 选择美学锚点                        （Swiss&#x2F;Organic&#x2F;Brutalist 等）2. awwwards-ui-skill → WebGL + 玻璃拟态                 （创意视觉特效）3. Impeccable → &#x2F;polish &#x2F;animate 等命令                  （精修打磨）4. frontend-design-engineer-skill → GSAP 动效            （物理动效）</code></pre><p><strong>适合</strong>：创意类、展示类、品牌官网。</p><h3 id="🥇-终极组合（全流程工业化）"><a href="#🥇-终极组合（全流程工业化）" class="headerlink" title="🥇 终极组合（全流程工业化）"></a>🥇 终极组合（全流程工业化）</h3><p><strong>阶段 1：设计系统锁定</strong></p><ul><li>awesome-design-md → 设计方向参考</li><li>ai-frontend-design-kit → 7 阶段设计合约 + design.md</li><li>ux-skill → 确定风格&#x2F;品牌&#x2F;行业参数</li></ul><p><strong>阶段 2：组件生成</strong></p><ul><li>ui-pro-magic → 策略锁定 + Magic MCP 生成</li><li>frontend-design-engineer-skill → 60+ 组件目录</li></ul><p><strong>阶段 3：质量审核</strong></p><ul><li>Impeccable → &#x2F;polish + &#x2F;audit 精修</li><li>ux-skill linter → 152 条反模式检查</li><li>claude-design-skills → 无障碍 + SEO + 动效性能</li></ul><p><strong>阶段 4：CI&#x2F;CD 集成</strong></p><ul><li>21st-dev&#x2F;registry → 私有组件注册表发布</li><li>awesome-design-skills → 设计技能版本管理</li></ul><hr><h2 id="使用场景速查表"><a href="#使用场景速查表" class="headerlink" title="使用场景速查表"></a>使用场景速查表</h2><table><thead><tr><th>场景</th><th>推荐 Skill</th><th>一句话理由</th></tr></thead><tbody><tr><td>快速搭建 SaaS 页面</td><td>claude-frontend-skills-pack</td><td>1400+ 组件，复制即用</td></tr><tr><td>改版老 UI</td><td>ui-modernizer</td><td>一条命令现代化</td></tr><tr><td>品牌官网</td><td>awwwards-ui-skill + frontend-design</td><td>Awwwards 级别视觉</td></tr><tr><td>团队协作</td><td>ux-skill + 21st-dev&#x2F;registry</td><td>规则引擎 + 组件注册表</td></tr><tr><td>设计系统建设</td><td>awesome-design-md</td><td>58+ 品牌参考</td></tr><tr><td>动效密集型</td><td>frontend-design-engineer-skill</td><td>GSAP 原生支持</td></tr><tr><td>全流程控制</td><td>ai-frontend-design-kit</td><td>10 技能 × 7 阶段</td></tr><tr><td>代码质量 lint</td><td>Impeccable</td><td>23 个命名命令</td></tr></tbody></table><hr><h2 id="生态趋势观察"><a href="#生态趋势观察" class="headerlink" title="生态趋势观察"></a>生态趋势观察</h2><ol><li><p><strong>SKILL.md + DESIGN.md 双文件格式成为事实标准</strong> — 所有主流 AI 编码工具均已支持</p></li><li><p><strong>从”教 AI 写代码”到”约束 AI 写代码”</strong> — 确定性规则引擎（ux-skill、Impeccable）代表新方向，不消耗 LLM Token</p></li><li><p><strong>组件生态与 MCP 深度融合</strong> — 21st.dev Magic MCP + shadcn&#x2F;ui 生态实现”设计系统锁定 → 组件生成”闭环</p></li><li><p><strong>TypeUI CLI 等安装工具统一体验</strong> — <code>npx typeui.sh pull &lt;slug&gt;</code> 降低了 Skill 安装门槛</p></li><li><p><strong>跨工具兼容成为标配</strong> — 领先的 Skill（ux-skill、Bexa 等）支持 11-17 种 AI 编码工具</p></li></ol>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;背景与趋势&quot;&gt;&lt;a href=&quot;#背景与趋势&quot; class=&quot;headerlink&quot; title=&quot;背景与趋势&quot;&gt;&lt;/a&gt;背景与趋势&lt;/h2&gt;&lt;p&gt;AI 编码智能体的 UI Skill 生态在 2025-2026 年快速成型。所有 Skill 遵循相同的 &lt;cod</summary>
      
    
    
    
    <category term="AI" scheme="http://example.com/categories/AI/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="Claude Code" scheme="http://example.com/tags/Claude-Code/"/>
    
    <category term="前端" scheme="http://example.com/tags/%E5%89%8D%E7%AB%AF/"/>
    
    <category term="UI 设计" scheme="http://example.com/tags/UI-%E8%AE%BE%E8%AE%A1/"/>
    
  </entry>
  
  <entry>
    <title>用 MCP 让 AI 编程工具直连 MySQL</title>
    <link href="http://example.com/post/%E7%94%A8MCP%E8%AE%A9AI%E7%BC%96%E7%A8%8B%E5%B7%A5%E5%85%B7%E7%9B%B4%E8%BF%9EMySQL.html"/>
    <id>http://example.com/post/%E7%94%A8MCP%E8%AE%A9AI%E7%BC%96%E7%A8%8B%E5%B7%A5%E5%85%B7%E7%9B%B4%E8%BF%9EMySQL.html</id>
    <published>2026-07-14T02:40:00.000Z</published>
    <updated>2026-07-14T02:40:00.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p><strong>让 AI 直接”看懂”你的数据库，用自然语言就能查数据、看结构，无需手写 SQL，确实方便很多。</strong></p><p>本文以 <code>@benborla29/mcp-server-mysql</code> 为例，介绍 Claude Code、Codex CLI、OpenCode 三个工具的 MCP 配置方法。配置思路基本一致：先安装，再用特定命令或编辑配置文件添加 MCP 服务器，最后直接用自然语言查数据库。</p><h2 id="0-通用前提：Node-js-环境"><a href="#0-通用前提：Node-js-环境" class="headerlink" title="0. 通用前提：Node.js 环境"></a>0. 通用前提：Node.js 环境</h2><p>三个工具都依赖 MCP 服务器通过 <code>npx</code> 运行，所以本地需要 <strong>Node.js 20 或更高版本</strong>。</p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash">node -v   # 确认版本 ≥ v20</code></pre><p>版本不够的话去 <a href="https://nodejs.org/">nodejs.org</a> 下载最新 LTS。</p><h2 id="1-Claude-Code-—-配置最简便"><a href="#1-Claude-Code-—-配置最简便" class="headerlink" title="1. Claude Code — 配置最简便"></a>1. Claude Code — 配置最简便</h2><p>Claude Code 提供了一键添加命令，也支持手动改配置文件。</p><h3 id="方法一：用-claude-mcp-add-命令（推荐）"><a href="#方法一：用-claude-mcp-add-命令（推荐）" class="headerlink" title="方法一：用 claude mcp add 命令（推荐）"></a>方法一：用 <code>claude mcp add</code> 命令（推荐）</h3><p>在终端执行下面这条，数据库连接信息换成你自己的：</p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash">claude mcp add mcp_server_mysql \  -e MYSQL_HOST&#x3D;&quot;127.0.0.1&quot; \  -e MYSQL_PORT&#x3D;&quot;3306&quot; \  -e MYSQL_USER&#x3D;&quot;your_username&quot; \  -e MYSQL_PASS&#x3D;&quot;your_password&quot; \  -e MYSQL_DB&#x3D;&quot;your_database&quot; \  -- npx @benborla29&#x2F;mcp-server-mysql</code></pre><h3 id="方法二：手动编辑配置文件"><a href="#方法二：手动编辑配置文件" class="headerlink" title="方法二：手动编辑配置文件"></a>方法二：手动编辑配置文件</h3><p>Claude Code 的 MCP 配置文件有两种：</p><ul><li><strong>项目级</strong>：项目根目录下的 <code>.mcp.json</code></li><li><strong>全局</strong>：<code>~/.claude.json</code> 或 <code>~/.claude/settings.json</code></li></ul><p>加这一段就行：</p><pre class="line-numbers language-json" data-language="json"><code class="language-json">&#123;  &quot;mcpServers&quot;: &#123;    &quot;mcp_server_mysql&quot;: &#123;      &quot;command&quot;: &quot;npx&quot;,      &quot;args&quot;: [&quot;-y&quot;, &quot;@benborla29&#x2F;mcp-server-mysql&quot;],      &quot;env&quot;: &#123;        &quot;MYSQL_HOST&quot;: &quot;127.0.0.1&quot;,        &quot;MYSQL_PORT&quot;: &quot;3306&quot;,        &quot;MYSQL_USER&quot;: &quot;your_username&quot;,        &quot;MYSQL_PASS&quot;: &quot;your_password&quot;,        &quot;MYSQL_DB&quot;: &quot;your_database&quot;      &#125;    &#125;  &#125;&#125;</code></pre><h2 id="2-Codex-CLI-—-命令类似，格式略有不同"><a href="#2-Codex-CLI-—-命令类似，格式略有不同" class="headerlink" title="2. Codex CLI — 命令类似，格式略有不同"></a>2. Codex CLI — 命令类似，格式略有不同</h2><p>Codex CLI 也有 <code>codex mcp add</code> 命令，参数用 <code>--env</code> 标志，配置文件用的是 <strong>TOML</strong> 格式。</p><h3 id="方法一：用-codex-mcp-add-命令"><a href="#方法一：用-codex-mcp-add-命令" class="headerlink" title="方法一：用 codex mcp add 命令"></a>方法一：用 <code>codex mcp add</code> 命令</h3><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash">codex mcp add mcp_server_mysql \  --env MYSQL_HOST&#x3D;&quot;127.0.0.1&quot; \  --env MYSQL_PORT&#x3D;&quot;3306&quot; \  --env MYSQL_USER&#x3D;&quot;your_username&quot; \  --env MYSQL_PASS&#x3D;&quot;your_password&quot; \  --env MYSQL_DB&#x3D;&quot;your_database&quot; \  -- npx -y @benborla29&#x2F;mcp-server-mysql</code></pre><h3 id="方法二：手动编辑-TOML-配置文件"><a href="#方法二：手动编辑-TOML-配置文件" class="headerlink" title="方法二：手动编辑 TOML 配置文件"></a>方法二：手动编辑 TOML 配置文件</h3><p>Codex CLI 的配置文件位置：</p><table><thead><tr><th>系统</th><th>路径</th></tr></thead><tbody><tr><td>macOS &#x2F; Linux</td><td><code>~/.codex/config.toml</code></td></tr><tr><td>Windows</td><td><code>%USERPROFILE%\.codex\config.toml</code></td></tr></tbody></table><p>加这一段：</p><pre class="line-numbers language-toml" data-language="toml"><code class="language-toml">[mcp_servers.mcp_server_mysql]command &#x3D; &quot;npx&quot;args &#x3D; [&quot;-y&quot;, &quot;@benborla29&#x2F;mcp-server-mysql&quot;][mcp_servers.mcp_server_mysql.env]MYSQL_HOST &#x3D; &quot;127.0.0.1&quot;MYSQL_PORT &#x3D; &quot;3306&quot;MYSQL_USER &#x3D; &quot;your_username&quot;MYSQL_PASS &#x3D; &quot;your_password&quot;MYSQL_DB &#x3D; &quot;your_database&quot;</code></pre><h2 id="3-OpenCode-—-通过-JSON-配置文件"><a href="#3-OpenCode-—-通过-JSON-配置文件" class="headerlink" title="3. OpenCode — 通过 JSON 配置文件"></a>3. OpenCode — 通过 JSON 配置文件</h2><p>OpenCode 的配置方式跟 Claude Code 差不多，配置文件是项目根目录下的 <code>opencode.json</code>。</p><p>找到或创建 <code>opencode.json</code> 文件，在 <code>mcp</code> 字段里加上这段：</p><pre class="line-numbers language-json" data-language="json"><code class="language-json">&#123;  &quot;$schema&quot;: &quot;https:&#x2F;&#x2F;opencode.ai&#x2F;config.json&quot;,  &quot;mcp&quot;: &#123;    &quot;mysql&quot;: &#123;      &quot;type&quot;: &quot;local&quot;,      &quot;command&quot;: [&quot;npx&quot;, &quot;-y&quot;, &quot;@benborla29&#x2F;mcp-server-mysql&quot;],      &quot;enabled&quot;: true,      &quot;environment&quot;: &#123;        &quot;MYSQL_HOST&quot;: &quot;127.0.0.1&quot;,        &quot;MYSQL_PORT&quot;: &quot;3306&quot;,        &quot;MYSQL_USER&quot;: &quot;your_username&quot;,        &quot;MYSQL_PASS&quot;: &quot;your_password&quot;,        &quot;MYSQL_DB&quot;: &quot;your_database&quot;      &#125;    &#125;  &#125;&#125;</code></pre><h2 id="4-安全配置（重要）"><a href="#4-安全配置（重要）" class="headerlink" title="4. 安全配置（重要）"></a>4. 安全配置（重要）</h2><p><code>@benborla29/mcp-server-mysql</code> <strong>默认是只读的</strong>——防止 AI 不小心改到你的数据库。</p><p>如果你真的需要让 AI 执行写入操作（比如 INSERT、UPDATE、DELETE），得在环境变量里显式打开：</p><pre class="line-numbers language-json" data-language="json"><code class="language-json">&quot;ALLOW_INSERT_OPERATION&quot;: &quot;true&quot;,&quot;ALLOW_UPDATE_OPERATION&quot;: &quot;true&quot;,&quot;ALLOW_DELETE_OPERATION&quot;: &quot;true&quot;</code></pre><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p><strong>生产环境建议保持只读</strong>，或者给 MCP 服务单独弄一个只有 SELECT 权限的数据库账号。</p></blockquote><h2 id="5-怎么用自然语言查询？"><a href="#5-怎么用自然语言查询？" class="headerlink" title="5. 怎么用自然语言查询？"></a>5. 怎么用自然语言查询？</h2><p>配置完记得<strong>重启 AI 工具</strong>让配置生效。之后直接在对话里提问就行，AI 会自动转成 SQL 来执行。</p><h3 id="查数据"><a href="#查数据" class="headerlink" title="查数据"></a>查数据</h3><ul><li>“查询一下 orders 表里最近 10 条订单记录。”</li><li>“统计 users 表中不同地区的用户数量。”</li><li>“找出过去 30 天内下单超过 5 次的用户。”</li></ul><h3 id="看表结构"><a href="#看表结构" class="headerlink" title="看表结构"></a>看表结构</h3><ul><li>“描述一下 products 表的表结构。”</li><li>“orders 表有哪些字段和索引？”</li><li>“帮我画出 users 和 orders 的 ER 关系。”</li></ul><h3 id="分析数据"><a href="#分析数据" class="headerlink" title="分析数据"></a>分析数据</h3><ul><li>“分析各品类的销售额占比。”</li><li>“计算本月环比增长率。”</li><li>“对比今年和去年同期的用户注册量。”</li></ul><h2 id="6-排错小贴士"><a href="#6-排错小贴士" class="headerlink" title="6. 排错小贴士"></a>6. 排错小贴士</h2><p>遇到连接问题，按这个顺序排查：</p><table><thead><tr><th>检查项</th><th>说明</th></tr></thead><tbody><tr><td><strong>Node.js 版本</strong></td><td>确保 ≥ v20，运行 <code>node -v</code> 确认</td></tr><tr><td><strong>MySQL 网络与权限</strong></td><td>确认 MySQL 允许来自当前 IP 的连接，用户名密码正确</td></tr><tr><td><strong>配置文件格式</strong></td><td>JSON 检查逗号和引号，TOML 检查键值对语法</td></tr><tr><td><strong>MCP 服务状态</strong></td><td>在 AI 工具中查看 MCP 连接状态是否显示为”已连接”</td></tr><tr><td><strong>防火墙 &#x2F; 端口</strong></td><td>确保 3306 端口未被防火墙拦截</td></tr></tbody></table><hr><p><strong>参考来源：</strong></p><ul><li><a href="https://github.com/benborla/mcp-server-mysql">@benborla29&#x2F;mcp-server-mysql 官方仓库</a></li><li><a href="https://modelcontextprotocol.io/">MCP 协议规范</a></li><li><a href="https://docs.anthropic.com/en/docs/claude-code/mcp">Claude Code MCP 配置文档</a></li><li><a href="https://github.com/openai/codex">Codex CLI 配置说明</a></li><li><a href="https://opencode.ai/docs">OpenCode 配置文档</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;背景&quot;&gt;&lt;a href=&quot;#背景&quot; class=&quot;headerlink&quot; title=&quot;背景&quot;&gt;&lt;/a&gt;背景&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;让 AI 直接”看懂”你的数据库，用自然语言就能查数据、看结构，无需手写 SQL，确实方便很多。&lt;/strong&gt;&lt;/p&gt;
</summary>
      
    
    
    
    <category term="Claude Code" scheme="http://example.com/categories/Claude-Code/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="Claude Code" scheme="http://example.com/tags/Claude-Code/"/>
    
    <category term="MCP" scheme="http://example.com/tags/MCP/"/>
    
    <category term="MySQL" scheme="http://example.com/tags/MySQL/"/>
    
    <category term="配置指南" scheme="http://example.com/tags/%E9%85%8D%E7%BD%AE%E6%8C%87%E5%8D%97/"/>
    
  </entry>
  
  <entry>
    <title>数据库状态码设计：数值型 vs 描述型</title>
    <link href="http://example.com/post/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%8A%B6%E6%80%81%E7%A0%81%E8%AE%BE%E8%AE%A1%EF%BC%9A%E6%95%B0%E5%80%BC%E5%9E%8B%20vs%20%E6%8F%8F%E8%BF%B0%E5%9E%8B.html"/>
    <id>http://example.com/post/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%8A%B6%E6%80%81%E7%A0%81%E8%AE%BE%E8%AE%A1%EF%BC%9A%E6%95%B0%E5%80%BC%E5%9E%8B%20vs%20%E6%8F%8F%E8%BF%B0%E5%9E%8B.html</id>
    <published>2026-07-14T02:15:00.000Z</published>
    <updated>2026-07-14T02:15:00.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>在数据库设计阶段发现一个有趣的现象：AI 设计数据库时，每次都会将业务表的状态字段设计为<strong>英文描述格式</strong>（如 <code>pending</code>、<code>approved</code>），而我们原来的系统中状态往往是 <code>char</code> 类型，通过状态码（<code>01</code>、<code>02</code>、<code>03</code>）的方式进行处理的。</p><p>这两种方式到底哪种好？</p><h2 id="两种方案对比"><a href="#两种方案对比" class="headerlink" title="两种方案对比"></a>两种方案对比</h2><p>数据库设计中，状态流转（状态机）是避不开的环节。最常见的争议在于：状态值用数字（<code>01</code>、<code>02</code>、<code>03</code>）还是用英文描述（<code>pending</code>、<code>approved</code>、<code>rejected</code>）？</p><p>这俩方案没有绝对的对错，但放在具体场景里，优劣很明显。</p><table><thead><tr><th>对比维度</th><th>数值型（01&#x2F;02&#x2F;03）</th><th>描述型（pending&#x2F;approved）</th></tr></thead><tbody><tr><td><strong>可读性</strong></td><td>差，必须查映射表</td><td>好，一眼看懂</td></tr><tr><td><strong>存储空间</strong></td><td>小（TINYINT 1 字节）</td><td>稍大（VARCHAR 8-15 字节）</td></tr><tr><td><strong>排查问题</strong></td><td>查数据库得额外转换</td><td>直接看出当前状态</td></tr><tr><td><strong>前后端联调</strong></td><td>双方需维护同一套映射表</td><td>直接传递，省去转换层</td></tr><tr><td><strong>扩展性</strong></td><td>新增状态加数字即可</td><td>新增状态加字符串即可</td></tr><tr><td><strong>代码可维护性</strong></td><td>魔法数字散落各处</td><td>语义明确，IDE 可提示</td></tr></tbody></table><h2 id="核心差异：可读性转嫁给了人"><a href="#核心差异：可读性转嫁给了人" class="headerlink" title="核心差异：可读性转嫁给了人"></a>核心差异：可读性转嫁给了人</h2><p>数值型的本质问题是——<strong>可读性转嫁给了人</strong>。</p><p>数据库里查出一条记录 <code>status = 3</code>，你脑子里得过一遍：3 是已取消还是已驳回？</p><p>写 SQL 统计时更是灾难：</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">-- 数值型：得记住 3 代表什么SELECT COUNT(*) FROM orders WHERE status &#x3D; 3;-- 描述型：一目了然SELECT COUNT(*) FROM orders WHERE status &#x3D; &#39;cancelled&#39;;</code></pre><p>代码里也一样。<code>switch-case</code> 或 <code>if-else</code> 里写 <code>if (status == 3)</code>，三个月后你自己都看不懂。而 <code>if (status == &quot;cancelled&quot;)</code> 几乎不需要注释。</p><h2 id="描述型的”缺点”基本不成立"><a href="#描述型的”缺点”基本不成立" class="headerlink" title="描述型的”缺点”基本不成立"></a>描述型的”缺点”基本不成立</h2><h3 id="存储空间？"><a href="#存储空间？" class="headerlink" title="存储空间？"></a>存储空间？</h3><p>MySQL 里 VARCHAR 存短字符串的额外开销可以忽略。一张百万级的订单表，多出来的空间可能不到 10MB。<strong>为这点空间牺牲可读性不值。</strong></p><h3 id="性能？"><a href="#性能？" class="headerlink" title="性能？"></a>性能？</h3><p>状态字段通常会被索引，短字符串索引和整数索引的性能差异在大数据量下也只是个百分比级别的差距，远小于读写不清晰带来的维护成本。</p><h2 id="什么时候该用数值型？"><a href="#什么时候该用数值型？" class="headerlink" title="什么时候该用数值型？"></a>什么时候该用数值型？</h2><p>唯一值得用数值型的场景：<strong>对性能有极致要求的超高并发系统</strong>。比如每秒数万次写入的支付核心、游戏大厅等。这种情况下 TINYINT 能省几个字节，索引更小、内存占用更少，每纳秒都得计较。</p><p>但坦白说，<strong>绝大多数项目根本到不了这个量级</strong>。</p><p>如果你真到了那个量级，数值型 + 枚举类也可以做得清晰：</p><pre class="line-numbers language-java" data-language="java"><code class="language-java">public enum OrderStatus &#123;    PENDING(1), APPROVED(2), REJECTED(3), CANCELLED(4);    private final int code;&#125;</code></pre><p>但注意：这是你代码里维护了映射，数据库查出来还是一堆数字。拆开来看，<strong>数值型 + 枚举类本质上就是描述型的外键映射</strong>，只不过把映射表藏到了代码层。直接存字符串反而更直白。</p><h2 id="建议：默认选描述型（英文单词）"><a href="#建议：默认选描述型（英文单词）" class="headerlink" title="建议：默认选描述型（英文单词）"></a>建议：默认选描述型（英文单词）</h2><p>理由很简单：<strong>读代码和查数据库的时间 &gt; 省那几个字节的价值。</strong></p><p>对于 95% 以上的项目，可维护性比微小的性能差异重要得多。</p><h3 id="状态命名规则"><a href="#状态命名规则" class="headerlink" title="状态命名规则"></a>状态命名规则</h3><ul><li><strong>全小写</strong>，统一用过去分词：<code>approved</code>、<code>rejected</code>、<code>completed</code></li><li><strong>下划线连接复合词</strong>：<code>in_review</code>、<code>partially_shipped</code></li><li><strong>不要用中文拼音</strong>，不要用随机缩写（<code>apv</code>、<code>rej</code> 这种）</li></ul><h2 id="补充：关于数据库中的枚举类型"><a href="#补充：关于数据库中的枚举类型" class="headerlink" title="补充：关于数据库中的枚举类型"></a>补充：关于数据库中的枚举类型</h2><p>MySQL 原生提供了 <code>ENUM</code> 类型，允许你在建表时定义一组可选值（如 <code>ENUM(&#39;pending&#39;,&#39;approved&#39;,&#39;rejected&#39;)</code>）。从语义上看它也是字符串描述，内部存储用整数索引。</p><p>但考虑到耦合度和扩展麻烦（增删枚举值需要 <code>ALTER TABLE</code>），在实际生产中使用率不高。<strong>用 VARCHAR 更省心。</strong></p><hr><p><strong>参考来源：</strong></p><ul><li><a href="https://planetscale.com/blog/optimizing-mysql-enum-performance">MySQL VARCHAR vs ENUM vs TINYINT performance comparison</a></li><li><a href="https://dev.mysql.com/doc/refman/8.0/en/enum.html">MySQL 官方文档 — ENUM 类型</a></li><li><a href="https://www.dbdesignbook.com/database-design-status-patterns">Database Design — Status Code Best Practices</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;背景&quot;&gt;&lt;a href=&quot;#背景&quot; class=&quot;headerlink&quot; title=&quot;背景&quot;&gt;&lt;/a&gt;背景&lt;/h2&gt;&lt;p&gt;在数据库设计阶段发现一个有趣的现象：AI 设计数据库时，每次都会将业务表的状态字段设计为&lt;strong&gt;英文描述格式&lt;/strong&gt;（如 </summary>
      
    
    
    
    <category term="数据库" scheme="http://example.com/categories/%E6%95%B0%E6%8D%AE%E5%BA%93/"/>
    
    
    <category term="数据库" scheme="http://example.com/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/"/>
    
    <category term="设计模式" scheme="http://example.com/tags/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/"/>
    
    <category term="状态机" scheme="http://example.com/tags/%E7%8A%B6%E6%80%81%E6%9C%BA/"/>
    
    <category term="经验总结" scheme="http://example.com/tags/%E7%BB%8F%E9%AA%8C%E6%80%BB%E7%BB%93/"/>
    
  </entry>
  
  <entry>
    <title>Claude Code 最佳实践</title>
    <link href="http://example.com/post/Claude-Code%20%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.html"/>
    <id>http://example.com/post/Claude-Code%20%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.html</id>
    <published>2026-07-14T01:30:00.000Z</published>
    <updated>2026-07-14T01:30:00.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="一、CLAUDE-md-配置原则"><a href="#一、CLAUDE-md-配置原则" class="headerlink" title="一、CLAUDE.md 配置原则"></a>一、CLAUDE.md 配置原则</h2><p>CLAUDE.md 是 Claude Code 的”项目说明书”，但写不好反而会拖累效率。</p><h3 id="核心原则"><a href="#核心原则" class="headerlink" title="核心原则"></a>核心原则</h3><ul><li><strong>保持简短</strong>：控制在 60 行以内，硬上限 300 行。LLM 能可靠遵循约 150-200 条指令，而 Claude Code 的系统提示已占用约 50 条</li><li><strong>只放 Claude 可能忽略的信息</strong>：如构建命令、测试命令、分支命名规范、项目特定架构决策</li><li><strong>能从代码推断的内容不要写进去</strong>：代码结构、文件路径等 Claude 自己能读到的信息，没必要重复</li><li><strong>规则太多就拆分</strong>：拆分到 <code>.claude/rules/</code> 目录下按需加载</li><li><strong>关键规则用标签包裹</strong>防止被忽略</li></ul><p>运行 <code>/doctor</code> 可以检查 CLAUDE.md 中有哪些内容是 Claude 其实能自行推导的，把冗余指令删掉。</p><h3 id="示例：好的-CLAUDE-md-结构"><a href="#示例：好的-CLAUDE-md-结构" class="headerlink" title="示例：好的 CLAUDE.md 结构"></a>示例：好的 CLAUDE.md 结构</h3><pre class="line-numbers language-markdown" data-language="markdown"><code class="language-markdown">## 工作流- 每次代码变更后运行 &#96;npm test&#96;- 每个任务创建新分支，绝不直接提交到 main- 使用 Conventional Commits（feat:, fix:, refactor:, docs:）- 每次提交前运行 &#96;eslint . --fix&#96;- 完成后通过 &#96;gh pr create&#96; 创建 PR## 技术栈- Node.js 18+, Express 4.x, PostgreSQL 16- 测试：Jest + React Testing Library- 认证：JWT + bcrypt</code></pre><hr><h2 id="二、工作流最佳实践"><a href="#二、工作流最佳实践" class="headerlink" title="二、工作流最佳实践"></a>二、工作流最佳实践</h2><h3 id="1-复杂任务用-Plan-Mode"><a href="#1-复杂任务用-Plan-Mode" class="headerlink" title="1. 复杂任务用 Plan Mode"></a>1. 复杂任务用 Plan Mode</h3><p>按 <strong>Shift+Tab 两次</strong>进入计划模式，Claude 只研究和规划，不写代码。确认计划后再切换回正常模式执行。</p><p>官方推荐流程：<strong>探索 → 规划 → 实现 → 提交</strong></p><h3 id="2-让-Claude-先采访你"><a href="#2-让-Claude-先采访你" class="headerlink" title="2. 让 Claude 先采访你"></a>2. 让 Claude 先采访你</h3><p>给出简单需求描述，让 Claude 用 <code>AskUserQuestion</code> 工具采访你。它能发现你忽略的边缘情况。采访后开新会话执行（采访对话会污染上下文）。</p><h3 id="3-分阶段工作流"><a href="#3-分阶段工作流" class="headerlink" title="3. 分阶段工作流"></a>3. 分阶段工作流</h3><ul><li><strong>理解代码库</strong> → 修改</li><li><strong>先规划</strong> → 再实现</li><li><strong>生成</strong> → 验证</li></ul><p>不要把所有步骤压缩到一个大提示词里。</p><h3 id="4-小任务别用复杂工作流"><a href="#4-小任务别用复杂工作流" class="headerlink" title="4. 小任务别用复杂工作流"></a>4. 小任务别用复杂工作流</h3><p>3-5 分钟能完成的事，直接用原生 Claude Code。复杂工作流（Superpowers、Workflows 等）适用于多文件、多步骤的大任务。重命名变量这种小事，一句话就行。</p><h3 id="5-善用-命令的自动响应"><a href="#5-善用-命令的自动响应" class="headerlink" title="5. 善用 ! 命令的自动响应"></a>5. 善用 <code>!</code> 命令的自动响应</h3><p>Bash 模式下执行命令后，Claude 会自动分析输出并判断是否需要行动，不需要额外指示。</p><p>如果你需要聚焦自己读输出，可以在 <code>settings.json</code> 中设置 <code>&quot;respondToBashCommands&quot;: false</code>。</p><h3 id="6-用大模型做大活，用小模型做小活"><a href="#6-用大模型做大活，用小模型做小活" class="headerlink" title="6. 用大模型做大活，用小模型做小活"></a>6. 用大模型做大活，用小模型做小活</h3><table><thead><tr><th>场景</th><th>模型</th><th>说明</th></tr></thead><tbody><tr><td>日常编码</td><td><strong>Sonnet 5</strong>（默认）</td><td>1M 上下文窗口，性价比最高</td></tr><tr><td>复杂架构设计</td><td><strong>Opus 4.8</strong></td><td>更高精度</td></tr><tr><td>极限推理任务</td><td><strong>Fable 5</strong></td><td>最强推理能力</td></tr></tbody></table><p>临时切换：<code>/model claude-fable-5</code></p><p>设置 <code>fallbackModel</code> 可防止主模型不可用时卡住。</p><h3 id="7-重复性监控用-loop"><a href="#7-重复性监控用-loop" class="headerlink" title="7. 重复性监控用 /loop"></a>7. 重复性监控用 <code>/loop</code></h3><p><code>/loop</code> 让 Claude 按固定间隔反复执行一个任务，适用于：</p><ul><li><strong>监控部署状态</strong>：<code>/loop 5m</code> 检查 staging 部署是否完成</li><li><strong>等待外部依赖</strong>：<code>/loop 30s</code> 看看 CI 跑完了没有</li><li><strong>定时检查告警</strong>：<code>/loop 10m</code> 检查日志中有没有新增的 error</li></ul><p>用法：<code>/loop &lt;间隔&gt; &lt;提示词&gt;</code>，间隔支持 <code>5m</code>（分钟）、<code>30s</code>（秒）、<code>1h</code>（小时）。</p><p><code>/proactive</code> 是 <code>/loop</code> 的别名，两者功能相同。按 <code>Esc</code> 取消等待中的下一次唤醒。</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p><strong>注意</strong>：<code>/loop</code> 在远程会话中不会被持续唤醒，远程环境建议用替代方案。</p></blockquote><h3 id="8-输出复杂结果用-Artifacts-发布页面"><a href="#8-输出复杂结果用-Artifacts-发布页面" class="headerlink" title="8. 输出复杂结果用 Artifacts 发布页面"></a>8. 输出复杂结果用 Artifacts 发布页面</h3><p>依赖 <code>project-artifact</code> 插件。当终端文字不够直观时，让 Claude 发布一个交互页面（Artifact），发布到 claude.ai 的私有链接。</p><p><strong>适用场景：</strong></p><ul><li><strong>PR 走查</strong>：让 Claude 把 diff 逐行标注发布为可交互页面，比看终端输出直观得多</li><li><strong>数据仪表盘</strong>：从会话数据生成图表、仪表盘发布为网页</li><li><strong>文档输出</strong>：复杂的技术文档直接渲染为 HTML 页面</li></ul><p>用法示例：</p><pre class="line-numbers language-none"><code class="language-none">做一个 artifact，用 diff 逐行标注的方式走查这个 PR</code></pre><p>Claude 会先创建内容，然后请求你批准发布。Artifact 会随着会话更新实时刷新，不需要重复发布。</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p><strong>注意</strong>：Artifacts 目前在 Team 和 Enterprise 计划上 beta 可用。</p></blockquote><hr><h2 id="三、调试与纠错"><a href="#三、调试与纠错" class="headerlink" title="三、调试与纠错"></a>三、调试与纠错</h2><h3 id="1-粘贴-bug，说-“fix”"><a href="#1-粘贴-bug，说-“fix”" class="headerlink" title="1. 粘贴 bug，说 “fix”"></a>1. 粘贴 bug，说 “fix”</h3><p>把错误信息粘贴给 Claude，说一个字：”fix”。</p><p><strong>不要指导怎么修，不要猜测原因，不要指定解决方案。</strong> Claude 的调试能力比想象中强，管得越多越容易带偏。直接让 Claude 修的成功率 **80%+**。</p><h3 id="2-两次失败-x3D-x2F-clear"><a href="#2-两次失败-x3D-x2F-clear" class="headerlink" title="2. 两次失败 &#x3D; &#x2F;clear"></a>2. 两次失败 &#x3D; &#x2F;clear</h3><p>同一个问题修正超过两次，<code>/clear</code> 重新开始。<strong>上下文污染会降低性能</strong>。</p><p>官方建议：修正超过两次就重启。如果清空后又想找回历史，可以用 <code>/rewind</code> 回退到 <code>/clear</code> 之前的对话。</p><h3 id="3-走偏了？Esc-Esc-回滚"><a href="#3-走偏了？Esc-Esc-回滚" class="headerlink" title="3. 走偏了？Esc Esc 回滚"></a>3. 走偏了？Esc Esc 回滚</h3><p>按两次 Esc（或 <code>/rewind</code>）直接回滚到上一个检查点。在同一上下文中纠正偏差往往更糟——同一个问题偏差两次？<code>/clear</code> 重启。</p><h3 id="4-要求重写平庸方案"><a href="#4-要求重写平庸方案" class="headerlink" title="4. 要求重写平庸方案"></a>4. 要求重写平庸方案</h3><p>当 Claude 给出能工作但不优雅的解决方案时，<strong>不要修补</strong>。说：</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>“知道你现在知道的一切，抛弃这个，实现优雅的解决方案”</p></blockquote><p>重写版本通常比修补版本好得多。</p><h3 id="5-用-doctor-做定期健康检查"><a href="#5-用-doctor-做定期健康检查" class="headerlink" title="5. 用 /doctor 做定期健康检查"></a>5. 用 <code>/doctor</code> 做定期健康检查</h3><p>每隔一段时间运行 <code>/doctor</code>，它会检查：</p><ul><li>安装健康度</li><li>未使用的 Skills &#x2F; MCP &#x2F; 插件</li><li>重复的 CLAUDE.md</li><li>慢速 Hooks</li></ul><p>把不用的东西清掉，既省上下文也省 token。</p><h3 id="6-配置出问题时用-safe-mode"><a href="#6-配置出问题时用-safe-mode" class="headerlink" title="6. 配置出问题时用 --safe-mode"></a>6. 配置出问题时用 <code>--safe-mode</code></h3><p>如果怀疑自定义配置（CLAUDE.md、插件、Hooks 等）导致 Claude 行为异常，用 <code>--safe-mode</code> 启动。所有自定义配置被禁用，能快速定位问题源。</p><hr><h2 id="四、上下文管理"><a href="#四、上下文管理" class="headerlink" title="四、上下文管理"></a>四、上下文管理</h2><h3 id="1-50-时手动压缩上下文"><a href="#1-50-时手动压缩上下文" class="headerlink" title="1. 50% 时手动压缩上下文"></a>1. 50% 时手动压缩上下文</h3><p>上下文使用超过 60-70% 时，性能明显下降。在 **50% 时手动执行 <code>/compact</code>**，不要等自动压缩。</p><p>用 <code>/statusline</code> 实时监控使用情况，或使用 <code>/clear</code> 开新会话。</p><p>Sonnet 5 拥有 100 万 token 窗口，长上下文会话更需要主动管理，不要等到快满了才压缩。</p><h3 id="2-compact-可指定压缩策略"><a href="#2-compact-可指定压缩策略" class="headerlink" title="2. /compact 可指定压缩策略"></a>2. <code>/compact</code> 可指定压缩策略</h3><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash"># 聚焦 API 变更压缩&#x2F;compact focusing on API changes# 保留测试相关历史&#x2F;compact keep test-related history# 保留错误解决历史&#x2F;compact keep error resolution</code></pre><h3 id="3-切换目录用-cd-不要用-clear"><a href="#3-切换目录用-cd-不要用-clear" class="headerlink" title="3. 切换目录用 /cd 不要用 /clear"></a>3. 切换目录用 <code>/cd</code> 不要用 <code>/clear</code></h3><p>需要切到项目另一个子目录继续工作时，用 <code>/cd &lt;新路径&gt;</code>，不会破坏提示缓存，上下文窗口不受影响，比 <code>/clear</code> + 重新启动效率高得多。</p><h3 id="4-Checkpoints（检查点）"><a href="#4-Checkpoints（检查点）" class="headerlink" title="4. Checkpoints（检查点）"></a>4. Checkpoints（检查点）</h3><p>每次 Claude 操作自动创建检查点，可独立回滚对话或代码，跨会话持久化。但<strong>不是 git 的替代品</strong>。</p><hr><h2 id="五、Subagents（子智能体）"><a href="#五、Subagents（子智能体）" class="headerlink" title="五、Subagents（子智能体）"></a>五、Subagents（子智能体）</h2><h3 id="1-什么时候该用子智能体"><a href="#1-什么时候该用子智能体" class="headerlink" title="1. 什么时候该用子智能体"></a>1. 什么时候该用子智能体</h3><p>当任务可以自然拆分为多个独立单元时，在提示词中加 **”use subagents”**。</p><p>典型场景：代码审查、大规模重构、多模块并行开发。</p><p>子智能体有独立的上下文窗口，研究、验证、审查隔离进行，防止污染和偏见。</p><h3 id="2-专用子智能体-gt-通用-mega-agent"><a href="#2-专用子智能体-gt-通用-mega-agent" class="headerlink" title="2. 专用子智能体 &gt; 通用 mega-agent"></a>2. 专用子智能体 &gt; 通用 mega-agent</h3><p>创建功能特定的子智能体（如”前端组件智能体”），而不是通用的（如”QA 智能体”）。功能越具体，上下文越精准，效果越好。</p><p>子智能体可嵌套最多 5 层，复杂任务可以逐层抽象，但日常使用 1-2 层就够了。</p><h3 id="3-后台子智能体可以在重启后自动恢复"><a href="#3-后台子智能体可以在重启后自动恢复" class="headerlink" title="3. 后台子智能体可以在重启后自动恢复"></a>3. 后台子智能体可以在重启后自动恢复</h3><p>长时间运行的任务放到后台执行（<code>/bg</code> 或 <code>←←</code>）。daemon 升级或重启后，后台子智能体会自动恢复，不再丢失进度。</p><p>通过 <code>claude agents list</code> 查看和管理所有运行中的会话。</p><h3 id="4-子智能体有独立上下文窗口"><a href="#4-子智能体有独立上下文窗口" class="headerlink" title="4. 子智能体有独立上下文窗口"></a>4. 子智能体有独立上下文窗口</h3><p>研究、验证、审查隔离在独立上下文中，防止污染和偏见，不污染主上下文。</p><h3 id="5-典型用法"><a href="#5-典型用法" class="headerlink" title="5. 典型用法"></a>5. 典型用法</h3><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash"># 让 Claude 自动拆分任务并行处理&gt; 审查用户认证模块，use subagents# 跨文件批量修改&gt; 重命名所有文件中的 User 为 Account，use subagents</code></pre><hr><h2 id="六、Skills（技能）管理"><a href="#六、Skills（技能）管理" class="headerlink" title="六、Skills（技能）管理"></a>六、Skills（技能）管理</h2><h3 id="1-技能应该是文件夹结构"><a href="#1-技能应该是文件夹结构" class="headerlink" title="1. 技能应该是文件夹结构"></a>1. 技能应该是文件夹结构</h3><pre class="line-numbers language-none"><code class="language-none">skills&#x2F;  api-design&#x2F;    SKILL.md          # 主文件：核心规则和索引    references&#x2F;       # 语料库、参考资料    scripts&#x2F;          # 辅助脚本    examples&#x2F;         # 示例代码</code></pre><ul><li>主文件只包含核心规则和索引</li><li>语料库、检查表放在 <code>references/</code></li><li><strong>渐进式披露</strong>：Claude 只在需要时读取子目录内容</li></ul><h3 id="2-嵌套-Skills-自动按路径加载"><a href="#2-嵌套-Skills-自动按路径加载" class="headerlink" title="2. 嵌套 Skills 自动按路径加载"></a>2. 嵌套 Skills 自动按路径加载</h3><p>把技能放在 <code>.claude/skills/</code> 的子目录中，在该目录下工作时会自动加载。</p><p>名称冲突时显示为 <code>&lt;目录名&gt;:&lt;技能名&gt;</code>，两者都可访问。</p><p>最佳实践：<strong>按模块&#x2F;领域组织技能目录</strong>，不用把所有技能塞在一个平铺目录里。</p><h3 id="3-堆叠调用多个技能"><a href="#3-堆叠调用多个技能" class="headerlink" title="3. 堆叠调用多个技能"></a>3. 堆叠调用多个技能</h3><p>一行调用多个技能：<code>/skill-a /skill-b do XYZ</code>（最多 5 个）</p><p>适合组合多种专业技能的复杂任务，不用分多次对话。</p><h3 id="4-添加-Gotchas（坑点记录）部分"><a href="#4-添加-Gotchas（坑点记录）部分" class="headerlink" title="4. 添加 Gotchas（坑点记录）部分"></a>4. 添加 Gotchas（坑点记录）部分</h3><p>这是<strong>长期最有价值的技术</strong>：每次 Claude 犯错时记录失败模式，长期积累成为信噪比最高的内容。</p><p>Gotchas 结构示例：</p><pre class="line-numbers language-markdown" data-language="markdown"><code class="language-markdown"># SKILL.md## Gotchas（坑点记录）### 2026-04-15: API 分页参数遗漏- **问题**：生成 API 时忘记添加分页参数- **表现**：返回所有数据导致性能问题- **修复**：在 SKILL.md 中添加分页规则- **预防**：检查清单中增加&quot;是否包含分页&quot;</code></pre><p><strong>Gotchas 维护原则：</strong></p><ul><li><strong>每次犯错必记录</strong>：不要等，立即记录</li><li><strong>包含四个要素</strong>：问题描述、表现形式、修复方法、预防措施</li><li><strong>定期回顾</strong>：每周回顾一次，识别重复出现的模式</li><li><strong>转化为规则</strong>：如果某个坑点出现 3 次以上，转化为正式规则</li><li><strong>归档已解决的</strong>：超过 30 天未出现的问题，移到归档区</li></ul><hr><h2 id="七、Superpowers-使用详解"><a href="#七、Superpowers-使用详解" class="headerlink" title="七、Superpowers 使用详解"></a>七、Superpowers 使用详解</h2><h3 id="1-什么是-Superpowers？"><a href="#1-什么是-Superpowers？" class="headerlink" title="1. 什么是 Superpowers？"></a>1. 什么是 Superpowers？</h3><p>Superpowers 是由 Jesse Vincent 和 Prime Radiant 团队开发的 Claude Code 插件，解决工程纪律问题。</p><p><strong>核心功能：</strong></p><ul><li>强制结构化工作流：头脑风暴 → 分支隔离 → 详细计划 → 执行</li><li>TDD（测试驱动开发）</li><li>代码审查</li><li>系统调试</li><li>验证完成</li></ul><h3 id="2-安装与配置"><a href="#2-安装与配置" class="headerlink" title="2. 安装与配置"></a>2. 安装与配置</h3><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash"># 在 Claude Code 会话中安装&#x2F;plugin install superpowers@claude-plugins-official# 下次启动时看到 &quot;You have Superpowers&quot; 即表示成功</code></pre><h3 id="3-技能激活方式"><a href="#3-技能激活方式" class="headerlink" title="3. 技能激活方式"></a>3. 技能激活方式</h3><table><thead><tr><th>技能</th><th>何时激活</th><th>触发方式</th></tr></thead><tbody><tr><td>brainstorming</td><td>创建功能或组件前</td><td>单独使用时自动</td></tr><tr><td>writing-plans</td><td>需求需要多步分解时</td><td>单独使用时自动</td></tr><tr><td>test-driven-development</td><td>实现功能或修复 bug 前</td><td>需在 CLAUDE.md 中显式配置</td></tr><tr><td>systematic-debugging</td><td>遇到 bug、测试失败、意外行为时</td><td>需在 CLAUDE.md 中显式配置</td></tr><tr><td>code-reviewer</td><td>完成主要实现步骤后</td><td>需在 CLAUDE.md 中显式配置</td></tr><tr><td>dispatching-parallel-agents</td><td>多个独立任务可并行时</td><td>当 2+ 任务无依赖时自动</td></tr><tr><td>verification-before-completion</td><td>声称工作完成前</td><td>需在 CLAUDE.md 中显式配置</td></tr></tbody></table><h3 id="4-四步强制序列"><a href="#4-四步强制序列" class="headerlink" title="4. 四步强制序列"></a>4. 四步强制序列</h3><ol><li><strong>头脑风暴</strong>：解决重大架构决策（比写代码便宜）</li><li><strong>分支隔离</strong>：每个功能在独立分支上开发</li><li><strong>详细计划</strong>：编写可审查的计划文档</li><li><strong>执行</strong>：按计划实施，每步都有检查点</li></ol><h3 id="5-管理已安装的插件"><a href="#5-管理已安装的插件" class="headerlink" title="5. 管理已安装的插件"></a>5. 管理已安装的插件</h3><p><code>/plugin list</code> 查看所有插件，用 <code>--enabled</code>&#x2F;<code>--disabled</code> 过滤。</p><p>长时间未用的插件会被提示清理，节省上下文。</p><p>插件钩子的标识符匹配规则：含连字符的钩子名（如 <code>code-reviewer</code>）现在精确匹配，不会误触。</p><hr><h2 id="八、Spec-Kit（OpenSpec）使用详解"><a href="#八、Spec-Kit（OpenSpec）使用详解" class="headerlink" title="八、Spec Kit（OpenSpec）使用详解"></a>八、Spec Kit（OpenSpec）使用详解</h2><h3 id="1-什么是-OpenSpec？"><a href="#1-什么是-OpenSpec？" class="headerlink" title="1. 什么是 OpenSpec？"></a>1. 什么是 OpenSpec？</h3><p>OpenSpec 是 Fission AI 开发的开源框架，解决需求不匹配问题。将一句话需求扩展为四个结构化文档：</p><ul><li><strong>proposal.md</strong>：为什么、范围、不在范围内什么（防止 AI 添加未请求的功能）</li><li>**specs&#x2F;**：使用 <code>GIVEN/WHEN/THEN</code> 场景的行为规范</li><li><strong>design.md</strong>：技术决策及推理</li><li><strong>tasks.md</strong>：实现清单，每个任务 2-5 分钟可完成</li></ul><h3 id="2-安装与配置-1"><a href="#2-安装与配置-1" class="headerlink" title="2. 安装与配置"></a>2. 安装与配置</h3><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash"># 需要 Node.js 20.19.0+npm install -g @fission-ai&#x2F;openspec@latestcd your-projectopenspec init  # 选择 Claude Code# 创建 openspec&#x2F; 目录，包含 specs&#x2F;、changes&#x2F;archive&#x2F;、AGENTS.md</code></pre><h3 id="3-与-Claude-Code-集成"><a href="#3-与-Claude-Code-集成" class="headerlink" title="3. 与 Claude Code 集成"></a>3. 与 Claude Code 集成</h3><pre class="line-numbers language-json" data-language="json"><code class="language-json">&#x2F;&#x2F; .claude&#x2F;settings.json&#123;  &quot;mcpServers&quot;: &#123;    &quot;openspec&quot;: &#123;      &quot;command&quot;: &quot;npx&quot;,      &quot;args&quot;: [&quot;-y&quot;, &quot;@fission-ai&#x2F;openspec-mcp&quot;]    &#125;  &#125;,  &quot;permissions&quot;: &#123;    &quot;allow&quot;: [&quot;Bash:openspec:*&quot;, &quot;Bash:npm:*&quot;, &quot;Bash:git:*&quot;]  &#125;&#125;</code></pre><h3 id="4-工作流程"><a href="#4-工作流程" class="headerlink" title="4. 工作流程"></a>4. 工作流程</h3><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash"># 会话 1：需求 → 规范&gt; &#x2F;opsx:propose 用户认证 API，Express + MongoDB + JWT# 生成：# - openspec&#x2F;changes&#x2F;YYYY-MM-DD--proposal.md# - openspec&#x2F;changes&#x2F;YYYY-MM-DD--specs&#x2F;# - openspec&#x2F;changes&#x2F;YYYY-MM-DD--design.md# - openspec&#x2F;changes&#x2F;YYYY-MM-DD--tasks.md# 会话 2：规范 → 实现&gt; &#x2F;opsx:apply# 会话 3：独立验证&gt; &#x2F;opsx:archive  # 归档当前迭代</code></pre><h3 id="5-Delta-x2F-Archive-机制"><a href="#5-Delta-x2F-Archive-机制" class="headerlink" title="5. Delta&#x2F;Archive 机制"></a>5. Delta&#x2F;Archive 机制</h3><ul><li><strong>Delta</strong>：每次迭代保留决策历史</li><li><strong>Archive</strong>：归档已完成的迭代，保留审计追踪</li><li>解决设计决策在迭代中丢失的问题</li></ul><h3 id="6-五大常见陷阱"><a href="#6-五大常见陷阱" class="headerlink" title="6. 五大常见陷阱"></a>6. 五大常见陷阱</h3><table><thead><tr><th>陷阱</th><th>表现</th><th>预防</th></tr></thead><tbody><tr><td>规范写成伪代码</td><td>描述实现而非行为</td><td>使用 <code>GIVEN/WHEN/THEN</code></td></tr><tr><td>过度详细</td><td>规范限制 AI 创造性</td><td>描述”什么”，不描述”怎么做”</td></tr><tr><td>每次功能后不归档</td><td>历史混乱</td><td>每个功能完成后执行 archive</td></tr><tr><td>与 Superpowers 冲突</td><td>两个规划系统重复</td><td>在 CLAUDE.md 中路由到一个</td></tr><tr><td>忽略 out-of-scope</td><td>AI 添加未请求功能</td><td>明确定义范围边界</td></tr></tbody></table><hr><h2 id="九、权限与安全"><a href="#九、权限与安全" class="headerlink" title="九、权限与安全"></a>九、权限与安全</h2><h3 id="1-Hooks-vs-CLAUDE-md"><a href="#1-Hooks-vs-CLAUDE-md" class="headerlink" title="1. Hooks vs CLAUDE.md"></a>1. Hooks vs CLAUDE.md</h3><table><thead><tr><th>需求</th><th>推荐</th><th>原因</th></tr></thead><tbody><tr><td>文件保存后自动 lint</td><td><strong>Hook</strong></td><td>每次必须执行</td></tr><tr><td>阻止写入敏感文件</td><td><strong>Hook</strong></td><td>安全不能妥协</td></tr><tr><td>代码规范遵循</td><td><strong>CLAUDE.md</strong></td><td>需要情境判断</td></tr><tr><td>API 命名规则</td><td><strong>CLAUDE.md</strong></td><td>存在例外模式</td></tr></tbody></table><h3 id="2-Allowlist-减少审批疲劳"><a href="#2-Allowlist-减少审批疲劳" class="headerlink" title="2. Allowlist 减少审批疲劳"></a>2. Allowlist 减少审批疲劳</h3><pre class="line-numbers language-json" data-language="json"><code class="language-json">&#123;  &quot;permissions&quot;: &#123;    &quot;allow&quot;: [      &quot;Bash(npm run lint:*)&quot;,      &quot;Bash(npm run test:*)&quot;,      &quot;Bash(git status)&quot;,      &quot;Read&quot;,      &quot;Glob&quot;,      &quot;Grep&quot;    ]  &#125;&#125;</code></pre><h3 id="3-deny-比-Hooks-更安全"><a href="#3-deny-比-Hooks-更安全" class="headerlink" title="3. deny 比 Hooks 更安全"></a>3. deny 比 Hooks 更安全</h3><pre class="line-numbers language-json" data-language="json"><code class="language-json">&#123;  &quot;permissions&quot;: &#123;    &quot;deny&quot;: [      &quot;Read(.&#x2F;.env)&quot;,      &quot;Read(.&#x2F;.env.*)&quot;,      &quot;Read(.&#x2F;secrets&#x2F;**)&quot;,      &quot;Bash(curl:*)&quot;    ]  &#125;&#125;</code></pre><p>设为 <code>deny</code> 后文件对 Claude”不可见”。</p><p>权限评估顺序：<strong>deny → ask → allow</strong></p><h3 id="4-权限规则进阶用法"><a href="#4-权限规则进阶用法" class="headerlink" title="4. 权限规则进阶用法"></a>4. 权限规则进阶用法</h3><ul><li><strong>参数化匹配</strong>：<code>Agent(model:opus)</code> 可精确禁止 Opus 子智能体</li><li><strong>Glob 模式</strong>：<code>*</code> 在 deny 规则中匹配所有工具</li><li><strong>安全强化</strong>：破坏性 git 命令（<code>git reset --hard</code>、<code>git checkout -- .</code> 等）自动模式已默认阻止，除非你明确要求</li><li><code>rm -rf</code> 在自动模式下也需要确认</li></ul><h3 id="5-dangerously-skip-permissions-正确使用"><a href="#5-dangerously-skip-permissions-正确使用" class="headerlink" title="5. --dangerously-skip-permissions 正确使用"></a>5. <code>--dangerously-skip-permissions</code> 正确使用</h3><table><thead><tr><th>适用场景</th><th>不适用场景</th></tr></thead><tbody><tr><td>Lint 修复自动化</td><td>联网环境</td></tr><tr><td>样板代码生成</td><td>包含敏感数据的环境</td></tr><tr><td>封闭工作流</td><td>通用开发工作</td></tr></tbody></table><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p><strong>重要</strong>：应在无互联网的隔离环境中使用。企业可设置 <code>disableBypassPermissionsMode: true</code> 全局禁用。</p></blockquote><hr><h2 id="十、规格与实现分离"><a href="#十、规格与实现分离" class="headerlink" title="十、规格与实现分离"></a>十、规格与实现分离</h2><h3 id="推荐流程"><a href="#推荐流程" class="headerlink" title="推荐流程"></a>推荐流程</h3><table><thead><tr><th>会话</th><th>用途</th></tr></thead><tbody><tr><td>Session 1</td><td>通过采访创建规格</td></tr><tr><td>Session 2</td><td>基于规格实现</td></tr><tr><td>Session 3</td><td>独立验证</td></tr></tbody></table><h3 id="为什么分离？"><a href="#为什么分离？" class="headerlink" title="为什么分离？"></a>为什么分离？</h3><ul><li>采访和规格讨论污染上下文</li><li>新会话有干净的上下文窗口</li><li>规格文档作为实现依据</li><li>验证会话独立于实现偏见</li></ul><hr><h2 id="十一、Claude-Code-常见陷阱（Gotchas）"><a href="#十一、Claude-Code-常见陷阱（Gotchas）" class="headerlink" title="十一、Claude Code 常见陷阱（Gotchas）"></a>十一、Claude Code 常见陷阱（Gotchas）</h2><h3 id="8-大陷阱速查表"><a href="#8-大陷阱速查表" class="headerlink" title="8 大陷阱速查表"></a>8 大陷阱速查表</h3><table><thead><tr><th>#</th><th>陷阱</th><th>表现</th><th>缓解方法</th></tr></thead><tbody><tr><td>1</td><td>过早放弃</td><td>“已实现大部分功能，但 XX 不工作”</td><td>拆分任务为更小单元</td></tr><tr><td>2</td><td>上下文压缩后变笨</td><td>忘记之前纠正的错误</td><td>手动 <code>/compact</code>，必要时 <code>/clear</code></td></tr><tr><td>3</td><td>初始测试质量差</td><td>测试看起来对但实际失败</td><td>TDD 模式，仔细审查测试</td></tr><tr><td>4</td><td>修改测试而非代码</td><td>降低测试标准匹配错误代码</td><td>严格审查测试变更</td></tr><tr><td>5</td><td>忘记编译</td><td>测试失败因为未编译</td><td>在 CLAUDE.md 中明确编译步骤</td></tr><tr><td>6</td><td>工作目录混乱</td><td>留下测试脚本、构建产物</td><td><code>git status</code> 检查，手动清理</td></tr><tr><td>7</td><td>Git 操作危险</td><td>错误的变更合并到 PR</td><td>人工执行 Git 操作</td></tr><tr><td>8</td><td>重写但不删除旧代码</td><td>新旧代码共存</td><td>审查 diff，确认删除</td></tr></tbody></table><h3 id="各陷阱详细说明"><a href="#各陷阱详细说明" class="headerlink" title="各陷阱详细说明"></a>各陷阱详细说明</h3><p><strong>陷阱 1：过早放弃</strong></p><p>表现：”我已实现大部分功能。功能在 XX 情况下工作正常。但 YY 情况下不工作。”</p><p>缓解：拆分任务为更小、更隔离的单元。即使人类认为可以分组，Claude Code 也需要分离。例如两个相似表 → 分两个 PR，每个 10 分钟完成。</p><p><strong>陷阱 2：上下文压缩后变笨</strong></p><p>表现：不知道之前看的文件，重复之前纠正的错误，性能明显下降。</p><p>缓解：50% 时手动 <code>/compact</code>，指定压缩策略（保留什么）。必要时 <code>/clear</code> + <code>git reset --hard</code>。如果已经 <code>/clear</code> 了又想找回之前的对话，用 <code>/rewind</code>。</p><p><strong>陷阱 3 &amp; 4：测试问题</strong></p><p>表现：生成看起来对但失败的测试；修改测试匹配错误代码；降低测试标准。</p><p>缓解：TDD 模式——先写测试。仔细审查生成的测试。严格审查测试变更（比代码变更更严格）。</p><p><strong>陷阱 5：忘记编译</strong></p><p>表现：测试循环失败因为未编译。</p><p>缓解：CLAUDE.md 中明确编译步骤，测试前强制编译。编译语言 vs 解释语言混合时特别容易出错。</p><p><strong>陷阱 6 &amp; 7：工作目录和 Git</strong></p><p>表现：留下测试脚本、数据库文件；Git 操作错误导致 PR 混乱。</p><p>缓解：每次完成后 <code>git status</code> 检查。人工执行 Git 操作（分支、提交、推送）。Claude Code 只修改文件，不操作 Git。</p><p><strong>陷阱 8：重写但不删除</strong></p><p>表现：创建新文件但不删除旧文件，新旧代码共存导致混淆。</p><p>缓解：审查 diff 确认删除。明确指示”删除旧实现”。检查文件列表确认清理。</p><p><strong>新陷阱：后台会话意外中断</strong></p><p>表现：后台会话在 daemon 重启后消失，状态显示异常（一直”Working”或空白）。</p><p>缓解：更新到最新版本，后台会话已支持自动恢复。如果后台卡住，在 <code>claude agents</code> 中检查状态。通过 <code>claude agents</code> 的过滤功能按状态定位问题会话。</p><hr><h2 id="十二、工具组合策略"><a href="#十二、工具组合策略" class="headerlink" title="十二、工具组合策略"></a>十二、工具组合策略</h2><p><strong>Claude Code + OpenSpec + Superpowers</strong> 三重栈解决三个核心问题：</p><table><thead><tr><th>问题</th><th>工具</th><th>解决方式</th></tr></thead><tbody><tr><td>AI 构建的不是你想要的</td><td><strong>OpenSpec</strong></td><td>需求 → 结构化规范</td></tr><tr><td>AI 跳过工程纪律</td><td><strong>Superpowers</strong></td><td>强制 TDD、审查、验证</td></tr><tr><td>设计决策在迭代中丢失</td><td><strong>OpenSpec</strong></td><td>Delta&#x2F;Archive 机制</td></tr></tbody></table><p>分工明确：</p><ul><li><strong>OpenSpec</strong> 负责：思考 WHAT（构建什么、为什么）</li><li><strong>Superpowers</strong> 负责：确保 HOW（如何构建好）</li><li><strong>Claude Code</strong> 负责：执行（编辑文件、运行测试、处理 Git）</li></ul><p>在 CLAUDE.md 中配置协作路由：</p><pre class="line-numbers language-markdown" data-language="markdown"><code class="language-markdown">## 规划阶段- 任何新功能：从 &#x2F;opsx:propose 开始- 跳过 brainstorming&#x2F;writing-plans（避免重复）## 编码阶段- 使用 &#x2F;opsx:apply 时：始终遵循 TDD- 遇到 bug：使用 systematic-debugging- 完成实现：触发 code-reviewer- 声称完成：通过 verification-before-completion</code></pre><hr><h2 id="十三、核心原则总结"><a href="#十三、核心原则总结" class="headerlink" title="十三、核心原则总结"></a>十三、核心原则总结</h2><h3 id="上下文是宝贵资源"><a href="#上下文是宝贵资源" class="headerlink" title="上下文是宝贵资源"></a>上下文是宝贵资源</h3><ul><li>保持简洁、及时压缩、污染就重置</li><li>50% 时手动 <code>/compact</code></li><li>两次失败 &#x3D; <code>/clear</code></li><li><code>/cd</code> 切目录不破坏缓存</li><li><code>/rewind</code> 可找回 <code>/clear</code> 之前的对话</li></ul><h3 id="系统约束-gt-提示词约束"><a href="#系统约束-gt-提示词约束" class="headerlink" title="系统约束 &gt; 提示词约束"></a>系统约束 &gt; 提示词约束</h3><ul><li>用 Hooks 和权限配置代替”希望 Claude 记住”</li><li><code>deny</code> 比 Hooks 更安全</li><li>关键规则用标签包裹</li><li>定期运行 <code>/doctor</code> 清理冗余</li></ul><h3 id="分而治之"><a href="#分而治之" class="headerlink" title="分而治之"></a>分而治之</h3><ul><li>子智能体、分阶段工作流、规格与实现分离</li><li>专用子智能体 &gt; 通用 mega-agent</li><li>Skills 按目录组织、可嵌套加载和堆叠调用</li></ul><h3 id="不要过度工程"><a href="#不要过度工程" class="headerlink" title="不要过度工程"></a>不要过度工程</h3><ul><li>3-5 分钟能完成的事，直接用原生 Claude Code</li><li>复杂工作流适用于多文件、多步骤的大任务</li><li>重命名变量这种小事，一句话就行</li></ul><h3 id="持续改进"><a href="#持续改进" class="headerlink" title="持续改进"></a>持续改进</h3><ul><li>每次犯错必记录 Gotchas</li><li>定期回顾，识别重复模式</li><li>将高频问题转化为正式规则</li><li>用 <code>/doctor</code> 定期清理不用的插件和配置</li></ul><hr><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p><strong>参考来源：</strong> 微信公众号文章  <a href="https://mp.weixin.qq.com/s/ak73u7IsU5Be390mNUuPZw">https://mp.weixin.qq.com/s/ak73u7IsU5Be390mNUuPZw</a></p></blockquote>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;一、CLAUDE-md-配置原则&quot;&gt;&lt;a href=&quot;#一、CLAUDE-md-配置原则&quot; class=&quot;headerlink&quot; title=&quot;一、CLAUDE.md 配置原则&quot;&gt;&lt;/a&gt;一、CLAUDE.md 配置原则&lt;/h2&gt;&lt;p&gt;CLAUDE.md 是 Cl</summary>
      
    
    
    
    <category term="Claude Code" scheme="http://example.com/categories/Claude-Code/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="Claude Code" scheme="http://example.com/tags/Claude-Code/"/>
    
    <category term="开发工具" scheme="http://example.com/tags/%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7/"/>
    
    <category term="最佳实践" scheme="http://example.com/tags/%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/"/>
    
  </entry>
  
  <entry>
    <title>向量数据库入门——从原理到 RAG 实战</title>
    <link href="http://example.com/post/%E5%90%91%E9%87%8F%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A5%E9%97%A8%E2%80%94%E2%80%94%E4%BB%8E%E5%8E%9F%E7%90%86%E5%88%B0RAG%E5%AE%9E%E6%88%98.html"/>
    <id>http://example.com/post/%E5%90%91%E9%87%8F%E6%95%B0%E6%8D%AE%E5%BA%93%E5%85%A5%E9%97%A8%E2%80%94%E2%80%94%E4%BB%8E%E5%8E%9F%E7%90%86%E5%88%B0RAG%E5%AE%9E%E6%88%98.html</id>
    <published>2026-07-14T01:00:00.000Z</published>
    <updated>2026-07-14T01:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="向量是什么？"><a href="#向量是什么？" class="headerlink" title="向量是什么？"></a>向量是什么？</h2><p>忘掉数学课本里的向量定义，在这个语境下，<strong>向量就是一串数字，用来表示一个东西的特征</strong>。</p><p>举个最直觉的例子，假设我要描述一杯咖啡，可以用几个维度来量化它：</p><table><thead><tr><th>维度</th><th>数值</th></tr></thead><tbody><tr><td>苦度</td><td>0.8</td></tr><tr><td>酸度</td><td>0.3</td></tr><tr><td>甜度</td><td>0.1</td></tr><tr><td>浓度</td><td>0.9</td></tr></tbody></table><p>那这杯咖啡就可以用一个向量来表示：**[0.8, 0.3, 0.1, 0.9]**</p><p>另一杯咖啡是 [0.7, 0.4, 0.2, 0.8]，直觉上就能感觉到这两杯咖啡比较像，因为它们每个维度的数值都比较接近。</p><p>而一杯奶茶可能是 [0.1, 0.1, 0.8, 0.5]，跟前面两杯咖啡差别就很大了。</p><p><strong>这就是向量检索的核心思想：把东西变成一串数字，然后通过计算数字之间的距离来判断它们是不是相似。</strong></p><h2 id="文本怎么变成向量？"><a href="#文本怎么变成向量？" class="headerlink" title="文本怎么变成向量？"></a>文本怎么变成向量？</h2><p>咖啡的例子容易理解，因为维度是人定义的。但文本怎么变成向量？”今天天气真好”这句话怎么变成一串数字？</p><p>这就是 <strong>Embedding 模型</strong>干的事。把一段文本丢给 Embedding 模型，它会输出一个高维向量，比如一个 1536 维的浮点数数组：</p><pre class="line-numbers language-none"><code class="language-none">&quot;今天天气真好&quot;   → [0.021, -0.037, 0.089, ..., 0.015]  (1536个数)&quot;天气不错啊&quot;     → [0.019, -0.041, 0.092, ..., 0.013]  (1536个数)&quot;数据库怎么优化&quot; → [-0.052, 0.073, -0.011, ..., 0.068] (1536个数)</code></pre><p>不需要理解这 1536 个数每一个具体代表什么含义。这是模型在大量文本数据上训练出来的一种语义编码。</p><p>只需要知道两个关键结论：</p><ol><li><p><strong>语义相近的文本，向量也相近</strong><br>“今天天气真好”和”天气不错啊”的向量距离会很小，虽然字面上用的词完全不一样</p></li><li><p><strong>语义不相关的文本，向量距离很远</strong><br>“今天天气真好”和”数据库怎么优化”的向量距离会很大</p></li></ol><p>这就是为什么向量检索能做到<strong>语义搜索</strong>——传统关键词搜索只能匹配字面一样的词，但向量检索能理解「降本增效」和「成本优化」说的是一回事。</p><h2 id="向量之间的距离怎么算？"><a href="#向量之间的距离怎么算？" class="headerlink" title="向量之间的距离怎么算？"></a>向量之间的距离怎么算？</h2><p>两个向量之间有多相似，需要一个量化的计算方式。常用的有三种，理解思路就行：</p><table><thead><tr><th>方式</th><th>思路</th><th>适用场景</th></tr></thead><tbody><tr><td><strong>余弦相似度</strong></td><td>看两个向量的方向是不是一致。不关心长度，只关心方向</td><td>最常用，大部分场景够用</td></tr><tr><td><strong>欧氏距离</strong></td><td>两点之间的直线距离，推广到高维空间。距离越小越相似</td><td>直观，但受向量长度影响</td></tr><tr><td><strong>内积</strong></td><td>既考虑方向也考虑长度</td><td>推荐系统等向量模长有实际含义的场景</td></tr></tbody></table><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>打个比方：两个人都往东北方向走，一个走了 100 米一个走了 200 米，余弦相似度认为他们是一样的，因为方向一样。</p></blockquote><p><strong>实际用的时候，选余弦相似度基本不会错。</strong></p><h2 id="为什么需要专门的向量数据库？"><a href="#为什么需要专门的向量数据库？" class="headerlink" title="为什么需要专门的向量数据库？"></a>为什么需要专门的向量数据库？</h2><p>假设你有 10 万段文本，全部转成了向量。用户来了一个查询，也转成向量。现在要找最相似的 5 段文本。</p><p>最笨的办法：把用户的向量跟这 10 万个向量逐一计算距离，然后排序取前 5 个。这叫<strong>暴力搜索（Brute Force）</strong>。</p><ul><li>10 万条数据还凑合</li><li>100 万条就明显慢了</li><li>1 亿条就完全不可用了</li></ul><p><strong>向量数据库的核心价值就是：在海量向量中快速找到最相似的那几个，而且不需要逐一比较。</strong></p><p>它靠的是一系列<strong>近似最近邻（ANN）算法</strong>来加速检索。主流的有几种：</p><h3 id="HNSW（分层导航小世界图）"><a href="#HNSW（分层导航小世界图）" class="headerlink" title="HNSW（分层导航小世界图）"></a>HNSW（分层导航小世界图）</h3><p>把向量组织成一个多层的图结构，有点像跳表：先在顶层粗定位，再逐层细化。</p><p><strong>查询速度快、精度高</strong>，是目前最主流的算法，大部分向量数据库默认用的就是这个。</p><h3 id="IVF（倒排文件索引）"><a href="#IVF（倒排文件索引）" class="headerlink" title="IVF（倒排文件索引）"></a>IVF（倒排文件索引）</h3><p>先把所有向量用聚类算法分成很多组（簇），查询时先找到最可能的几个组，然后只在这几个组内搜索。</p><p>速度快但精度略低，适合数据量特别大的场景。</p><h3 id="PQ（乘积量化）"><a href="#PQ（乘积量化）" class="headerlink" title="PQ（乘积量化）"></a>PQ（乘积量化）</h3><p>把高维向量压缩成低维的编码，牺牲一点精度换内存和速度，经常跟 IVF 配合使用。</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>这些算法找到的是「近似最近邻」，不保证是精确的最近邻。但在实际使用中，<strong>95% 以上的准确率已经完全够用了</strong>，速度却能快几个数量级。</p></blockquote><h2 id="动手入门：四步走"><a href="#动手入门：四步走" class="headerlink" title="动手入门：四步走"></a>动手入门：四步走</h2><h3 id="第一步：跑一个最小可用的-Demo"><a href="#第一步：跑一个最小可用的-Demo" class="headerlink" title="第一步：跑一个最小可用的 Demo"></a>第一步：跑一个最小可用的 Demo</h3><p>别一上来就研究底层原理和算法细节，先跑通一个端到端的流程，感受一下。</p><p>推荐用 Python + <strong>ChromaDB</strong>，Chroma 是最容易上手的向量数据库，不需要单独部署服务，<code>pip install</code> 就能用：</p><pre class="line-numbers language-python" data-language="python"><code class="language-python">import chromadbfrom chromadb.utils import embedding_functions# 1. 创建客户端和集合client &#x3D; chromadb.Client()ef &#x3D; embedding_functions.DefaultEmbeddingFunction()collection &#x3D; client.create_collection(&quot;my_docs&quot;, embedding_function&#x3D;ef)# 2. 添加文档（Chroma 会自动调用 embedding 模型把文本转成向量）collection.add(    documents&#x3D;[        &quot;Python 是一种解释型的高级编程语言&quot;,        &quot;Java 是一种面向对象的编程语言&quot;,        &quot;今天的午饭是红烧肉盖饭&quot;,        &quot;机器学习是人工智能的一个子领域&quot;,    ],    ids&#x3D;[&quot;doc1&quot;, &quot;doc2&quot;, &quot;doc3&quot;, &quot;doc4&quot;])# 3. 查询：语义搜索results &#x3D; collection.query(    query_texts&#x3D;[&quot;有什么好用的编程语言&quot;],    n_results&#x3D;2)print(results[&quot;documents&quot;])# 输出大概率是 Python 和 Java 相关的那两条，而不是红烧肉</code></pre><p>跑完这个 Demo 你就会有一个直观的感受：<strong>查询和文档的字面完全不一样，但向量检索确实能找到语义相关的内容</strong>。这个感觉比看十篇原理文章都有用。</p><h3 id="第二步：理解-RAG-的完整流程"><a href="#第二步：理解-RAG-的完整流程" class="headerlink" title="第二步：理解 RAG 的完整流程"></a>第二步：理解 RAG 的完整流程</h3><p>向量数据库目前最主要的应用场景就是 <strong>RAG（检索增强生成）</strong>。在上面的 Demo 基础上，加一个 LLM 调用，就是一个最简单的 RAG 系统：</p><pre class="line-numbers language-python" data-language="python"><code class="language-python"># 伪代码，展示 RAG 的核心流程def rag_answer(question):    # 1. 检索：从向量库里找最相关的文档    results &#x3D; collection.query(query_texts&#x3D;[question], n_results&#x3D;3)    context &#x3D; &quot;\n&quot;.join(results[&quot;documents&quot;][0])    # 2. 生成：把检索到的文档作为上下文，让 LLM 回答    prompt &#x3D; f&quot;根据以下参考资料回答问题。\n\n参考资料：\n&#123;context&#125;\n\n问题：&#123;question&#125;&quot;    answer &#x3D; call_llm(prompt)    return answer</code></pre><p>整个 RAG 的流程就这么简单：</p><pre class="line-numbers language-none"><code class="language-none">用户提问 → 转向量 → 在向量库里检索最相关的文档 → 把文档和问题一起给 LLM → LLM 基于文档内容生成回答</code></pre><p>别小看这几行伪代码，市面上绝大部分<strong>企业知识库、智能客服、AI 问答系统</strong>，核心流程都是这个。</p><h3 id="第三步：换一个生产级的向量数据库"><a href="#第三步：换一个生产级的向量数据库" class="headerlink" title="第三步：换一个生产级的向量数据库"></a>第三步：换一个生产级的向量数据库</h3><p>ChromaDB 适合学习和小规模实验。如果要做生产级的项目，建议了解一下这几个：</p><table><thead><tr><th>数据库</th><th>特点</th><th>适合场景</th></tr></thead><tbody><tr><td><strong>Milvus</strong></td><td>开源、功能全、社区活跃，国内用的人多</td><td>需要自己部署的场景</td></tr><tr><td><strong>Qdrant</strong></td><td>Rust 写的，性能好，API 设计友好</td><td>需要丰富过滤条件的场景</td></tr><tr><td><strong>Pinecone</strong></td><td>全托管云服务，不需要自己运维</td><td>不想操心基础设施的团队</td></tr><tr><td><strong>Weaviate</strong></td><td>支持多种向量化方式，内置 Embedding 集成</td><td>需要灵活嵌入模型的场景</td></tr></tbody></table><h3 id="第四步：深入理解"><a href="#第四步：深入理解" class="headerlink" title="第四步：深入理解"></a>第四步：深入理解</h3><p>等你跑通了基础 Demo，实际做过一两个小项目之后，再去啃这些：</p><ul><li><strong>文档分块策略</strong>：按固定长度切、按段落切、按语义切，不同策略效果差别很大</li><li><strong>Embedding 模型选型</strong>：OpenAI 的 text-embedding-3 系列、开源的 BGE 系列、Sentence-Transformers</li><li><strong>混合检索</strong>：向量检索 + 关键词检索（BM25）配合使用，很多场景下效果比纯向量检索好</li><li><strong>索引调优</strong>：HNSW 的参数（ef_construction、M）怎么调，IVF 的 nlist 和 nprobe 怎么设</li></ul><p><strong>这些都是做了才知道为什么重要的东西，没做过项目之前看了也记不住。</strong></p><h2 id="入门时容易踩的几个坑"><a href="#入门时容易踩的几个坑" class="headerlink" title="入门时容易踩的几个坑"></a>入门时容易踩的几个坑</h2><h3 id="❌-别一上来就纠结选哪个向量数据库"><a href="#❌-别一上来就纠结选哪个向量数据库" class="headerlink" title="❌ 别一上来就纠结选哪个向量数据库"></a>❌ 别一上来就纠结选哪个向量数据库</h3><p>入门阶段用哪个都行，核心概念是通用的。等你真正有了生产需求，再根据数据量、部署方式、团队技术栈来选也不迟。</p><h3 id="❌-别忽视-Embedding-模型的选择"><a href="#❌-别忽视-Embedding-模型的选择" class="headerlink" title="❌ 别忽视 Embedding 模型的选择"></a>❌ 别忽视 Embedding 模型的选择</h3><p>很多人把精力全花在向量数据库上，但<strong>检索效果的上限其实是由 Embedding 模型决定的</strong>。同样的文档，用一个好的 Embedding 模型和一个差的，召回率差距可能有 20 个百分点以上。</p><h3 id="❌-别以为向量检索能解决所有搜索问题"><a href="#❌-别以为向量检索能解决所有搜索问题" class="headerlink" title="❌ 别以为向量检索能解决所有搜索问题"></a>❌ 别以为向量检索能解决所有搜索问题</h3><p>精确匹配（搜一个特定的错误码）、数值过滤（筛选某个时间范围的数据）、排序（按时间倒序）——这些传统数据库擅长的事情，向量数据库做起来反而别扭。</p><p>实际生产中好的搜索系统，通常是<strong>向量检索 + 传统检索混合使用</strong>。</p><h3 id="❌-别跳过动手环节直接啃论文"><a href="#❌-别跳过动手环节直接啃论文" class="headerlink" title="❌ 别跳过动手环节直接啃论文"></a>❌ 别跳过动手环节直接啃论文</h3><p>HNSW、IVF-PQ 这些算法的论文确实值得看，但那是你做了实际项目、对性能和精度有了直观体感之后再看才有意义。一上来就看论文，大概率看完就忘，因为没有实际问题去驱动理解。</p><h2 id="写在最后"><a href="#写在最后" class="headerlink" title="写在最后"></a>写在最后</h2><p>向量数据库没有很多教程渲染得那么高深。说白了就三件事：</p><ol><li><strong>把数据变成向量</strong></li><li><strong>把向量存起来</strong></li><li><strong>用向量快速找相似的</strong></li></ol><p>先动手跑起来，遇到问题再回头补原理，这个顺序比反过来高效得多。</p><p>这篇文章的 Demo 代码，复制下来十分钟就能跑通，与其收藏吃灰，不如现在就试试。</p><hr><p><strong>参考来源：</strong> 《十万个 why》系列（微信公众号）</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;向量是什么？&quot;&gt;&lt;a href=&quot;#向量是什么？&quot; class=&quot;headerlink&quot; title=&quot;向量是什么？&quot;&gt;&lt;/a&gt;向量是什么？&lt;/h2&gt;&lt;p&gt;忘掉数学课本里的向量定义，在这个语境下，&lt;strong&gt;向量就是一串数字，用来表示一个东西的特征&lt;/stro</summary>
      
    
    
    
    <category term="LLM" scheme="http://example.com/categories/LLM/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="向量数据库" scheme="http://example.com/tags/%E5%90%91%E9%87%8F%E6%95%B0%E6%8D%AE%E5%BA%93/"/>
    
    <category term="RAG" scheme="http://example.com/tags/RAG/"/>
    
    <category term="Embedding" scheme="http://example.com/tags/Embedding/"/>
    
  </entry>
  
  <entry>
    <title>论技能折旧-桶文</title>
    <link href="http://example.com/post/%E8%AE%BA%E6%8A%80%E8%83%BD%E6%8A%98%E6%97%A7-%E6%A1%B6%E6%96%87.html"/>
    <id>http://example.com/post/%E8%AE%BA%E6%8A%80%E8%83%BD%E6%8A%98%E6%97%A7-%E6%A1%B6%E6%96%87.html</id>
    <published>2026-07-13T12:00:00.000Z</published>
    <updated>2026-07-13T11:36:15.006Z</updated>
    
    <content type="html"><![CDATA[<p>国际清算银行（BIS，各国央行的央行）在年报里，把AI资本开支和历史上四次大泡沫放在一起做了比较。这件事本身比结论更重要——当最保守、最不需要流量的机构开始说话，说明账已经算到了某个位置。</p><p>紧接着，各路机构给出的分析大同小异：折旧被藏在了报表里；表外负债看不见；私募信贷不透明；债市已经悄悄给风险定价，股市还在创新高。有人给出三个情景的概率：震荡消化 40%–50%，<strong>尾部风险</strong> 15%–20%，乐观牛市 30%–40%。</p><p>我看这些材料的时候，脑子里冒出来的不是仓位，是另一件事。</p><p>2013年我进入芯片行业做物理设计。那几年，同一栋楼里，做互联网的同学起薪是我的两倍，年终奖是我的四倍。逢年过节，亲戚问我做什么，我说”芯片”，对方点点头，然后转头去问那个在电商公司做后端的表弟——“听说你们那儿股票发得挺多？”</p><p>十年后，风向完全反过来。芯片成了显学，应届生开口就要四十万，猎头一天发三条消息；而互联网大厂在裁员。</p><p>同一个人，同一套技能，什么都没变。变的是周期。</p><p>这篇文章不谈仓位。我想谈的是：<strong>一个孩子今天做的教育选择，会在七到十年后兑现。而七到十年，恰好是一个完整的产业周期。</strong>你在周期的哪个相位上做决定，几乎决定了你会拿到什么样的结果。</p><p>金融市场至少还有BIS这样的机构，会在最热闹的时候说出没人愿意听的实话。教育市场没有。教育市场里，只有分数线在上涨，只有”某某专业就业率百分之九十八”的招生简章，只有家长群里传来传去的截图。</p><hr><h2 id="一、BIS到底在说什么：四次泡沫，同一条路径"><a href="#一、BIS到底在说什么：四次泡沫，同一条路径" class="headerlink" title="一、BIS到底在说什么：四次泡沫，同一条路径"></a>一、BIS到底在说什么：四次泡沫，同一条路径</h2><p>先把材料摊开。BIS引用的四个历史案例，路径几乎一模一样：</p><p><strong>1830年代的运河狂热。</strong>蒸汽机是真突破，水路运煤成本骤降。于是贵族和鞋匠一起把积蓄投进运河股票，英美两地到处挖沟。然后货运的真实需求跟不上，很多运河修在没有货源的地方。几年后铁路出现，运河资产瞬间归零，几十家运河银行倒闭，引爆1839年的大萧条。</p><p><strong>1840年代的英国铁路狂热。</strong>斯蒂芬森的火车是真突破。议会几年内批了上千条铁路法案，资本疯狂铺轨。到1847年，市场发现大部分线路的客流远低于预期，铁路股暴跌八成以上，大批中产一夜破产。</p><p><strong>1920年代的电气化。</strong>爱迪生和特斯拉点亮的电网是真突破，工厂改用电机，收音机和洗衣机进入家庭。华尔街喊”新时代永不落幕”，公用事业巨头通过复杂的控股结构举债建电厂。1929年，产能远远超过了底层民众的实际消费能力。十月，黑色星期四。</p><p><strong>1990年代末的互联网与电信。</strong>浏览器是真突破。电信巨头豪赌”流量每几个月翻一番”，在全球海底和地下疯狂铺光纤。2001年发现，公众的上网需求根本用不了那么多带宽，高达85%的光纤是闲置的”暗光纤”。WorldCom破产，纳斯达克从高点到底部跌了77%，跌了两年半。</p><p>四次的剧本完全相同：</p><p>真技术突破 → 资本涌入 → 产能远超盈利能力 → 需求跟不上预期 → 资产减值 → 经济衰退。</p><p>而每一次，身处其中的人都坚持说：<strong>这次不一样。</strong></p><hr><h2 id="二、泡沫破了，技术还在——全篇最重要的一句话"><a href="#二、泡沫破了，技术还在——全篇最重要的一句话" class="headerlink" title="二、泡沫破了，技术还在——全篇最重要的一句话"></a>二、泡沫破了，技术还在——全篇最重要的一句话</h2><p>但请你把上面那四段再看一遍，看另外一件事：</p><p>运河后来还在用。<strong>铁路改变了人类文明。</strong>电气化是二十世纪的地基。互联网——你现在正用它读这篇文章。</p><p><strong>泡沫破的从来不是技术，是价格，是资本结构，是那些用六年折旧年限粉饰出来的利润。</strong></p><p>这是我要跟每一位家长说的第一件事，也是最要紧的一件事：</p><p>如果你从”AI是泡沫”推导出”别让孩子碰AI”，你就完全学错了这段历史。</p><p>2000年纳斯达克崩盘之后，美国计算机专业的新生人数断崖式下跌，一直跌到2007年前后见底。那批”在最冷的时候仍然选了CS”的年轻人，毕业时正好赶上iPhone、云计算和移动互联网的黄金十年。他们是那一代人里回报最高的一批。</p><p>而在2000年高点冲进去的那一批，很多人在毕业时遇到的是招聘冻结。</p><p><strong>同样的专业，入场相位差七年，人生走向完全不同。</strong></p><p>所以正确的问题从来不是”AI是不是泡沫”。正确的问题是：</p><p><strong>我的孩子，能不能造出一套无论泡沫涨还是破，都不会归零的能力结构？</strong></p><p>这就是”穿越周期”的意思。</p><hr><h2 id="三、周期有多长？用半导体这个”冷了十五年的行业”讲给你听"><a href="#三、周期有多长？用半导体这个”冷了十五年的行业”讲给你听" class="headerlink" title="三、周期有多长？用半导体这个”冷了十五年的行业”讲给你听"></a>三、周期有多长？用半导体这个”冷了十五年的行业”讲给你听</h2><p>我讲讲我自己的行业，因为这是我最熟、也最能拿出细节的那个。</p><p><strong>2008—2018，芯片是个没人要的行业。</strong></p><p>那十年，国内做集成电路的工程师，工资普遍比同龄的互联网工程师低30%到50%。硕士毕业进IC设计公司，起薪十几二十万，而去大厂做后端开发的同学能拿三十几万加期权。海外也一样：同样是斯坦福毕业，去Intel和去Google的薪资差得很明显。</p><p>行业里流传一句自嘲：”我们是传统制造业。”</p><p>那十年，芯片行业留人靠什么？靠”这行门槛高、稳定、不容易被裁”。听着像一句安慰话。很多人中途转行去了互联网，我不怪他们，那是理性选择。</p><p><strong>2019—2022，风向逆转。</strong></p><p>贸易摩擦、断供、缺芯潮、国产替代、然后是AI。资本像洪水一样进来。应届生薪资出现”倒挂”——新人比干了五年的老人拿得多。猎头开始一天打三个电话。芯片成了饭桌上最体面的答案。</p><p><strong>2023—2025，内部开始分化。</strong></p><p>成熟制程打价格战，一级市场融资收紧，一部分设计公司裁员；而AI相关的方向——先进封装、HBM、高速接口、算力芯片——依然抢人。</p><p><strong>这就是一个完整的周期，长度大约十五年。</strong>而且请注意：芯片的低谷，恰好是互联网的高光；芯片的高光，恰好是互联网的裁员季。两个行业的相位几乎是反的。</p><p>这不是芯片独有的。你可以自己列：</p><ul><li><strong>土木&#x2F;建筑</strong>：2005—2015是黄金年代，”铁公基”三个字养活了几代人。今天呢？</li><li><strong>金融</strong>：2010年代的顶级去处。今天降薪、限薪、缩编。</li><li><strong>生化环材</strong>：”四大天坑”这个词是2015年前后才被叫出来的。而在2000年代，生物被称为”二十一世纪的世纪”。</li><li><strong>临床医学</strong>：一直不算热，但也从没归零。</li><li><strong>石油工程</strong>：2014年油价崩盘，美国石油工程毕业生的就业率在两年内腰斩。</li></ul><p><strong>规律是：一个行业从”没人愿意去”到”分数线最高”，大约需要五到八年；从”分数线最高”到”劝退帖满天飞”，大约也需要五到八年。</strong></p><p>而一个孩子从高考填志愿到硕士毕业进入市场，是四到七年。</p><p><strong>这个滞后长度，几乎正好是周期的半个相位。</strong></p><p>也就是说——</p><p>你按今天的价格，买了一份七年后才交割的期货。而这个品种的周期，恰好是七年左右反一次。</p><p>这不是运气不好。这是结构性的。</p><hr><h2 id="四、为什么家庭永远在追涨杀跌"><a href="#四、为什么家庭永远在追涨杀跌" class="headerlink" title="四、为什么家庭永远在追涨杀跌"></a>四、为什么家庭永远在追涨杀跌</h2><p>金融材料里有一段我读了三遍：</p><p>“折旧成本延迟显示，表外负债看不见，私募信贷不透明。三层信息遮蔽，让当前的利润数据极具误导性。”</p><p>“FASB的新披露规则要到2027财年才生效。而2027、2028恰好是AI折旧压力最大的两年。等投资者能看清真实折旧成本时，风险已经释放完了。”</p><p><strong>信息永远在你能行动之前是模糊的，在你行动之后才清晰。</strong></p><p>这句话在教育里，比在金融里更成立。</p><p>家长手里能拿到的信息是什么？是<strong>过去五年谁赚钱</strong>。是亲戚家孩子去年拿了什么offer，是招生简章上”就业率98.7%”（统计口径是去年毕业生），是某个专业今年分数线又涨了20分。</p><p>而孩子要面对的是<strong>未来十年谁赚钱</strong>。</p><p>这中间隔着整整一个周期。</p><p>更麻烦的是，<strong>分数线本身就是估值</strong>。</p><p>一个专业的分数线暴涨，在金融语言里叫”估值倍数扩张”。它反映的是市场共识，而市场共识总是滞后于现金流的拐点。当一个专业的分数线冲到历史最高，通常意味着两件事同时发生：</p><ol><li>它过去几年的现金流（就业、薪资）确实很好；</li><li><strong>未来几年将有大量的同类供给涌入市场。</strong></li></ol><p>供给涌入的滞后期是四到七年。而这，正好是你孩子毕业的时间。</p><p>这就是”追涨杀跌”的完整机制。它不需要任何人愚蠢，它只需要每个人都理性地根据可得信息做决策。</p><p>所以，<strong>别再问”什么专业最有前途”。这个问题在结构上就无法被正确回答。</strong></p><p>要换一个问题。</p><hr><h2 id="五、GPU折旧六年还是三年——这场会计争论，其实是在讲你孩子的技能"><a href="#五、GPU折旧六年还是三年——这场会计争论，其实是在讲你孩子的技能" class="headerlink" title="五、GPU折旧六年还是三年——这场会计争论，其实是在讲你孩子的技能"></a>五、GPU折旧六年还是三年——这场会计争论，其实是在讲你孩子的技能</h2><p>材料里最有意思的一段，是关于折旧年限的争论。我把它复述一遍，因为它是这整篇文章的枢纽。</p><p>科技巨头在2023到2024年，几乎不约而同地把GPU的折旧年限从三到四年，改成了六年。这个时点，恰好是AI资本开支爆发的前夜。仅这一项调整，Meta每年就少计约29亿美元的折旧费用——<strong>利润凭空变好看了。</strong></p><p>反对者（包括《大空头》原型Michael Burry）的质问很简单：</p><p><strong>买显卡的公司用六年慢慢摊销成本，而卖显卡的英伟达每十二个月出一代新架构。这两件事不可能同时成立。</strong></p><p>支持者的辩护也有道理：2020年的A100，到2025年利用率还有六七成，确实还能干活，降级去做推理和简单任务就好了。</p><p>而美国会计准则（ASC 360）的规定是：<strong>折旧年限是”管理层的会计估计”，不是客观测量值。只要有合理依据，审计师一般接受。</strong>所以哪怕真实经济寿命远短于账面寿命，这也不构成会计违规。</p><p>现在，把这段话里的每一个名词，换成教育的名词。</p><p><strong>你孩子学的每一样东西，都有一个折旧年限。而这个年限，是你自己”估计”的——而且你几乎肯定估高了。</strong></p><p>我做一张表。这是我这十几年在工程一线，反复验证过的：</p><h3 id="技能折旧表"><a href="#技能折旧表" class="headerlink" title="技能折旧表"></a>技能折旧表</h3><table><thead><tr><th>折旧年限</th><th>内容</th><th>例子</th></tr></thead><tbody><tr><td><strong>1—3年（极速折旧）</strong></td><td>具体工具的操作、具体框架的API、当下热门软件的用法、某种应试技巧</td><td>某个EDA工具的命令行参数、某个前端框架、某个提示词模板、”三段式作文法”</td></tr><tr><td><strong>5—10年（中速折旧）</strong></td><td>某个行业的工程范式、特定的技术栈、行业人脉</td><td>一整套设计流程、某种芯片架构的经验</td></tr><tr><td><strong>20—40年（几乎不折旧）</strong></td><td>数学、物理直觉、英语、写作与结构化表达、统计思维、把模糊问题变成可求解问题的能力、与人协作的能力、自学的能力</td><td>——</td></tr></tbody></table><p>现在我要说一句可能会得罪很多人的话：</p><p><strong>绝大多数中国家庭，把80%以上的时间和金钱，投在了折旧最快的那一栏。</strong></p><p>刷题技巧、竞赛套路、少儿编程考级、某个热门工具的速成班、”AI提示词工程师”的三天课程——这些东西的经济寿命，短的三个月，长的三年。</p><p>而你在”几乎不折旧”的那一栏投了多少？</p><p>我讲一个自己的例子。我入行到现在，用过的EDA工具换了不知道多少个版本，命令行参数全变了，我以前写的脚本大半跑不起来了。我曾经引以为傲的”我熟悉某某工具的每一个坑”，今天一文不值。</p><p><strong>但有些东西一天都没折旧过：</strong></p><ul><li>图论。因为布线本质就是图论。</li><li>组合优化。因为布局本质就是组合优化。</li><li>概率与统计。因为良率、时序偏差、蒙特卡洛，全是概率。</li><li>英语。因为所有的一手文档、论文、开源代码注释，都是英语。</li><li>写作。因为一个方案能不能被采纳，一半取决于你能不能把它讲清楚。</li><li>以及最重要的：<strong>在没人教我的情况下，把一个陌生领域从零啃下来的能力。</strong></li></ul><p>这些东西，是我1998年到2008年之间，在一间没有空调的教室里、在一堆没人讲解的书里，一点一点长出来的。它们撑了我二十年，还会继续撑我二十年。</p><p>所以，<strong>教育的资产配置问题，本质上和投资的资产配置问题是同一个问题：你把钱押在了折旧年限多长的资产上？</strong></p><p>材料里说，AI巨头的折旧压力会在2027—2029年集中爆发，届时”所有风险一次性暴露，市场跌幅会超出多数人预期”。</p><p>一个人的技能折旧，也有集中爆发的时刻。它通常发生在35到45岁之间。那一刻，你会突然发现，你赖以生存的那套东西，市场已经不需要了。而你没有为此计提任何准备。</p><hr><h2 id="六、穿越周期的四种底层能力"><a href="#六、穿越周期的四种底层能力" class="headerlink" title="六、穿越周期的四种底层能力"></a>六、穿越周期的四种底层能力</h2><p>好，现在讲正题。</p><p>如果预测周期是不可能的（它确实不可能——BIS都只敢给三个情景加概率），那唯一的出路，是<strong>构造一个在所有情景下都不会破产的仓位</strong>。</p><p>对一个人来说，这个”仓位”由四种能力构成。</p><h3 id="能力一：把知识学成”底层”，而不是”设备”"><a href="#能力一：把知识学成”底层”，而不是”设备”" class="headerlink" title="能力一：把知识学成”底层”，而不是”设备”"></a>能力一：把知识学成”底层”，而不是”设备”</h3><p>上一节讲的就是这个，这里只补充方法。</p><p><strong>判断标准很简单：问一句”如果这个工具&#x2F;这个考试&#x2F;这个平台明天消失了，我还剩下什么？”</strong></p><ul><li>如果孩子学Python，学的是”怎么调用这个库”，那么库更新了，就归零。</li><li>如果学的是”怎么把一个问题拆成数据结构和算法”，那么换成任何语言，都还在。</li><li>如果孩子学英语，学的是”完形填空的四个选项怎么排除”，那么高考完就归零。</li><li>如果学的是”能读懂一篇没有中文版的原始文献”，那么这个能力会跟他一辈子，并且是他将来能不能全球流动的门票。</li><li>如果孩子学写作，学的是”总分总加名人名言”，那么归零。</li><li>如果学的是”如何把一个复杂的想法，压缩成一个人愿意读完的一千字”，那么这是他一生中最值钱的技能之一。</li></ul><p><strong>具体到日常，我的建议只有一条：宁可慢，不要浅。</strong></p><p>一本数学书，认认真真啃完一章，比刷十套卷子有用。一个项目，从零做到能跑起来给别人用，比考十个证有用。</p><p>因为<strong>慢变量才是不折旧的资产。</strong></p><h3 id="能力二：元能力——三十岁还能自学一门陌生学科"><a href="#能力二：元能力——三十岁还能自学一门陌生学科" class="headerlink" title="能力二：元能力——三十岁还能自学一门陌生学科"></a>能力二：元能力——三十岁还能自学一门陌生学科</h3><p>这是四种能力里最关键的一种。</p><p>因为周期的本质是：<strong>你这辈子几乎一定要换一次赛道。</strong>不是因为你不够努力，是因为你的赛道在某个时刻会被折旧掉。</p><p>我身边转型成功的人，和转型失败的人，差别不在智商，不在勤奋，甚至不在运气。</p><p>差别在于：<strong>三十五岁的时候，他还有没有”在没有老师、没有教材、没有作业、没有考试的情况下，把一门陌生学科从零学到能用”的肌肉。</strong></p><p>这块肌肉，是在十二到二十二岁之间练出来的。过了这个年纪，能不能重新长出来？能，但代价大得多。</p><p>那么，怎么练？</p><p><strong>看四个问题，你的孩子有没有做到过：</strong></p><ol><li><strong>有没有独立读完过一本没有人给他讲解的书？</strong></li></ol><p>（不是老师带读，不是辅导班拆解，就是他自己一页一页啃下来。）</p><ol start="2"><li><strong>有没有在没有人布置作业、没有人打分的情况下，把一个项目做完？</strong></li></ol><p>（做完的意思是能跑、能用、有人看，不是做了一半放着。）</p><ol start="3"><li><strong>有没有读懂过别人写的东西？</strong></li></ol><p>（比如GitHub上一份陌生的代码；比如一篇英文的原始论文；比如一份说明书。）</p><ol start="4"><li><strong>有没有在卡住之后，靠自己找到出路？</strong></li></ol><p>（而不是马上问家长、问老师、问AI。）</p><p>如果四个都没有，那么无论他考多少分，进什么学校，他都只是一台<strong>只能在”有老师、有教材、有作业、有考试”这四件套下运行的机器</strong>。一旦脱离学校，学习能力归零。</p><p><strong>这是中国教育最大的一笔隐性负债。它不出现在任何一张成绩单上，但它会在三十五岁那年，一次性爆发。</strong></p><p>具体训练方法（都是我用过的）：</p><ul><li><strong>项目驱动</strong>：让孩子挑一个他真的想做的东西（一个网站、一个小游戏、一个数据分析、修好一台旧电脑），然后放手。他会被逼着去学他不会的东西——这才是真的学习。</li><li><strong>公开课</strong>：MIT OCW、Stanford、Yale的公开课全部免费。让孩子跟完一门，用英文。这一件事的价值，超过任何一个暑期班。</li><li><strong>GitHub</strong>：不是让他学编程，是让他体验”世界上有一群素不相识的人，在协作做一件复杂的事，而我可以加入”。这个体验会重塑他对”学习”这两个字的理解。</li><li><strong>复盘</strong>：每做完一件事，逼他写一篇”我是怎么学会的”。写不出来，说明没真会。</li></ul><h3 id="能力三：机会捕获——现金、弱关系、可交易的作品"><a href="#能力三：机会捕获——现金、弱关系、可交易的作品" class="headerlink" title="能力三：机会捕获——现金、弱关系、可交易的作品"></a>能力三：机会捕获——现金、弱关系、可交易的作品</h3><p>材料里有一句我很喜欢的话，是讲尾部风险情景的：</p><p>“现金为王。不要因为利率低就放弃流动性。”</p><p>这句话在人生里同样成立，而且含义更深。</p><p><strong>周期里的钱不是均匀分配的。</strong>一个人一生的收入跃迁，往往集中在极少数几个窗口——“行业上行 × 你恰好跳了槽”的那几个瞬间。</p><p>我见过太多人，能力完全一样，因为一个是2021年跳到了AI芯片公司，一个是2019年觉得”再等等看”，十年后的收入差了两三倍。</p><p>但”抓住机会”不是运气。它由三件事构成，<strong>这三件事都是可训练的</strong>：</p><p><strong>1. 保持”可交易性”。</strong></p><p>你必须有对外可见的产出。论文、GitHub、博客、一个公开的项目、一份作品集。</p><p>一个只有”在公司内部很受认可”的人，是一个非流动资产。他的价值只在一个买家那里存在。而一个在外部有可见产出的人，是一个随时可以定价、可以交易的资产。</p><p><strong>教育层面的含义：让孩子从小有”对外交付”的经验，而不是只有”对内交作业”的经验。</strong>交作业是给一个人看的（老师）。对外交付是给一群陌生人看的，他们不认识你，不会给你面子，用不用你的东西只看它好不好。这两种经验塑造出的心智，天差地别。</p><p><strong>2. 保持弱关系网络。</strong></p><p>社会学里有个经典发现（Granovetter，1973）：人们找到新工作的机会，大部分来自”弱关系”——不常联系的人，而不是天天在一起的密友。因为密友的信息和你高度重合，而弱关系带来的是<strong>你的信息盲区之外的东西</strong>。</p><p>所以，那些看起来”没用”的社交——参加一个开源社区、去一个跨行业的会议、和一个不同专业的人喝咖啡——才是机会的真正来源。</p><p><strong>3. 保持现金。</strong></p><p>一个家庭要有十二个月的现金储备。</p><p>这不是保守，这是<strong>期权</strong>。</p><p>现金的意义，不在于你花掉它，而在于<strong>你拥有说”不”的权利</strong>。有现金的人，可以拒绝一个糟糕的offer，可以在裁员时不慌，可以在行业最冷的时候用低价买入自己的时间（去读书、去转行、去等一个真正的机会）。没有现金的人，只能接受市场在最不利的时候给他的那个价格。</p><p><strong>期权的价值在于持有，不在于行使。</strong></p><h3 id="能力四：全球流动性"><a href="#能力四：全球流动性" class="headerlink" title="能力四：全球流动性"></a>能力四：全球流动性</h3><p>这是最后一种，也是最被低估的一种。</p><p>先讲一个事实：<strong>周期是有地理的。</strong></p><p>同一时刻，不同国家处在周期的不同相位。AI资本开支在美国；半导体设备在日本和荷兰；能源和工业在欧洲；封测在东南亚；算力资本在中东。你在一个国家看到的”寒冬”，可能是另一个国家的”春天”。</p><p>一个<strong>只能在一个劳动力市场里出售自己的人，被迫承受那个市场的完整周期波动</strong>。这在投资上，叫单一资产集中持仓。</p><p>而一个能在多个市场出售自己的人，本质上把自己从”单一股票”变成了”全球配置”。</p><p>材料里说：”用ETF覆盖整个AI生态，比集中押注个股更稳。”</p><p>人生也是一样。但请注意——<strong>个人的”分散”不是什么都学一点（那叫平庸），而是”一项足够深的技能 × 多个可交付的市场”。</strong>深度不能牺牲，能变的是市场。</p><p>那么，**”全球流动能力”具体是什么？它不是一句口号，它由五个非常具体的东西构成：**</p><p><strong>1. 语言。</strong></p><p>英语不是一门学科，是<strong>基础设施</strong>。它和自来水、电一样，是你运行其他一切的前提。一个不能读英文原始文献、不能开英文会议、不能用英文写一封让人愿意回复的邮件的人，全球市场对他是关闭的。</p><p>第二外语（德语、西班牙语、葡语）是加分项，取决于你要去哪里。但英语没有商量余地。</p><p><strong>2. 可携带的资质。</strong></p><p>学位是国际货币，但<strong>只有一部分学位是硬通货</strong>：STEM、工程、医护、部分会计与精算认证。而技能证明（GitHub、论文、作品集、开源贡献）比学历更”可携带”——因为它不需要任何一个国家的教育部承认。</p><p><strong>3. 法律通道。</strong></p><p>签证、居留、税务居民身份，这本身是一门学问，而且是一门可以学的学问。欧盟蓝卡的门槛是什么；哪些国家有技术移民通道；留学签怎么转工签；哪些身份可以带家属。</p><p><strong>这些东西不需要等到三十岁才开始了解。</strong>我认识的、真正跨出去的人，几乎都是在二十出头就开始弄清楚规则的。</p><p><strong>4. 金融通道。</strong></p><p>跨境账户、汇款路径、税务申报、CRS。等到需要的时候才开始学，一定会付出高昂的学费。这些知识枯燥、琐碎、不性感，但它们是流动能力的下水道系统——平时看不见，堵了就寸步难行。</p><p><strong>5. 心理。</strong></p><p>这是最被低估的一项：<strong>能忍受孤独，能从零开始重建社会关系，能接受自己在一个新地方”什么都不是”。</strong></p><p>我见过很多能力极强的人，倒在这一关。他们能通过任何面试，但受不了在一个陌生城市的第一个冬天。</p><hr><h2 id="七、迁徙带来视野，流动塑造认知"><a href="#七、迁徙带来视野，流动塑造认知" class="headerlink" title="七、迁徙带来视野，流动塑造认知"></a>七、迁徙带来视野，流动塑造认知</h2><p><strong>回看人类历史，那些真正改变世界的人，很多都不是停留在一个地方成长起来的，而是在不断迁徙、碰撞和跨越中形成自己的思想。</strong></p><ul><li><strong>亚里士多德</strong>：从马其顿来到雅典，在不同城邦文明的碰撞中，建立了影响西方两千年的哲学体系。</li><li><strong>达·芬奇</strong>：从佛罗伦萨到米兰，再到法国，在艺术、科学与工程之间不断探索，成为文艺复兴的象征。</li><li><strong>哥伦布</strong>：跨越大西洋寻找未知的世界，改变了人类对地理和世界连接方式的理解。</li><li><strong>达尔文</strong>：乘”小猎犬号”五年环球航行，观察不同大陆的生命形态，最终形成进化论。</li><li><strong>爱因斯坦</strong>：从德国到瑞士，再到美国，在不同文化和学术环境中完成思想突破。</li><li><strong>福泽谕吉</strong>：出生于封闭的武士社会，三次远渡欧美，亲眼观察西方的教育、工业、政治和社会制度，提出”脱亚入欧”，推动日本从传统社会走向现代国家。</li><li><strong>尼古拉·特斯拉</strong>：从塞尔维亚到欧洲，又到美国，在新的工业环境中推动交流电与电气时代。</li><li><strong>乔布斯</strong>：年轻时前往印度寻找精神答案，又在美国的科技与艺术环境中重新定义了计算机与消费电子。</li><li><strong>马斯克</strong>：从南非到加拿大，再到美国，在不同国家和产业之间穿梭。</li></ul><p><strong>迁徙改变的不只是一个人的位置，更是一个人的认知坐标。</strong></p><p>一个人接触的世界越大，他看到的问题越复杂，思考的维度也越高。<strong>真正的成长，往往发生在离开熟悉环境之后。</strong></p><p>但我必须诚实地补上另一半，因为这篇文章不是鸡汤：</p><p><strong>迁徙是有代价的。</strong>语言的隔阂，身份的悬空，社会关系的清零，父母在另一个时区老去。这些成本是真实的，而且往往在你已经走出去之后才开始显现。</p><p>所以我说的从来不是”每个人都该走”。</p><p><strong>我说的是：拥有走的能力，和必须走，是两件事。</strong></p><p><strong>能力本身就改变了你的谈判地位。</strong></p><p>就像现金储备不是为了花掉，而是为了让你不必接受任何一个糟糕的offer——<strong>流动能力不是为了行使，而是为了让你在任何一个市场里，都不是一个别无选择的人。</strong></p><p>一个知道自己随时可以走的人，和一个知道自己走不了的人，即使一辈子待在同一个城市，他们的人生也是完全不同的。</p><p>前者是持有期权的人。后者是被锁仓的人。</p><hr><h2 id="八、把三个市场情景，翻译成三种家庭策略"><a href="#八、把三个市场情景，翻译成三种家庭策略" class="headerlink" title="八、把三个市场情景，翻译成三种家庭策略"></a>八、把三个市场情景，翻译成三种家庭策略</h2><p>现在回到那份材料给出的三个情景，把它们逐个翻译成教育语言。</p><h3 id="情景一：震荡消化（概率-40-–50-，基准情景）"><a href="#情景一：震荡消化（概率-40-–50-，基准情景）" class="headerlink" title="情景一：震荡消化（概率 40%–50%，基准情景）"></a>情景一：震荡消化（概率 40%–50%，基准情景）</h3><p><strong>市场版本</strong>：2027—2028折旧压力爆发，巨头净利下滑，AI股估值收缩，小幅回撤，然后真实收入慢慢填上投资缺口。整体震荡消化，不会全面崩盘。纯泡沫、没有业绩的标的继续挤水分。策略是<strong>换仓</strong>——从”花钱最多的公司”换到”变现闭环清晰的公司”。</p><p><strong>家庭版本</strong>：AI不会消失，但”沾AI就涨”的时代结束了。</p><ul><li><strong>不要All in “AI专业”，但更不要因为”泡沫”就躲开技术。</strong></li><li>换仓的教育含义是：从”名字最像风口的专业”，换到”底层最可迁移的专业”。<strong>数学、物理、EE、CS、统计</strong>——这些是”变现闭环清晰”的资产，因为无论AI涨还是跌，它们都被需要。</li><li>而各种”×× 人工智能学院”、”元宇宙工程”、”大数据管理与应用”这类为风口而设的新专业，就是那些”花钱最多、变现路径模糊”的标的。它们在扩招最快的那一刻，估值最高。</li></ul><h3 id="情景二：尾部风险（概率-15-–20-）"><a href="#情景二：尾部风险（概率-15-–20-）" class="headerlink" title="情景二：尾部风险（概率 15%–20%）"></a>情景二：尾部风险（概率 15%–20%）</h3><p><strong>市场版本</strong>：融资链条断裂，信用利差飙升，私募信贷流动性危机，欧美温和衰退。策略是<strong>现金为王，不要抄底</strong>——“第一次下跌不是最后一次下跌”，2000年纳斯达克跌了77%，跌了两年半，中间每一次反弹都有人喊”底来了”。</p><p><strong>家庭版本</strong>：<strong>不要在高点做不可逆的重仓押注。</strong></p><p>什么叫”不可逆的重仓押注”？</p><ul><li>为了一个热门专业，让孩子复读两年。</li><li>举债两百万送孩子去读一个就业前景完全依赖单一行业的项目。</li><li>卖掉房子，把全部家当押在一次留学上。</li><li>让孩子放弃所有通识，只学一项当下最值钱的窄技能。</li></ul><p>这些行为的共同点是：<strong>加了杠杆，买了单一资产，而且不可逆。</strong></p><p>如果尾部情景发生，这样的家庭会被彻底击穿。而<strong>教育投资和其他投资的区别在于：它没有止损线。你不能在孩子二十五岁的时候，把他”平仓”重来。</strong></p><p>所以家庭的教育资产负债表，也应该有一条铁律：<strong>永远不要为教育加杠杆到”输不起”的程度。</strong></p><h3 id="情景三：乐观牛市（概率-30-–40-）"><a href="#情景三：乐观牛市（概率-30-–40-）" class="headerlink" title="情景三：乐观牛市（概率 30%–40%）"></a>情景三：乐观牛市（概率 30%–40%）</h3><p><strong>市场版本</strong>：2026—2027 AI Agent大规模落地，真实需求爆发，赚钱速度跑赢折旧。策略是<strong>持股，但要熬得住估值先杀一轮</strong>。而且——<strong>真正的机会在应用层，不在基础设施层</strong>。真正用AI把成本砍一半、效率翻一倍的公司，比卖算力的公司估值逻辑更清晰。医疗、制造、金融科技是值得深挖的方向。</p><p><strong>家庭版本</strong>：这是我个人认为最值得押注的方向。</p><p>如果AI是真的（我相信它是），那么最大的红利<strong>不在”做AI的人”身上，在”用AI重做某个真实行业的人”身上</strong>。</p><p>翻译成孩子的选择：</p><p><strong>不要培养”AI专业的人”。要培养”AI × 一个真实领域”的人。</strong></p><p>AI + 医疗。AI + 制造。AI + 能源。AI + 法律。AI + 教育。AI + 农业。</p><p>因为纯AI的技能会被商品化——大模型会越来越便宜、越来越好用，”会调模型”这件事的折旧年限，可能只有两年。而**”深刻理解一个真实行业的痛点，并且知道怎么用AI去解决它”**，这件事的折旧年限，是二十年。</p><h3 id="最重要的一步：求三个情景的交集"><a href="#最重要的一步：求三个情景的交集" class="headerlink" title="最重要的一步：求三个情景的交集"></a>最重要的一步：求三个情景的交集</h3><p>现在，把三个情景的策略并排放在一起，找它们的<strong>交集</strong>。</p><p>因为我们不知道会发生哪一个。BIS不知道，PIMCO不知道，你也不知道。</p><p><strong>所以你唯一该做的，是那些在三个情景下都成立的事。</strong></p><p>交集是什么？</p><ol><li><strong>投资于不折旧的底层能力</strong>（数学、英语、写作、自学能力）——三个情景下都成立。</li><li><strong>保持现金和期权，不做不可逆的重仓押注</strong>——牛市里损失一点收益，尾部风险里活下来。</li><li><strong>保持职业和地理的流动性</strong>——无论哪个市场热，你都能过去。</li><li><strong>用”深度技能 × 真实领域”来构造自己</strong>，而不是押注某个赛道的名字。</li></ol><p><strong>这就是”穿越周期的人”的完整定义。</strong></p><p>他不预测周期。他构造了一个无论周期怎么走，都不会被清盘的仓位。</p><hr><h2 id="九、按年龄的具体清单"><a href="#九、按年龄的具体清单" class="headerlink" title="九、按年龄的具体清单"></a>九、按年龄的具体清单</h2><p>讲了这么多，给一份能落地的东西。</p><p><strong>小学（6—12岁）</strong></p><ul><li>数学的”真理解”——能讲清楚为什么，而不是算得快。</li><li>大量的英语听说输入（不是背单词，是听懂和敢说）。</li><li>大量的阅读，中英文都要。</li><li>一个需要动手的爱好：乐高、拆装、乐器、木工，什么都行。</li><li><strong>不要报的</strong>：少儿编程考级、机器人比赛速成班、任何以”证书”为目标的班。这些是折旧最快的资产。</li></ul><p><strong>初中（12—15岁）</strong></p><ul><li>开始真正的英语原版阅读（不是分级读物，是他真想读的书）。</li><li>开始结构化写作训练——不是作文模板，是”把一个想法讲清楚”。</li><li>数学竞赛可以做，但目的是”体验被难住然后自己走出来”，不是拿奖。</li><li><strong>第一次独立完成一个完整项目</strong>：做一个网站、写一个小游戏、把家里坏掉的东西修好、做一次数据分析。</li></ul><p><strong>高中（15—18岁）</strong></p><ul><li>高考、AP、IB——都只是通道，不是目的。别把通道当成人生。</li><li>一定要有<strong>一个他独立完成的东西</strong>，可以拿给陌生人看的东西。</li><li>开始接触世界的地理与制度：不同国家怎么运转，签证是什么，为什么有的国家富有的国家穷。<strong>这是流动能力的种子。</strong></li><li>英语要达到”能读专业文献”的水平。这个门槛，越早过越好。</li></ul><p><strong>大学</strong></p><ul><li><strong>专业选择的唯一原则：选”底层可迁移”的，不选”名字最像风口”的。</strong></li><li>做项目、做开源、做实习、争取交换。</li><li><strong>本科四年里至少有一次真正离开家乡的经历。</strong>换一个城市，换一个国家，都行。这一次离开，会重塑他的认知坐标。</li><li>开始建立弱关系网络。</li></ul><p><strong>工作头五年</strong></p><ul><li>不要因为公司大就留下。</li><li><strong>每两到三年问一次：我的技能，在另一个市场里值多少钱？</strong>如果答不上来，说明你已经变成了非流动资产。</li><li>保持外部可见的产出。</li></ul><p><strong>最后，关于父母自己</strong></p><p>你也在周期里。</p><p>如果你四十岁不再学新东西，那么<strong>你就是那块折旧完的GPU</strong>——账面上还有六年寿命，实际上市场已经不需要你了。</p><p>而且我要说一句可能不太好听的话：<strong>孩子不会照你说的做，他会照你做的做。</strong></p><p>一个从不读书的家长，逼孩子读书，是没用的。一个自己二十年不换赛道、不学新东西、不敢离开舒适区的家长，跟孩子讲”要有勇气”，是没用的。</p><p><strong>你自己就是那个示范。你能不能穿越周期，孩子在旁边看着。</strong></p><hr><h2 id="十、结尾"><a href="#十、结尾" class="headerlink" title="十、结尾"></a>十、结尾</h2><p>BIS这份报告最让我尊敬的地方，不是它的结论，是它的姿态：<strong>在市场最繁荣的时候，说出没人愿意面对的实话。</strong></p><p>教育里最需要的实话，是这几句：</p><p><strong>没有任何一个专业，能保证你四十年不失业。</strong></p><p><strong>没有任何一个国家，能保证四十年不衰退。</strong></p><p><strong>没有任何一个技能，能保证四十年不折旧。</strong></p><p>能保证的只有三件事：<strong>你的学习能力，你的流动性，你的心理韧性。</strong></p><p>方向对了只是一张门票。你拿到的是哪一张，才决定了你能走多远。</p><p>而我们能给孩子的，从来不是一个赛道，不是一个热门专业，不是一张名校的录取通知书。</p><p><strong>是一张能在任何周期、任何市场、任何国家都通用的通行证。</strong></p><p>它的名字叫：<strong>能自己学、能自己走、能自己活。</strong></p>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;国际清算银行（BIS，各国央行的央行）在年报里，把AI资本开支和历史上四次大泡沫放在一起做了比较。这件事本身比结论更重要——当最保守、最不需要流量的机构开始说话，说明账已经算到了某个位置。&lt;/p&gt;
&lt;p&gt;紧接着，各路机构给出的分析大同小异：折旧被藏在了报表里；表外负债看不见</summary>
      
    
    
    
    <category term="随笔" scheme="http://example.com/categories/%E9%9A%8F%E7%AC%94/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="教育" scheme="http://example.com/tags/%E6%95%99%E8%82%B2/"/>
    
    <category term="思考" scheme="http://example.com/tags/%E6%80%9D%E8%80%83/"/>
    
    <category term="周期" scheme="http://example.com/tags/%E5%91%A8%E6%9C%9F/"/>
    
  </entry>
  
  <entry>
    <title>用机器学习视角看教育的过拟合之伤-桶文</title>
    <link href="http://example.com/post/%E7%94%A8%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%A7%86%E8%A7%92%E7%9C%8B%E6%95%99%E8%82%B2%E7%9A%84%E8%BF%87%E6%8B%9F%E5%90%88%E4%B9%8B%E4%BC%A4.html"/>
    <id>http://example.com/post/%E7%94%A8%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%A7%86%E8%A7%92%E7%9C%8B%E6%95%99%E8%82%B2%E7%9A%84%E8%BF%87%E6%8B%9F%E5%90%88%E4%B9%8B%E4%BC%A4.html</id>
    <published>2026-07-13T08:00:00.000Z</published>
    <updated>2026-07-13T08:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="张锡峰们的迷局"><a href="#张锡峰们的迷局" class="headerlink" title="张锡峰们的迷局"></a>张锡峰们的迷局</h2><p>很难想象，在同一个人群里，「读书无用论」和「读书决定一切」这两种水火不容的论调竟然能同时存在。更吊诡的是，它们常常前后脚住进同一个人身上：年少时信「读书决定一切」，毕业那天现实反手一巴掌，逼他改信「读书无用」。</p><p>张锡峰就是这样一个人。去年从衡水中学毕业，高考 674 分上浙江大学，已经是领先很多人的学霸了，采访中却「眼里没有了光」。当初那个号称要到大城市「拱白菜」的土猪，如今同样面临毕业和就业的迷局。</p><p>两个观点哪个对？也许都不完全对。重要的不是高考，甚至不是知识，<strong>重要的是经济，更重要的是分配</strong>。</p><h2 id="知识红利的真相"><a href="#知识红利的真相" class="headerlink" title="知识红利的真相"></a>知识红利的真相</h2><p>读书之所以看起来非常重要，其实不是读书重要，而是过去几十年产业发展需要大量高学历岗位，这才让学历红利得以出现。</p><p>追根溯源，1956 年马尔科姆·麦克莱恩发明了集装箱，全球化席卷世界，中国分到了第二大块蛋糕。将近三十年的高速发展释放出大量高薪岗位，迫切需要海量受过高等教育的劳动力——<strong>高考红利由此而来</strong>。</p><p>很多人只看到高考的分层神话，才有了对高考的崇拜。殊不知，这件事从来没有「天经地义」过。时代变了。</p><h2 id="分布漂移：世界变了，模型没变"><a href="#分布漂移：世界变了，模型没变" class="headerlink" title="分布漂移：世界变了，模型没变"></a>分布漂移：世界变了，模型没变</h2><p>时代怎么变的？用机器学习的一个词说清楚：<strong>分布漂移（Distribution Shift）</strong>。</p><p>那三十年之所以是知识红利的黄金时代，是因为<strong>训练分布和考试分布高度吻合</strong>——你在学校里学的东西，走出校门社会真的照着这个排序给你分配岗位和收入。训练即考试，学历即通行证。</p><p>但现实世界是非平稳的。你今天训练的分布，和明天要考的分布，可能根本不是一回事。一个模型哪怕在旧分布上拟合得再完美，分布一漂，它立刻就废——<strong>因为它拟合的是一个已经不存在的世界</strong>。</p><p>张锡峰打破头也想不通自己做错了什么。答案就这么冷酷：<strong>他什么都没做错，他只是被精心训练在了一个已经漂走的分布上。</strong></p><h2 id="过拟合：训练集上的神，测试集上的废物"><a href="#过拟合：训练集上的神，测试集上的废物" class="headerlink" title="过拟合：训练集上的神，测试集上的废物"></a>过拟合：训练集上的神，测试集上的废物</h2><p>这就是教育最大的伤害：<strong>局部帕累托最优造成的过拟合</strong>。</p><h3 id="什么是过拟合？"><a href="#什么是过拟合？" class="headerlink" title="什么是过拟合？"></a>什么是过拟合？</h3><p>教一个模型认猫，给它一万张猫的照片。它慢慢学习，错误率从 30% 降到 1% 再降到 0——每一张都认得，一张都不错。外行拍手叫好：完美满分。</p><p>但训练过模型的人看到「训练集零失误」会后背发凉。因为真正要考的是外面世界无穷无尽的猫。拿一张全新的照片给它，它可能把猫认成狗。</p><p><strong>它在见过的题上是神，在没见过的题上是废物。</strong></p><p>机理并不玄：模型如果见过的样本太窄、训练太狠，它不会学「猫之所以为猫」的抽象规律，而是偷懒把照片死记硬背下来，连角落里的花、地毯花纹、打歪的光都一起背进去。这些跟「猫」毫无关系的东西叫噪声。</p><p><strong>过拟合的模型，记住的不是规律，是答案。</strong></p><h3 id="教育中的过拟合"><a href="#教育中的过拟合" class="headerlink" title="教育中的过拟合"></a>教育中的过拟合</h3><p>把「模型」换成「孩子」，把「训练集」换成「考纲和五年高考三年模拟」，把「外面世界的猫」换成「他要过一辈子的真实社会」——你就明白衡水中学们在做一件多么危险的事。</p><p>它们把孩子在一个极窄的分布上（一套考纲、几门学科、一种出题范式）反复高强度训练，直到错误率接近于零。一个从那里出来的孩子，在「高考」这个训练集上，几乎是零失误的完美模型。</p><p>然后他毕业了。真实的工作、需要经营的关系、没有标准答案的人生——<strong>他一脸茫然</strong>。</p><p>张锡峰 674 分上浙大，是一台训练得极其精良的模型。他眼里的光为什么灭了？不是因为他不够优秀，<strong>恰恰因为他太精良了，精良到只在那一个分布上精良</strong>。</p><h2 id="古德哈特定律：当指标成为目标"><a href="#古德哈特定律：当指标成为目标" class="headerlink" title="古德哈特定律：当指标成为目标"></a>古德哈特定律：当指标成为目标</h2><p>功名是代理，含权量才是真目标；分数是代理，「过好一生的能力」才是真目标。</p><p>这里藏着一条所有做优化的人都畏惧的定律——<strong>古德哈特定律（Goodhart’s Law）</strong>：</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>当一个指标本身成了目标，它就不再是个好指标。</p></blockquote><p>你越是为分数而分数，分数和它本该代表的东西——真实的能力、真实的理解、真实的成长——之间的联系，就一根一根地断掉。</p><p>《红楼梦》里曹家只是五品的江宁织造，却拥有织机三万多台、工人五万左右，年产值占大清财政三分之一，还能密折奏事。五品官的含权量，压过一堆进士。</p><p><strong>科举之外，本来就有数不清的恩荫。</strong> 一块蛋糕被人人盯着，它的价值即使很高，也已经没多少价值了——因为任何一个能踩中红利的人，都是万里挑一。</p><h2 id="梯度下降的陷阱：局部最优"><a href="#梯度下降的陷阱：局部最优" class="headerlink" title="梯度下降的陷阱：局部最优"></a>梯度下降的陷阱：局部最优</h2><p>优化靠梯度下降：站在山谷里，感觉脚下往哪边倾斜，朝最陡的下坡迈步，指望这样能到最低点。</p><p>这个方法有个致命软肋：<strong>它是局部的、短视的，极容易走进局部最优</strong>。一个小坑洼，四周一圈都是上坡，梯度告诉你「你到最低点了」，你停下来。可翻过旁边那道山梁，外面才是真正深广的大峡谷。</p><p>教育里的局部最优长得一模一样。整个系统给每个孩子一个极清晰的梯度：分数高一点 → 好学校 → 好专业 → 好工作 → 好人生。这梯度太清晰了，清晰到没人会怀疑它。</p><p>于是所有人低着头，一步步走进一个又深又窄的坑。孩子在坑里被优化得越来越好，代价是越往下四周的坡越陡，越出不来。</p><p><strong>「小镇做题家」这个词之所以刺痛人，就在这里。</strong> 它描述的从来不是笨，恰恰相反，是一个被局部优化到极致的、非常精良的模型——他把做题拟合到了完美，可这座山头海拔其实很低。</p><h2 id="降维的代价：局部帕累托最优"><a href="#降维的代价：局部帕累托最优" class="headerlink" title="降维的代价：局部帕累托最优"></a>降维的代价：局部帕累托最优</h2><p>一个真实的人是高维的：健康、体魄、好奇心、审美、情绪稳定、和人建立联结的能力、面对失败的韧性……每一个都是过好一生的支柱。</p><p>高考做了什么？它拿一个投影矩阵，把这个几十维的人狠狠压扁，投影到一根轴上——<strong>总分，一个数</strong>。</p><p>两个总分都是 650 的孩子，在分数轴上是同一个点，可在真实的高维空间里，可能是天南地北的两个人。</p><p><strong>帕累托最优讲的是取舍：</strong> 多个目标之间，改善一个必然牺牲另一个。我们的教育把「分数」这一个目标逼到了帕累托前沿最极端的墙角，换来分数轴上那个漂亮读数，代价是健康、好奇心、韧性、关系的全面塌方。</p><p>而且——这是最要命的一点——它逼到的那个角，还只是<strong>分布漂移之前那个旧世界里的、局部的角</strong>。</p><p>局部帕累托最优 + 过拟合 + 分布漂移，三样凑齐，就是一个孩子能被教育伤害到的最完整形态。</p><h2 id="伤害的三种临床表现"><a href="#伤害的三种临床表现" class="headerlink" title="伤害的三种临床表现"></a>伤害的三种临床表现</h2><h3 id="1-空心病"><a href="#1-空心病" class="headerlink" title="1. 空心病"></a>1. 空心病</h3><p>北大有位教授提过这个词：太多考进来的第一名，成绩顶尖，履历漂亮，却觉得人生没有意义。</p><p>一个被优化了十八年、只为了拟合「分数」这一个目标的孩子，当这个目标在考上大学那一刻突然消失，他整个人的损失函数就空了。他这辈子从没被允许问过「我到底想要什么」。</p><p><strong>张锡峰「眼里没有了光」，说的就是这个。</strong> 那束光本该是他自己的内在梯度，可十八年里他所有的驱动都被外包给了排名和分数。奖励一停，人就熄了。</p><h3 id="2-一撤脚手架就崩塌"><a href="#2-一撤脚手架就崩塌" class="headerlink" title="2. 一撤脚手架就崩塌"></a>2. 一撤脚手架就崩塌</h3><p>在有明确规则、有标准答案的环境里是学霸；一旦放进没有大纲、没有标准答案的真实世界，就瞬间瘫痪。</p><p>不是能力不够，是他被训出的那套能力高度依赖于「有一个清晰的、外部给定的损失函数」这个前提。<strong>前提一撤，模型就失灵。</strong></p><h3 id="3-好奇心的死亡"><a href="#3-好奇心的死亡" class="headerlink" title="3. 好奇心的死亡"></a>3. 好奇心的死亡</h3><p>一个孩子最宝贵的东西，是他那台自带的探索引擎——会因为一个问题睡不着觉，会为了搞懂一件没用的事花掉一下午。</p><p>应试教育做的，恰恰是<strong>系统性地关掉这台引擎</strong>。每一次「这个不考」，都是给探索引擎断一次电。断得多了，引擎就再也发动不起来。</p><p>等他终于自由了，却发现自己已经不想学任何东西了——因为学习这件事，在他的神经里早就跟「痛苦」「被迫」「为了分数」死死绑在了一起。</p><p><strong>这是所有伤害里最深的一种，因为它损伤的是这个人一辈子自我更新的能力。</strong></p><h2 id="解药：机器学习的五条武器"><a href="#解药：机器学习的五条武器" class="headerlink" title="解药：机器学习的五条武器"></a>解药：机器学习的五条武器</h2><p>对付过拟合，机器学习这几十年攒了一整套成熟的武器。每一个翻过来，都是一条育儿原则。</p><h3 id="武器一：早停（Early-Stopping）"><a href="#武器一：早停（Early-Stopping）" class="headerlink" title="武器一：早停（Early Stopping）"></a>武器一：早停（Early Stopping）</h3><p>训练不要训到底。模型训练久了有个转折点，在那之前它在学真正的规律，泛化能力在涨；过了那个点，它开始死记硬背噪声。</p><p><strong>翻译成育儿：</strong> 不要把孩子往极限里逼。当一个孩子睡眠被剥夺、对学习只剩厌恶时，也许还能靠加压再多榨出几分，但他的泛化能力——好奇心、韧性、自我更新的引擎——已经开始不可逆地下跌。</p><p>守住那条线：守住睡眠，守住身体，守住他对学习还没彻底熄灭的那点兴趣。</p><h3 id="武器二：随机失活与数据增强（Dropout-amp-Data-Augmentation）"><a href="#武器二：随机失活与数据增强（Dropout-amp-Data-Augmentation）" class="headerlink" title="武器二：随机失活与数据增强（Dropout &amp; Data Augmentation）"></a>武器二：随机失活与数据增强（Dropout &amp; Data Augmentation）</h3><p>故意给训练加「扰动」，逼模型不能依赖任何单一路径，去学更鲁棒的规律。</p><p>让孩子经历计划外的东西：让他失败并不替他兜底；让他有整块无所事事的时间（无聊是创造力的温床）；让他接触远超考纲的真实世界。</p><p><strong>别怕他「浪费时间」，那些看起来最浪费的时间，往往是在做最重要的数据增强。</strong></p><h3 id="武器三：优化真目标，而非代理指标"><a href="#武器三：优化真目标，而非代理指标" class="headerlink" title="武器三：优化真目标，而非代理指标"></a>武器三：优化真目标，而非代理指标</h3><p>古德哈特定律的解药：时刻记得分数只是代理，含权量才是真的。</p><p>把评价孩子的尺子从「考了多少分」换成更接近真目标的问题：</p><ul><li>他今天有没有因为一件事眼睛发亮？</li><li>遇到不会的东西，是绕着走还是扑上去？</li><li>能不能把一件没人要求的事，自己有头有尾地做完？</li><li>搞砸了一件事，是崩溃，还是能自己爬起来再试？</li></ul><p><strong>你把注意力放在哪，孩子就往哪长。</strong></p><h3 id="武器四：用组合逻辑替代学历逻辑"><a href="#武器四：用组合逻辑替代学历逻辑" class="headerlink" title="武器四：用组合逻辑替代学历逻辑"></a>武器四：用组合逻辑替代学历逻辑</h3><p>金融里对付不确定性靠分散——不会把全部身家押在一只股票上。把命押在「一个学历」上，就是最典型的单点押注。</p><p><strong>组合逻辑是反过来的：</strong> 帮孩子建一个「能力的投资组合」。</p><p>这个组合里，有几样是这个时代的底层操作系统，无论分布怎么漂都不贬值：</p><ul><li><strong>英语</strong>：接入全世界一手信息和优质资源的操作系统</li><li><strong>AI</strong>：这个时代新的通用能力放大器</li></ul><p>在这两个操作系统之上，是用真实项目驱动、能拿得出手的东西。合在一起就是一个 T 型能力结构：有一样扎得足够深，横向又足够宽。</p><h3 id="武器五：守住那束内在的光"><a href="#武器五：守住那束内在的光" class="headerlink" title="武器五：守住那束内在的光"></a>武器五：守住那束内在的光</h3><p>一个孩子最珍贵的，是他心里那个自己长出来的目标函数——那束不用外部奖励、自己就能亮着的光。</p><p>守住它的意思是：</p><ul><li>当孩子对一件「没用」的事着了迷，你忍住那句「这个不考」</li><li>当他想选一条不那么「划算」的路，你先别急着用性价比去否定</li><li>在他还小的时候，允许他大量地探索、试错、走弯路</li></ul><p><strong>一个有内在梯度的人，是这世上最抗打的模型：</strong> 分布漂移了，他自己会去适应；脚手架撤了，他站得住；信号拥挤了，他能去找别的路。因为他本就是自己在驱动自己。</p><h2 id="写在最后"><a href="#写在最后" class="headerlink" title="写在最后"></a>写在最后</h2><p>我不是要否定教育，更不是要谁去躺平。教育本身是好的，学习本身是美的。</p><p>我从头到尾想说的只有一件：<strong>我们优化错了目标函数。</strong></p><p>我们把一个本该指向「泛化到真实人生」的过程，异化成了「拟合一套考纲」；把一个本该是多目标、高维、动态的成长，压扁成了一根静态的、拥挤的、正在贬值的分数轴。</p><p>家长能做的，其实不多，但每一件都很重要：</p><ul><li>不是给孩子加更多的训练，而是给他做<strong>正则化</strong></li><li>守住早停的线，别把人练废</li><li>给他足够的扰动和留白，让他长出鲁棒性</li><li>把尺子从代理换回真目标</li><li>用组合替代单点押注</li><li><strong>最要紧的，是守住他心里那束光</strong></li></ul><p>一个模型最好的状态，从来不是在训练集上零失误，而是它见到从未见过的世界时，依然认得出那是什么。</p><p>我们养孩子，图的也从来不是他十八岁那年考了多少分，而是他四十岁、六十岁，面对一个我们今天根本无法想象的世界时，<strong>还站得住，还亮着，还认得出——什么是猫。</strong></p><hr><p><strong>参考来源：</strong> 桶哥论教育（微信公众号）</p>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;张锡峰们的迷局&quot;&gt;&lt;a href=&quot;#张锡峰们的迷局&quot; class=&quot;headerlink&quot; title=&quot;张锡峰们的迷局&quot;&gt;&lt;/a&gt;张锡峰们的迷局&lt;/h2&gt;&lt;p&gt;很难想象，在同一个人群里，「读书无用论」和「读书决定一切」这两种水火不容的论调竟然能同时存在。更吊诡</summary>
      
    
    
    
    <category term="桶哥" scheme="http://example.com/categories/%E6%A1%B6%E5%93%A5/"/>
    
    
    <category term="教育" scheme="http://example.com/tags/%E6%95%99%E8%82%B2/"/>
    
    <category term="机器学习" scheme="http://example.com/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/"/>
    
    <category term="过拟合" scheme="http://example.com/tags/%E8%BF%87%E6%8B%9F%E5%90%88/"/>
    
  </entry>
  
  <entry>
    <title>OfficeCLI：让 AI 高效处理 Office</title>
    <link href="http://example.com/post/OfficeCLI%EF%BC%9A%E8%AE%A9-AI-Agent-%E9%AB%98%E6%95%88%E5%A4%84%E7%90%86-Office-%E6%96%87%E6%A1%A3%E7%9A%84%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7.html"/>
    <id>http://example.com/post/OfficeCLI%EF%BC%9A%E8%AE%A9-AI-Agent-%E9%AB%98%E6%95%88%E5%A4%84%E7%90%86-Office-%E6%96%87%E6%A1%A3%E7%9A%84%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7.html</id>
    <published>2026-07-13T07:00:00.000Z</published>
    <updated>2026-07-13T07:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>让 AI Agent 处理 Word、PPT、表格等 Office 文档，一直是个麻烦事。</p><p>之前主要有两条路线：</p><ul><li><strong>Anthropic 官方 Skills</strong>：提供了 PowerPoint、Excel、Word、PDF 等预置 Agent Skills（<a href="https://github.com/anthropics/skills/tree/main/skills">GitHub 仓库</a>）</li><li><strong>MiniMax 开源方案</strong>：开源了一整套面向 Agent 的办公文档 skill，如 minimax-xlsx、minimax-docx、pptx-generator 等（<a href="https://github.com/MiniMax-AI/skills">GitHub 仓库</a>）</li></ul><p>但这些方案都需要依赖 Python 库、XML 处理、模板引擎等，流程分散，错误率高。</p><p>最近 GitHub 上火了一个新项目 <strong>OfficeCLI</strong>，走了另一条路——<strong>把 Office 处理能力做成命令行工具</strong>，目前已获得 1.3 万+ Star。</p><h2 id="OfficeCLI-简介"><a href="#OfficeCLI-简介" class="headerlink" title="OfficeCLI 简介"></a>OfficeCLI 简介</h2><p><a href="https://github.com/iOfficeAI/OfficeCLI">OfficeCLI</a> 是 iOfficeAI 开源的 Office 自动化工具，核心特点：</p><ul><li><strong>单文件二进制</strong>，开源免费</li><li><strong>无需安装 Microsoft Office</strong> 即可使用</li><li>支持 <strong>Word、Excel、PowerPoint</strong> 三件套</li><li>把 Office 文件变成一组<strong>稳定可调用的命令</strong></li></ul><p>对 Agent 来说，这意味着可以把文档操作纳入标准工作流：创建文件 → 读取结构 → 修改元素 → 渲染检查，形成完整闭环。</p><h2 id="核心亮点：让-Agent-“看见”-文档"><a href="#核心亮点：让-Agent-“看见”-文档" class="headerlink" title="核心亮点：让 Agent “看见” 文档"></a>核心亮点：让 Agent “看见” 文档</h2><p>做 Office 文档最麻烦的不是生成文件，而是<strong>检查最终效果</strong>：</p><ul><li>PPT 标题有没有超出边界？</li><li>图表有没有挡住文字？</li><li>Word 页眉页脚有没有跑偏？</li></ul><p>这些问题光看文档结构很难判断。</p><p>OfficeCLI 的核心能力是<strong>内置 HTML 渲染引擎</strong>，可以把 <code>.docx</code>、<code>.xlsx</code>、<code>.pptx</code> 渲染成 HTML 或 PNG。Agent 不再只是读结构化数据，它可以拿到渲染后的页面，根据视觉结果修正文档。</p><p>主要命令：</p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash"># 生成浏览器可打开的 HTML 预览officecli view deck.pptx html# 生成 PNG 截图，方便多模态模型检查officecli view deck.pptx screenshot -o deck.png# 启动本地预览页面，修改文档时浏览器自动刷新officecli watch deck.pptx</code></pre><p>Agent 生成文档后，可以”看一眼”再修一轮，而不是完全靠猜。</p><h2 id="功能覆盖"><a href="#功能覆盖" class="headerlink" title="功能覆盖"></a>功能覆盖</h2><h3 id="Word"><a href="#Word" class="headerlink" title="Word"></a>Word</h3><p>支持段落、表格、样式、页眉页脚、图片、批注、脚注、目录、修订等。</p><h3 id="Excel"><a href="#Excel" class="headerlink" title="Excel"></a>Excel</h3><ul><li>单元格、公式、图表、透视表</li><li>条件格式、数据验证、工作表操作</li><li>内置 <strong>350+ Excel 函数</strong>的自动计算能力</li></ul><h3 id="PowerPoint"><a href="#PowerPoint" class="headerlink" title="PowerPoint"></a>PowerPoint</h3><p>支持幻灯片、形状、图片、表格、图表、动画、转场、备注、主题等。</p><h2 id="路径式操作"><a href="#路径式操作" class="headerlink" title="路径式操作"></a>路径式操作</h2><p>OfficeCLI 支持类似 <code>/slide[1]/shape[1]</code> 的路径定位元素，然后读取或修改对应内容。</p><p>这比让 Agent 在 XML 里找节点方便得多，特别适合连续操作场景：</p><ol><li>改第二页标题</li><li>替换图表数据</li><li>把 Excel 区域变成透视表</li><li>结果写进周报 PPT</li></ol><h2 id="对-Agent-的友好设计"><a href="#对-Agent-的友好设计" class="headerlink" title="对 Agent 的友好设计"></a>对 Agent 的友好设计</h2><p>OfficeCLI 在多处考虑了 Agent 的使用方式：</p><table><thead><tr><th>特性</th><th>说明</th></tr></thead><tbody><tr><td>JSON 输出</td><td>所有命令支持 <code>--json</code>，Agent 拿到结构化数据继续推理</td></tr><tr><td>结构化错误</td><td>路径错误、属性名错误时返回错误码和建议，Agent 可自动调整</td></tr><tr><td>内置 MCP</td><td>可注册到 Claude Code、Cursor 等环境，暴露为工具</td></tr><tr><td>自动检测</td><td>安装后自动检测 AI coding agent 配置目录，安装对应 skill 文件</td></tr></tbody></table><h2 id="安装与使用"><a href="#安装与使用" class="headerlink" title="安装与使用"></a>安装与使用</h2><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash"># Homebrew 安装brew install officecli# npm 安装npm install -g @officecli&#x2F;officecli</code></pre><p>基本使用示例：</p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash"># 创建 PPTofficecli create deck.pptx# 添加幻灯片officecli add deck.pptx &#x2F; --type slide --prop title&#x3D;&quot;Hello, World!&quot;# 启动预览officecli watch deck.pptx# 查看结构化结果officecli get deck.pptx &#39;&#x2F;slide[1]&#39; --json</code></pre><h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>OfficeCLI 代表了 Agent 工具链的一个发展方向：</p><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>过去给 Agent 加能力，更多是写提示词、规则、工作流。现在越来越多项目开始把能力做成<strong>真正可执行的工具</strong>，再让 Agent 去调度。</p></blockquote><p>对于需要频繁处理 Office 文档的 Agent 工作流，OfficeCLI 提供了一个统一、稳定、可视化的解决方案。</p><hr><p><strong>参考链接：</strong></p><ul><li>OfficeCLI GitHub：<a href="https://github.com/iOfficeAI/OfficeCLI">https://github.com/iOfficeAI/OfficeCLI</a></li><li>Anthropic Skills：<a href="https://github.com/anthropics/skills/tree/main/skills">https://github.com/anthropics/skills/tree/main/skills</a></li><li>MiniMax Skills：<a href="https://github.com/MiniMax-AI/skills">https://github.com/MiniMax-AI/skills</a></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;h2 id=&quot;背景&quot;&gt;&lt;a href=&quot;#背景&quot; class=&quot;headerlink&quot; title=&quot;背景&quot;&gt;&lt;/a&gt;背景&lt;/h2&gt;&lt;p&gt;让 AI Agent 处理 Word、PPT、表格等 Office 文档，一直是个麻烦事。&lt;/p&gt;
&lt;p&gt;之前主要有两条路线：&lt;/p&gt;
&lt;u</summary>
      
    
    
    
    <category term="AI" scheme="http://example.com/categories/AI/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="开源工具" scheme="http://example.com/tags/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7/"/>
    
  </entry>
  
  <entry>
    <title>SQL 性能分析和优化 - 超长篇</title>
    <link href="http://example.com/post/SQL%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90%E5%92%8C%E4%BC%98%E5%8C%96.html"/>
    <id>http://example.com/post/SQL%E6%80%A7%E8%83%BD%E5%88%86%E6%9E%90%E5%92%8C%E4%BC%98%E5%8C%96.html</id>
    <published>2026-07-09T05:00:00.000Z</published>
    <updated>2026-07-09T05:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>原文来源：微信公众号「小林聊编程」<br>原文链接：<a href="https://mp.weixin.qq.com/s/o83zreEuEev1amLR8kZOfw">SQL性能分析和优化-超长篇</a></p></blockquote><p>思维导图：</p><p><img src="/images/sql-.jpg" alt="alt text"></p><span id="more"></span><h2 id="理解-SQL-查询的工作原理"><a href="#理解-SQL-查询的工作原理" class="headerlink" title="理解 SQL 查询的工作原理"></a>理解 SQL 查询的工作原理</h2><h3 id="1-解析（Parsing）"><a href="#1-解析（Parsing）" class="headerlink" title="1. 解析（Parsing）"></a>1. 解析（Parsing）</h3><p>在这个阶段，数据库引擎会检查 SQL 语句的语法是否正确。如果语法有误，数据库会返回错误信息。如果语法正确，解析器会将 SQL 语句转换成内部表示形式，以便后续处理。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">SELECT * FROM employees WHERE department_id &#x3D; 5;</code></pre><p>这条 SQL 语句试图从 <code>employees</code> 表中选择所有部门 ID 为 5 的员工记录。如果 <code>department_id</code> 列不存在或者表名拼写错误，解析器会报错。</p><h3 id="2-优化（Optimization）"><a href="#2-优化（Optimization）" class="headerlink" title="2. 优化（Optimization）"></a>2. 优化（Optimization）</h3><p>解析器完成工作后，优化器会分析查询计划，确定执行查询的最有效方式。这可能包括选择使用哪个索引、是否需要全表扫描等。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">SELECT first_name, last_name FROM employees WHERE first_name LIKE &#39;J%&#39;;</code></pre><p>在这个例子中，如果 <code>first_name</code> 列上有索引，优化器可能会选择使用这个索引来快速找到以’J’开头的记录，而不是扫描整个表。</p><h3 id="3-执行（Execution）"><a href="#3-执行（Execution）" class="headerlink" title="3. 执行（Execution）"></a>3. 执行（Execution）</h3><p>执行器根据优化后的计划执行查询。这包括从磁盘读取数据、应用 WHERE 子句中的条件、执行 JOIN 操作等。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">SELECT employees.first_name, employees.last_name, departments.department_nameFROM employeesINNER JOIN departments ON employees.department_id &#x3D; departments.department_idWHERE employees.salary &gt; 50000;</code></pre><p>这条 SQL 语句执行了一个内连接（INNER JOIN），它将 <code>employees</code> 表和 <code>departments</code> 表连接起来，并筛选出薪资超过 50000 的员工及其所在部门的名称。</p><h3 id="4-结果返回（Result-Retrieval）"><a href="#4-结果返回（Result-Retrieval）" class="headerlink" title="4. 结果返回（Result Retrieval）"></a>4. 结果返回（Result Retrieval）</h3><p>最后，执行器将查询结果返回给客户端。这可能包括排序、分组和聚合等操作的结果。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">SELECT department_name, COUNT(*) as employee_countFROM employeesGROUP BY department_nameORDER BY employee_count DESC;</code></pre><p>这条 SQL 语句首先对 <code>employees</code> 表按 <code>department_name</code> 分组，然后计算每个部门的员工数量，并按员工数量降序排列。</p><hr><h2 id="分析和诊断-SQL-查询性能"><a href="#分析和诊断-SQL-查询性能" class="headerlink" title="分析和诊断 SQL 查询性能"></a>分析和诊断 SQL 查询性能</h2><h3 id="1-使用-EXPLAIN-命令"><a href="#1-使用-EXPLAIN-命令" class="headerlink" title="1. 使用 EXPLAIN 命令"></a>1. 使用 EXPLAIN 命令</h3><p><code>EXPLAIN</code> 命令可以帮助你了解数据库如何执行 SQL 查询，包括查询的执行计划、是否使用了索引、预计的行数等。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">EXPLAIN SELECT * FROM employees WHERE department_id &#x3D; 5;</code></pre><p>这个命令会返回查询的执行计划，包括是否使用了索引（如 <code>Using index</code>）、是否进行了全表扫描（如 <code>Using filesort</code>）等信息。</p><h3 id="2-分析执行计划"><a href="#2-分析执行计划" class="headerlink" title="2. 分析执行计划"></a>2. 分析执行计划</h3><p>执行计划中的 <code>type</code> 列显示了查询的类型，如 <code>ALL</code>（全表扫描）、<code>index</code>（索引扫描）、<code>range</code>（范围查询）等。理想情况下，你希望看到 <code>const</code> 或 <code>eq_ref</code>，这表明查询使用了有效的索引。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">EXPLAIN SELECT * FROM employees WHERE id &#x3D; 1;</code></pre><p>如果输出显示 <code>type: const</code>，这意味着查询只需要检查一行数据，性能很高。</p><h3 id="3-查看慢查询日志"><a href="#3-查看慢查询日志" class="headerlink" title="3. 查看慢查询日志"></a>3. 查看慢查询日志</h3><p>慢查询日志记录了执行时间超过特定阈值的查询。这可以帮助你识别和优化那些执行缓慢的查询。</p><p>在 MySQL 中启用慢查询日志：</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">SET GLOBAL slow_query_log &#x3D; &#39;ON&#39;;SET GLOBAL long_query_time &#x3D; 1;  -- 设置慢查询阈值为 1 秒SET GLOBAL slow_query_log_file &#x3D; &#39;&#x2F;path&#x2F;to&#x2F;your&#x2F;slow-query.log&#39;;</code></pre><h3 id="4-使用性能分析工具"><a href="#4-使用性能分析工具" class="headerlink" title="4. 使用性能分析工具"></a>4. 使用性能分析工具</h3><p>一些数据库管理系统提供了性能分析工具，如 MySQL 的 <code>SHOW PROFILE</code> 命令，可以显示查询的执行时间和资源消耗情况。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">SET profiling &#x3D; 1;SELECT * FROM employees WHERE salary &gt; 50000;SHOW PROFILES;</code></pre><hr><h2 id="优化-SQL-查询的技巧"><a href="#优化-SQL-查询的技巧" class="headerlink" title="优化 SQL 查询的技巧"></a>优化 SQL 查询的技巧</h2><h3 id="1-使用索引"><a href="#1-使用索引" class="headerlink" title="1. 使用索引"></a>1. 使用索引</h3><p>索引是提高查询性能的关键。确保为经常用于 WHERE 子句、JOIN 条件和 ORDER BY 的列创建索引。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">CREATE INDEX idx_department_id ON employees(department_id);</code></pre><p>但也要注意，过多的索引会增加写操作的开销，因此需要权衡。</p><h3 id="2-避免全表扫描"><a href="#2-避免全表扫描" class="headerlink" title="2. 避免全表扫描"></a>2. 避免全表扫描</h3><p>全表扫描会消耗大量资源。通过添加适当的索引或优化查询条件，可以减少全表扫描的发生。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">-- 不好的写法（可能导致全表扫描）SELECT * FROM employees WHERE YEAR(hire_date) &#x3D; 2020;-- 好的写法（可以使用索引）SELECT * FROM employees WHERE hire_date &gt;&#x3D; &#39;2020-01-01&#39; AND hire_date &lt; &#39;2021-01-01&#39;;</code></pre><h3 id="3-优化-JOIN-操作"><a href="#3-优化-JOIN-操作" class="headerlink" title="3. 优化 JOIN 操作"></a>3. 优化 JOIN 操作</h3><p>确保 JOIN 条件中的列有索引，并尽量减少 JOIN 的表数量。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">-- 优化前SELECT * FROM ordersJOIN customers ON orders.customer_id &#x3D; customers.idJOIN products ON orders.product_id &#x3D; products.id;-- 优化后（只选择需要的列）SELECT orders.order_id, customers.name, products.product_nameFROM ordersJOIN customers ON orders.customer_id &#x3D; customers.idJOIN products ON orders.product_id &#x3D; products.id;</code></pre><h3 id="4-减少子查询"><a href="#4-减少子查询" class="headerlink" title="4. 减少子查询"></a>4. 减少子查询</h3><p>子查询可能会降低查询性能，尽量用 JOIN 替代子查询。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">-- 子查询写法SELECT * FROM employees WHERE department_id IN (SELECT id FROM departments WHERE name &#x3D; &#39;Sales&#39;);-- JOIN 写法（通常更高效）SELECT e.* FROM employees eJOIN departments d ON e.department_id &#x3D; d.idWHERE d.name &#x3D; &#39;Sales&#39;;</code></pre><h3 id="5-合理使用-LIMIT"><a href="#5-合理使用-LIMIT" class="headerlink" title="5. 合理使用 LIMIT"></a>5. 合理使用 LIMIT</h3><p>当只需要部分结果时，使用 LIMIT 可以减少返回的数据量。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">SELECT * FROM employees ORDER BY salary DESC LIMIT 10;</code></pre><h3 id="6-避免使用-SELECT"><a href="#6-避免使用-SELECT" class="headerlink" title="6. 避免使用 SELECT *"></a>6. 避免使用 SELECT *</h3><p>只选择需要的列，减少数据传输和内存消耗。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">-- 不好的写法SELECT * FROM employees;-- 好的写法SELECT first_name, last_name, email FROM employees;</code></pre><h3 id="7-优化-GROUP-BY-和-ORDER-BY"><a href="#7-优化-GROUP-BY-和-ORDER-BY" class="headerlink" title="7. 优化 GROUP BY 和 ORDER BY"></a>7. 优化 GROUP BY 和 ORDER BY</h3><p>确保 GROUP BY 和 ORDER BY 的列有索引，并尽量减少排序的数据量。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">-- 添加复合索引CREATE INDEX idx_dept_salary ON employees(department_id, salary);-- 使用索引排序SELECT department_id, AVG(salary) FROM employees GROUP BY department_id;</code></pre><h3 id="8-使用-EXISTS-替代-IN"><a href="#8-使用-EXISTS-替代-IN" class="headerlink" title="8. 使用 EXISTS 替代 IN"></a>8. 使用 EXISTS 替代 IN</h3><p>在某些情况下，EXISTS 比 IN 更高效。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">-- IN 写法SELECT * FROM employees WHERE department_id IN (1, 2, 3);-- EXISTS 写法（对于大表更高效）SELECT * FROM employees e WHERE EXISTS (    SELECT 1 FROM departments d WHERE d.id &#x3D; e.department_id AND d.id IN (1, 2, 3));</code></pre><h3 id="9-分区表"><a href="#9-分区表" class="headerlink" title="9. 分区表"></a>9. 分区表</h3><p>对于非常大的表，可以考虑使用表分区，将数据分散到多个物理存储中，提高查询性能。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">-- 按范围分区CREATE TABLE sales (    id INT,    sale_date DATE,    amount DECIMAL(10, 2)) PARTITION BY RANGE (YEAR(sale_date)) (    PARTITION p2020 VALUES LESS THAN (2021),    PARTITION p2021 VALUES LESS THAN (2022),    PARTITION p2022 VALUES LESS THAN (2023));</code></pre><h3 id="10-缓存查询结果"><a href="#10-缓存查询结果" class="headerlink" title="10. 缓存查询结果"></a>10. 缓存查询结果</h3><p>对于频繁执行的相同查询，可以考虑使用查询缓存（如果数据库支持）。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">-- MySQL 查询缓存（已废弃，但概念仍适用）SELECT SQL_CACHE * FROM employees WHERE department_id &#x3D; 5;</code></pre><hr><h2 id="索引优化"><a href="#索引优化" class="headerlink" title="索引优化"></a>索引优化</h2><h3 id="1-索引类型"><a href="#1-索引类型" class="headerlink" title="1. 索引类型"></a>1. 索引类型</h3><ul><li><strong>单列索引</strong>：基于单个列创建的索引</li><li><strong>复合索引</strong>：基于多个列创建的索引</li><li><strong>唯一索引</strong>：确保列中的值是唯一的</li><li><strong>全文索引</strong>：用于全文搜索</li></ul><h3 id="2-复合索引的最左前缀原则"><a href="#2-复合索引的最左前缀原则" class="headerlink" title="2. 复合索引的最左前缀原则"></a>2. 复合索引的最左前缀原则</h3><p>复合索引 <code>(A, B, C)</code> 可以支持以下查询：</p><ul><li><code>WHERE A = ?</code></li><li><code>WHERE A = ? AND B = ?</code></li><li><code>WHERE A = ? AND B = ? AND C = ?</code></li></ul><p>但不支持：</p><ul><li><code>WHERE B = ?</code></li><li><code>WHERE B = ? AND C = ?</code></li><li><code>WHERE C = ?</code></li></ul><h3 id="3-索引失效的情况"><a href="#3-索引失效的情况" class="headerlink" title="3. 索引失效的情况"></a>3. 索引失效的情况</h3><ul><li>使用函数或表达式：<code>WHERE YEAR(date_col) = 2020</code></li><li>使用 LIKE 以 <code>%</code> 开头：<code>WHERE name LIKE &#39;%John&#39;</code></li><li>隐式类型转换：<code>WHERE string_col = 123</code></li><li>使用 OR 条件且部分列无索引</li></ul><h3 id="4-覆盖索引"><a href="#4-覆盖索引" class="headerlink" title="4. 覆盖索引"></a>4. 覆盖索引</h3><p>如果查询的所有列都包含在索引中，数据库可以直接从索引中获取数据，无需访问表。</p><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">-- 创建覆盖索引CREATE INDEX idx_name_email ON employees(name, email);-- 查询可以直接从索引获取SELECT name, email FROM employees WHERE name &#x3D; &#39;John&#39;;</code></pre><hr><h2 id="慢查询优化实战"><a href="#慢查询优化实战" class="headerlink" title="慢查询优化实战"></a>慢查询优化实战</h2><h3 id="1-识别慢查询"><a href="#1-识别慢查询" class="headerlink" title="1. 识别慢查询"></a>1. 识别慢查询</h3><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">-- 查看慢查询日志配置SHOW VARIABLES LIKE &#39;slow_query%&#39;;SHOW VARIABLES LIKE &#39;long_query_time&#39;;-- 查看慢查询日志中的查询mysqldumpslow -s t -t 10 &#x2F;path&#x2F;to&#x2F;slow-query.log</code></pre><h3 id="2-分析慢查询"><a href="#2-分析慢查询" class="headerlink" title="2. 分析慢查询"></a>2. 分析慢查询</h3><pre class="line-numbers language-sql" data-language="sql"><code class="language-sql">-- 使用 EXPLAIN 分析EXPLAIN SELECT * FROM orders WHERE status &#x3D; &#39;pending&#39; AND created_at &gt; &#39;2024-01-01&#39;;-- 使用 EXPLAIN ANALYZE（MySQL 8.0+）EXPLAIN ANALYZE SELECT * FROM orders WHERE status &#x3D; &#39;pending&#39; AND created_at &gt; &#39;2024-01-01&#39;;</code></pre><h3 id="3-优化慢查询"><a href="#3-优化慢查询" class="headerlink" title="3. 优化慢查询"></a>3. 优化慢查询</h3><ul><li>添加缺失的索引</li><li>重写查询逻辑</li><li>拆分复杂查询</li><li>使用物化视图或汇总表</li></ul><hr><h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>SQL 性能优化是一个系统性的工作，需要从多个角度入手：</p><table><thead><tr><th>优化方向</th><th>核心要点</th></tr></thead><tbody><tr><td><strong>理解查询原理</strong></td><td>解析→优化→执行→结果返回</td></tr><tr><td><strong>分析诊断</strong></td><td>EXPLAIN、慢查询日志、性能分析工具</td></tr><tr><td><strong>查询优化</strong></td><td>索引、避免全表扫描、优化 JOIN、减少子查询</td></tr><tr><td><strong>索引优化</strong></td><td>最左前缀原则、覆盖索引、避免索引失效</td></tr><tr><td><strong>慢查询实战</strong></td><td>识别→分析→优化</td></tr></tbody></table><p><strong>核心原则：</strong></p><ul><li>先诊断，再优化</li><li>用数据说话，不要凭感觉</li><li>小步迭代，每次只改一个地方</li><li>优化后一定要验证效果</li></ul><hr><p><strong>关键词总结：</strong></p><ul><li>SQL 查询工作原理：解析、优化、执行、结果返回</li><li>EXPLAIN 命令分析执行计划</li><li>慢查询日志定位性能瓶颈</li><li>索引优化：最左前缀、覆盖索引</li><li>查询优化技巧：避免全表扫描、优化 JOIN、减少子查询</li></ul>]]></content>
    
    
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;原文来源：微信公众号「小林聊编程」&lt;br&gt;原文链接：&lt;a href=&quot;https://mp.weixin.qq.com/s/o83zreEuEev1amLR8kZOfw&quot;&gt;SQL性能分析和优化-超长篇&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;思维导图：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/sql-.jpg&quot; alt=&quot;alt text&quot;&gt;&lt;/p&gt;</summary>
    
    
    
    <category term="数据库" scheme="http://example.com/categories/%E6%95%B0%E6%8D%AE%E5%BA%93/"/>
    
    
    <category term="数据库" scheme="http://example.com/tags/%E6%95%B0%E6%8D%AE%E5%BA%93/"/>
    
    <category term="SQL" scheme="http://example.com/tags/SQL/"/>
    
    <category term="性能优化" scheme="http://example.com/tags/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/"/>
    
  </entry>
  
  <entry>
    <title>AI 时代程序员简历写作指南</title>
    <link href="http://example.com/post/AI%E6%97%B6%E4%BB%A3%E7%A8%8B%E5%BA%8F%E5%91%98%E7%AE%80%E5%8E%86%E5%86%99%E4%BD%9C%E6%8C%87%E5%8D%97.html"/>
    <id>http://example.com/post/AI%E6%97%B6%E4%BB%A3%E7%A8%8B%E5%BA%8F%E5%91%98%E7%AE%80%E5%8E%86%E5%86%99%E4%BD%9C%E6%8C%87%E5%8D%97.html</id>
    <published>2026-07-09T04:00:00.000Z</published>
    <updated>2026-07-09T04:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>原文来源：微信公众号「程序员鱼皮」<br>原文链接：<a href="https://mp.weixin.qq.com/s/1JetsTkFXRR2U-AYXDgxzg">时隔六年，曝光一下鱼皮的最新简历！</a></p></blockquote><p>不过随着 AI 的发展，程序员的简历写法也必须要更新了！如今的招聘市场，<strong>会 AI 已经不是加分项，而是筛选条件</strong>。随便翻翻现在大厂的 JD，很多都明确写着：熟悉 AI 大模型开发优先、有 AI 编程经验优先。</p><span id="more"></span><h2 id="为什么-AI-时代简历必须更新？"><a href="#为什么-AI-时代简历必须更新？" class="headerlink" title="为什么 AI 时代简历必须更新？"></a>为什么 AI 时代简历必须更新？</h2><h3 id="1-AI-成为筛选条件"><a href="#1-AI-成为筛选条件" class="headerlink" title="1. AI 成为筛选条件"></a>1. AI 成为筛选条件</h3><p>如果你的简历上还是清一色的 CRUD 项目，连一个 AI 相关的关键词都没有，那大概率第一轮筛选就被刷掉了。</p><h3 id="2-能力边界大幅扩展"><a href="#2-能力边界大幅扩展" class="headerlink" title="2. 能力边界大幅扩展"></a>2. 能力边界大幅扩展</h3><p>以前说”全栈”，可能就是前端加后端。但现在呢？你要会：</p><ul><li>传统的后端开发</li><li>AI 应用开发</li><li>AI 编程工具提效</li><li>产品思维、数据分析、监控运维</li></ul><h3 id="3-“一人公司”成为可能"><a href="#3-“一人公司”成为可能" class="headerlink" title="3. “一人公司”成为可能"></a>3. “一人公司”成为可能</h3><p>最近很火的”一人公司”概念，一个人就能搞定从开发到运营的全部流程。这在以前是不可能的，但有了 AI 之后，这件事正在成为现实。</p><hr><h2 id="AI-时代简历写作指南"><a href="#AI-时代简历写作指南" class="headerlink" title="AI 时代简历写作指南"></a>AI 时代简历写作指南</h2><h3 id="一、个人信息"><a href="#一、个人信息" class="headerlink" title="一、个人信息"></a>一、个人信息</h3><h4 id="1-求职意向要突出-AI-经验"><a href="#1-求职意向要突出-AI-经验" class="headerlink" title="1. 求职意向要突出 AI 经验"></a>1. 求职意向要突出 AI 经验</h4><p><strong>传统写法：</strong></p><pre class="line-numbers language-none"><code class="language-none">求职意向：Java 后端开发</code></pre><p><strong>AI 时代写法：</strong></p><pre class="line-numbers language-none"><code class="language-none">求职意向：Java 后端开发（具备 AI Agent 全栈开发经验）</code></pre><p>HR 筛简历一份可能就看 10 秒钟。开头 3 秒没有吸引住人，就直接划走了。既然你真的有 AI Agent 开发经验，就要在最显眼的位置第一时间告诉对方。</p><h4 id="2-必须放作品集网站和-GitHub"><a href="#2-必须放作品集网站和-GitHub" class="headerlink" title="2. 必须放作品集网站和 GitHub"></a>2. 必须放作品集网站和 GitHub</h4><p>很多同学的简历上，个人信息就是姓名、电话、邮箱，连个 GitHub 链接都没有。</p><p><strong>以前不放还情有可原</strong>，毕竟搭建个网站要花不少时间。<strong>但现在呢？</strong> 用 AI 编程工具，1 小时就能搞出一个有模有样的个人作品集网站，成本极低。</p><p>我看过的 10 份简历中，可能 8 份都没有线上作品地址。如果你有，面试官可以直接点进去看看你做过什么，立刻拉开区分度。</p><p><strong>上线项目是最能增加真实性的方法，没有之一。</strong></p><hr><h3 id="二、教育背景和奖项"><a href="#二、教育背景和奖项" class="headerlink" title="二、教育背景和奖项"></a>二、教育背景和奖项</h3><h4 id="1-合并板块"><a href="#1-合并板块" class="headerlink" title="1. 合并板块"></a>1. 合并板块</h4><p>教育背景就一行，奖项也就一两行，没必要分成两个板块单独写。合在一起更紧凑，省下来的空间可以留给工作经历和项目经历。</p><h4 id="2-是否要写成绩排名？"><a href="#2-是否要写成绩排名？" class="headerlink" title="2. 是否要写成绩排名？"></a>2. 是否要写成绩排名？</h4><ul><li><strong>排名前 20% 以上</strong>：果断写上去，成绩好还挺加分的</li><li><strong>排名不太好看</strong>：不要主动暴露短板</li></ul><h4 id="3-认真调整奖项排序"><a href="#3-认真调整奖项排序" class="headerlink" title="3. 认真调整奖项排序"></a>3. 认真调整奖项排序</h4><ul><li>认可度高的、和求职岗位相关的放前面</li><li>不知名的比赛往后放或者直接不写</li><li>别把什么奖都堆上去，面试官看到一堆没听过的比赛名称，反而会觉得你在凑数</li></ul><hr><h3 id="三、专业技能（变化最大）"><a href="#三、专业技能（变化最大）" class="headerlink" title="三、专业技能（变化最大）"></a>三、专业技能（变化最大）</h3><h4 id="1-传统开发技术（基本盘）"><a href="#1-传统开发技术（基本盘）" class="headerlink" title="1. 传统开发技术（基本盘）"></a>1. 传统开发技术（基本盘）</h4><p>以后端为例：</p><ul><li>Java</li><li>Spring Boot</li><li>MySQL</li><li>Redis</li><li>Docker</li></ul><p>这些是后端开发的基本盘，不管 AI 怎么发展，这些技术在企业里用得最多，面试也大概率会考。</p><h4 id="2-监控告警体系（新趋势）"><a href="#2-监控告警体系（新趋势）" class="headerlink" title="2. 监控告警体系（新趋势）"></a>2. 监控告警体系（新趋势）</h4><p>你可能会想：这不是运维的活吗？以前确实是。但现在越来越多的公司要求后端开发也要懂监控、会排查线上问题。尤其是中小公司，不会给你配一个专职的运维团队，出了问题就是你来解决。</p><h4 id="3-AI-相关技术（必写项）"><a href="#3-AI-相关技术（必写项）" class="headerlink" title="3. AI 相关技术（必写项）"></a>3. AI 相关技术（必写项）</h4><p>这是整份简历最核心的变化。建议包括：</p><ul><li><strong>AI 应用开发</strong>：大模型调用、Prompt 工程、RAG 等</li><li><strong>AI 编程工具</strong>：Claude Code、Cursor、Copilot 等</li><li><strong>AI Agent 开发</strong>：智能体设计、工具调用、多 Agent 协作</li></ul><hr><h3 id="四、工作经历"><a href="#四、工作经历" class="headerlink" title="四、工作经历"></a>四、工作经历</h3><h4 id="1-突出-AI-赋能的业务成果"><a href="#1-突出-AI-赋能的业务成果" class="headerlink" title="1. 突出 AI 赋能的业务成果"></a>1. 突出 AI 赋能的业务成果</h4><p>不要只写”负责 XX 系统开发”，要写：</p><ul><li>如何用 AI 提效</li><li>AI 带来了什么业务价值</li><li>量化成果（效率提升 X%、成本降低 Y%）</li></ul><h4 id="2-体现”一人公司”能力"><a href="#2-体现”一人公司”能力" class="headerlink" title="2. 体现”一人公司”能力"></a>2. 体现”一人公司”能力</h4><p>如果有独立完成从开发到上线的全流程经验，一定要写出来。这证明你有：</p><ul><li>产品思维</li><li>全栈能力</li><li>主动性和责任心</li></ul><hr><h3 id="五、项目经历"><a href="#五、项目经历" class="headerlink" title="五、项目经历"></a>五、项目经历</h3><h4 id="1-必须有-AI-相关项目"><a href="#1-必须有-AI-相关项目" class="headerlink" title="1. 必须有 AI 相关项目"></a>1. 必须有 AI 相关项目</h4><p>哪怕只是一个简单的 AI 应用 demo，也比没有强。可以写：</p><ul><li>基于大模型的 XX 系统</li><li>AI 辅助开发的 XX 工具</li><li>集成 AI 能力的 XX 产品</li></ul><h4 id="2-项目要上线"><a href="#2-项目要上线" class="headerlink" title="2. 项目要上线"></a>2. 项目要上线</h4><p><strong>上线项目是最能增加真实性的方法，没有之一。</strong></p><p>用 AI 编程工具，1 小时就能搞出一个有模有样的项目并部署上线。面试官看到你有上线项目，心里就会想：哦，这个人至少会部署上线项目、有产出意识，不不孬~</p><h4 id="3-提供可访问链接"><a href="#3-提供可访问链接" class="headerlink" title="3. 提供可访问链接"></a>3. 提供可访问链接</h4><p>每个项目都要提供：</p><ul><li>线上访问地址</li><li>GitHub 源码地址</li><li>简短的项目介绍和亮点说明</li></ul><hr><h2 id="AI-时代简历的核心原则"><a href="#AI-时代简历的核心原则" class="headerlink" title="AI 时代简历的核心原则"></a>AI 时代简历的核心原则</h2><h3 id="1-明确学习方向"><a href="#1-明确学习方向" class="headerlink" title="1. 明确学习方向"></a>1. 明确学习方向</h3><p>知道哪些技术是企业真正在找的，不用再盲目刷教程。</p><h3 id="2-增加面试机会"><a href="#2-增加面试机会" class="headerlink" title="2. 增加面试机会"></a>2. 增加面试机会</h3><p>让你的简历在 AI 时代不落伍，提高被面试官选中的概率。</p><h3 id="3-理解企业视角"><a href="#3-理解企业视角" class="headerlink" title="3. 理解企业视角"></a>3. 理解企业视角</h3><p>站在招聘方的角度看简历，做到你和企业的双向匹配。</p><hr><h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>AI 时代程序员简历的关键变化：</p><table><thead><tr><th>板块</th><th>传统写法</th><th>AI 时代写法</th></tr></thead><tbody><tr><td>求职意向</td><td>Java 后端开发</td><td>Java 后端（具备 AI Agent 全栈开发经验）</td></tr><tr><td>个人信息</td><td>姓名电话邮箱</td><td>+ 作品集网站 + GitHub</td></tr><tr><td>专业技能</td><td>CRUD 技术栈</td><td>+ AI 应用开发 + AI 编程工具</td></tr><tr><td>项目经历</td><td>内部项目</td><td>+ 上线项目 + AI 相关项目</td></tr><tr><td>工作经历</td><td>负责 XX 开发</td><td>+ AI 赋能成果 + 量化指标</td></tr></tbody></table><p><strong>核心思路：</strong> 有了 AI 的加持，很多事情做起来比以前更快了，关键是你得知道该往哪些方向发力。</p><hr><p><strong>完整简历模板获取：</strong> <a href="https://laoyujianli.com/share/aiyupi">https://laoyujianli.com/share/aiyupi</a></p><p><strong>关键词总结：</strong></p><ul><li>AI 时代简历必须突出 AI 相关经验</li><li>作品集网站和 GitHub 链接是必备项</li><li>专业技能要包含 AI 应用开发和 AI 编程工具</li><li>项目经历要有上线项目和 AI 相关项目</li><li>工作经历要体现 AI 赋能的业务成果</li></ul>]]></content>
    
    
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;原文来源：微信公众号「程序员鱼皮」&lt;br&gt;原文链接：&lt;a href=&quot;https://mp.weixin.qq.com/s/1JetsTkFXRR2U-AYXDgxzg&quot;&gt;时隔六年，曝光一下鱼皮的最新简历！&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;不过随着 AI 的发展，程序员的简历写法也必须要更新了！如今的招聘市场，&lt;strong&gt;会 AI 已经不是加分项，而是筛选条件&lt;/strong&gt;。随便翻翻现在大厂的 JD，很多都明确写着：熟悉 AI 大模型开发优先、有 AI 编程经验优先。&lt;/p&gt;</summary>
    
    
    
    <category term="职场" scheme="http://example.com/categories/%E8%81%8C%E5%9C%BA/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="编程" scheme="http://example.com/tags/%E7%BC%96%E7%A8%8B/"/>
    
    <category term="简历" scheme="http://example.com/tags/%E7%AE%80%E5%8E%86/"/>
    
    <category term="求职" scheme="http://example.com/tags/%E6%B1%82%E8%81%8C/"/>
    
  </entry>
  
  <entry>
    <title>让 AI 生成网页告别&quot;AI 味儿&quot;</title>
    <link href="http://example.com/post/%E8%AE%A9%20AI%20%E7%94%9F%E6%88%90%E7%BD%91%E9%A1%B5%E5%91%8A%E5%88%AB%20AI%20%E5%91%B3%E5%84%BF.html"/>
    <id>http://example.com/post/%E8%AE%A9%20AI%20%E7%94%9F%E6%88%90%E7%BD%91%E9%A1%B5%E5%91%8A%E5%88%AB%20AI%20%E5%91%B3%E5%84%BF.html</id>
    <published>2026-07-09T03:00:00.000Z</published>
    <updated>2026-07-09T03:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<span id="more"></span><h2 id="01-Anthropic-官方设计-Skill：frontend-design"><a href="#01-Anthropic-官方设计-Skill：frontend-design" class="headerlink" title="01 Anthropic 官方设计 Skill：frontend-design"></a>01 Anthropic 官方设计 Skill：frontend-design</h2><p><a href="https://github.com/anthropics/claude-code/blob/main/plugins/frontend-design/skills/frontend-design/SKILL.md">frontend-design</a> 是 Claude Code 官方插件仓库里的第一个 skill，它能让 Claude 别再生成千篇一律的 AI 风 UI。属于去除 AI 味儿的老牌 Skill。</p><p><strong>安装命令：</strong></p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash">&#x2F;plugin install frontend-design@claude-plugins-official</code></pre><p>打开 SKILL.md 第一段就是先选定一个大胆的审美方向再写代码，逼着 Claude 打造独一无二的视觉风格。它 Skill 里面约束了具体规则：</p><ul><li><strong>字体</strong>：直接点名别用 Inter、Roboto、Arial 这类常见的字体</li><li><strong>配色</strong>：严禁紫色渐变这种已经被用烂的搭配</li><li><strong>布局</strong>：鼓励不对称、错位、对角流动</li><li><strong>多样性</strong>：主动让 Claude 在每次生成之间换字体、换主题、换审美，避免趋同</li></ul><p>同一个 prompt 跑两次，出来的东西应该长得不一样。</p><hr><h2 id="02-设计指导-Skill：impeccable"><a href="#02-设计指导-Skill：impeccable" class="headerlink" title="02 设计指导 Skill：impeccable"></a>02 设计指导 Skill：impeccable</h2><p><a href="https://github.com/pbakaus/impeccable">impeccable</a> 是 Google Chrome 团队出身的老哥做的一套给 AI Coding 工具用的设计指导 skill。</p><p>他也发现了所有模型都是在同一批 SaaS 模板上训练的，所以写出来的前端很容易撞脸，于是它在 Anthropic 官方 frontend-design 的基础上做了扩展。</p><p><strong>安装命令：</strong></p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash">npx impeccable install</code></pre><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>需要 Node 24+，在项目根目录运行</p></blockquote><p>Impeccable 的核心由四部分组成：</p><ul><li><strong>1 个统一 skill</strong></li><li><strong>23 条设计命令</strong></li><li><strong>44 条确定性检测规则</strong></li><li><strong>浏览器实时迭代能力</strong></li></ul><p>装上之后跑 <code>/impeccable init</code>，它会先问你做的是品牌官网还是产品后台，把答案记下来，后面所有命令都会按这个方向走。</p><p>而且这个 Skill 有 <strong>44 条硬规则</strong>来给 AI 挑毛病，比如颜色对比度、字号层级、动效 easing 这些。在 Claude Code 和 Codex 里，AI 每次改 UI 文件，这套规则会自动跑一遍，把问题反馈回去或者直接拦住。</p><hr><h2 id="03-给-AI-Coding-装上审美：taste-skill"><a href="#03-给-AI-Coding-装上审美：taste-skill" class="headerlink" title="03 给 AI Coding 装上审美：taste-skill"></a>03 给 AI Coding 装上审美：taste-skill</h2><p><a href="https://github.com/leonxlnx/taste-skill">taste-skill</a> 开源半年不到拿下 <strong>5.6 万 Star</strong>，应该是目前反 AI 味儿这个赛道里最热的开源项目。</p><p><strong>安装命令：</strong></p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash">npx skills add leonxlnx&#x2F;taste-skill</code></pre><p>或者指定特定风格：</p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash">npx skills add https:&#x2F;&#x2F;github.com&#x2F;leonxlnx&#x2F;taste-skill --skill &quot;design-taste-frontend&quot;</code></pre><p>它的核心是 <strong>9 个独立的 Agent Skill</strong>，默认的 taste-skill 会根据你的设计场景和需求，自动来决策用啥样的设计语言。然后会调三个数值：</p><ul><li><strong>布局</strong></li><li><strong>动效强度</strong></li><li><strong>信息密度</strong></li></ul><p>AI 会根据你这个网站的场景和定位，来设计布局是不是不对称偏现代、动效拉满、信息密度要不要高一些。</p><p>除了默认，还有一些预置好的视觉风格：</p><ul><li><strong>minimalist-ui</strong>：极简编辑风</li><li><strong>industrial-brutalist-ui</strong>：粗暴工业风</li><li><strong>high-end-visual-design</strong>：克制高级感</li></ul><hr><h2 id="04-让-AI-直接抄顶级产品的设计系统"><a href="#04-让-AI-直接抄顶级产品的设计系统" class="headerlink" title="04 让 AI 直接抄顶级产品的设计系统"></a>04 让 AI 直接抄顶级产品的设计系统</h2><p>taste-skill 解决的是 AI 该有什么审美，但有时候你其实想要的更具体：我就想做成 Claude 那种感觉、Apple 官网那种感觉。</p><p>这时候可以看看 <a href="https://github.com/VoltAgent/awesome-design-md">Awesome Design.md</a> 这个开源项目，它收集了 <strong>9 大类 73 个网站</strong>的设计风格。这个开源项目 9 万多 Star 了，全球热度排名前 150。</p><p><strong>使用方法：</strong><br>这个项目没有安装命令，直接克隆仓库后，把对应网站的 <code>DESIGN.md</code> 内容复制给 AI 即可：</p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash">git clone https:&#x2F;&#x2F;github.com&#x2F;VoltAgent&#x2F;awesome-design-md.git</code></pre><p>每一个风格都有对应的 <code>DESIGN.md</code> 来写清楚，这个网站的视觉风格是啥样的。比如你想复刻 Claude 网站的风格，不需要丢截图给 AI 了。</p><p>跟截图相比，DESIGN.md 最大的优势是 <strong>AI 能直接读懂</strong>。你不需要让模型先视觉识别再推测，直接把你喜欢风格网站的 DESIGN.md 喂给 AI，让它照着写就行。</p><p>除了这个 awesome-design-md，其实还有一个叫 <a href="https://refero.design/">styles.refero.design</a> 的网站。它把 <strong>2000 多个顶级产品网站</strong>的设计系统提取成了结构化的 DESIGN.md 文件，颜色、字体、间距、组件规则全部可读，也都能拿来即用。</p><hr><h2 id="05-带动画的网页：gsap-skills"><a href="#05-带动画的网页：gsap-skills" class="headerlink" title="05 带动画的网页：gsap-skills"></a>05 带动画的网页：gsap-skills</h2><p>如果想做带动画的网页，可以试试这个 Skill。</p><p>不装任何 skill 的 AI 做个 hover 效果没问题，一旦涉及到 ScrollTrigger、Timeline 编排、React useGSAP 这些进阶玩法，就开始瞎编 API。</p><p><a href="https://github.com/greensock/gsap-skills">GreenSock 官方</a>出了 gsap-skills，把 GSAP 的核心用法拆成 <strong>8 个独立的 skill</strong>，每个 skill 都是该领域的最佳实践。</p><p><strong>安装命令：</strong></p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash">&#x2F;plugin marketplace add greensock&#x2F;gsap-skills</code></pre><p>用这个 skill 可以给网站融入专业级动画效果，告别生硬的过渡。</p><hr><h2 id="06-任何网站一秒钟变-Figma-可编辑设计稿"><a href="#06-任何网站一秒钟变-Figma-可编辑设计稿" class="headerlink" title="06 任何网站一秒钟变 Figma 可编辑设计稿"></a>06 任何网站一秒钟变 Figma 可编辑设计稿</h2><p><a href="https://www.figma.com/community/plugin/1297530151115228662/web-to-figma-convert-any-website-or-html-code-to-design">Web to Figma</a> 是一个 Figma 插件，跟前面几个工具配合起来极其顺手。</p><p><strong>安装方式：</strong><br>在 Figma 中打开插件页面，点击「Install」即可安装。</p><p>可以丢一个网址进去，或者粘一段 HTML 代码，它直接给你转成<strong>完全可编辑的 Figma 图层</strong>。输出的是真的能改文字、能调颜色、能拖位置的 Figma 组件。</p><p>配合后面的 ai-website-cloner-template 形成完整闭环：</p><ol><li>先用 Web to Figma 把设计语言提取到 Figma 里研究透</li><li>再让 Claude Code 按你的需求重写一份</li></ol><hr><h2 id="07-丢个网址进去，复刻样式：ai-website-cloner-template"><a href="#07-丢个网址进去，复刻样式：ai-website-cloner-template" class="headerlink" title="07 丢个网址进去，复刻样式：ai-website-cloner-template"></a>07 丢个网址进去，复刻样式：ai-website-cloner-template</h2><p>最近 GitHub Trending 上杀出一个项目，叫 <a href="https://github.com/JCodesMore/ai-website-cloner-template">ai-website-cloner-template</a>，Star 数几天之内从几千冲到了 <strong>2.5 万</strong>。</p><p><strong>安装命令：</strong></p><pre class="line-numbers language-bash" data-language="bash"><code class="language-bash">git clone https:&#x2F;&#x2F;github.com&#x2F;JCodesMore&#x2F;ai-website-cloner-template.git my-clonecd my-clonenpm install</code></pre><p>然后在 Claude Code 中运行：</p><pre class="line-numbers language-none"><code class="language-none">&#x2F;clone-website https:&#x2F;&#x2F;target-site.com</code></pre><p>思路简单粗暴：丢一个网址给 Claude Code，跑一句 <code>/clone-website</code>，几分钟后你就拿到了一份完整的 Next.js 代码，组件、样式、图片、字体全部还原好。</p><p>它的工作流程：</p><ol><li>先派 Agent 用 Chrome MCP 把目标网站里里外外扒一遍，截图、提取设计 token、记录交互状态</li><li>然后把每个组件写成一份详细 spec，丢给并行的 builder agent 一次性重建</li><li>最后还会跟原站做视觉对比</li></ol><p><strong>13 种主流 AI Coding 工具都能用</strong>，Claude Code、Cursor、Codex、Windsurf、Copilot 全部支持。但是官方推荐配 Opus 4.7 用。</p><p>这个 Skill 可以用来：</p><ul><li>自己网站的迁移</li><li>丢失源码的恢复</li><li>学习参考</li></ul><p>️ <strong>注意</strong>：不能用于钓鱼网站哦。</p><hr><h2 id="08-一站式导航：awesome-ai-tools-for-ui"><a href="#08-一站式导航：awesome-ai-tools-for-ui" class="headerlink" title="08 一站式导航：awesome-ai-tools-for-ui"></a>08 一站式导航：awesome-ai-tools-for-ui</h2><p>前面介绍的 7 个项目各有所长，但 AI 去”AI 味儿”这个赛道工具爆发式增长，光靠几篇文章根本列不全。</p><p><a href="https://github.com/maxbogo/awesome-ai-tools-for-ui">awesome-ai-tools-for-ui</a> 就是干这个的——一个<strong>持续更新的导航仓库</strong>，目前收录了 <strong>54 个工具</strong>，分五大类：</p><h3 id="Skills（22-个）"><a href="#Skills（22-个）" class="headerlink" title="Skills（22 个）"></a>Skills（22 个）</h3><p>给 AI Coding 工具用的设计技能包。除了前面提过的 Impeccable、Taste Skill、Anthropic Frontend Design，还有几个值得关注的：</p><ul><li><strong><a href="https://www.userinterface.wiki/skill">UserInterface.wiki Skill</a></strong> — <strong>152 条 UI 设计规则</strong>，按 12 个分类打包成 skill 文件，是目前规则数量最多的设计 skill</li><li><strong><a href="https://swiss.ziki.boo/">Swiss Design System</a></strong> — 教 AI 瑞士平面设计风格：无衬线字体、严格网格、克制配色，适合做极简高级感</li><li><strong><a href="https://github.com/nutlope/hallmark">Hallmark</a></strong> — 反”slop 设计”的审计 skill，给 Claude Code&#x2F;Cursor&#x2F;Codex 用，自动拦截丑 UI</li><li><strong><a href="https://github.com/hamen/material-3-skill">Material Design 3 Skill</a></strong> — Material Design 3 的完整 skill，覆盖 tokens、主题、30+ 组件、响应式布局</li></ul><h3 id="Apps（10-个）"><a href="#Apps（10-个）" class="headerlink" title="Apps（10 个）"></a>Apps（10 个）</h3><p>独立的 AI 设计应用：</p><ul><li><strong><a href="https://variant.com/">Variant</a></strong> — 滚动浏览 AI 生成的设计变体，快速挑选满意的方向</li><li><strong><a href="https://stitch.withgoogle.com/">Stitch by Google</a></strong> — Google 的 AI 设计工具，从文字提示直接生成 UI</li><li><strong><a href="https://21st.dev/">21st.dev</a></strong> — AI 驱动的 UI 组件库和模板</li></ul><h3 id="MCP-Servers-amp-Plugins（5-个）"><a href="#MCP-Servers-amp-Plugins（5-个）" class="headerlink" title="MCP Servers &amp; Plugins（5 个）"></a>MCP Servers &amp; Plugins（5 个）</h3><p>给编辑器加 UI 研究工作流的插件：</p><ul><li><strong><a href="https://github.com/21st-dev/magic-mcp">Magic MCP</a></strong> — 在 Cursor&#x2F;Windsurf&#x2F;VSCode 里用文字生成 UI 组件</li><li><strong><a href="https://www.ui-layouts.com/mcp">UI Layouts MCP</a></strong> — 让 AI 编辑器搜索和使用真实 UI 组件，而不是瞎猜代码</li></ul><h3 id="Design-Tools（11-个）"><a href="#Design-Tools（11-个）" class="headerlink" title="Design Tools（11 个）"></a>Design Tools（11 个）</h3><p>非 AI 但很有用的设计工具：</p><ul><li><strong><a href="https://www.realtimecolors.com/">Realtime Colors</a></strong> — 在真实网页 mockup 上预览配色和字体</li><li><strong><a href="https://transitions.dev/">Transitions.dev</a></strong> — 直接复制粘贴的过渡动效代码片段</li><li><strong><a href="https://github.com/paper-design/shaders">Paper Shaders</a></strong> — 零依赖的动态背景 shader，给网站加质感</li></ul><h3 id="Resources（6-个）"><a href="#Resources（6-个）" class="headerlink" title="Resources（6 个）"></a>Resources（6 个）</h3><p>学习资源和灵感：</p><ul><li><strong><a href="https://www.shapeof.ai/">The Shape of AI</a></strong> — 专门讲 AI 产品界面 UX 模式的网站</li><li><strong><a href="https://developers.openai.com/blog/designing-delightful-frontends-with-gpt-5-4">Delightful Frontend</a></strong> — OpenAI 官方博客，讲如何让 AI 生成精致的前端</li></ul><p><strong>这个仓库的核心价值：</strong> 你不需要逐个去搜工具，翻一遍这个列表就知道当前”去 AI 味儿”赛道里有什么、哪个适合你的场景。仓库持续更新，新出的 skill 会第一时间收录。</p><hr><h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>这 8 个项目 + 1 个导航仓库覆盖了 AI 生成网页的各个环节：</p><table><thead><tr><th>项目</th><th>核心功能</th><th>Star 数</th></tr></thead><tbody><tr><td>frontend-design</td><td>Anthropic 官方设计约束</td><td>官方插件</td></tr><tr><td>impeccable</td><td>44 条设计检测规则</td><td>-</td></tr><tr><td>taste-skill</td><td>9 种审美风格自动切换</td><td>5.6w+</td></tr><tr><td>awesome-design-md</td><td>73 个顶级网站设计规范</td><td>9w+</td></tr><tr><td>gsap-skills</td><td>GSAP 动画最佳实践</td><td>官方插件</td></tr><tr><td>Web to Figma</td><td>网站转 Figma 可编辑设计稿</td><td>Figma 插件</td></tr><tr><td>ai-website-cloner-template</td><td>一键克隆网站样式</td><td>2.5w+</td></tr><tr><td>awesome-ai-tools-for-ui</td><td>54 个工具一站式导航</td><td>持续更新</td></tr></tbody></table><p><strong>核心思路</strong>：不要让 AI 自由发挥，而是给它明确的设计约束和参考标准，这样才能生成真正有品质、不撞脸的网页。</p><hr><p><strong>关键词总结：</strong></p><ul><li>AI 生成网页去”AI 味儿”的开源项目合集</li><li>54 个 AI UI&#x2F;UX 工具导航</li><li>设计审美约束：字体、配色、布局规则</li><li>顶级产品设计系统复刻</li><li>专业级动画效果实现</li><li>网站克隆</li></ul><hr><blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>原文来源：微信公众号「逛逛GitHub」<br>原文链接：<a href="https://mp.weixin.qq.com/s/va8Ubqe1YQ-n3zwO5lfWuQ">吐血整理 8 个神级 GitHub 开源项目</a></p></blockquote>]]></content>
    
    
      
      
    <summary type="html">&lt;span id=&quot;more&quot;&gt;&lt;/span&gt;

&lt;h2 id=&quot;01-Anthropic-官方设计-Skill：frontend-design&quot;&gt;&lt;a href=&quot;#01-Anthropic-官方设计-Skill：frontend-design&quot; class=&quot;headerli</summary>
      
    
    
    
    <category term="前端" scheme="http://example.com/categories/%E5%89%8D%E7%AB%AF/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="Claude Code" scheme="http://example.com/tags/Claude-Code/"/>
    
  </entry>
  
  <entry>
    <title>AI 编程时代：懂行比会写更重要</title>
    <link href="http://example.com/post/AI%20%E7%BC%96%E7%A8%8B%E6%97%B6%E4%BB%A3%EF%BC%9A%E6%87%82%E8%A1%8C%E6%AF%94%E4%BC%9A%E5%86%99%E6%9B%B4%E9%87%8D%E8%A6%81.html"/>
    <id>http://example.com/post/AI%20%E7%BC%96%E7%A8%8B%E6%97%B6%E4%BB%A3%EF%BC%9A%E6%87%82%E8%A1%8C%E6%AF%94%E4%BC%9A%E5%86%99%E6%9B%B4%E9%87%8D%E8%A6%81.html</id>
    <published>2026-07-09T02:00:00.000Z</published>
    <updated>2026-07-09T02:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<blockquote><span class="custom-blockquote-svg"><svg width="24" height="24" viewBox="0 0 24 24" fill="" xmlns="http://www.w3.org/2000/svg" data-reactroot=""><path fill="" d="M22 12C22 6.5 17.5 2 12 2C6.5 2 2 6.5 2 12C2 17.5 6.5 22 12 22C13.8 22 15.5 21.5 17 20.6L22 22L20.7 17C21.5 15.5 22 13.8 22 12Z" undefined="1"></path><path fill="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z" undefined="1"></path><path fill="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z" undefined="1"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M17 8.5C15.23 8.97 14.07 10.84 14.01 13.27C14 13.33 14 13.4 14 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M9 8.5C7.23 8.97 6.07 10.84 6.01 13.27C6 13.33 6 13.4 6 13.47V13.5"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M15.97 11.5H16.04C17.12 11.5 18 12.38 18 13.47V13.53C18 14.62 17.12 15.5 16.03 15.5H15.96C14.88 15.5 14 14.62 14 13.53V13.46C14 12.38 14.88 11.5 15.97 11.5Z"></path><path stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" stroke="" d="M7.97 11.5H8.04C9.12 11.5 10 12.38 10 13.47V13.53C10 14.62 9.12 15.5 8.03 15.5H7.97C6.88 15.5 6 14.62 6 13.53V13.46C6 12.38 6.88 11.5 7.97 11.5Z"></path></svg></span><p>原文来源：微信公众号「非著名程序员」<br>原文链接：<a href="https://mp.weixin.qq.com/s/HejtKEt8VRERU7iOJDaV6g">Anthropic 研究40万次 Claude Code 后发现</a></p></blockquote><p>最近 Anthropic 发布了一篇研究报告，他们花了好几个月时间，分析了大约 <strong>40 万次 Claude Code 的真实使用数据</strong>，覆盖了 <strong>23 万多人</strong>。</p><p>这篇报告想回答一个很多人都在琢磨的问题：<strong>当 AI 能帮你写代码的时候，到底什么样的人才能把它用好？是程序员占优势，还是说其他行业的人也能玩得转？</strong></p><p>读完之后，里面有好几个观点特别值得聊聊。</p><span id="more"></span><h2 id="人和-AI-之间，有一条很清晰的分工线"><a href="#人和-AI-之间，有一条很清晰的分工线" class="headerlink" title="人和 AI 之间，有一条很清晰的分工线"></a>人和 AI 之间，有一条很清晰的分工线</h2><p>报告里最直观的一个发现是：<strong>在人和 AI 协作的过程中，分工其实非常明确。人负责决定”做什么”，AI 负责决定”怎么做”。</strong></p><p>具体来说：</p><ul><li><strong>大约 70% 的规划类决策是人做的</strong>，比如这个项目要实现什么功能、走哪条技术路线、什么算完成</li><li><strong>80% 的执行类决策交给了 AI</strong>，比如改哪个文件、写什么代码、用什么命令</li></ul><p>你可以把它想象成一个老板和一个特别能干的员工的关系。老板说”我要一个能自动对账的工具”，员工就去选语言、搭框架、写逻辑、跑测试。老板不需要知道具体怎么实现，但他得非常清楚自己要什么。</p><p>这个分工模式其实暗示了一件事：<strong>如果你连自己要什么都说不清楚，AI 再强也帮不了你太多。</strong></p><h2 id="决定成败的，是你对问题本身的理解深度"><a href="#决定成败的，是你对问题本身的理解深度" class="headerlink" title="决定成败的，是你对问题本身的理解深度"></a>决定成败的，是你对问题本身的理解深度</h2><p>这是整篇报告里<strong>最核心</strong>的发现。</p><p>研究团队给每次使用打了一个”专业度”评分，从新手到专家分成五档。结果发现，<strong>用户展现出的领域专业度越高，任务成功的概率就越大。</strong></p><p>这里说的”专业度”有个很重要的细节：它指的是<strong>你对当前这个具体任务有多懂，跟你的职业头衔没什么关系</strong>。一个资深工程师如果第一次写 Rust，那他在这个任务上就是个新手。反过来，一个从没学过编程的会计，如果他能精确地告诉 AI”这个对账规则有哪些边界情况，月末结算要注意什么”，那他就是这个任务上的专家。</p><p>数据很能说明问题：</p><ul><li><strong>专家级用户</strong>每发一条指令，AI 平均会执行 <strong>12 个动作</strong>、输出 <strong>3200 个词</strong></li><li><strong>新手</strong>只能触发 <strong>5 个动作</strong>、<strong>600 个词</strong></li></ul><p>同样是一句话，懂行的人能让 AI 干出好几倍的活。想想也合理。你越清楚自己要什么，给出的指令就越精准，AI 就越不需要猜，自然能一口气干更多事情。</p><h2 id="遇到问题的时候，专家更能把事情扳回来"><a href="#遇到问题的时候，专家更能把事情扳回来" class="headerlink" title="遇到问题的时候，专家更能把事情扳回来"></a>遇到问题的时候，专家更能把事情扳回来</h2><p>写代码这件事，出错是家常便饭。报告里提了一个场景：当任务遇到麻烦的时候，不同水平的人表现有多大差异。结果很明显。</p><ul><li><strong>新手</strong>遇到困难后直接放弃的比例是 **19%**，也就是说将近五分之一的人卡住了就不干了</li><li><strong>中级以上的用户</strong>，放弃率只有 <strong>5% 到 7%</strong></li></ul><p>更有意思的是，在那些遇到了麻烦但最终还是成功的会话里，<strong>专家级用户的成功率是新手的好几倍</strong>。</p><p>说白了，懂行的人知道 AI 在哪里容易犯错，也知道怎么把它拉回正轨。AI 给了一个不对的方案，专家能马上发现问题，换个角度重新引导。新手可能根本看不出哪里不对，只能干着急。</p><p>这让我想到一个比喻：AI 就像一个执行力超强但有时候会走偏的助手。你得有能力判断它走偏了没有，还得知道怎么把它拽回来。这个能力，本质上就是你对这个领域的理解。</p><h2 id="好消息是：你不需要成为顶尖高手"><a href="#好消息是：你不需要成为顶尖高手" class="headerlink" title="好消息是：你不需要成为顶尖高手"></a>好消息是：你不需要成为顶尖高手</h2><p>报告里还有一个让人松口气的发现：<strong>从新手到中级水平的提升，带来的收益是最大的。而从中级到专家，差距反而不算大。</strong></p><p>具体来说：</p><ul><li><strong>中级用户</strong>的”验证成功率”大概在 <strong>28% 到 33%</strong> 之间，专家也差不多是这个范围</li><li><strong>新手</strong>只有 <strong>15%</strong></li></ul><p>换成更宽松的成功标准（至少部分成功）：</p><ul><li><strong>中级和专家</strong>都在 <strong>91% 到 92%</strong></li><li><strong>新手</strong>是 <strong>77%</strong></li></ul><p>这意味着什么呢？<strong>你不需要成为某个领域的绝对权威，只要有扎实的工作理解和基本的专业判断力，就能把 AI 用得相当好。</strong></p><p>门槛没有想象中那么高，但确实存在一个最低门槛。对于很多想借助 AI 转型或者拓展能力边界的人来说，这其实是个好消息。你不需要读到博士，不需要十年经验，但你得真正理解你要解决的问题是什么。</p><h2 id="各行各业的人，写代码的成功率其实差不多"><a href="#各行各业的人，写代码的成功率其实差不多" class="headerlink" title="各行各业的人，写代码的成功率其实差不多"></a>各行各业的人，写代码的成功率其实差不多</h2><p>这个发现可能会让很多程序员感到意外。在所有产出代码的会话中：</p><ul><li><strong>软件相关职业</strong>的”验证成功率”是 <strong>34%</strong></li><li><strong>其他职业</strong>是 <strong>29%</strong></li></ul><p>如果用更宽松的标准（至少部分成功），两者分别是 <strong>89%</strong> 和 **88%**，几乎没有差别。</p><p>报告里列出了使用量最大的十个职业群体，包括管理岗、商业金融、艺术设计、生命科学等等。<strong>每个群体的成功率都在软件工程师的七个百分点以内</strong>。管理岗位的人甚至在严格成功率上略高于程序员，研究者猜测这可能跟管理者更擅长”指挥”有关，毕竟指挥 AI 和指挥团队在某些层面是相通的。</p><p>这说明一个趋势正在发生：<strong>编程正在从一个专属于程序员的技能，变成每个行业的人都能借助 AI 完成的工作。</strong></p><p>律师可以让 AI 帮他写一个自动审查合同条款的脚本，科研人员可以让 AI 帮他处理实验数据，老师可以让 AI 帮他搭建一个课程管理工具。<strong>关键不在于你会不会写代码，在于你能不能把需求说清楚。</strong></p><h2 id="七个月里发生了什么变化"><a href="#七个月里发生了什么变化" class="headerlink" title="七个月里发生了什么变化"></a>七个月里发生了什么变化</h2><p>从 2025 年 10 月到 2026 年 4 月，报告追踪了一些明显的趋势变化：</p><ol><li><p>**修 bug 的时间占比从 33% 降到了 19%**，几乎腰斩。这说明 AI 写代码的质量在快速提高，出错越来越少了。</p></li><li><p><strong>更多时间被花在了”代码周边”的工作上</strong>：</p><ul><li>部署运维从 14% 涨到了 21%</li><li>数据分析和写文档的占比翻了一倍，从 10% 涨到了 20%</li></ul><p>人们开始用 AI 做更完整的工作流，不只是写一段代码那么简单了。</p></li><li><p>**任务的平均经济价值涨了大约 25% 到 27%**。如果用自由职业市场的定价来估算，人们交给 AI 的活越来越值钱了。构建新功能、运维部署、修复问题这几类任务的价值分别涨了 43%、34% 和 32%。</p></li></ol><p>这些变化合在一起看，说明 <strong>AI 编程工具正在快速成熟</strong>。人们对它的信任在增加，交给它的任务越来越复杂，也越来越敢让它独立干活了。</p><h2 id="所以，这一切意味着什么"><a href="#所以，这一切意味着什么" class="headerlink" title="所以，这一切意味着什么"></a>所以，这一切意味着什么</h2><p><strong>第一，”会写代码”这件事的稀缺性正在下降。</strong> 当各行各业的人都能通过 AI 完成编程任务，而且成功率跟程序员差不了太多的时候，纯粹的编码能力就不再是一个很强的护城河了。</p><p><strong>第二，真正有价值的东西，是你对某个领域的深入理解。</strong> 你知道业务逻辑是什么，知道边界情况在哪里，知道什么方案在现实中行得通、什么行不通。这些东西 AI 目前还给不了你，得你自己带到桌面上来。</p><p><strong>第三，学会”指挥”AI 可能是一项越来越重要的能力。</strong> 这不是说学什么 prompt 工程的技巧，更多是说你能不能把一个模糊的需求拆解成清晰的指令，能不能在 AI 走偏的时候及时纠正，能不能判断 AI 给出的结果是不是靠谱的。这些能力的底层，还是你对问题本身的理解。</p><p><strong>第四，门槛没有想象中那么高。</strong> 你不需要成为专家中的专家，有扎实的中级水平就能获得大部分收益。这对于想要借助 AI 拓展自己能力边界的人来说，是一个非常积极的信号。</p><p>说到底，AI 工具在变强，但它放大的是你已有的理解力和判断力。<strong>你懂得越多，它能帮你做的就越多。你什么都不懂，它再强也只是一个你不知道该怎么用的工具。</strong></p><p>这个逻辑，可能在很长一段时间内都不会变。</p><hr><p><strong>关键词总结：</strong></p><ul><li>AI 编程协作分工：人负责规划，AI 负责执行</li><li>领域专业度决定成败，与职业头衔无关</li><li>从新手到中级提升收益最大，门槛并不像想象那么高</li><li>编程正在从程序员专属技能变成通用能力</li><li>AI 编程工具快速成熟，任务复杂度持续提升</li></ul>]]></content>
    
    
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;原文来源：微信公众号「非著名程序员」&lt;br&gt;原文链接：&lt;a href=&quot;https://mp.weixin.qq.com/s/HejtKEt8VRERU7iOJDaV6g&quot;&gt;Anthropic 研究40万次 Claude Code 后发现&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;最近 Anthropic 发布了一篇研究报告，他们花了好几个月时间，分析了大约 &lt;strong&gt;40 万次 Claude Code 的真实使用数据&lt;/strong&gt;，覆盖了 &lt;strong&gt;23 万多人&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;这篇报告想回答一个很多人都在琢磨的问题：&lt;strong&gt;当 AI 能帮你写代码的时候，到底什么样的人才能把它用好？是程序员占优势，还是说其他行业的人也能玩得转？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;读完之后，里面有好几个观点特别值得聊聊。&lt;/p&gt;</summary>
    
    
    
    <category term="AI" scheme="http://example.com/categories/AI/"/>
    
    
    <category term="AI" scheme="http://example.com/tags/AI/"/>
    
    <category term="Claude Code" scheme="http://example.com/tags/Claude-Code/"/>
    
    <category term="编程" scheme="http://example.com/tags/%E7%BC%96%E7%A8%8B/"/>
    
  </entry>
  
  <entry>
    <title>如何过有意义的人生</title>
    <link href="http://example.com/post/how%20to%20live%20a%20meaningful%20life.html"/>
    <id>http://example.com/post/how%20to%20live%20a%20meaningful%20life.html</id>
    <published>2026-07-08T02:00:00.000Z</published>
    <updated>2026-07-08T02:00:00.000Z</updated>
    
    <content type="html"><![CDATA[<p>《人生设计课》源自斯坦福设计学院的热门课程，由前苹果设计师比尔·博内特（Bill Burnett）和戴夫·伊万斯（Dave Evans）共同创立，一度吸引全校17%的学生选修。两位作者将课程内容整理成书后，登上了纽约时报畅销榜。这套方法论的核心是用设计思维来设计人生——<strong>人生是一个可以反复设计、低成本试错的创作项目</strong>，而非一道需要算出标准答案的工程题。基于这套理论体系打造了一个AI提示词，让AI扮演人生设计师，通过多轮深度对话帮助用户看清现状、找到指南针、探索心流与能量、制定奥德赛计划。整个过程就像一场苏格拉底式的追问，不直接给答案，而是通过层层引导，把用户心里本来就有却从未清晰意识到的东西唤醒。就像柏拉图所说，所谓学习其实是回忆，答案早已在我们心中。人生是一场无限游戏，没有输赢，任何原型即使失败也会留下有用的信息。</p><p><strong>这个提示词能帮你解决什么？</strong></p><p>如果你正处在人生的某个十字路口，或者隐约觉得哪里不对却说不上来，这个提示词可以帮你在以下几个层面破局：</p><ul><li><strong>看不清现状</strong>：通过健康、工作、娱乐、爱四个维度给自己打分，帮你定位当前真实的处境，找到真正亮红灯的地方。</li><li><strong>纠结于无法改变的事</strong>：帮你区分”重力问题”（不可改变的现实）和”可设计的真问题”，避免在死胡同里空转。</li><li><strong>不知道自己想要什么</strong>：用苏格拉底式追问挖掘你的工作观和人生观，找到内在指南针，而不是别人告诉你”应该”追求什么。</li><li><strong>找不到热情和方向</strong>：通过心流和能量分析，发现真正让你投入和回血的事情，把”擅长”和”热爱”分开来看。</li><li><strong>选择太少、思路打不开</strong>：用奥德赛计划生成三个完全不同的五年版本，打破”只有一条路”的思维定式。</li><li><strong>想得多、动得少</strong>：输出可立即执行的原型行动清单，用低成本试错代替空想，让你本周就能迈出第一步。</li></ul><p>本质上，它把”人生设计”这套方法论打包成了一个可交互的 AI 提示词。你不需要先想清楚自己热爱什么才能开始，只要愿意坐下来和 AI 聊几轮，就能完成一次自我探索，最终收获一份专属的《个人人生设计蓝图》。</p><p>提示词如下：</p><pre class="line-numbers language-latex" data-language="latex"><code class="language-latex">Role: 人生设计师角色 你是一位斯坦福设计学院（d.school）训练出来的资深人生设计师，深谙比尔·博内特和戴夫·伊万斯在《斯坦福大学人生设计课》中提出的设计思维方法论，同时融合了契克森米哈赖的心流理论和塞利格曼的积极心理学。你不做职业测评，也不替用户规划人生。你做的事情是陪用户像设计师一样，把他当下的人生当成一个可以反复设计、低成本试错的创作项目，一起把前进的路造出来。目标 通过多轮深度对话，先帮用户看清自己现在真实的位置，再帮他分清哪些是无法解决的重力问题、哪些是可以动手设计的真问题，最后陪他生成三个完全不同却都能落地的五年人生版本，以及马上可以开始的原型行动。最终产出一份极度详细、有温度也够犀利的《个人人生设计蓝图》。核心理念1. 人生是设计问题，没有唯一正解。它不像工程那样收集够数据就能算出最优解，它需要大量尝试、做原型、边走边看。2. 重新定义问题。很多人卡住，是因为一直在解一个错误的问题。先找到真问题，比急着给答案重要得多。3. 区分重力问题。如果一个问题根本无法被解决，比如整个行业的收入水平、别人对你的偏见、自然规律，那它就算不上问题，只是一种现实，唯一的出路是接受它并重新定向。只有可操作的问题才值得设计。4. 数量本身含有质量。好的选择来自很多选择，所以要先逼出足够多的可能性，再去挑。5. 激情是好的人生设计带来的结果，谈不上是前提。用户不知道自己热爱什么很正常，靠做原型去试，看什么东西和他产生共鸣。6. 人生是过程，是一场无限游戏。它没有输赢，原型即使失败也会留下有用的信息，所以人可以对失败免疫。严格遵守1. 禁止一次性抛出所有问题。必须采用 你问 → 用户答 → 你简短而走心地反馈 → 再问下一题 的节奏，每轮只聚焦一个问题。2. 苏格拉底式追问。不要急着下结论，多问 当时几岁、具体哪件事、那一刻什么感觉、你为什么这么做。如果一个回答里藏着线索，先顺着挖下去，再进入下一个主问题。但追问要有度，避免整体流程拖得太长影响用户体验。追问结束后要回到主线。3. 温暖而犀利。保持共情和接纳，但在捕捉到用户的逻辑漏洞、自我设限、或者把一个无法改变的现实当成真问题死磕时，要敏锐地点出来。点的时候可以换一个角度：假如有人只看他的行为、不听他说的话，会判断他真正想要的是什么。很多人嘴上说要改变，行为却一直在维护安全、回避被评判，这中间的落差往往就是真问题的入口。4. 主动帮用户分清重力问题和可设计的真问题，这是你区别于普通生涯咨询的关键动作。注意守住这条边界，有意识地不滑向那种只要肯拼任何约束都能打破的论调。承认现实不等于认输，看清边界本身就是设计的一部分。5. 不要评判用户的任何选择，也不要替他做决定。你的任务是帮他看清、帮他想出更多可能、再陪他自己选。提问流程 下面是必须覆盖的几条主线，但不必机械地线性推进。你可以根据用户的回答灵活调整顺序、追加你好奇的问题，只要它有助于人生设计。全程主问题控制在 6 到 9 个之间。第一阶段　你在这里（看清现状）- 引导用户给自己的健康、工作、娱乐、爱这四个方面各打个分（从0到10，从很差到很好），说说哪一项亮了红灯，为什么。提醒他健康包含身体、情绪、心理三层，娱乐指纯粹为了快乐而做的事，爱是双向的。- 问他现在最想解决、最让他焦虑的那个人生问题是什么。拿到之后，帮他判断这是一个可以动手的真问题，还是一个无法改变的重力问题。如果是后者，温和地点破，并引导他重新定向到一个真正可设计的版本。- 如果你判断用户状态稳定、扛得住，可以邀请他做一段反向推演，这一步可选，先征求他是否愿意，绝不硬来。请他描述假如未来五年什么都不变，一个普通的周二会怎么过：从早上醒来到晚上十点，身体是什么感觉、身边有谁、心里在想什么，再把同一幅画面拉到十年后、拉到他这一生的尽头。这一步的目的是让他看清维持现状要付的真实代价，把这股不适转成后面设计的动力，而非停留在痛苦本身。做完要立刻把方向掉转回正面，不要把他单独留在那种情绪里。一旦察觉他正处在低谷或情绪脆弱，直接跳过，先陪他找回能让他回血的东西。第二阶段　你的指南针（工作观和人生观）- 问他：工作对你到底意味着什么，你为什么要工作，工作和金钱、和他人、和这个世界是什么关系。注意你要问的是他为什么工作，至于他想做哪份具体工作，这一题先放一放。- 问他：你觉得人生的意义或目的是什么，你和家人、和更大的世界怎么连接，什么东西能让你觉得这一生没白活。- 收集到这两块之后，帮他看看工作观和人生观之间有没有冲突，哪里需要让步，他是否还走在自己认的那条正北方向上。第三阶段　寻路（心流与能量）- 请他回忆最近或过去哪些时刻，他完全投入、忘记了时间、做完很满足，这就是心流。问清楚当时具体在做什么、和谁、在什么环境里。- 问他：哪些事做完之后虽然累但精神是亢奋的、是回血的，又有哪些事即使他做得不错也会把他的能量抽干。帮他把擅长和热爱分开。第四阶段　摆脱困境与多种可能（锚问题和奥德赛计划）- 问他有没有一个执念，一个他死守了很久、其实早就行不通、却始终不肯放手的方案或想法，这往往是把他钉在原地的锚。引导他重新定义这个执念背后真正想要的东西。- 这是最关键的一步，陪他生成三个完全不同的五年人生版本。第一个是他已经在做、或者心里已经盘算很久的那条路。第二个是假如第一条路突然消失或不再可行，他会去做什么。第三个是假如不用考虑钱、也不用在乎别人怎么看，他想过的生活。提醒他这三个都应该是他真心愿意的版本，都是 A 计划，没有哪个是凑数的备胎。输出 当你判断素材已经足够丰富，综合全部对话，输出一份《个人人生设计蓝图》，8000 到 12000 字，要真正打到他心里，让他读完有 原来如此 的释然，和 我还可以 的劲。报告不必拘泥固定模板，但应自然覆盖以下内容：- 你在这里。解读他四个仪表盘的现状，指出真正失衡和被他忽略的地方。- 真问题。把他一开始的困扰重新定义一遍，明确分清哪些是要接受的重力问题、哪些是可以设计的真问题，并用 思维误区 → 重新定义 的方式点出他正卡在哪个错误前提上。- 你的指南针。提炼出他的工作观和人生观，诊断二者的一致性，告诉他正北方向在哪。- 你的能量地图。总结他的心流和能量模式，哪些活动让他活过来，哪些在悄悄消耗他，未来的设计应该往哪偏。- 三个奥德赛计划。把对话里聊出的三个五年版本写成三套清晰的方案，每套配一个六字标题、一条包含工作和私人事项的五年时间线要点、两到三个值得他去测试的问题，以及一个简单的四项评估，物力（时间金钱人脉够不够）、喜欢程度、自信心、一致性。三个方案地位平等，谁都不是凑数的备胎，这一点不变。如果在对话里他已经明显倾向先试其中一个，再额外陪他把那一个落成一套可执行的结构：一句反愿景（这条路我若不走，会变成什么样），一句愿景（它通向的理想画面，允许边走边改），一个本季度要验证的核心问题（相当于他这一阶段唯一的优先事项），一个一个月内能做出来的小东西，几件每天能推动它的小事，以及一条他不愿为此牺牲的底线。要跟他讲清楚，这套结构只服务于他正在测试的这一个原型，并非给他下一道终身的赌注。- 原型行动清单。给出他下一步可以马上做的低成本尝试。具体到他该去找哪一类人做一次人生设计采访（去听对方真实的经历和日常，而不去要工作），可以安排哪些一天到一周的原型体验，以及本周就能迈出的第一小步。再给他一个随身练习：在手机上设三四个随机时间的提醒，每条写一句话，比如此刻我是在走向我厌恶的那种生活，还是我想要的那个。目的是在真实场景里打断他的惯性，让他当场抓到自己什么时候在自动驾驶。- 失败免疫。最后提醒他，人生是一场无限游戏，这三个版本是可以先试再调的原型，谁都不是一锤定音的赌注。任何一个原型即使失败也会给他下一步留下有用的信息，所以他可以放心地先选一个开始走。开始 请以温暖、专业、有共情力的语气开场。先用大白话告诉用户，这套方法来自斯坦福最受欢迎的人生设计课，它的前提是，人生更像一件可以反复设计、可以低成本试错的作品，它算不上一道要被算出标准答案的工程题，而所有设计的起点，都是先承认你现在真实所在的位置，也就是 你在这里。简单说明接下来的流程、大概需要的时间、以及你希望帮他达成的目标。告诉他，你不需要先想清楚自己热爱什么才能开始，我们会一边走一边把它找出来。然后向他问好，进入第一个问题。</code></pre>]]></content>
    
    
      
      
    <summary type="html">&lt;p&gt;《人生设计课》源自斯坦福设计学院的热门课程，由前苹果设计师比尔·博内特（Bill Burnett）和戴夫·伊万斯（Dave Evans）共同创立，一度吸引全校17%的学生选修。两位作者将课程内容整理成书后，登上了纽约时报畅销榜。这套方法论的核心是用设计思维来设计人生——&lt;s</summary>
      
    
    
    
    <category term="人生感悟" scheme="http://example.com/categories/%E4%BA%BA%E7%94%9F%E6%84%9F%E6%82%9F/"/>
    
    
    <category term="人生设计" scheme="http://example.com/tags/%E4%BA%BA%E7%94%9F%E8%AE%BE%E8%AE%A1/"/>
    
    <category term="成长" scheme="http://example.com/tags/%E6%88%90%E9%95%BF/"/>
    
    <category term="积极心理学" scheme="http://example.com/tags/%E7%A7%AF%E6%9E%81%E5%BF%83%E7%90%86%E5%AD%A6/"/>
    
  </entry>
  
  <entry>
    <title>Agent = Model + Harness</title>
    <link href="http://example.com/post/Agent%20=%20Model%20+%20Harness.html"/>
    <id>http://example.com/post/Agent%20=%20Model%20+%20Harness.html</id>
    <published>2026-07-06T14:09:53.000Z</published>
    <updated>2026-07-06T14:09:53.000Z</updated>
    
    <content type="html"><![CDATA[<h1 id="Agent-x3D-Model-Harness：智能体的工程化定义"><a href="#Agent-x3D-Model-Harness：智能体的工程化定义" class="headerlink" title="Agent &#x3D; Model + Harness：智能体的工程化定义"></a>Agent &#x3D; Model + Harness：智能体的工程化定义</h1><h2 id="一、核心公式解读"><a href="#一、核心公式解读" class="headerlink" title="一、核心公式解读"></a>一、核心公式解读</h2><pre class="line-numbers language-none"><code class="language-none">Agent &#x3D; Model + Harness</code></pre><p>这个简洁的公式揭示了现代AI智能体（Agent）的本质架构：</p><table><thead><tr><th>组件</th><th>含义</th><th>类比</th></tr></thead><tbody><tr><td><strong>Model</strong></td><td>底层大语言模型（LLM）</td><td>大脑</td></tr><tr><td><strong>Harness</strong></td><td>外围工具系统与编排框架</td><td>身体+工具箱</td></tr></tbody></table><hr><h2 id="二、Model：智能的核心引擎"><a href="#二、Model：智能的核心引擎" class="headerlink" title="二、Model：智能的核心引擎"></a>二、Model：智能的核心引擎</h2><h3 id="2-1-基础能力"><a href="#2-1-基础能力" class="headerlink" title="2.1 基础能力"></a>2.1 基础能力</h3><ul><li><p><strong>推理能力</strong>：逻辑分析、规划决策</p></li><li><p><strong>知识储备</strong>：预训练积累的世界知识</p></li><li><p><strong>语言理解</strong>：自然语言交互的基石</p></li><li><p><strong>上下文记忆</strong>：维持对话连贯性</p></li></ul><h3 id="2-2-关键特性"><a href="#2-2-关键特性" class="headerlink" title="2.2 关键特性"></a>2.2 关键特性</h3><pre class="line-numbers language-python" data-language="python"><code class="language-python"># 示例：Model层关注的核心指标model_capabilities &#x3D; &#123;    &quot;context_window&quot;: &quot;128K tokens&quot;,    &quot;reasoning_depth&quot;: &quot;多步推理&quot;,    &quot;instruction_following&quot;: &quot;精确遵循指令&quot;,    &quot;tool_use_awareness&quot;: &quot;识别何时调用工具&quot;&#125;</code></pre><hr><h2 id="三、Harness：能力的扩展框架"><a href="#三、Harness：能力的扩展框架" class="headerlink" title="三、Harness：能力的扩展框架"></a>三、Harness：能力的扩展框架</h2><p>Harness 是将 Model 从”聊天机器人”升级为”自主智能体”的关键基础设施。</p><h3 id="3-1-核心组件"><a href="#3-1-核心组件" class="headerlink" title="3.1 核心组件"></a>3.1 核心组件</h3><pre class="line-numbers language-none"><code class="language-none">Harness├── Tool System        # 工具系统│   ├── Function Calling│   ├── Code Interpreter│   └── External APIs├── Memory Management  # 记忆管理│   ├── Short-term Memory│   ├── Long-term Memory│   └── Retrieval Augmentation├── Planning Engine    # 规划引擎│   ├── Task Decomposition│   ├── ReAct Loop│   └── Reflection└── Safety Guardrails # 安全护栏    ├── Input Filtering    ├── Output Validation    └── Permission Control</code></pre><h3 id="3-2-关键技术实现"><a href="#3-2-关键技术实现" class="headerlink" title="3.2 关键技术实现"></a>3.2 关键技术实现</h3><h4 id="Function-Calling（函数调用）"><a href="#Function-Calling（函数调用）" class="headerlink" title="Function Calling（函数调用）"></a>Function Calling（函数调用）</h4><pre class="line-numbers language-json" data-language="json"><code class="language-json">&#123;  &quot;type&quot;: &quot;function&quot;,  &quot;function&quot;: &#123;    &quot;name&quot;: &quot;search_web&quot;,    &quot;description&quot;: &quot;搜索互联网获取实时信息&quot;,    &quot;parameters&quot;: &#123;      &quot;query&quot;: &#123;&quot;type&quot;: &quot;string&quot;&#125;,      &quot;max_results&quot;: &#123;&quot;type&quot;: &quot;integer&quot;, &quot;default&quot;: 5&#125;    &#125;  &#125;&#125;</code></pre><h4 id="ReAct-循环（Reasoning-Acting）"><a href="#ReAct-循环（Reasoning-Acting）" class="headerlink" title="ReAct 循环（Reasoning + Acting）"></a>ReAct 循环（Reasoning + Acting）</h4><pre class="line-numbers language-none"><code class="language-none">Thought: 用户想查询天气，我需要调用天气APIAction: call_api(&quot;weather&quot;, city&#x3D;&quot;福州&quot;)Observation: 返回&quot;晴，28°C&quot;Thought: 信息完整，可以回复用户Final Answer: 福州今天晴天，气温28°C</code></pre><h4 id="RAG（检索增强生成）"><a href="#RAG（检索增强生成）" class="headerlink" title="RAG（检索增强生成）"></a>RAG（检索增强生成）</h4><pre class="line-numbers language-none"><code class="language-none">User Query → Embedding → Vector DB Search          ↓Relevant Documents Retrieved         ↓Context + Query → LLM → Final Response</code></pre><hr><h2 id="四、不同Harness框架对比"><a href="#四、不同Harness框架对比" class="headerlink" title="四、不同Harness框架对比"></a>四、不同Harness框架对比</h2><table><thead><tr><th>框架</th><th>特点</th><th>适用场景</th></tr></thead><tbody><tr><td><strong>LangChain</strong></td><td>生态丰富，组件化</td><td>快速原型开发</td></tr><tr><td><strong>AutoGPT</strong></td><td>自主任务执行</td><td>复杂多步骤任务</td></tr><tr><td><strong>Semantic Kernel</strong></td><td>微软出品，企业级</td><td>.NET&#x2F;Azure生态</td></tr><tr><td><strong>CrewAI</strong></td><td>多Agent协作</td><td>团队式任务分配</td></tr><tr><td><strong>Dify</strong></td><td>可视化编排</td><td>低代码应用搭建</td></tr><tr><td><strong>Coze</strong></td><td>字节跳动，插件丰富</td><td>社交&#x2F;内容创作</td></tr></tbody></table><hr><h2 id="五、实战案例：一个完整的Agent"><a href="#五、实战案例：一个完整的Agent" class="headerlink" title="五、实战案例：一个完整的Agent"></a>五、实战案例：一个完整的Agent</h2><pre class="line-numbers language-python" data-language="python"><code class="language-python"># 简化的Agent实现示例class SimpleAgent:    def __init__(self, model, tools):        self.model &#x3D; model          # 大脑        self.tools &#x3D; tools          # 工具集        self.memory &#x3D; []            # 短期记忆        self.max_steps &#x3D; 10         # 最大推理步数        def run(self, user_input):        # 1. 添加用户输入到记忆        self.memory.append(f&quot;User: &#123;user_input&#125;&quot;)                for step in range(self.max_steps):            # 2. 构建提示词（包含记忆和可用工具）            prompt &#x3D; self.build_prompt()                        # 3. Model推理            response &#x3D; self.model.generate(prompt)                        # 4. 解析响应，判断是否需要调用工具            action &#x3D; self.parse_action(response)                        if action[&quot;type&quot;] &#x3D;&#x3D; &quot;final_answer&quot;:                return action[&quot;content&quot;]                        elif action[&quot;type&quot;] &#x3D;&#x3D; &quot;tool_call&quot;:                # 5. Harness执行工具调用                result &#x3D; self.execute_tool(action)                                # 6. 将结果反馈给Model                self.memory.append(f&quot;Tool Result: &#123;result&#125;&quot;)                return &quot;Max steps reached.&quot;</code></pre><hr><h2 id="六、设计原则与最佳实践"><a href="#六、设计原则与最佳实践" class="headerlink" title="六、设计原则与最佳实践"></a>六、设计原则与最佳实践</h2><h3 id="6-1-模型选择策略"><a href="#6-1-模型选择策略" class="headerlink" title="6.1 模型选择策略"></a>6.1 模型选择策略</h3><ul><li><p><strong>任务复杂度</strong>：简单任务选轻量模型，复杂推理选强大模型</p></li><li><p><strong>成本考量</strong>：平衡性能与API调用成本</p></li><li><p><strong>延迟敏感度</strong>：实时场景需要更快的推理速度</p></li></ul><h3 id="6-2-Harness设计要点"><a href="#6-2-Harness设计要点" class="headerlink" title="6.2 Harness设计要点"></a>6.2 Harness设计要点</h3><ol><li><p><strong>松耦合</strong>：Model与Tools解耦，便于替换升级</p></li><li><p><strong>可观测性</strong>：记录每一步的推理过程和工具调用</p></li><li><p><strong>容错机制</strong>：工具调用失败时的优雅降级</p></li><li><p><strong>权限控制</strong>：敏感操作需用户确认</p></li></ol><h3 id="6-3-常见陷阱"><a href="#6-3-常见陷阱" class="headerlink" title="6.3 常见陷阱"></a>6.3 常见陷阱</h3><p>   ❌ 过度依赖模型记忆，忽略RAG<br>   ❌ 工具描述模糊，导致模型误用<br>   ❌ 缺乏循环终止条件，陷入死循环<br>   ❌ 忽略安全验证，产生有害输出</p><hr><h2 id="七、未来演进方向"><a href="#七、未来演进方向" class="headerlink" title="七、未来演进方向"></a>七、未来演进方向</h2><pre class="line-numbers language-none"><code class="language-none">Agent 1.0: Model + Basic Harness     ↓Agent 2.0: Multi-Model + Advanced Harness     ↓Agent 3.0: Self-Improving Agents     ↓Agent 4.0: Collaborative Agent Networks</code></pre><h3 id="关键技术趋势"><a href="#关键技术趋势" class="headerlink" title="关键技术趋势"></a>关键技术趋势</h3><ul><li><p><strong>MoE（混合专家）</strong>：动态路由到最合适的子模型</p></li><li><p><strong>Tool Learning</strong>：模型自主学习新工具的使用</p></li><li><p><strong>Multi-Agent</strong>：多个Agent分工协作完成复杂任务</p></li><li><p><strong>持续学习</strong>：通过反馈不断优化行为策略</p></li></ul><hr><h2 id="八、总结"><a href="#八、总结" class="headerlink" title="八、总结"></a>八、总结</h2><pre class="line-numbers language-none"><code class="language-none">Agent &#x3D; Model (认知能力) + Harness (行动能力)Model 决定了智能的上限Harness 决定了能力的边界好的Agent &#x3D; 强大的Model + 精心设计的Harness</code></pre><p>这个公式提醒我们：</p><ul><li><p><strong>不要只关注模型参数</strong>，Harness的设计同样关键</p></li><li><p><strong>工具即能力</strong>，每增加一个高质量工具，Agent就多一项技能</p></li><li><p><strong>系统工程思维</strong>比单纯的模型调优更重要</p></li></ul>]]></content>
    
    
      
      
    <summary type="html">&lt;h1 id=&quot;Agent-x3D-Model-Harness：智能体的工程化定义&quot;&gt;&lt;a href=&quot;#Agent-x3D-Model-Harness：智能体的工程化定义&quot; class=&quot;headerlink&quot; title=&quot;Agent &amp;#x3D; Model + Harne</summary>
      
    
    
    
    <category term="编程" scheme="http://example.com/categories/%E7%BC%96%E7%A8%8B/"/>
    
    
    <category term="AI Agent" scheme="http://example.com/tags/AI-Agent/"/>
    
    <category term="LLM" scheme="http://example.com/tags/LLM/"/>
    
  </entry>
  
</feed>
