<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Skills | Feisky</title><link>https://feisky.xyz/tags/skills/</link><description>极客时间专栏作者，专注于 Kubernetes、AI Infra、AI Agent 领域的深度技术分享，让 AI 成为你的第二大脑</description><generator>Hugo 0.165.0</generator><language>zh-CN</language><managingEditor>Pengfei Ni</managingEditor><webMaster>Pengfei Ni</webMaster><lastBuildDate>Fri, 14 Aug 2026 12:39:05 +0000</lastBuildDate><atom:link href="https://feisky.xyz/tags/skills/index.xml" rel="self" type="application/rss+xml"/><item><title>终于搞明白 Claude Code 为什么会忽略我的指令了</title><link>https://feisky.xyz/posts/2026-06-23-claude-code-steering/</link><pubDate>Tue, 23 Jun 2026 10:00:00 +0800</pubDate><dc:creator>Pengfei Ni</dc:creator><category>Claude Code</category><category>Anthropic</category><category>AI 编程</category><category>Harness</category><category>Skills</category><category>Hooks</category><guid>https://feisky.xyz/posts/2026-06-23-claude-code-steering/</guid><description>&lt;blockquote&gt;
&lt;p&gt;题记：本文编译自 Anthropic 工程博客《Steering Claude Code: skills, hooks, subagents and more》，原文链接：&lt;a href="https://www.anthropic.com/engineering/claude-code-best-practices"&gt;https://www.anthropic.com/engineering/claude-code-best-practices&lt;/a&gt;。本文在翻译基础上做了整理和补充。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在使用 Claude Code 时，我的 CLAUDE.md 曾经写到几千行。项目规范、参考约定、编码风格、部署流程，还有日常开发中碰到的各种坑，全往里面塞。CLAUDE.md 的内容越来越丰富，Claude Code 也越来越好用。直到有一天我发现 Claude Code 开始选择性忽略某些指令，才反应过来，它的上下文太长了，它已经不能很好地遵循 CLAUDE.md 定义的各种规则了。&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<blockquote><p>题记：本文编译自 Anthropic 工程博客《Steering Claude Code: skills, hooks, subagents and more》，原文链接：<a href="https://www.anthropic.com/engineering/claude-code-best-practices">https://www.anthropic.com/engineering/claude-code-best-practices</a>。本文在翻译基础上做了整理和补充。</p></blockquote><p>在使用 Claude Code 时，我的 CLAUDE.md 曾经写到几千行。项目规范、参考约定、编码风格、部署流程，还有日常开发中碰到的各种坑，全往里面塞。CLAUDE.md 的内容越来越丰富，Claude Code 也越来越好用。直到有一天我发现 Claude Code 开始选择性忽略某些指令，才反应过来，它的上下文太长了，它已经不能很好地遵循 CLAUDE.md 定义的各种规则了。</p><p>你是不是也碰到过类似的情况？明明写了“所有修改必须跑完整 e2e 测试”，结果只跑了一个单元测试就停了，需要你反复提示才执行。</p><p>我在这个问题上卡了很久，一度怀疑是 Claude 模型又降智了，后来才发现根本原因是上下文膨胀。把所有东西都塞进了 CLAUDE.md，这本身就是用错了 AI 工具。</p><p>Anthropic 最近发了一篇官方指南，系统梳理了提示 Claude Code 的 7 种方法和它们的实现原理。我之前踩过的很多坑，根因都是没搞清楚每种方法的加载时机和上下文成本。</p><p>下面是我对这篇指南的编译和解读，每一节加了自己的使用经验。</p><h2 id="claudemd写得越多质量越差">CLAUDE.md：写得越多，质量越差</h2><p>CLAUDE.md 是使用 Claude Code 所必需的第一步，所以也就成了大家最先接触、也是最容易写过头的配置方法。它在 Claude Code 会话启动时就加载，全程驻留在上下文空间中。</p><p>不过这里有个容易忽略的设计：CLAUDE.md 的写法其实分两种。</p><p>第一种，放在项目根目录的 CLAUDE.md 每次会话都加载，压缩后会被重新读取。适合放构建命令、目录结构、团队硬性约定这些 Claude 需要始终知道的信息。</p><p>第二种，子目录的 CLAUDE.md（比如<code>app/api/CLAUDE.md</code>）只在 Claude 读到该目录下的文件时才加载。离开这个目录，这些指令就不在上下文里了。</p><p><img src="/images/2026-06-23-claude-code-steering-claude-md-hierarchy.jpg" alt="CLAUDE.md 层级加载示意" loading="lazy" decoding="async"/></p><p>Anthropic 给的建议是：根 CLAUDE.md 控制在 200 行以内，给它一个 owner，像审查代码一样审查对它的修改。</p><p>这件事在团队协作的大仓库里尤其明显。CLAUDE.md 很容易变成一个没人维护的公共配置文件，每个组都往里加自己的规范，没人删旧的。</p><p>最终每个工程师的每次会话都要加载所有团队的规范，不管跟当前任务有没有关系。</p><p>要解决也很简单，在 monorepo 里给每个团队目录配置单独的 CLAUDE.md，让团队只加载自己的规范。还可以用<code>claudeMdExcludes</code> 跳过不相关团队的文件。</p><p>总结起来一句话，不要把 CLAUDE.md 当成垃圾桶，而是寸土寸金的黄金地段。能不放的，就别放。</p><h2 id="rules按路径触发不白占上下文">Rules：按路径触发，不白占上下文</h2><p>Rules 是<code>.claude/rules/</code> 目录下的 Markdown 文件。</p><p>不带路径限定的 Rule 跟根 CLAUDE.md 行为一样：每次会话都会加载、会话压缩后也会重新注入。其实本质上就是换了个目录放的 CLAUDE.md 内容。</p><p>真正有意思的是带路径限定的 Rule。给 Rule 加一个<code>paths</code> 字段，它就只在 Claude 碰到匹配路径的文件时才加载：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span>---</span></span><span style="display:flex;"><span><span style="color:#f92672">paths</span>:</span></span><span style="display:flex;"><span> -<span style="color:#e6db74">"src/api/**"</span></span></span><span style="display:flex;"><span> -<span style="color:#e6db74">"**/*.handler.ts"</span></span></span><span style="display:flex;"><span>---</span></span><span style="display:flex;"><span><span style="color:#ae81ff">所有 API handler 必须用 Zod 校验输入参数.</span></span></span></code></pre></div><p>这条规则在你改文档的时候完全不占上下文，只有碰到 API 相关代码才会出现。</p><p>所以，凡是只对特定目录或文件类型生效的约束，都应该用 path-scoped Rule，而不是写在 CLAUDE.md 里。这是控制上下文膨胀最直接的手段。</p><p>什么时候用 Rule 而不是子目录 CLAUDE.md？当一个约束是跨目录的。比如“所有<code>.handler.ts</code> 文件都要校验输入”，它可能散布在多个目录下，放某一个目录的 CLAUDE.md 里不合适。</p><h2 id="skills按需加载用完即走">Skills：按需加载，用完即走</h2><p>Skills 住在<code>.claude/skills/</code> 目录里，每个 Skill 是一个文件夹，核心是一个<code>SKILL.md</code> 文件，里面包含了名称、描述和正文。</p><p>Skills 最关键的一个设计时只有名称和描述在会话启动时加载，正文只有在被调用时才进入上下文。</p><p><img src="/images/2026-06-23-claude-code-steering-skills-trigger.jpg" alt="Skills 触发机制" loading="lazy" decoding="async"/></p><p>它的调用方式有两种：通过斜杠命令（比如<code>/code-review</code>），或者 Claude 根据任务自动匹配。</p><p>在使用 Skills 的时候，也需要注意会话压缩的行为：压缩时，已调用的 Skills 会被重新注入，但所有 Skills 共享一个总 token 预算。一次会话里调用太多 Skills，最早调用的会被丢掉。</p><p>Anthropic 给的原则是：流程性的东西放 Skill，不要放 CLAUDE.md。部署流程、发布检查清单、代码审查规范，这些都应该是 Skill。CLAUDE.md 只放 Claude 需要始终知道的事实。</p><p>我自己的经历可也是如此。之前 CLAUDE.md 里写了一大段“发布+验证流程”，后来拆成 Skill，不发布的时候这些指令就不占空间了。省下来的上下文让 Claude 能记住更多真正相关的事情。</p><h2 id="subagents不是多一个帮手是多一块白板">Subagents：不是多一个帮手，是多一块白板</h2><p>Subagents 是<code>.claude/agents/</code> 目录下的 Markdown 文件，用 YAML frontmatter 定义名称、描述和工具权限，正文是这个子 Agent 的系统提示词。</p><p>名称、描述和工具列表在会话启动时加载。但正文永远不会进入主会话的上下文，它在子 Agent 自己的独立上下文窗口里运行，只有最终的摘要消息回到主会话。</p><p><img src="/images/2026-06-23-claude-code-steering-context-window.jpg" alt="Claude Code 上下文窗口结构" loading="lazy" decoding="async"/></p><p>这个设计对上下文管理的意义挺大的。Subagent 可以嵌套最多 5 层，动态工作流可以编排几十甚至上百个后台 Agent。中间结果全在脚本变量里，不污染主上下文。</p><p>那 Skill 和 Subagent 怎么选？Anthropic 给的判断标准是这样的：</p><ul><li>用 Skill：当你希望流程在主线程里执行，你能看到每一步、随时干预。</li><li>用 Subagent：当侧任务的中间结果你不需要再看（深度搜索、日志分析、依赖审计），只需要一个最终摘要。</li></ul><p>说白了，Subagent 的核心价值不是“多一个 Agent”，而是上下文隔离。让主会话保持干净，不被旁支任务的中间过程淹没。</p><p>我自己用 Subagent 最多的场景有两个：一个是让它先 explore 整个代码库，写一份结构报告回来，主 Agent 拿着报告再动手改代码；另一个是设计和实现分离，设计时需要进行大量的调研工作，但实现的时候只需要设计文档就足够了。</p><h2 id="hooks让-claude-code-100-执行">Hooks：让 Claude Code 100% 执行</h2><p>Hooks 是在 Claude Code 生命周期事件上触发的用户定义命令。注册在<code>settings.json</code> 里，在文件编辑、工具调用、会话启动等事件上自动触发。</p><p><img src="/images/2026-06-23-claude-code-steering-hooks-lifecycle.jpg" alt="Hooks 生命周期事件图" loading="lazy" decoding="async"/></p><p>Hook 有五种类型：command、HTTP、mcp_tool、prompt 和 agent。前三种确定性执行（跑脚本、发请求、调工具），后两种用模型判断来决定输出。</p><p>Hooks 的上下文成本极低，配置在主上下文窗口外面，harness 直接执行。只有少数 Hook 的输出会回到主上下文（比如阻断型 Hook 的错误信息，让 Claude Code 知道为什么被拒绝）。</p><p>Hooks 在整套 Claude Code 体系里最容易被忽略但最重要的一点是：</p><p>“每次 X 都必须做 Y” 如果放在 CLAUDE.md 里，本质上是在靠模型的遵从性来保证执行。模型大多数时候会遵守，但在长会话、上下文压力大、或者遇到 prompt injection 的时候，它可以不遵守。</p><p>想要确定性执行，必须用 Hook。比如“每次编辑后跑 prettier”，这不该是一条指令让 Claude Code 选择执行，而应该是一个<code>PostToolUse</code> Hook 在每次文件写入后自动触发。</p><p>同理，“绝对不能做 X” 这种约束也不该靠 CLAUDE.md。用<code>PreToolUse</code> Hook 检查调用，exit code 2 直接阻断。对企业来说，更严格的配置可以用 Managed Settings，管理员部署、用户不可覆盖。</p><p>所以，你要注意，凡是在 CLAUDE.md 里写了“必须”或“绝对不能”的规则，都别忘了问自己一句：这条规则失败了会怎样？如果后果严重，就赶紧改成 Hook。</p><h2 id="output-styles-和-append-system-prompt慎用杀伤力大">Output Styles 和 append-system-prompt：慎用，杀伤力大</h2><p>最后两种方法放在一起说，它们都作用在系统提示词层面，威力大但副作用也大。</p><p>Output Styles 是<code>.claude/output-styles/</code> 目录下的文件，注入系统提示词，永不压缩。注意一个关键细节：自定义 Output Style 默认会替换 Claude Code 的默认系统提示词，除非在 frontmatter 里设置<code>keep-coding-instructions: true</code>。</p><p>换句话说，一旦用了自定义 Output Style，Claude Code 默认的那些行为指导（怎么控制变更范围、什么时候加注释、安全关注点、跑测试再报完工）全部会被覆盖。Claude Code 就从一个软件工程助手变成一个通用助手了。</p><p>所以 Anthropic 的建议是：先看看内置的 Proactive、Explanatory、Learning 三个样式够不够用，再考虑自定义。</p><p>append-system-prompt 是另一种用法，它是 CLI 启动时传入的 flag，只对当前会话生效，不会持久化。它是纯追加的，不会替换默认行为，一般适合临时加一些格式偏好或领域知识。</p><p>我觉得大多数人不需要碰 Output Styles。内置样式加上 CLAUDE.md 已经够用了，除非你真的要把 Claude Code 改造成一个完全不同的角色。</p><h2 id="别踩这些坑">别踩这些坑</h2><p>最后整理一下 Anthropic 给的“反模式”清单，基本都是我自己踩过或见过别人踩的：</p><p>第一个是把“每次 X 都必须做 Y” 这种强制性约束写在 CLAUDE.md 里。模型的指令遵循和代码自动执行是两回事。如果这个行为必须可靠发生，一定要用 Hook。同理，“绝对不能做 X” 也不该靠 CLAUDE.md，禁止性约束在 prompt injection 面前毫无抵抗力，要用 Hook 或 Managed Settings 做墙纸约束。</p><p>第二个是把流程放在 CLAUDE.md 里面。CLAUDE.md 应该只放 Claude Code 需要始终知道的事实以及它最常犯的一些错误的经验教训，而流程则放到 Skills 里面。</p><p>第三个是 Rule 不加 paths。一条只对<code>src/api/</code> 生效的规则如果不加路径限定，效果等同于在 CLAUDE.md 里多了一行，每次都加载，每次都耗 token。个人偏好也是同样的道理，所有的配置方法都分为项目级和用户级，“永远用 semantic commit message” 这种个人习惯应该只放在本地，项目级只放团队共识。</p><hr><h2 id="速查表7-种方法一览">速查表：7 种方法一览</h2><table><thead><tr><th>方法</th><th>何时加载</th><th>压缩行为</th><th>上下文成本</th><th>适用场景</th></tr></thead><tbody><tr><td>CLAUDE.md（根目录）</td><td>会话启动，全程驻留</td><td>缓存式：读一次缓存，压缩后重读</td><td>高</td><td>构建命令、目录结构、编码规范、团队约定</td></tr><tr><td>CLAUDE.md（子目录）</td><td>按需加载，读到该目录下文件时触发</td><td>触发后才有，离开即丢</td><td>低</td><td>特定目录的局部规范</td></tr><tr><td>Rules</td><td>会话启动（无路径限定）或文件触发（有路径限定）</td><td>压缩后重新注入</td><td>中</td><td>具体约束（如“所有 API handler 必须用 Zod 校验”）</td></tr><tr><td>Skills</td><td>名称和描述在会话启动时加载，正文在调用时加载</td><td>已调用的 skill 按预算重新注入，超出则最旧的先丢</td><td>低</td><td>流程性工作（部署清单、发布检查、代码审查）</td></tr><tr><td>Subagents</td><td>名称、描述和工具列表在会话启动时加载，正文在被调用时加载</td><td>只有最终摘要回到主会话</td><td>低</td><td>并行任务或需要隔离的侧任务（深度搜索、日志分析、依赖审计）</td></tr><tr><td>Hooks</td><td>生命周期事件触发</td><td>完全绕过压缩</td><td>低</td><td>确定性自动化（跑 linter、发 Slack、拦截命令）</td></tr><tr><td>Output Styles</td><td>会话启动，注入系统提示词</td><td>永不压缩</td><td>高</td><td>大幅改变 Claude 的角色定位</td></tr></tbody></table><p>这张表最有价值的一列是“上下文成本”。搞清楚哪些指令需要全程驻留、哪些只在触发时加载，是用好这套系统的关键。</p><hr><h2 id="写在最后">写在最后</h2><p>说实话，这篇官方指南没介绍什么新功能，这 7 种方法早就存在了。但它的价值在于第一次把每种方法的加载时机、压缩行为和上下文成本都讲清楚了。</p><p>这 7 种方法按 harness 设计的思路大致可以整理成为四层：</p><ul><li>全局层（CLAUDE.md、unscoped Rules、Output Styles）：高成本、高权威，克制使用</li><li>触发层（path-scoped Rules、子目录 CLAUDE.md、Skills）：按需加载，中低成本</li><li>隔离层（Subagents）：零主上下文成本，只关注结果</li><li>确定性层（Hooks）：绕过模型，代码级保证</li></ul><p>搞清楚这四层，大部分“Claude 为什么忽略我的指令”的问题就有了答案。不是模型不听话，是你把指令放在了错误的层级，或者上下文爆满之后它被忽略掉了。</p><p>我推荐的实践顺序是这样的：所有项目第一步先给根 CLAUDE.md 瘦身，拆出去的流程丢进 Skills，跨目录的约束用 path-scoped Rules，必须 100% 执行的规则用 Hooks 做约束。然后在日常使用中持续观察、持续迭代修改，如果发现有的指令被忽略了，那大概率是相关的指令放错了层级。</p><p>上下文窗口就那么大，每一行指令都有成本。把对的指令放在对的层级，比写更多指令管用得多。</p><hr><p>原文：Steering Claude Code: skills, hooks, subagents and more<a href="https://www.anthropic.com/engineering/claude-code-best-practices">https://www.anthropic.com/engineering/claude-code-best-practices</a></p><hr><p>欢迎长按下面的二维码关注<strong>Feisky</strong> 公众号，了解更多云原生和 AI 知识。</p><p><img src="/images/mp.png" alt="Feisky 公众号二维码" loading="lazy" decoding="async"/></p>
]]></content:encoded><dc:extent>9 min read</dc:extent></item><item><title>烧了 20 亿 token 总结的 Codex 使用指南</title><link>https://feisky.xyz/posts/2026-06-03-%E7%83%A7%E4%BA%8620%E4%BA%BFtoken%E6%80%BB%E7%BB%93%E7%9A%84codex%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</link><pubDate>Wed, 03 Jun 2026 20:00:00 +0800</pubDate><dc:creator>Pengfei Ni</dc:creator><category>Codex</category><category>AI Agent</category><category>AI 编程</category><category>工作流</category><category>Skills</category><guid>https://feisky.xyz/posts/2026-06-03-%E7%83%A7%E4%BA%8620%E4%BA%BFtoken%E6%80%BB%E7%BB%93%E7%9A%84codex%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</guid><description>&lt;p&gt;Codex 桌面版最近口碑爆了。我自己已经把很多工作都切到了 Codex 客户端的 Goal + GPT-5.5 上，一不小心就用了 20 多亿 token。&lt;/p&gt;
&lt;p&gt;不过很多人第一次用 Codex，还是把它当一个更强的 coding agent，用来读仓库、改代码、跑测试、写 PR。这当然没错，Codex 的基本功能确实还是代码编程。但它的桌面客户端已经不只是编程工具了。Skills、Computer Use、浏览器操控、Gmail 和 Calendar 等等各种连接器和插件一路加上来，早就成了一个通用 Agent 客户端。甚至你还可以通过 ~/.codex/config.toml 配置文件给它接入 DeepSeek、Kimi 等第三方模型。&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>Codex 桌面版最近口碑爆了。我自己已经把很多工作都切到了 Codex 客户端的 Goal + GPT-5.5 上，一不小心就用了 20 多亿 token。</p><p>不过很多人第一次用 Codex，还是把它当一个更强的 coding agent，用来读仓库、改代码、跑测试、写 PR。这当然没错，Codex 的基本功能确实还是代码编程。但它的桌面客户端已经不只是编程工具了。Skills、Computer Use、浏览器操控、Gmail 和 Calendar 等等各种连接器和插件一路加上来，早就成了一个通用 Agent 客户端。甚至你还可以通过 ~/.codex/config.toml 配置文件给它接入 DeepSeek、Kimi 等第三方模型。</p><p>我让 Codex 扫了一下最近这个月的会话历史，总结了一些日常的使用方法，再加上自己的补充，整理成这篇分享给大家。如果你还不熟悉 Codex 桌面客户端的使用方法，可以参考 Jason Liu 最近写的 Getting the most out of Codex 文章（链接见文章最后），今天的文章假设你已经了解了 Codex 的基本用法。</p><h2 id="1-先给足上下文再开始任务">1. 先给足上下文，再开始任务</h2><p>AI Agent 最大的问题不是不会干活，而是太容易基于幻觉自信乱干。你不告诉它项目背景和规则，它就按自己的理解来，很容易过度自信，走向错误的方向。</p><p>要解决也很简单，写一个 AGENTS.md 放在项目根目录。Codex 每次打开项目会自动读这个文件，里面可以写项目背景、技术栈、代码规范、常见坑、测试方式，相当于给它一份新人上岗须知。如果任务涉及特定模块，还可以在 prompt 里直接指定“先读 docs/xxx.md 再动手”，让它从文档而不是从猜测开始。</p><p>Codex 桌面端有个置顶会话挺好用的，你可以把最常使用的会话固定在前面。不要把 Codex 的会话当成临时会话，而是一个持续的工作现场。Codex 已经能够自动帮你压缩会话上下文，再加上它的记忆功能，长时任务不需要新开会话，可以持续在同一个会话里持续下去。</p><p>这也是我觉得 Codex 最好用的一点，避免了很多上下文交接的问题，可以真正帮你干大活了。</p><h2 id="2-验证比生成重要得多">2. 验证比生成重要得多</h2><p>说实话，让 Codex 写代码，随便一个 coding agent 都能做个七八成。真正拉开差距的是验证，要拿真实的验证结果说话。</p><p>验证可以是很多东西：测试套件、benchmark、Web 界面截图、发布前 checklist 等等，也就是之前你自己手动做的所有操作应该都描述清楚，交给 Codex 让它去负责。</p><p>特别是在用 Goal 跑长任务的时候，这点更是必不可少。比如，“帮我把这个计划实现完” 看起来有目标，但其实病没有明确的停止条件。而好的 Goal 应该带上清晰的验证器：“完成后必须通过 xx 测试、浏览器检查和人工可审阅的变更摘要。如果验证失败，先修验证失败的问题，不要直接宣布完成。”</p><p>没有验证的 Goal，其实只是愿望。</p><h2 id="3-批量操作前加一道审查门">3. 批量操作前加一道审查门</h2><p>从我自己的使用历史来看，审查和清理类任务最容易翻车。Codex 默认倾向是搜到了就改，找到了就删。这时候，你需要主动在提示词里面拦一下。</p><p>具体做法是在 prompt 或 AGENTS.md 里加上审查规则。比如“批量修改前先列出所有命中并按类型分组（需要改 / 可能需要改 / 不该动），等我确认再执行”。清理旧分支也一样：“先输出 merged 和 unmerged 分支对比，标注哪些旧实现已被 main 覆盖，不要直接删”。</p><p>举个例子，代码库里搜到一堆旧 token 引用，不是所有命中都该删。有些是测试隔离需要的，有些是运行时继承的，真正有问题的可能只有几个。如果不加审查这道程序，Codex 可能会机械地全部清掉，然后测试挂一片（针对这个例子，加上上一步说的验证其实可以自动修复回来，但会浪费很多时间+token）。</p><p>这种不是高大上的 AI 能力，但特别体现人的判断，需要你把经常看到的坑告诉 AI，让它去主动规避。</p><h2 id="4-先配工具再谈智能">4. 先配工具，再谈智能</h2><p>模型当然重要，但真正决定 AI 能干什么的，是配置的工具、权限、上下文和验证方式。插件决定 Codex 能碰到哪些外部世界，Skills 决定它碰到这些世界时该怎么做。我自己常用的插件和 Skills 列在了文末附录里，这里只说一个最容易被忽略的点。</p><p>大多数人写 Skill，会把它当成说明文档：告诉 Codex 该做什么、按什么顺序做。这当然有用，但 Skill 真正值钱的部分不是流程，而是 Gotchas，也就是每次 Codex 犯错之后补进去的“别踩这个坑”。</p><p>比如：</p><ul><li>这个数据源经常不可用，不要猜。</li><li>这个任务结束前必须跑某个验证。</li><li>这个工具第一次会失败，失败后应该换另一种方式。</li><li>这个类型的 review 不能机械接受，要逐条验证。</li><li>这个工作流适合先搜宽一点，再只打开高价值候选。</li></ul><p>一开始写个十几行骨架就够了，用一段时间后它自然会长成一个成熟 Skill。好用的 Skill 不可能一次写好的，都是拿实际经验养出来的。</p><h2 id="5-用-side-panel-边看边改">5. 用 Side Panel 边看边改</h2><p>以前用 AI 做文档、网页、PPT，最烦的是上下文切来切去。AI 在聊天框里生成，产物在另一个窗口打开，发现问题又要截图回来描述。来回几次，人和 AI 都开始丢上下文。</p><p>Codex 的 Side Panel 可以把产物留在工作流里直接改。具体做法是：让 Codex 生成一个 index.html 或者打开一个 localhost 页面，它会在侧边栏渲染出来。你一边看渲染结果，一边在同一个线程里说“这个按钮太大了”“表格第三列数据不对”，不用截图，不用切窗口。</p><p>有两类任务特别适合这个场景。一类是前端和网页，直接在旁边检查样式、交互和移动端适配。另一类是文档型产物，报告、表格、PPT、数据分析页面放在旁边边看边改，比导出再反馈高效得多。</p><h2 id="6-重要上下文写到文件里">6. 重要上下文写到文件里</h2><p>会话会压缩，模型可能会切换，对话里的重要决策和验证方式如果不主动写到外部文件里，就很容易会被丢掉。</p><p>我自己在做长任务的时候（特别是那种跨天的任务），会特意让 Codex 总结记录下 summary、checkpoint、handoff 文档和下次接手的入口说明。下一个会话或者新任务可以接着这些文件继续，不用从零开始。</p><p>要实现也很容易，不需要搞复杂的记忆系统。一个 TODO.md 写待办事项，再加几个文件夹分类放踩坑记录和项目状态，就够了。关键是可检查、可编辑、可删除。Codex 内置的 Memory 和 Chronicle 可以当快速回忆层用，但替代不了外部文件。只有写进文件里的记忆，才有机会变成系统。</p><h2 id="7-随时在线随处接管">7. 随时在线，随处接管</h2><p>长任务跑着的时候，你不需要一直坐在电脑前。在 ChatGPT 手机端连上你的 Mac 或远程机器，可以随时给远端的 Codex 下任务，或者回复 Codex 需要你介入的问题。</p><p>一般来说，当你把任务定义清楚之后，就可以通过 Goal 来启动长时任务，然后等着 Codex 的通知就可以了。你可以在手机上随时能看到它的输出、审批命令、中途纠偏。不用坐在电脑面前盯着，同时关键决策又可以随时介入。</p><p>如果你有 Linux 服务器，Remote SSH 更值得配一下。Codex 会自动读取本地 SSH config 里的主机列表，连上之后直接在远程服务器里跑任务。日常运维、配置管理、代码部署，SSH 连上就能让 Codex 干活，电脑端/手机端都可以随时跟进。配合前面说的 AGENTS.md 和文件记忆，远程接入的时候上下文还在，不用重新交代背景。</p><h2 id="8-定时自动化让会话自己醒过来">8. 定时自动化：让会话自己醒过来</h2><p>前面说的远程接入是“你主动去给 AI 下发任务”，而定时自动化是“让 AI 主动来找你”。</p><p>具体做法是给置顶线程设一个 Thread Automation。跟普通定时任务不同，Thread Automation 每次触发会回到同一个线程，带着上次的上下文继续工作。它知道上次检查到了哪里，哪些事项已经处理过，哪些数据源接不上。</p><p>我自己用得比较多的是两类。一类是信息聚合：每天早上自动检查未读邮件和 IM 消息，按优先级整理好，等我打开的时候直接看结论。另一类是监控类：定期检查 PR 列表、问题反馈或者关注列表，有新内容就整理摘要，没有就不打扰。</p><p>这儿有一点需要注意的是不要让自动化假装全知。没有就是没有，不要编造虚假信息；依赖不可用就直接报不可用，不要自作聪明。</p><h2 id="9-不只是代码邮件调研文档也能跑">9. 不只是代码：邮件、调研、文档也能跑</h2><p>文章到这里，其实大部分的场景还都是跟代码相关的。但 Codex 桌面客户端接上 Gmail、Browser、Documents 这些插件之后，很多非代码任务也都能跑的不错。</p><p>我自己用得比较多的几个场景：让 Codex 过一遍项目和相关邮件，做图文并茂的汇报 PPT；给一个调研主题，让它用 deep-research 搜多个来源，整理成带出处的摘要；会议前把相关文档和之前的讨论丢给它，让它准备一份简要；写完公众号文章后让它排版成微信公众号格式并生成封面图。</p><p>这些任务的共同点是：以前要在好几个工具之间切来切去，现在可以在一个会话里串起来，省掉了大量的不同工具和上下文切换。</p><h2 id="10-别追求全自动要把主动权留在人的手里">10. 别追求全自动，要把主动权留在人的手里</h2><p>Codex 好用，也可以自动化很多任务，但并不意味着你就要完全放手让它全自动去自己玩。</p><p>恰恰相反，你越把它接进真实工作流，越会看到很多边缘问题：权限、登录态、数据源缺口、工具失败、上下文压缩、验证不充分、自动化误触发等等。</p><p>所以更合理的用法是：让 Codex 做上下文收集、执行、验证和初步整理，人保留判断、授权和最终责任。Codex 的 Steering（中途纠偏）和 Queuing（排队追加下一步）就是为这个设计的。真实的工作往往都是边看边改、边发现边调整，不是“人给一个完美需求，让 AI 一次性完成”。</p><p>也就是说，人不应该退到系统外面，而是站在系统里面，负责纠偏、验收和更新规则。</p><p>Codex 的语音输入也是一个让人留在 loop 里很好的设计。它不是让你口述代码的，而是在想法还没成型的时候随时输入给 Codex，或者在 Codex 走偏的时候随时修正它。语音输入不需要很完整，有错别字啥的都没关系，模糊指令对一个已经掌握足够上下文的 AI 来说已经足够让它理解你的意图。</p><hr><p>相关链接：</p><ul><li>Jason Liu Getting the most out of Codex：<a href="https://x.com/jxnlco/status/2057153744630890620">https://x.com/jxnlco/status/2057153744630890620</a></li><li>Codex 功能文档：<a href="https://developers.openai.com/codex/app/features/">https://developers.openai.com/codex/app/features/</a></li><li>Codex Skills 文档：<a href="https://developers.openai.com/codex/skills">https://developers.openai.com/codex/skills</a></li></ul><hr><h2 id="附录我常用的插件和-skills">附录：我常用的插件和 Skills</h2><p>以下是文中第 4 条提到的工具清单，供参考。</p><p>常用插件：</p><ul><li>Browser：本地网页、localhost、侧边栏里的页面检查和截图。</li><li>Chrome：需要登录态、真实 Chrome profile、远程网页操作时用。</li><li>Computer Use：只能通过桌面 GUI 完成的工作。</li><li>Gmail：搜索邮件、读取正文、筛选待办、草拟回复。</li><li>Documents / Presentations / Spreadsheets：文档、PPT、表格类 artifact。</li><li>Product Design：早期产品想法、原型、截图到交互稿。</li><li>Build Web Apps：前端应用、组件、浏览器验证。</li><li>HyperFrames / Remotion：视频、动画、程序化内容。</li><li>Superpowers：计划、TDD、系统化调试、验证、代码 review、开发分支收尾。</li><li>Codex Security：安全扫描、威胁建模、finding 修复。</li></ul><p>常用 Skills：</p><ul><li>brainstorming（Superpowers 插件自带）：头脑风暴和 SPEC 设计。</li><li>handoff：将当前对话整理成交接文档（用于新开会话接手）。</li><li>deep-research：多源搜索调研。</li><li>claude-skill：调用 Claude Code 写文档、做设计或者跟 Codex PK。</li><li>twitter-cli / xfetch：读取和搜索 X/Twitter 内容。</li><li>xiaohongshu-cli：搜小红书内容。</li><li>youtube-transcribe-skill：解析下载 Youtube 视频字幕。</li></ul><p>相关 Skills 的安装方法：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>npx -y skills add mattpocock/skills -g -s handoff</span></span><span style="display:flex;"><span>npx -y skills add feiskyer/codex-settings -g -s claude-skill</span></span><span style="display:flex;"><span>npx -y skills add feiskyer/codex-settings -g -s deep-research</span></span><span style="display:flex;"><span>npx -y skills add feiskyer/codex-settings -g -s youtube-transcribe-skill</span></span></code></pre></div><p>几个 CLI 工具的安装方法：</p><pre tabindex="0"><code>uv tool install xiaohongshu-cli twitter-cli
npm install -g xfetch-cli</code></pre><hr><p>欢迎长按下面的二维码关注<strong>Feisky</strong> 公众号，了解更多云原生和 AI 知识。</p><p><img src="/images/mp.png" alt="Feisky 公众号二维码" loading="lazy" decoding="async"/></p>
]]></content:encoded><dc:extent>9 min read</dc:extent></item><item><title>OpenClaw 的正确打开方式：从也就那样到离不开</title><link>https://feisky.xyz/posts/2026-04-28-openclaw%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%89%93%E5%BC%80%E6%96%B9%E5%BC%8F/</link><pubDate>Tue, 28 Apr 2026 10:00:00 +0800</pubDate><dc:creator>Pengfei Ni</dc:creator><category>AI Agent</category><category>OpenClaw</category><category>SOUL</category><category>Memory</category><category>Skills</category><guid>https://feisky.xyz/posts/2026-04-28-openclaw%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%89%93%E5%BC%80%E6%96%B9%E5%BC%8F/</guid><description>&lt;p&gt;刚装完 OpenClaw，简单试了几个场景，觉得也就那样。跟直接用 Claude Code 比，看不出有啥明显优势，反而还多了一层 Gateway 要维护。看起来它能干的，Claude Code 好像也都能做，干脆卸载算了？&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>刚装完 OpenClaw，简单试了几个场景，觉得也就那样。跟直接用 Claude Code 比，看不出有啥明显优势，反而还多了一层 Gateway 要维护。看起来它能干的，Claude Code 好像也都能做，干脆卸载算了？</p><p>你第一次用的时候是不是也这个感觉？反正我是。</p><p>后来用过一段时间才发现，问题不在 OpenClaw 不行，而在于没有“养”好。一个没调教过的 OpenClaw，确实看起来就是个套壳。但配到位之后，差距就出来了。比如，我跟 OpenClaw 说一句“review [PROJECT] PR #375”，它会自己切到项目工作目录、收集上下文、spawn Claude Code 做各种审查、汇总结果回来汇报，最后再发布审核意见到 PR 里面。并且，它还可以在跟你交互的过程中自动学习你教给它的经验，能够记住你跟它说的各种注意事项，用着用着也就离不开了。</p><p>这篇就分享一下，我是怎么一步步把 OpenClaw 从也就那样养到离不开的。</p><h2 id="先写好三个文件">先写好三个文件</h2><p>这是我觉得最重要的一步，先教 OpenClaw 怎么说话、怎么做事、怎么理解你。你给它配置得越具体、越有观点，OpenClaw 的输出就越像一个有血有肉的人。</p><p>具体来说，OpenClaw 的 workspace 里有三个核心文件，分别管不同的事。</p><p><code>SOUL.md</code> 管 OpenClaw 怎么说话。注意这并不是 system prompt，而是 Agent 的身份定义。你在里面写什么样的语气、什么词不能用、什么样的输出让你满意，OpenClaw 就会照着来。</p><p><code>USER.md</code> 管 OpenClaw 怎么理解你。当然这儿并不是放你的简历，而是让 OpenClaw 理解你怎么思考的文件，比如你的决策风格、什么让你烦、什么让你兴奋、你的沟通习惯等等。</p><p><code>AGENTS.md</code> 管 OpenClaw 怎么做事。这里面就是纯流程，比如该做什么、不该做什么、失败了怎么处理、PR 怎么提等等。</p><p>这三个文件的分离很关键。SOUL.md 写好后应该很少变化，身份是稳定的；AGENTS.md 要经常更新，因为流程在不断迭代；USER.md 则随着 Agent 更了解你而逐步补充。</p><h3 id="怎么写-soulmd">怎么写 SOUL.md</h3><p>你可能觉得 SOUL.md 随便写几行就行了。我之前也是这么想的，结果 OpenClaw 动不动就回答一个技术问题先来三段废话。</p><p>那么，SOUL.md 具体该怎么写？</p><p>首先表达语气要写具体。我的 OpenClaw 叫 Klaw 🦀，表达要求是 language with voltage，每句话要值得存在。你要是泛泛地写个 be helpful and concise，那出来的东西跟 ChatGPT 没什么区别。写得越具体，输出越像你想要的样子。</p><p>然后禁用词表也要有。comprehensive、robust、leveraging 这些 AI 味词汇全部禁掉。</p><p>不过最关键的还是给好输出和坏输出的示例。与其写简洁明了四个字，不如直接给 OpenClaw 看一对对比：</p><p>好输出：</p><pre tabindex="0"><code>etcd compaction 的 revision 不对.看一下 --auto-compaction-retention
设的是不是 duration 模式,旧版本默认是 revision 计数.</code></pre><p>坏输出：</p><pre tabindex="0"><code>Great question! Based on your use case, I'd recommend considering several
factors when configuring etcd compaction...</code></pre><p>第一种是一个懂行的工程师在说话，第二种是一个 AI 在表演热情。OpenClaw 看到这对示例，立刻就知道你想要什么了。</p><h3 id="调了几版之后的经验">调了几版之后的经验</h3><p>用了一段时间之后，又踩了几个坑。</p><p>最大的教训是别写太长，1000-2000 字就够了。太长占用上下文空间不说，给 AI 太多的限制还容易降低 Agent 的智能。</p><p>还有一个容易犯的错是把 SOUL 和 AGENTS 混在一起。个性相关的放 SOUL，流程相关的放 AGENTS，分开写 OpenClaw 才分得清轻重。</p><p>另外 SOUL.md 不是写完就不动的，建议每周花几分钟回顾一下，删掉没用的，加上新碰到的问题。我自己已经改了四五版了，每次改完都觉得 OpenClaw 又多懂我了一点。</p><h2 id="让它有记忆">让它有记忆</h2><p>LLM 最大的问题是无状态，每次对话都从零开始，你昨天告诉它的东西今天全忘了。OpenClaw 的解决方案是一套基于文件的记忆系统：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>MEMORY.md → 长期记忆</span></span><span style="display:flex;"><span>memory/2026-04-28.md → 每日笔记</span></span><span style="display:flex;"><span>memory/working-buffer.md → 危险区缓冲</span></span><span style="display:flex;"><span>SESSION-STATE.md → 活跃任务状态</span></span></code></pre></div><p>那么，这套记忆系统具体是怎么工作的呢？</p><h3 id="记忆怎么写进去的">记忆怎么写进去的</h3><p>OpenClaw 的记忆机制有点像数据库里的 Write-Ahead Logging：先落盘，再响应。它会扫描你发的每条消息，一旦发现重要信息（比如你纠正了它的错误、做了某个决策、表达了某种偏好，或者提到了具体的数值），就立即写入文件，然后才回复你。</p><p>简单说就是：让 OpenClaw 记住一件事，靠嘴说不可靠，写下来才可靠。</p><h3 id="dreaming">Dreaming</h3><p>OpenClaw 还有个 Dreaming 功能，可以配一个定时任务在凌晨自动整理短期记忆：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>{</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">“memory-core”:</span><span style="color:#960050;background-color:#1e0010">{</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">“config”:</span><span style="color:#960050;background-color:#1e0010">{</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">“dreaming”:</span><span style="color:#960050;background-color:#1e0010">{</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">“enabled”:</span><span style="color:#960050;background-color:#1e0010">true,</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">“frequency”:</span><span style="color:#960050;background-color:#1e0010">“0</span><span style="color:#960050;background-color:#1e0010">19</span><span style="color:#960050;background-color:#1e0010">*</span><span style="color:#960050;background-color:#1e0010">*</span><span style="color:#960050;background-color:#1e0010">*”,</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">“timezone”:</span><span style="color:#960050;background-color:#1e0010">“Asia/Shanghai”</span></span></span><span style="display:flex;"><span> }</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">}</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">}</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">}</span></span></span></code></pre></div><p>它会扫描最近的对话，把你经常用到的记忆晋升到长期存储，不常用的自然淘汰。有点像人睡觉时整理白天的记忆一样。</p><p>不过这里有个坑：dreaming 容易把一些啰嗦的内容也晋升上来，导致 MEMORY.md 越来越臃肿。目前还没有好的自动化方案，还是得你定期手动清理一下。</p><p>另外如果你同时在好几个项目上用 OpenClaw，建议不要把所有项目的具体信息都塞进主 MEMORY.md 里面。我的做法是给每个项目建一个单独的目录，项目相关的记忆都放在各自目录下，主 MEMORY.md 里只放索引。这样既不会互相干扰，找起来也方便。</p><h3 id="长-session-不丢上下文">长 session 不丢上下文</h3><p>用久了你还会碰到一个问题：聊太久触发了 context compaction，OpenClaw 压缩上下文之后会丢失一些细节。它的恢复策略是先读<code>working-buffer.md</code>（这个是压缩前自动写入的摘要），再读<code>SESSION-STATE.md</code>（当前任务状态），然后翻一下近两天的日记。</p><h2 id="给它装-skills">给它装 Skills</h2><p>Skills 是扩展 OpenClaw 能力的机制，每个 Skill 就是一个包含<code>SKILL.md</code> 文件的文件夹，告诉 OpenClaw 在什么场景下应该怎么做事。</p><p>你可能会想，Skill 是不是装得越多越好？其实不是。装多了互相打架不说，上下文也吃不消。</p><p>我目前安装的 Skills 大致分三类：</p><ul><li>通用增强：<code>proactive-agent</code>（主动预判需求）、<code>self-improvement</code>（从错误中学习）、<code>context-window-management</code>（上下文快满时自动减负）、<code>systematic-debugging</code>（四阶段 root cause 分析）。</li><li>安全防护：<code>skill-vetter</code>（安装外部 Skill 前做安全审查）、<code>dangerous-action-guard</code>（执行不可逆操作前要你确认）、<code>fact-check-before-trust</code>（对事实性声明做二次验证）。</li><li>领域专用：按自己的工作场景来选装，比如<code>github</code>、<code>cve-check</code>、<code>ado</code> 等等。</li></ul><p>至于一些常用 Skills 的用法，我之前在《<a href="https://mp.weixin.qq.com/s/SC60A_GtnSnADXLg3lS-Bg">OpenClaw 必备 Skill 清单</a>》里详细写过，这里就不重复了。</p><p>这里重点说一个我觉得特别重要的规则：安装任何外部 Skill 之前，一定要先跑<code>skill-vetter</code> 审查安全。</p><p>举个实际的例子：我之前从一个社区 Skill 仓库精选了 10 个，审查完跳过了其中 3 个。一个会偷偷发 Reddit 请求，一个带了自动 cron 任务，还有一个藏了遥测代码。如果不审查就装上去，OpenClaw 就会在你不知道的情况下做你不知道的事。要知道 Skill 本质上是一段会被 OpenClaw 执行的指令，它有你的文件系统权限。之前在《<a href="https://mp.weixin.qq.com/s/p8LZKuEQkb3uXFulzgLJvA">23 万 OpenClaw 公网裸奔</a>》那篇也聊过这个话题，安全这事真不能大意。</p><h2 id="让它自己干活">让它自己干活</h2><p>配好了人格、记忆和 Skills 之后，OpenClaw 已经比刚装完的时候好用太多了。不过到这一步你还是得自己发指令、等结果。有没有办法让 OpenClaw 自己跑起来，你只管收结果？</p><p>这就是 ACP 和 Cron 干的事。</p><h3 id="acp">ACP</h3><p>OpenClaw 可以通过 ACP 调用 Claude Code、Codex、OpenCode 这些 coding agent。整个流程大概是这样的：</p><pre tabindex="0"><code>你 → OpenClaw → 分析任务 → spawn Claude Code → 独立沙箱执行 → 完成后汇报</code></pre><p>比如，你跟 OpenClaw 说一句 review [PROJECT] PR #375，它会自动切到项目工作目录，收集 PR 的上下文，spawn 一个 Claude Code 调用 code-review skill 做审查，最后把结果汇总回来。如果是你自己的 Code，还可以继续跟进这些审查结果迭代，直到得到一个比较满意的结果。最后去把审查结果发布到 PR 上面去，有 bug 就直接留 comment，没问题就 lgtm。当然，合并之前还是建议你人工去看看 PR，不要完全信赖 AI。</p><p>另外还可以把 ACP agent 绑定到 Discord 等 IM 频道。比如，你可以分别给 Claude Code 和 Codex 绑定到<code>#claude</code> 和<code>#codex</code> 两个不同的频道，然后你在里面发消息就会自动创建 thread 并启动对应的 ACP session，相当于在 Discord 里面直接跟 Claude Code 和 Codex 对话了。</p><h3 id="定时任务">定时任务</h3><p>那如果你想让它定时干活呢？OpenClaw 的 cron 系统可以每个 job 都跑在隔离的 session 里，不会影响你正在用的主 session。我目前配了几个定时任务：Git Sync 每小时自动备份 workspace，AI News 每 8 小时抓一轮新闻推到 Discord，Dreaming 每天凌晨整理记忆，Issue Triage 每天上班前自动 triage issue 列表， Version Check 每天检查我关注项目的更新状况。</p><h3 id="大模型配置">大模型配置</h3><p>用得频繁的时候，经常碰到 GitHub Copilot 限流的问题。如果没有配 fallback chain，OpenClaw 就直接断线了。所以建议你也给 OpenClaw 的模型列表搭上备份配置，比如</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>{</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">“model”:</span><span style="color:#960050;background-color:#1e0010">{</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">“primary”:</span><span style="color:#960050;background-color:#1e0010">“github-copilot/claude-opus-4.6”,</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">“fallbacks”:</span><span style="color:#960050;background-color:#1e0010">[</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">“github-copilot/claude-sonnet-4.6”,</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">“github-copilot/claude-opus-4.7”,</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">“openai/gpt-5.4”</span></span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">]</span></span></span><span style="display:flex;"><span> }</span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">}</span></span></span></code></pre></div><p>另外 memory search 我也单独配了一个 provider，用的是 Azure OpenAI 的<code>text-embedding-3-small</code>，配合 hybrid search 也就够用了。后来还发现 GitHub Copilot 也有<code>text-embedding-ada-002</code> 可以拿来做记忆搜索，就给 OpenClaw 提了个 PR 把这个功能加上了。</p><h2 id="踩过的坑">踩过的坑</h2><p>说实话，OpenClaw 目前还是一个需要你愿意折腾才能用好的工具，所以大家都还需要养龙虾。除了前面提到的 SOUL.md 写太长和 Dreaming 膨胀的问题，还有一些值得注意的坑。</p><p>比如 Gateway 重启之后，所有 ACP sessions 全部 reconcile 失败。查了一下原因是旧的 session 用 renderer v1 格式存储的，但新版本只认 v2。处理方法是杀掉 stale harness 然后重启 gateway。这件事给我的教训是：一定要把<code>tools.sessions.visibility</code> 设成<code>all</code>，这样你能看到所有 session 的状态，调 ACP 问题的时候没这个配置基本是盲调。</p><p>OpenClaw 每个版本的升级虽然会带来很多新功能特性，但也都会带来各种各样的问题，有些还会导致配置不兼容。所以，每次升级之后，不要着急重启 gateway，而是先跑一遍 openclaw doctor &ndash;fix，看看是否缺了依赖，配置是否有不兼容的问题。不修好这些问题，gateway 重启之后可能就完全挂掉了。</p><p>另外 OpenClaw 的文档目前还不算完善，很多配置的最佳实践得自己摸索。这也是我写这篇文章的原因，希望能帮后来的人少走点弯路。</p><h2 id="写在最后">写在最后</h2><p>回到开头说的那个问题：OpenClaw 跟 Claude Code 到底有啥区别？</p><p>虽然我主要把 OpenClaw 用在编程相关的任务中，但纯论代码生成能力，Claude Code 还是比 OpenClaw 强得多。OpenClaw 真正的优势在于它是一个完整的 agent runtime。它可以通过 Discord、Telegram、Slack 这些 IM 渠道随时跟你交互，记忆系统让它不再每次从零开始，Skills 给它装上了模块化的能力扩展，ACP 让它可以调度 Claude Code 和 Codex 帮你干活，而 Cron 让它在你睡觉的时候自己把活干了。</p><p>不过这些都不是装完就有的。OpenClaw 更像是一个需要你花时间去养的东西，SOUL/USER/AGENTS 写得越具体它就越懂你，记忆积累得越多它就越好用，Skills 选得越精准它就越靠谱。刚开始确实要折腾，但养一段时间之后，你会发现你已经离不开它了。</p><hr><p>欢迎长按下面的二维码关注<strong>Feisky</strong> 公众号，了解更多云原生和 AI 知识。</p><p><img src="/images/mp.png" alt="Feisky 公众号二维码" loading="lazy" decoding="async"/></p>
]]></content:encoded><dc:extent>9 min read</dc:extent></item><item><title>MCP 不只是开发工具：生产级 Agent 集成的三条路</title><link>https://feisky.xyz/posts/2026-04-23-mcp%E4%B8%8D%E5%8F%AA%E6%98%AF%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7%E7%94%9F%E4%BA%A7%E7%BA%A7agent%E9%9B%86%E6%88%90%E7%9A%84%E4%B8%89%E6%9D%A1%E8%B7%AF/</link><pubDate>Thu, 23 Apr 2026 10:00:00 +0800</pubDate><dc:creator>Pengfei Ni</dc:creator><category>AI Agent</category><category>MCP</category><category>Anthropic</category><category>Claude Code</category><category>Skills</category><category>架构设计</category><guid>https://feisky.xyz/posts/2026-04-23-mcp%E4%B8%8D%E5%8F%AA%E6%98%AF%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7%E7%94%9F%E4%BA%A7%E7%BA%A7agent%E9%9B%86%E6%88%90%E7%9A%84%E4%B8%89%E6%9D%A1%E8%B7%AF/</guid><description>&lt;blockquote&gt;
&lt;p&gt;题记：本文编译自 Anthropic 博客《&lt;a href="https://claude.com/blog/building-agents-that-reach-production-systems-with-mcp"&gt;Building agents that reach production systems with MCP&lt;/a&gt;》。文章从 Agent 连接外部系统的三条路讲起，重点梳理了 MCP 服务器的设计模式、认证标准化、上下文优化，以及 Skills 的互补定位。不算长，但信息密度不低，尤其是 Cloudflare 的代码编排模式和 Vault 的凭证管理思路，值得做 MCP 服务器的人细看和参考。&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<blockquote><p>题记：本文编译自 Anthropic 博客《<a href="https://claude.com/blog/building-agents-that-reach-production-systems-with-mcp">Building agents that reach production systems with MCP</a>》。文章从 Agent 连接外部系统的三条路讲起，重点梳理了 MCP 服务器的设计模式、认证标准化、上下文优化，以及 Skills 的互补定位。不算长，但信息密度不低，尤其是 Cloudflare 的代码编排模式和 Vault 的凭证管理思路，值得做 MCP 服务器的人细看和参考。</p></blockquote><p>我之前给 Claude Code 配 MCP 服务器的时候，最头疼的是上下文占用的问题，后来《Claude Code 终于解决了 MCP 最大的痛点》那篇写过 Tool Search 怎么解决这个事。但用得越多越发现，上下文只是冰山一角。</p><p>本地开发时，Agent 调个 API、跑个命令行工具，一切都很丝滑。但等你想把它放到云上跑，问题就来了：CLI 工具没有 shell 可用，API 调用的认证凭证要自己管，每对接一个新服务就要从头写一套集成代码。</p><p>刚刚看到 Anthropic 发了一篇博客，系统梳理了 Agent 连接外部系统的三条路，以及为什么生产环境下 MCP 可能是最务实的选择，分享一下，供大家参考。</p><h2 id="把-agent-接入外部系统">把 Agent 接入外部系统</h2><p>Anthropic 把 Agent 接入外部系统的方式分成三种：直接调 API、用 CLI，以及走 MCP 协议。</p><p>直接调 API 是最多人的起点，也是最简单的。Agent 在沙箱里发 HTTP 请求，或者通过 function calling 调用外部服务。一个 Agent 对一个服务没什么问题。但接的服务一多，每个 Agent 和服务的配对都要单独处理认证、工具描述和异常情况。做过微服务的人应该很熟悉，这就是经典的 M×N 集成问题。</p><p>CLI 也能用，快、轻量，复用现有工具链。但在移动端、Web 端和云托管平台这些没有 shell 的地方往往会到处碰壁，认证也只能靠磁盘上的凭证文件。说白了，CLI 是本地开发的好帮手，离生产还差一截。</p><p>MCP 走的是协议层。Agent 连上一个 MCP 服务器，服务器把你系统的能力暴露出来，认证、发现、语义描述都标准化了。一个远程服务器可以同时服务 Claude、ChatGPT、Cursor、VS Code 这些客户端，部署在哪都行。MCP 的前期投入确实比前两种大一些，但换来的是可移植性，以及协议本身能描述的东西也更多。</p><p>我自己的感受是，本地开发阶段 CLI 和 MCP 都够用，但一旦 Agent 要上云、要服务多个客户端，MCP 基本是唯一的选择。那为什么 Anthropic 现在特别强调生产环境？</p><h2 id="生产-agent-跑在云上">生产 Agent 跑在云上</h2><p>因为生产级 Agent 越来越多地跑在云上，它们需要连接的系统也在云上：数据存在那里，工单跟踪在那里，基础设施也在那里。这些系统通常是远程的、带认证的，正好是 MCP 擅长处理的场景。</p><p>从 Anthropic 自己的产品线也能看出这个趋势。前段时间发布的 Managed Agents，底层就是靠 MCP 连接外部工具和数据源，之前那篇《Managed Agents 架构拆解》分析过它的脑手分离设计。Claude Cowork、Claude Code Channels 也是类似的思路，MCP 在里面扮演的就是连接层的角色。MCP SDK 的月下载量从年初的 1 亿涨到了 3 亿，增速确实有点猛。</p><p>不过 Anthropic 也没说 MCP 就应该替代其他方式。API 是基础，CLI 服务本地开发，MCP 覆盖云端。三条路最终都会并存。</p><p>那问题就变成了：决定用 MCP 之后，服务器怎么设计才好用？</p><h2 id="mcp-服务器怎么设计才好用">MCP 服务器怎么设计才好用</h2><p>Anthropic 目前 MCP 目录里有 200 多个服务器。从这些实践中他们提炼了几个设计模式，结合我自己写 MCP 服务器的经验，聊聊几个我觉得最有价值的。</p><h3 id="远程服务器优先">远程服务器优先</h3><p>只有远程服务器才能同时覆盖 Web、移动端和云端 Agent，这是分发的前提。本地服务器在开发阶段够用，但想让 Agent 在任何环境下都能调用你的服务，必须上远程。</p><h3 id="按意图分组工具不要一比一镜像-api">按意图分组工具，不要一比一镜像 API</h3><p>这个我之前在《Claude Code 终于解决了 MCP 最大的痛点》提过，工具越少、描述越好，Agent 用起来越准。一个<code>create_issue_from_thread</code> 工具，比让 Agent 自己拼<code>get_thread</code> +<code>parse_messages</code> +<code>create_issue</code> +<code>link_attachment</code> 靠谱得多。</p><p>做过 Agent 开发的你应该都体会过，把底层 API 原封不动暴露给模型，基本就是在赌它能自己编排出正确的调用序列。赌赢的概率不高。我之前做 Kubernetes MCP 服务器的时候，最开始也是把 Kubernetes API 一比一映射成工具，结果模型光是选对工具就要好几轮，后来按运维场景重新分组，调用准确率提升了很多。</p><h3 id="大量-api-场景用代码编排">大量 API 场景用代码编排</h3><p>如果你的服务有几百个接口，按意图分组也覆盖不完。这时候 Cloudflare 的做法挺妙的：只暴露两个工具（搜索和执行），覆盖了大约 2500 个 API 端点，整个工具定义只占 1K token。思路是让 Agent 写一小段脚本，服务器在沙箱里跑，只返回结果。</p><h3 id="用-mcp-apps-做交互">用 MCP Apps 做交互</h3><p>MCP Apps 是 MCP 协议的第一个官方扩展，允许工具返回交互式界面，图表、表单、仪表盘，直接嵌在对话里渲染。你让 Agent 查一下数据库的慢查询，返回的不是一堆文本，而是一个可排序的交互式表格。这体验一下子就提升上去了，Anthropic 说支持 MCP Apps 的服务器在用户留存上表现好很多，这个不难理解。</p><p>还有一个叫 Elicitation 的能力也值得关注。它让 MCP 服务器在工具调用中途暂停，向用户请求输入。比如你让 Agent 删一个资源，服务器可以弹一个确认表单，而不是直接执行。更敏感的操作比如 OAuth 登录，可以把用户引到浏览器里完成，凭证不经过 MCP 客户端。这个设计思路和之前聊过的 Managed Agents 的安全隔离一脉相承，敏感信息能不过手就不过手。</p><h2 id="认证这块终于不用自己造轮子了">认证这块终于不用自己造轮子了</h2><p>说实话，认证一直是 MCP 从开发到生产最让人头疼的部分。本地开发时 MCP 服务器大多不需要认证，或者直接用 API Key 凑合。但到了生产环境，用户授权、token 存储、过期刷新、多租户隔离，每个环节都是坑。之前每个 MCP 服务器都得自己处理 OAuth 流程，各种边角情况踩不完。</p><p>最新的 MCP 规范在这块改进了不少。CIMD（Client ID Metadata Documents）简化了客户端注册的 OAuth 流程，用户首次授权更快，反复弹授权框的情况也少了。MCP SDK、Claude.ai 和 Claude Code 都已经支持这个规范。</p><p>对云端 Agent 来说，令牌的存储和刷新是另一个痛点。Managed Agents 的 Vault 机制处理了这个问题：注册一次用户的 OAuth 令牌，创建 session 时引用 Vault ID，平台自动把凭证注入每个 MCP 连接，过期了自己刷新。不用自己搭密钥管理服务，不用每次调用传 token。这个思路和 Kubernetes 里 ServiceAccount 自动挂载 token 的逻辑挺像的，让凭证管理变成基础设施的一部分，应用层不用操心。</p><h2 id="上下文效率tool-search-和程序化调用">上下文效率：Tool Search 和程序化调用</h2><p>MCP 服务器越多，上下文占用越大，这个问题前面提到过。Anthropic 现在有两个客户端侧的优化模式。</p><p>Tool Search 是按需加载工具定义，不一次性全塞进上下文。Agent 运行时搜索工具目录，只拉取当前任务需要的工具。根据 Anthropic 的测试，工具定义相关的 token 占用能降低 85% 以上，选择准确率基本不受影响。</p><p><img src="/images/2026-04-23-MCPAgent-context-usage.jpg" alt="Tool Search 上下文优化效果" loading="lazy" decoding="async"/></p><p>程序化工具调用是在代码执行沙箱里处理工具返回结果，而不是原样扔回给模型。Agent 可以在代码里循环、过滤、聚合多次调用的结果，只把最终输出放进上下文。复杂的多步工作流能省掉大约 37% 的 token。</p><p>两个模式叠加使用的效果更好：上下文更精简，往返次数更少，响应也更快。</p><h2 id="skills-和-mcp-是互补的">Skills 和 MCP 是互补的</h2><p>这个话题之前也聊过。简单说，MCP 给 Agent 能力（能调什么工具、能访问什么数据），Skills 给 Agent 知识（怎么用这些工具完成具体任务），两者最好结合着一起使用。</p><p><img src="/images/2026-04-23-MCPAgent-skills-mcp.png" alt="Skills 和 MCP 的协作方式" loading="lazy" decoding="async"/></p><p>具体有两种组合模式。</p><p>第一种是把 Skills 和 MCP 服务器打包成 Plugin。Claude 的 Plugin 可以捆绑 Skills、MCP 服务器、Hooks、子 Agent 这些组件，一键分发。比如 Cowork 的数据 Plugin，里面有 10 个 Skills 和 8 个 MCP 服务器，覆盖 Snowflake、Databricks、BigQuery 这些数据工具。这种模式让 Claude 从通用助手变成领域专家。</p><p>第二种是让 MCP 服务器自带 Skill。Canva、Notion、Sentry 这些厂商已经在做了，在 Claude 的目录里把 Skill 和 Connector 放在一起。MCP 社区也在做一个扩展，让服务器直接分发 Skills，客户端自动继承，版本跟着 API 走。</p><p>我的体会是：MCP 服务器只提供工具的话，Agent 每次都得自己摸索调用顺序和参数搭配，效率不高。Skill 把最佳实践编码进去，等于给 Agent 附了一份操作手册，开箱就能按套路来。</p><h2 id="写在最后">写在最后</h2><p>回头看生产环境 Agent 集成外部系统这件事，由于 Agent 跑在云上，需要连接的服务也在云上，中间就需要一个标准化的协议层。</p><p>相比直接 API 调用和命令行 CLI，MCP 目前是这个位置上最合适的协议，特别是远程 MCP 服务器。MCP 的优势在于它是开放协议，不绑定任何一家模型厂商，一个服务器建好了，Claude、ChatGPT 之类的任意 AI Agent 都能用。</p><hr><p>相关资源：</p><ul><li>原文链接：<a href="https://claude.com/blog/building-agents-that-reach-production-systems-with-mcp">https://claude.com/blog/building-agents-that-reach-production-systems-with-mcp</a></li><li>MCP SDK 文档：<a href="https://modelcontextprotocol.io/docs/sdk">https://modelcontextprotocol.io/docs/sdk</a></li><li>MCP Apps 扩展：<a href="https://modelcontextprotocol.io/extensions/apps/overview">https://modelcontextprotocol.io/extensions/apps/overview</a></li><li>高级工具使用指南：<a href="https://www.anthropic.com/engineering/advanced-tool-use">https://www.anthropic.com/engineering/advanced-tool-use</a></li><li>写好 Agent 工具：<a href="https://www.anthropic.com/engineering/writing-tools-for-agents">https://www.anthropic.com/engineering/writing-tools-for-agents</a></li><li>MCP 规范（含 CIMD 和 Elicitation）：<a href="https://modelcontextprotocol.io/specification/2025-11-25">https://modelcontextprotocol.io/specification/2025-11-25</a></li></ul><hr><p>欢迎长按下面的二维码关注<strong>Feisky</strong> 公众号，了解更多云原生和 AI 知识。</p><p><img src="/images/mp.png" alt="Feisky 公众号二维码" loading="lazy" decoding="async"/></p>
]]></content:encoded><dc:extent>8 min read</dc:extent></item><item><title>用 Claude Code 处理视频太麻烦,我顺手写了个 Skill</title><link>https://feisky.xyz/posts/2026-04-15-%E7%94%A8claude-code%E5%A4%84%E7%90%86%E8%A7%86%E9%A2%91%E5%A4%AA%E9%BA%BB%E7%83%A6-%E6%88%91%E9%A1%BA%E6%89%8B%E5%86%99%E4%BA%86%E4%B8%AAskill/</link><pubDate>Wed, 15 Apr 2026 10:00:00 +0800</pubDate><dc:creator>Pengfei Ni</dc:creator><category>Claude Code</category><category>Skills</category><category>视频处理</category><category>AI 工具</category><guid>https://feisky.xyz/posts/2026-04-15-%E7%94%A8claude-code%E5%A4%84%E7%90%86%E8%A7%86%E9%A2%91%E5%A4%AA%E9%BA%BB%E7%83%A6-%E6%88%91%E9%A1%BA%E6%89%8B%E5%86%99%E4%BA%86%E4%B8%AAskill/</guid><description>&lt;p&gt;看 YouTube 上的技术演讲，遇到讲得特别好的，想把要点记下来。以前的流程是：先找个在线工具下载视频，再找个工具提取字幕，字幕格式乱七八糟还得手动清理。一套下来，光找工具就花了半小时，笔记还没开始写。&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>看 YouTube 上的技术演讲，遇到讲得特别好的，想把要点记下来。以前的流程是：先找个在线工具下载视频，再找个工具提取字幕，字幕格式乱七八糟还得手动清理。一套下来，光找工具就花了半小时，笔记还没开始写。</p><p>另一个场景更折腾。录完一段产品 DEMO，画面有了，但没有解说，自己录需要反复调节奏。每次都在想，Claude Code 能帮我写代码，为什么不能帮我处理这些视频的活？</p><p>想了想，干脆自己写一个。</p><h2 id="于是就有了-video-skills">于是就有了 video-skills</h2><p>video-skills 是我开源的一个视频处理 Skill 集合，包含三个技能：</p><ul><li><code>download-video</code>：从 YouTube、Bilibili、Twitter/X 等 1000 多个平台下载视频</li><li><code>transcribe-video</code>：提取视频字幕，优先走内嵌字幕，没有才调 API 去转录</li><li><code>narrate-video</code>：给视频自动生成配音，画面和语音节奏对齐</li></ul><p>三个技能可以单独用，也可以串起来。比如我最常用的流程是：下载一个 YouTube 视频 → 转成文字 → 拿着文字稿去做笔记整理。或者录完一段 DEMO → 让 Claude 看着画面写解说词 → 生成配音合进视频。</p><p>安装有两种方式。在 Claude Code 里直接：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>/plugin marketplace add feiskyer/video-skills</span></span><span style="display:flex;"><span>/plugin install video-skills@video-skills</span></span></code></pre></div><p>或者用 npx：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx skills add feiskyer/video-skills</span></span></code></pre></div><p>前置依赖就两个：<code>yt-dlp</code> 和<code>ffmpeg</code>，macOS 用 Homebrew 装就行：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>brew install yt-dlp ffmpeg</span></span></code></pre></div><p>其他平台可以让 AI 帮你自动安装。</p><p>下面按我自己最常用的两个场景，看看它们的用法。</p><h2 id="场景一youtube-视频变文字笔记">场景一：YouTube 视频变文字笔记</h2><p>上周看到 Andrej Karpathy 一个新访谈，一个多小时，想先拿到文字稿挑重点看。打开 Claude Code，把链接丢进去：</p><pre tabindex="0"><code>帮我下载这个视频 https://www.youtube.com/watch?v=kwSVtQ7dziU</code></pre><p><code>download-video</code> 会用 yt-dlp 把视频拉下来，存到<code>~/Downloads/Videos/</code>。只要音频、指定 720p 这些，直接用自然语言说就行。</p><p>下载完接着转文字：</p><pre tabindex="0"><code>把刚下载的视频转成文字</code></pre><p><code>transcribe-video</code> 会先检查视频有没有内嵌字幕。YouTube 上很多视频自带字幕，质量比语音识别好，速度快，关键是不花 API 的钱。只有没字幕的时候才走 OpenAI 的<code>gpt-4o-transcribe</code>。转出来的文字稿自动清理了时间戳和格式标签，直接就是干净的纯文本。拿到文字稿再让 Claude 做个摘要，整个流程一气呵成。</p><p>没有内嵌字幕的视频需要配置 API Key，创建<code>~/.transcribe_video.env</code>：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>OPENAI_API_KEY<span style="color:#f92672">=</span>your-key-here</span></span></code></pre></div><p>也支持其他兼容 OpenAI API 的平台，加上<code>OPENAI_API_BASE</code> 就行。</p><p>不过下载和转录只解决了看视频的问题。如果你还需要编辑视频呢？比如录了个产品 DEMO，画面有了，但没声音。</p><h2 id="场景二录完-demo-自动配音">场景二：录完 DEMO 自动配音</h2><p>以前自己录个视频 DEMO，经常出现口误、卡壳、节奏不对等等的问题，录完还要花很长时间去剪辑，折腾半天才能搞定。</p><p>现在录好视频，直接一句话就可以搞定配音问题：</p><pre tabindex="0"><code>给这个 DEMO 视频加上中文配音 demo.mp4</code></pre><p>Claude Code 会先每隔几秒截帧，看每个时间点屏幕上在发生什么，建一个场景时间表。然后根据画面写带时间戳的解说词，每段文字量只占时间窗口的 80% ，段落之间自然留白。最后调 Azure TTS 逐段生成语音，按时间戳合成到视频里。</p><p>不过使用时需要注意，配置 Azure 密钥，创建<code>~/.narrate_video.env</code> 并设置：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>AZURE_SPEECH_KEY<span style="color:#f92672">=</span>your-key-here</span></span><span style="display:flex;"><span>AZURE_SPEECH_REGION<span style="color:#f92672">=</span>eastus</span></span></code></pre></div><h2 id="写在最后">写在最后</h2><p>video-skills 做的事情其实并不复杂，只是把 yt-dlp、ffmpeg、还有 Azure Speech 这些命令行工具和 AI 调用包进了 Skill，但用起来的流畅度完全不一样。感兴趣的话可以直接安装来试试：<code>npx skills add feiskyer/video-skills</code>。</p><p>video-skills GitHub 为<a href="https://github.com/feiskyer/video-skills%EF%BC%8C%E6%9C%89%E4%BB%BB%E4%BD%95%E9%97%AE%E9%A2%98%E6%AC%A2%E8%BF%8E%E8%B4%A1%E7%8C%AE%E5%AE%8C%E5%96%84">https://github.com/feiskyer/video-skills，有任何问题欢迎贡献完善</a>。</p><hr><p>欢迎长按下面的二维码关注<strong>Feisky</strong> 公众号，了解更多云原生和 AI 知识。</p><p><img src="/images/mp.png" alt="Feisky 公众号二维码" loading="lazy" decoding="async"/></p>
]]></content:encoded><dc:extent>3 min read</dc:extent></item><item><title>写好一个 Skill 有多难？Anthropic 踩了几百个坑之后的答案</title><link>https://feisky.xyz/posts/2026-03-18-%E5%86%99%E5%A5%BD%E4%B8%80%E4%B8%AAskill%E6%9C%89%E5%A4%9A%E9%9A%BEanthropic%E8%B8%A9%E4%BA%86%E5%87%A0%E7%99%BE%E4%B8%AA%E5%9D%91%E4%B9%8B%E5%90%8E%E7%9A%84%E7%AD%94%E6%A1%88/</link><pubDate>Wed, 18 Mar 2026 10:00:00 +0800</pubDate><dc:creator>Pengfei Ni</dc:creator><category>Claude Code</category><category>Skills</category><category>AI 编程</category><category>Anthropic</category><guid>https://feisky.xyz/posts/2026-03-18-%E5%86%99%E5%A5%BD%E4%B8%80%E4%B8%AAskill%E6%9C%89%E5%A4%9A%E9%9A%BEanthropic%E8%B8%A9%E4%BA%86%E5%87%A0%E7%99%BE%E4%B8%AA%E5%9D%91%E4%B9%8B%E5%90%8E%E7%9A%84%E7%AD%94%E6%A1%88/</guid><description>&lt;blockquote&gt;
&lt;p&gt;题记：本文编译自 Anthropic 工程师 Thariq（@trq212）发表的长文。上次他的文章分享了《像 Agent 一样思考：Claude Code 工具设计的进化史》，这次聊的是 Skill 怎么写才好用。原文链接：&lt;a href="https://x.com/trq212/status/2033949937936085378"&gt;https://x.com/trq212/status/2033949937936085378&lt;/a&gt;。&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<blockquote><p>题记：本文编译自 Anthropic 工程师 Thariq（@trq212）发表的长文。上次他的文章分享了《像 Agent 一样思考：Claude Code 工具设计的进化史》，这次聊的是 Skill 怎么写才好用。原文链接：<a href="https://x.com/trq212/status/2033949937936085378">https://x.com/trq212/status/2033949937936085378</a>。</p></blockquote><hr><p>写过 Claude Code Skill 的人应该都有一个体会：写出来容易，写好很难。</p><p>之前我推荐过不少好用的 Skill（《<a href="https://mp.weixin.qq.com/s/b-0ppca5YhiGgxR_mWJNVA">十个顶级 Claude Code Skills，装上就不想卸</a>》《OpenClaw 必备 Skill 清单》），但“好用的 Skill 到底是怎么写出来的”这个问题一直没怎么聊过。市面上的教程大都停在”创建一个 SKILL.md 文件”这一步，至于写什么、怎么组织、哪些信息该放哪些不该放，基本没人系统讲过。</p><p>Anthropic 内部现在有几百个 Skill 在日常使用，Thariq 最近把他们踩过的坑整理成了一篇长文。我读完觉得信息密度挺高的，很多坑自己也踩过，但一直没想清楚为什么。这篇就把里面最有价值的部分整理出来。</p><h2 id="先纠正一个常见误解">先纠正一个常见误解</h2><p>很多人觉得 Skill 就是一个 Markdown 文件。能跑，但没用好。</p><p>Skill 的本质是一个文件夹，里面可以放脚本、数据、模板、配置，Claude 能发现、探索和操作这些文件。另外，Skill 还支持很多配置选项（详见<a href="https://code.claude.com/docs/en/skills#frontmatter-reference">官方文档的 frontmatter 参考</a>），包括动态注册 Hook。</p><p>Anthropic 内部用得最好的那些 Skill，恰恰是充分利用了文件夹结构和配置选项的。后面会具体聊到。</p><h2 id="9-类-skill你的团队还缺哪些">9 类 Skill：你的团队还缺哪些？</h2><p>Thariq 把 Anthropic 内部所有的 Skill 做了一次盘点，发现它们大致可以归为 9 类。他说最好的 Skill 通常干净利落地属于某一类，而那些让人困惑的 Skill 往往横跨好几类。</p><p><img src="/images/2026-03-18-SkillAnthropic-01-categories.jpg" alt="Skill 分类" loading="lazy" decoding="async"/></p><p>这个分类不是什么权威定义，但作为一个自查清单挺实用的，可以看看你的团队还缺哪几类。</p><h4 id="库和-api-参考">库和 API 参考</h4><p>教 Claude 怎么正确使用某个库、CLI 或 SDK。可以是内部库，也可以是 Claude 经常用错的外部库。这类 Skill 通常会带一个代码片段文件夹和一份“踩坑清单”。</p><p>比如你内部的计费库有一堆边界情况，或者你的 CLI 工具有一些 Claude 不知道的子命令和用法。</p><h4 id="产品验证">产品验证</h4><p>描述怎么测试和验证代码是否正确。通常会配合 Playwright、tmux 之类的外部工具来做验证。</p><p>这类 Skill 的价值在于确保 Claude 的输出是对的，而不是“它说对了就信它”。Thariq 的原话是：让一个工程师花一周时间专门打磨验证类 Skill，是值得的。</p><p>可以考虑的技巧包括让 Claude 录制测试视频方便回看，或者在每一步强制做断言。这些通常通过在 Skill 中放脚本来实现。</p><h4 id="数据获取与分析">数据获取与分析</h4><p>连接到你的数据和监控系统。这类 Skill 可能会包含带凭据的数据获取脚本、Dashboard ID、常见查询工作流。</p><p>比如“哪些事件表能看到注册→激活→付费的转化漏斗”，或者“Grafana 里哪个 dashboard 对应哪个问题”。</p><h4 id="业务流程自动化">业务流程自动化</h4><p>把重复性工作流一键化。比如自动聚合 ticket tracker、GitHub 活动和 Slack 消息来生成 standup，或者自动创建 ticket 并触发后续的 review 和通知流程。</p><p>这类 Skill 指令通常比较简单，但依赖其他 Skill 或 MCP。一个有用的技巧是把每次执行的结果保存到日志文件里，Claude 下次执行时可以参考上次的结果，保持一致性。</p><h4 id="代码脚手架">代码脚手架</h4><p>为代码库中的特定功能生成框架代码。当你的脚手架有一些无法纯粹用代码覆盖的自然语言需求时，Skill 的优势就体现出来了。比如新建一个带你们标准认证、日志和部署配置的内部应用。</p><h4 id="代码质量与审查">代码质量与审查</h4><p>在团队内部强制执行代码质量标准。可以包含确定性脚本来保证鲁棒性。你可能想通过 Hook 自动触发这些 Skill，或者放到 GitHub Action 里跑。</p><p>比如启动一个全新视角的子 Agent 来挑刺，迭代到只剩 nitpick 级别的问题为止。</p><h4 id="cicd-与部署">CI/CD 与部署</h4><p>帮你拉代码、推代码和部署的 Skill。比如监控 PR 状态，自动重试 flaky CI，解决合并冲突，开启 auto-merge。或者做灰度发布时自动对比错误率，有回归就自动回滚。</p><h4 id="runbook">Runbook</h4><p>拿到一个症状（Slack 线程、告警或错误签名），走一遍多工具调查流程，输出结构化报告。这就是把 on-call 经验沉淀成了可执行的标准流程。</p><h4 id="基础设施运维">基础设施运维</h4><p>执行日常维护和运维操作，有些涉及破坏性操作，所以 Skill 里可以内置安全护栏。比如查找孤立的 Pod/Volume，先发到 Slack 等一段时间确认，用户同意后再级联清理。</p><p>这 9 类基本覆盖了一个工程团队日常工作的方方面面。如果你的团队刚开始用 Skill，可以从这个清单出发，看看哪几类能最快产生价值。我自己的体感是验证类和业务流程自动化类最容易见效，因为它们解决的是每天都在重复的痛点。</p><p>知道了该做什么类型的 Skill，接下来的问题就是怎么写了。</p><h2 id="怎么把-skill-写好">怎么把 Skill 写好？</h2><p>这部分是我觉得全文最有价值的，因为很多坑不踩一遍真想不到。</p><p><img src="/images/2026-03-18-SkillAnthropic-02-tips.jpg" alt="Tips for Making Skills" loading="lazy" decoding="async"/></p><p>Anthropic 最近也发布了<a href="https://claude.com/blog/improving-skill-creator-test-measure-and-refine-agent-skills">Skill Creator</a> 来简化 Skill 的创建过程，但即使有工具辅助，下面这些原则还是得自己把握。</p><h4 id="别写-claude-已经知道的">别写 Claude 已经知道的</h4><p>Claude 本身就懂很多编程知识，对你的代码库也有不少了解。如果你的 Skill 主要是知识类的，重点放在那些能把 Claude 推出它默认思维模式的信息上。</p><p><a href="https://github.com/anthropics/skills/blob/main/skills/frontend-design/SKILL.md">frontend-design Skill</a> 是个好例子。它是 Anthropic 的工程师跟客户反复迭代出来的，核心就是教 Claude 避免那些经典的 AI 审美，比如 Inter 字体配紫色渐变。这些才是 Claude 需要被纠正的地方，而不是告诉它“请写出高质量代码”。</p><h4 id="好好写-gotchas-部分">好好写 Gotchas 部分</h4><p><img src="/images/2026-03-18-SkillAnthropic-03-gotchas.jpg" alt="Gotchas Section" loading="lazy" decoding="async"/></p><p>任何 Skill 里信息量最高的部分就是 Gotchas（踩坑清单）。把 Claude 使用你的 Skill 时经常犯的错记下来，随着使用不断补充。</p><p>我自己写 Skill 的经验也是这样。一开始写的 Skill 可能只有二三十行，用了一个月之后 Gotchas 部分比正文还长。因为每次 Claude 犯一个新错，你就加一条，这些积累才是 Skill 真正的价值所在。</p><h4 id="用好文件系统和渐进式披露">用好文件系统和渐进式披露</h4><p><img src="/images/2026-03-18-SkillAnthropic-04-progressive.jpg" alt="Progressive Disclosure" loading="lazy" decoding="async"/></p><p>前面说了，Skill 是文件夹，不只是 Markdown。你应该把整个文件系统当作上下文工程和渐进式披露（Progressive Disclosure）的手段。在 SKILL.md 里告诉 Claude 这个 Skill 里有哪些文件，它会在合适的时候去读。</p><p>最简单的做法是把详细的函数签名和用法示例拆到<code>references/api.md</code> 里。如果你的最终输出是 Markdown 文件，可以在<code>assets/</code> 里放一个模板让 Claude 复制使用。</p><p>脚本、示例、参考文档，这些都可以分门别类放进 Skill 文件夹。Claude 知道它们在那儿，需要的时候自己会去找。</p><p>这个思路在上一篇《像 Agent 一样思考》里也聊过。从被动接收上下文到主动探索上下文，渐进式披露是 Claude Code 工具设计的核心理念之一。</p><h4 id="别把-claude-钉死">别把 Claude 钉死</h4><p><img src="/images/2026-03-18-SkillAnthropic-05-railroading.jpg" alt="Avoid Railroading" loading="lazy" decoding="async"/></p><p>Claude 会尽量遵守你的指令，但 Skill 是会被反复使用的，如果指令太具体，它在某些场景下就会变得很死板。给 Claude 它需要的信息，但也给它根据具体情况灵活调整的空间。</p><p>比如不要写“必须按 A→B→C→D 四个步骤执行”，而是写“通常的流程是 A→B→C→D，但可以根据实际情况调整顺序或跳过某些步骤”。</p><h4 id="想清楚初始化流程">想清楚初始化流程</h4><p><img src="/images/2026-03-18-SkillAnthropic-06-setup.jpg" alt="Setup" loading="lazy" decoding="async"/></p><p>有些 Skill 需要用户先提供一些上下文才能用。比如一个发 standup 到 Slack 的 Skill，需要知道发到哪个频道。</p><p>一个好的做法是把这些配置信息存到 Skill 目录下的<code>config.json</code> 里。第一次运行时，如果配置不存在，Claude 就问用户；配置好了以后就直接用，不再重复问。</p><p>如果你想让 Claude 给用户提结构化的选择题而不是开放式提问，可以让它调用<code>AskUserQuestion</code> 工具。</p><h4 id="description-字段是写给模型看的">description 字段是写给模型看的</h4><p><img src="/images/2026-03-18-SkillAnthropic-07-description.jpg" alt="Description Field" loading="lazy" decoding="async"/></p><p>Claude Code 启动时会构建一个所有可用 Skill 的清单，每个 Skill 带上它的 description。Claude 扫这个清单来决定“当前这个请求有没有对应的 Skill”。</p><p>所以 description 不是给人看的摘要，而是给模型看的触发条件。你应该写清楚“什么时候应该触发这个 Skill”，而不是“这个 Skill 做了什么”。</p><p>这个细节我之前也没太注意，但仔细想想确实重要。如果 description 写的是“用于格式化代码”，Claude 可能在很多场景下都不确定要不要用。但如果写的是“当用户要求格式化代码、或代码风格不一致时触发”，触发率会准确得多。</p><h4 id="给-skill-加记忆">给 Skill 加记忆</h4><p><img src="/images/2026-03-18-SkillAnthropic-08-memory.jpg" alt="Memory &amp; Storing Data" loading="lazy" decoding="async"/></p><p>有些 Skill 可以通过存储数据来实现记忆功能。可以简单到往一个文本日志里追加内容，也可以复杂到用 SQLite 数据库。</p><p>比如前面提到的 standup Skill，如果每次执行都把内容追加到<code>standups.log</code> 里，下次运行时 Claude 读一遍历史，就能知道哪些是新变化，不需要从头分析。</p><p>需要注意的是，Skill 目录下的数据在升级 Skill 时可能被删掉。所以应该把数据存到稳定的位置。目前 Claude Code 提供了<code>${CLAUDE_PLUGIN_DATA}</code> 作为每个 Plugin 的稳定存储目录。</p><h4 id="放脚本让-claude-组合">放脚本，让 Claude 组合</h4><p><img src="/images/2026-03-18-SkillAnthropic-09-scripts.jpg" alt="Store Scripts" loading="lazy" decoding="async"/></p><p>给 Claude 代码是你能做的最有力的事之一。把辅助脚本和库函数放到 Skill 里，Claude 就可以把精力花在组合和决策上，而不是从头写重复的样板代码。</p><p>比如在数据分析 Skill 里放一组从数据源拉数据的辅助函数，Claude 就可以按需组合这些函数来回答“周二发生了什么”这类问题。</p><p><img src="/images/2026-03-18-SkillAnthropic-10-generate.jpg" alt="Claude 生成脚本" loading="lazy" decoding="async"/></p><h4 id="按需-hook">按需 Hook</h4><p>Skill 可以包含只在被调用时才激活的 Hook，持续到会话结束。适合那些比较“有态度”的 Hook，平时开着太烦，但某些场景下非常有用。</p><p>比如<code>/careful</code>，通过<code>PreToolUse</code> 拦截 Bash 里的<code>rm -rf</code>、<code>DROP TABLE</code>、<code>force-push</code>、<code>kubectl delete</code>。你只在碰生产环境时才想开它，平时开着只会让人抓狂。再比如<code>/freeze</code>，阻止 Claude 编辑特定目录之外的文件。调试的时候特别有用，你只想加日志，不想 Claude 顺手把不相关的代码也修了。</p><h4 id="别忘了统计">别忘了统计</h4><p>顺便提一下分发和统计。Anthropic 内部用一个<code>PreToolUse</code> Hook 来记录 Skill 的使用情况（<a href="https://gist.github.com/ThariqS/24defad423d701746e23dc19aace4de5">示例代码</a>），这样就能发现哪些 Skill 被高频使用、哪些触发率低于预期。</p><p>分发方面，小团队直接把 Skill 提交到仓库的<code>.claude/skills</code> 目录就行。规模大了以后，可以搭建内部的 Plugin Marketplace，让团队成员自己选择安装哪些。Anthropic 内部没有一个集中的团队来决定哪些 Skill 上架。有人做了一个好用的 Skill，先放到一个 sandbox 目录让人试用，有了口碑再提 PR 进入正式市场。</p><p>还有一个需要注意的问题：Skill 之间的组合和依赖。比如你的 CSV 生成 Skill 依赖一个文件上传 Skill。目前 Marketplace 还没有原生的依赖管理，但你可以在 Skill 里直接引用其他 Skill 的名字，Claude 会自动调用已安装的。</p><h2 id="写在最后">写在最后</h2><p>回头看这篇文章，最让我有感触的是 Gotchas 部分。我自己写 Skill 的经历也验证了这一点，Skill 的价值不在初始版本写得多完整，而在于使用过程中不断补充 Claude 犯过的错。一开始写个十几行的骨架，用一段时间后自然会长成一个成熟的 Skill。</p><p>另一个让我重新审视的是“别写 Claude 已经知道的”。我之前写过一些 Skill，里面有大段的编码规范和最佳实践，这些其实 Claude 本来就会。真正该写进 Skill 的是那些 Claude 不知道的、你的团队特有的知识，比如内部约定、踩过的坑、用什么工具查什么问题。</p><p>如果你已经在用 Skills 但觉得效果一般，不妨回去对照一下上面的原则，看看有哪些地方可以调整。如果你还没开始，从一个小的 Gotchas 清单开始就行，不需要一上来就做得很复杂。</p><hr><p>相关资源：</p><ul><li>原文链接：<a href="https://x.com/trq212/status/2033949937936085378">https://x.com/trq212/status/2033949937936085378</a></li><li>Claude Code Skills 文档：<a href="https://code.claude.com/docs/en/skills">https://code.claude.com/docs/en/skills</a></li><li>Agent Skills 课程：<a href="https://anthropic.skilljar.com/introduction-to-agent-skills">https://anthropic.skilljar.com/introduction-to-agent-skills</a></li><li>Skill Creator 博客：<a href="https://claude.com/blog/improving-skill-creator-test-measure-and-refine-agent-skills">https://claude.com/blog/improving-skill-creator-test-measure-and-refine-agent-skills</a></li><li>Anthropic 官方 Skills 仓库：<a href="https://github.com/anthropics/skills">https://github.com/anthropics/skills</a></li><li>Skill 使用日志 Hook 示例：<a href="https://gist.github.com/ThariqS/24defad423d701746e23dc19aace4de5">https://gist.github.com/ThariqS/24defad423d701746e23dc19aace4de5</a></li></ul><hr><p>话题标签：#ClaudeCode #Skills #Anthropic #AI 编程</p><hr><p>欢迎长按下面的二维码关注<strong>Feisky</strong> 公众号，了解更多云原生和 AI 知识。</p><p><img src="/images/mp.png" alt="Feisky 公众号二维码" loading="lazy" decoding="async"/></p>
]]></content:encoded><dc:extent>9 min read</dc:extent></item><item><title>OpenClaw 必备 Skill 清单：装完这些再开始干活</title><link>https://feisky.xyz/posts/2026-03-16-openclaw%E5%BF%85%E5%A4%87skill%E6%B8%85%E5%8D%95/</link><pubDate>Mon, 16 Mar 2026 10:00:00 +0800</pubDate><dc:creator>Pengfei Ni</dc:creator><category>OpenClaw</category><category>Skills</category><category>AI 工具</category><guid>https://feisky.xyz/posts/2026-03-16-openclaw%E5%BF%85%E5%A4%87skill%E6%B8%85%E5%8D%95/</guid><description>&lt;p&gt;上次分享了《&lt;a href="https://mp.weixin.qq.com/s/b-0ppca5YhiGgxR_mWJNVA"&gt;十个顶级 Claude Code Skills，装上就不想卸&lt;/a&gt;》，不少读者问我 OpenClaw 这边有没有类似的推荐。今天就来一篇。&lt;/p&gt;
&lt;p&gt;跟 Claude Code 比，全新安装的 OpenClaw 其实挺无聊的。它能聊天、能写代码、能操作文件系统，但碰到需要上网搜东西、刷个社交媒体、或者画张图的场景，就卡住了，看起来跟 ChatGPT 之类的聊天工具并没有多大区别。但这其实是还没用好 OpenClaw 最基本的扩展机制，也就是 Skill。ClawHub 上的 Skill 数量已经破了 25000，光是排名第一的 self-improving-agent 就有 20 多万的安装量。不过 Skill 装多了也有问题，互相打架不说，上下文也吃不消。所以关键还是选对几个真正有用的。&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>上次分享了《<a href="https://mp.weixin.qq.com/s/b-0ppca5YhiGgxR_mWJNVA">十个顶级 Claude Code Skills，装上就不想卸</a>》，不少读者问我 OpenClaw 这边有没有类似的推荐。今天就来一篇。</p><p>跟 Claude Code 比，全新安装的 OpenClaw 其实挺无聊的。它能聊天、能写代码、能操作文件系统，但碰到需要上网搜东西、刷个社交媒体、或者画张图的场景，就卡住了，看起来跟 ChatGPT 之类的聊天工具并没有多大区别。但这其实是还没用好 OpenClaw 最基本的扩展机制，也就是 Skill。ClawHub 上的 Skill 数量已经破了 25000，光是排名第一的 self-improving-agent 就有 20 多万的安装量。不过 Skill 装多了也有问题，互相打架不说，上下文也吃不消。所以关键还是选对几个真正有用的。</p><p>这篇就整理一份我自己在用的 OpenClaw Skill 清单，每个都有附安装命令，方便你一键安装。</p><h2 id="先装这三个">先装这三个</h2><p>这三个 Skill 我觉得属于必备级别，建议第一时间搞定。</p><h3 id="self-improving-agent">Self-Improving Agent</h3><p>ClawHub 排名第一不是没道理的。</p><p>这个 Skill 让 OpenClaw 具备了自我学习的能力。每次你纠正它的错误、每次命令执行失败、每次它发现了更好的做法，都会被记录下来，变成它下次做事的经验。用得越久，它就越懂你的习惯和偏好。</p><p>我用了一段时间之后，最明显的变化是它不再重复犯同一个错了。比如我习惯用 pnpm 而不是 npm，纠正过一次之后就再也没出过。听起来是个小事，但每天省几次纠正的功夫，累积下来效率提升挺明显的。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx clawdhub install self-improving-agent</span></span></code></pre></div><h3 id="find-skills">Find Skills</h3><p>OpenClaw 不像 Claude Code 那样内置了大量工具，很多能力需要通过 Skill 来补齐。问题是 ClawHub 上 25000 多个 Skill，你怎么知道哪个能解决你当前的问题？</p><p>Find Skills 做的就是这件事。当你问 OpenClaw“怎么做 X”的时候，它会先去 ClawHub 搜一圈，看看有没有现成的 Skill 能用，找到了就直接推荐给你，省得自己一个个去翻。</p><p>有点像给 OpenClaw 装了个应用商店的搜索入口。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx clawdhub install find-skills</span></span></code></pre></div><h3 id="skill-vetter">Skill Vetter</h3><p>前面说了 ClawHub 上有 25000 多个 Skill，质量参差不齐。有的 Skill 写得不错，有的可能藏着恶意代码，毕竟 Skill 本质上就是一段会被 Agent 执行的指令。</p><p>Skill Vetter 的作用是在安装前自动扫描 Skill 的内容，检查有没有潜在的安全隐患。比如 Skill 里是否有可疑的网络请求、是否试图读取敏感文件、是否包含 prompt injection 的模式。</p><p>如果你对安全要求更高，可以搭配慢雾（SlowMist）出的 OpenClaw 安全实践指南一起用。那份指南走的是零信任路线，默认假设 prompt injection、供应链投毒都可能发生，从日常操作到每晚巡检都有覆盖。对于在高权限环境下跑 OpenClaw 的用户来说，值得过一遍。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx clawhub install skill-vetter</span></span></code></pre></div><blockquote><p>附安全实践指南链接：<a href="https://github.com/slowmist/openclaw-security-practice-guide">https://github.com/slowmist/openclaw-security-practice-guide</a></p></blockquote><h2 id="让-openclaw-能上网">让 OpenClaw 能上网</h2><p>裸机的 OpenClaw 没有联网能力，不能搜索、不能访问网页。这三个 Skill 分别解决搜索、浏览器操作和长文提炼三个场景。</p><h3 id="tavily-search">Tavily Search</h3><p>给 OpenClaw 加上网络搜索能力。Tavily 有月免费额度，对个人用户来说日常搜索基本够用，不需要一上来就掏钱。</p><p>搜索质量比让 OpenClaw 去 curl 一个搜索引擎然后解析 HTML 好太多了。返回的结果是结构化的，直接就能用。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx clawhub install tavily-search</span></span></code></pre></div><h3 id="agent-browser">Agent Browser</h3><p>有些事光靠搜索引擎搞不定。比如你要操作一个需要登录的后台、要在某个网站上填表单、或者要从一个动态加载的页面抓数据，这些都需要真正的浏览器。</p><p>Agent Browser 让 OpenClaw 能控制浏览器，点击、输入、截屏、导航，该有的都有。</p><p>这里有个关键技巧：用<code>--auto-connect</code> 参数连接到你已经登录过的 Chrome 浏览器。这样 OpenClaw 就能直接用你的登录态，不用每次都重新登录各种服务。省事太多了。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx clawhub install agent-browser</span></span></code></pre></div><h3 id="summarize">Summarize</h3><p>经常需要让 OpenClaw 帮你读一篇长文章或者处理一段音视频，Summarize 就是干这个的。给它一个网址、一个文件路径、或者一段媒体，它帮你快速生成摘要。</p><p>用之前需要先装个全局依赖：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npm i -g @steipete/summarize</span></span><span style="display:flex;"><span>npx clawhub install summarize</span></span></code></pre></div><p>搜索、浏览器、摘要，三个加一起，OpenClaw 在信息获取层面就基本没有短板了。不过这还只是读的能力。如果你还想让它去社交媒体上逛，那就需要下面这组 Skill。</p><h2 id="社交媒体三件套">社交媒体三件套</h2><p>这三个 Skill 来自同一个开发者 jackwener，做的事情就是让 OpenClaw 等各种 Agent 能搜索、访问和交互主流社交平台的内容。</p><p>小红书：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx skills add jackwener/xiaohongshu-cli</span></span></code></pre></div><p>Twitter/X：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx skills add jackwener/twitter-cli</span></span></code></pre></div><p>Reddit：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx skills add jackwener/rdt-cli</span></span></code></pre></div><p>我自己用得最多的是 xiaohongshu-cli 和 twitter-cli。比如想要了解某个工具的用户评价，让 OpenClaw 去小红书和 Twitter 上搜一圈，回来给我整理个摘要，比自己去翻快多了。</p><p>jackwener 还开源了 Bilibili、Telegram、Discord、微博、BOSS 直聘等平台的 CLI 工具和对应 Skill，需要的可以去他的 GitHub 上看看。</p><h2 id="锦上添花">锦上添花</h2><p>下面这几个不是每个人都需要，但如果你的使用场景刚好对上了，装了之后体验会好一截。</p><h3 id="proactive-agent">Proactive Agent</h3><p>普通 OpenClaw 是你给任务它才干活。Proactive Agent 让它变得主动一些，能自我迭代、主动发现问题、主动优化方案。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx clawhub install proactive-agent</span></span></code></pre></div><h3 id="github">GitHub</h3><p>有开源项目要维护，或者想给别人的项目提 PR，这个 Skill 让 OpenClaw 能直接操作 GitHub 的 Issues、PR、Code Review 等工作流。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx clawhub install GitHub</span></span></code></pre></div><h3 id="nano-banana-pro">Nano Banana Pro</h3><p>用 Gemini 3 Pro 的图像生成能力，让 OpenClaw 能画图。支持文生图和图生图，1K/2K/4K 分辨率都行，编辑已有图片也可以。做封面图、画流程图、生成配图的时候挺方便的。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx clawhub install nano-banana-pro</span></span></code></pre></div><h3 id="mcporter">Mcporter</h3><p>OpenClaw 本身不支持 MCP 工具。如果你之前在 Claude Code 上用惯了各种 MCP Server，换到 OpenClaw 会觉得少了点什么。</p><p>Mcporter 做的是格式转换：把 MCP 工具转成 CLI 格式，再作为 Skill 给 OpenClaw 使用。算是一个桥接方案，让你之前的 MCP 生态投资不至于浪费。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npx clawhub install mcporter</span></span></code></pre></div><hr><p>以上就是我目前在用的 OpenClaw Skill 组合：先把自学习和安全两个基础打好，再把联网和社交媒体的信息通道打通，最后根据自己的工作场景挑几个辅助工具。而至于编程呢，还是把专业的事情交给专业的工具，继续交给 Claude Code 来负责。你可以用 OpenClaw 的 ACP Agent 来调度 Claude Code，顺手也解决了手机访问的问题（接入 Slack/Discord/飞书等可以随时手机下发任务）。</p><p>如果这些还不够用，下面这几个地方可以继续探索：</p><hr><p>相关资源：</p><ul><li>ClawHub 官网：<a href="https://clawhub.ai/">https://clawhub.ai/</a></li><li>Awesome OpenClaw Skills：<a href="https://github.com/VoltAgent/awesome-openclaw-skills">https://github.com/VoltAgent/awesome-openclaw-skills</a></li><li>OpenClaw Skills 仓库：<a href="https://github.com/openclaw/skills">https://github.com/openclaw/skills</a></li><li>SkillsMap：<a href="https://skillsmp.com/">https://skillsmp.com/</a></li><li>Skills.SH：<a href="https://skills.sh/">https://skills.sh/</a></li><li>Awesome OpenClaw Usecases：<a href="https://github.com/hesamsheikh/awesome-openclaw-usecases">https://github.com/hesamsheikh/awesome-openclaw-usecases</a></li></ul><hr><p>欢迎长按下面的二维码关注<strong>Feisky</strong> 公众号，了解更多云原生和 AI 知识。</p><p><img src="/images/mp.png" alt="Feisky 公众号二维码" loading="lazy" decoding="async"/></p>
]]></content:encoded><dc:extent>6 min read</dc:extent></item><item><title>十个顶级 Claude Code Skills，装上就不想卸</title><link>https://feisky.xyz/posts/2026-03-12-%E5%8D%81%E4%B8%AA%E9%A1%B6%E7%BA%A7claude-code-skills/</link><pubDate>Thu, 12 Mar 2026 10:00:00 +0800</pubDate><dc:creator>Pengfei Ni</dc:creator><category>Claude Code</category><category>Skills</category><category>AI 编程</category><guid>https://feisky.xyz/posts/2026-03-12-%E5%8D%81%E4%B8%AA%E9%A1%B6%E7%BA%A7claude-code-skills/</guid><description>&lt;p&gt;用 Claude Code 大半年了，Skills 和 Plugin 装了几十个，删了一半，留下来的都是真正改变了我工作方式的。这篇就挑十个我用得最多、也觉得最值得推荐的，每个都附安装命令，拿去直接用。&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>用 Claude Code 大半年了，Skills 和 Plugin 装了几十个，删了一半，留下来的都是真正改变了我工作方式的。这篇就挑十个我用得最多、也觉得最值得推荐的，每个都附安装命令，拿去直接用。</p><p>先简单说下 Skill 和 Plugin 的区别。Skill 是一个包含 SKILL.md 的文件夹，教 Claude 怎么做某类任务；Plugin 更完整，可以打包命令、SubAgent、Hook 和 MCP 服务器。不过对使用者来说差不多，下面就不区分了。</p><h2 id="superpowers">Superpowers</h2><p>如果只能装一个，我选这个。</p><p>Superpowers 打包了 20 多个可组合的 Skill，覆盖软件开发的完整流程。brainstorming、TDD、代码审查、Git 提交，每个环节都有对应的 Skill 来约束 Claude 的行为。</p><p>我用得最多的是 brainstorming。装了之后，Claude 不会拿到需求就直接开写，而是先问你一轮问题，探索不同方案，把设计决策摊开讨论，最后生成一份设计文档存到本地。看似慢了，实际上能省掉后面大量返工。你会发现很多问题在讨论阶段就暴露了，而不是写了三百行代码之后才发现方向不对。</p><p>另一个常用的是 TDD 工作流。它会强制 Claude 先写测试再写实现，跑不过就继续改，直到全绿。Claude 的默认行为是直接写代码然后告诉你“应该没问题”，有了这个约束差别非常大。</p><p>当然，20 多个 Skill 全开可能有点重。我一般只启用 brainstorming 和 TDD 两个，其他的按需打开。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>claude plugin install superpowers</span></span></code></pre></div><blockquote><p>GitHub:<a href="https://github.com/obra/superpowers">https://github.com/obra/superpowers</a></p></blockquote><h2 id="planning-with-files">Planning with Files</h2><p>Claude Code 自带的 Plan Mode 有个让人头疼的问题：规划存在对话上下文里，上下文一压缩就丢了。长任务做到一半，Claude 忘了自己在干嘛。又从头开始。</p><p>Planning with Files 把规划、进度和知识都写进 Markdown 文件。Claude 开始干活前先创建计划文件，每完成一步就更新进度，遇到有用的信息就记到知识文件里。文件在磁盘上就不会丢，即使上下文被压缩了也能恢复状态。</p><p>这个思路其实来自 Manus。Manus 在复杂任务上表现好，核心原因之一就是中间状态都持久化了。Planning with Files 算是社区版的实现。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>claude plugin marketplace add OthmanAdi/planning-with-files</span></span><span style="display:flex;"><span>claude plugin install planning-with-files</span></span></code></pre></div><blockquote><p>GitHub:<a href="https://github.com/OthmanAdi/planning-with-files">https://github.com/OthmanAdi/planning-with-files</a></p></blockquote><h2 id="ui-ux-pro-max">UI UX Pro Max</h2><p>让 Claude 写前端页面，出来的东西大都长一个样。紫色渐变背景，圆角卡片，居中布局，也就是典型的 “AI 审美”。</p><p>Anthropic 官方有个 frontend-design Skill 能改善一些，但 UI UX Pro Max 做得更彻底。它内置了 67 种 UI 风格和 161 套行业配色方案，根据你的项目类型自动推荐设计系统，从配色到排版到交互模式，一步到位。我试着让它做一个 SaaS 后台的 dashboard，选了 Bento Grid 风格，出来的效果比 Claude 默认的好太多，至少看起来不像 AI 做的了。</p><p>技术栈方面，React、Vue、Svelte、SwiftUI、Flutter 这些都支持，不只是 Web。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>claude plugin marketplace add nextlevelbuilder/ui-ux-pro-max-skill</span></span><span style="display:flex;"><span>claude plugin install ui-ux-pro-max@ui-ux-pro-max-skill</span></span></code></pre></div><blockquote><p>GitHub:<a href="https://github.com/nextlevelbuilder/ui-ux-pro-max-skill">https://github.com/nextlevelbuilder/ui-ux-pro-max-skill</a></p></blockquote><p>聊完前端设计，下一个自然要聊的就是代码质量了。</p><h2 id="code-review">Code Review</h2><p>这是官方 Plugin 里我觉得设计最精巧的一个。</p><p>它不是让一个 Claude 从头到尾看代码，而是启动多个 Agent 并行审查同一个 PR。有的看逻辑正确性，有的看安全漏洞，有的看代码风格。每个 Agent 给出的问题都带置信度分数，最后按分数过滤，只保留高置信度的反馈。</p><p>为什么要搞这么复杂？因为 AI 代码审查最大的问题是假阳性太多。以前让 Claude 审代码，它总能挑出一堆潜在问题，看着很认真，但大部分都是过度谨慎的废话。有了置信度过滤之后，留下来的基本都值得看一看。</p><p>不过使用时要注意，大 PR 跑起来 token 消耗挺猛的，好几个 Agent 同时跑，一次 review 吃掉的 token 可能比写代码本身还多。小 PR 用着挺舒服，大 PR 建议先拆再审。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>claude plugin install code-review</span></span></code></pre></div><blockquote><p>GitHub:<a href="https://github.com/anthropics/claude-plugins-official/tree/main/plugins/code-review">https://github.com/anthropics/claude-plugins-official/tree/main/plugins/code-review</a></p></blockquote><h2 id="code-simplifier">Code Simplifier</h2><p>写代码的时候容易堆逻辑，写完跑通了就不想再碰了。Code Simplifier 帮你做那个“写完再看一遍”的事情。</p><p>它聚焦最近修改过的代码，检查重复逻辑、多余的中间变量、可以合并的条件分支。不改功能，只做简化。上次我写了一段数据处理的逻辑，里面有三段几乎一样的错误处理，跑完 Code Simplifier 它给合并成了一个通用函数，代码量少了三分之一。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>claude plugin install code-simplifier</span></span></code></pre></div><blockquote><p>GitHub:<a href="https://github.com/anthropics/claude-plugins-official/tree/main/plugins/code-simplifier">https://github.com/anthropics/claude-plugins-official/tree/main/plugins/code-simplifier</a></p></blockquote><h2 id="webapp-testing">Webapp Testing</h2><p>前端写完了，测试怎么办？手动点来点去太慢，写 Playwright 脚本又太繁琐。这个 Skill 把过程自动化了：你告诉 Claude 要测什么场景，它自己用 Playwright 写脚本、启动浏览器、跑测试、截屏，有问题还会自己调试。跟前面的 UI UX Pro Max 搭配起来特别顺手。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>claude plugin marketplace add anthropics/skills</span></span><span style="display:flex;"><span>claude plugin install example-skills@anthropic-agent-skills</span></span></code></pre></div><blockquote><p>GitHub:<a href="https://github.com/anthropics/skills/tree/main/skills/webapp-testing">https://github.com/anthropics/skills/tree/main/skills/webapp-testing</a></p></blockquote><h2 id="ralph-loop">Ralph Loop</h2><p>名字来自辛普森动画里的 Ralph Wiggum，Anthropic 工程师 Daisy Hollman 做的。通过 Stop Hook 拦截 Claude 的退出，把同一个任务重新喂给它。</p><p>Claude Code 有个习惯：做到一半觉得差不多了就停下来说“我已经完成了基础框架，你可以在此基础上继续”。Ralph Loop 不让它停。Claude 试图退出，Hook 拦截，检查完成条件，没满足就塞回去。循环往复，直到真正做完。</p><p>简单粗暴，但真的管用。</p><p>用这个有个关键技巧：完成条件要写得越具体越好。做完这个功能不行，Claude 会自己说服自己已经完成了。要写“所有 CRUD 端点可用，测试覆盖率超过 80% ，README 包含 API 文档，完成后输出 COMPLETE”。条件越模糊，它越会找理由提前收工。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>claude plugin install ralph-loop</span></span><span style="display:flex;"><span/></span><span style="display:flex;"><span><span style="color:#75715e"># 使用示例</span></span></span><span style="display:flex;"><span>/ralph-loop:ralph-loop<span style="color:#e6db74">"实现用户认证模块。完成标准：JWT 登录注册、测试通过、README 更新。完成后输出 COMPLETE"</span> --max-iterations<span style="color:#ae81ff">20</span> --completion-promise<span style="color:#e6db74">"COMPLETE"</span></span></span></code></pre></div><blockquote><p>更好详细例子可以参考:<a href="https://awesomeclaude.ai/ralph-wiggum">https://awesomeclaude.ai/ralph-wiggum</a></p></blockquote><h2 id="mcp-builder">MCP Builder</h2><p>MCP 这个协议最近讨论度挺高，但真要从零写一个 MCP Server，门槛还是不低。MCP Builder 把构建过程拆成了四个阶段，引导 Claude 一步步完成：理解 API、设计工具接口、实现、测试。</p><p>用它的体验比直接让 Claude “帮我写一个 MCP Server”好很多。直接写的话 Claude 经常漏掉 rate limiting 和 token 过期处理等等之类边界情况，用了 MCP Builder 之后这些它都会主动考虑。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>claude plugin marketplace add anthropics/skills</span></span><span style="display:flex;"><span>claude plugin install example-skills@anthropic-agent-skills</span></span></code></pre></div><blockquote><p>GitHub:<a href="https://github.com/anthropics/skills/tree/main/skills/mcp-builder">https://github.com/anthropics/skills/tree/main/skills/mcp-builder</a></p></blockquote><h2 id="pptx">PPTX</h2><p>做 PPT 大概是程序员最不想做的事。</p><p>这个 Skill 让 Claude 直接生成<code>.pptx</code> 文件，支持母版、图表、动画。说实话，生成的 PPT 不可能直接拿去做重要汇报，内容、排版和配色都还需要适当调整。但用它生成初稿已经完全够用了，可以大大节省 PPT 得创作时间。</p><p>它解决的是“从零开始太痛苦”的问题。起点有了，后面就快了。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>claude plugin marketplace add anthropics/skills</span></span><span style="display:flex;"><span>claude plugin install document-skills@anthropic-agent-skills</span></span></code></pre></div><blockquote><p>GitHub:<a href="https://github.com/anthropics/skills/tree/main/skills/pptx">https://github.com/anthropics/skills/tree/main/skills/pptx</a></p></blockquote><h2 id="skill-creator">Skill Creator</h2><p>最后一个放 meta 的。Skill Creator 是 Anthropic 官方出的，用来帮你创建新的 Skill 的技能。</p><p>之前我写过一篇文章聊它的更新（《写 Claude Skill 最大的盲区，Anthropic 终于帮你补上了》），核心变化是加了 eval 测试框架。现在你可以给 Skill 写测试用例，验证它到底有没有在起作用，还能做 A/B 对比，有 Skill 和没 Skill 的效果差多少，看数据说话而不是凭感觉。</p><p>上面九个用完了觉得不够？那就自己造。</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>claude plugin install skill-creator</span></span></code></pre></div><blockquote><p>GitHub:<a href="https://github.com/anthropics/claude-plugins-official/tree/main/plugins/skill-creator">https://github.com/anthropics/claude-plugins-official/tree/main/plugins/skill-creator</a></p></blockquote><hr><p>选 Skill 跟选工具一样，不在多，在合适。装太多互相打架，反而会影响整体的性能，并且上下文也吃不消，所以精选几个足够用即可。</p><p>另外，对不同功能的 Skills，特别是仅跟项目相关的 Skills，推荐放到项目中，提交到 Git，即方便了管理和团队共享，还节省了其他项目的上下文空间。</p><hr><p>相关资源：</p><ul><li>Anthropic 官方 Skills 仓库：<a href="https://github.com/anthropics/skills">https://github.com/anthropics/skills</a></li><li>Anthropic 官方 Plugins 仓库：<a href="https://github.com/anthropics/claude-plugins-official">https://github.com/anthropics/claude-plugins-official</a></li><li>Awesome Claude Skills 社区列表：<a href="https://github.com/travisvn/awesome-claude-skills">https://github.com/travisvn/awesome-claude-skills</a></li><li>Claude Code Skills 文档：<a href="https://code.claude.com/docs/en/skills">https://code.claude.com/docs/en/skills</a></li><li>Skills 市场：<a href="https://skillsmp.com/">https://skillsmp.com/</a></li></ul><hr><p>欢迎长按下面的二维码关注<strong>Feisky</strong> 公众号，了解更多云原生和 AI 知识。</p><p><img src="/images/mp.png" alt="Feisky 公众号二维码" loading="lazy" decoding="async"/></p>
]]></content:encoded><dc:extent>6 min read</dc:extent></item><item><title>装完OpenClaw不知道干嘛？这几个进阶玩法别错过</title><link>https://feisky.xyz/posts/2026-02-26-%E8%A3%85%E5%AE%8Copenclaw%E4%B8%8D%E7%9F%A5%E9%81%93%E5%B9%B2%E5%98%9B%E8%BF%99%E5%87%A0%E4%B8%AA%E8%BF%9B%E9%98%B6%E7%8E%A9%E6%B3%95%E5%88%AB%E9%94%99%E8%BF%87/</link><pubDate>Thu, 26 Feb 2026 10:00:00 +0800</pubDate><dc:creator>Pengfei Ni</dc:creator><category>AI</category><category>OpenClaw</category><category>Agent</category><category>Skills</category><guid>https://feisky.xyz/posts/2026-02-26-%E8%A3%85%E5%AE%8Copenclaw%E4%B8%8D%E7%9F%A5%E9%81%93%E5%B9%B2%E5%98%9B%E8%BF%99%E5%87%A0%E4%B8%AA%E8%BF%9B%E9%98%B6%E7%8E%A9%E6%B3%95%E5%88%AB%E9%94%99%E8%BF%87/</guid><description>&lt;p&gt;装完 OpenClaw 之后，很多人就拿它聊聊天、写写文案，然后觉得也就那样。&lt;/p&gt;
&lt;p&gt;说真的，太浪费了。&lt;/p&gt;
&lt;p&gt;OpenClaw 的核心设计不是聊天机器人，而是一个可以帮你执行任务、跑定时任务、自主完成工作的 Agent。它不只是回答你问题，还能帮你干活，编程、写作、跑脚本、调度其他 AI 工具干活，甚至在你睡觉的时候悄悄把明天的工作准备好。&lt;/p&gt;</description><content:encoded>&lt;![CDATA[<p>装完 OpenClaw 之后，很多人就拿它聊聊天、写写文案，然后觉得也就那样。</p><p>说真的，太浪费了。</p><p>OpenClaw 的核心设计不是聊天机器人，而是一个可以帮你执行任务、跑定时任务、自主完成工作的 Agent。它不只是回答你问题，还能帮你干活，编程、写作、跑脚本、调度其他 AI 工具干活，甚至在你睡觉的时候悄悄把明天的工作准备好。</p><p>下面分享几个我自己在用的玩法，从简单到复杂，随便挑一个入手。</p><h2 id="ai-日报自动生成">AI 日报自动生成</h2><p>这个应该是最简单的使用场景了。你可以让 OpenClaw 帮你自动从指定的技术博客、RSS 订阅源、社交媒体抓取最新内容，AI 打分筛选，每天推一份精选到你的 Slack 或者飞书上。</p><p>这种配置以往还需要专门写个程序，然后再去告诉 AI 调用。现在则不需要了，只要告诉 OpenClaw 你想要抓取哪些链接，它就可以帮你自动写好代码，并在需要时问你要相关的 API Key，然后帮你配置好定时任务。</p><p>OpenClaw 支持完整的<code>cron</code> 表达式，心跳任务走独立的队列通道，不跟实时消息抢位置。就这点，让定时任务真的靠谱，不会漏发。</p><h2 id="让-openclaw-调度-codex-和-claude-code">让 OpenClaw 调度 Codex 和 Claude Code</h2><p>这是我最近觉得最有意思的玩法。</p><p>OpenClaw 内置了<a href="https://github.com/openclaw/openclaw/blob/main/skills/coding-agent/SKILL.md"><code>coding-agent</code> Skill</a>，专门用来把编程任务委托给 Codex 或 Claude Code。你跟 OpenClaw 说“帮我用 claude 修复项目中的 xxx bug”，它把任务拆好之后，直接在后台起一个 Codex 或 Claude Code 进程去干，干完了通知你。</p><p>OpenClaw 不会一直等着这些结果，而是异步运行这些 Agent，你可以继续聊别的，它在完成后会主动通知你。甚至还可以让多个任务同时跑，不同任务跑在不同的 git worktree，互不干扰。</p><p>Codex 的调用方式差不多，把<code>claude</code> 换成<code>codex</code> 就行。这两个编程工具我都在用，各有适合的场景。</p><p>不过它这个 Skill 有时候也不太稳定，有时候也很影响效率。后面打算做两个专门的 Codex 和 Claude Code Skill，等稳定了之后再开源出来。</p><h2 id="变成你的第二大脑">变成你的第二大脑</h2><p>OpenClaw 天然有持久记忆，你只需要充分利用它。</p><p>比如给 OpenClaw 接上 Slack，然后你就可以随时给 Bot 发消息，说记住这个，它就永久存到自己的记忆中了。</p><p>如果记忆文件比较多，或者你想接入已有的知识库（比如可以把 Markdown 格式的文档目录直接配置到 OpenClaw 的记忆中），你还可以开启 OpenClaw 的混合检索，在 Markdown 记忆文件之上再加上向量搜索，相当于给 Agent 配了一套 RAG 系统，存进去的东西可以更快检索到。</p><p>传统笔记软件的核心矛盾一直是存进去容易，找出来难，而这种 Agent+RAG 系统可能是第一次从根本上解决这个问题。</p><h2 id="内容创作工厂">内容创作工厂</h2><p>给内容生产装一条流水线，是另一个我觉得很有意思的玩法。</p><p>给 OpenClaw 装备三个分工明确的 Agent：研究 Agent 每天自动扫描汇总热点（跟 AI 日报生成一样的逻辑），输出几个有意思的选题；写作 Agent 拿到选题构建大纲，撰写草稿；配图 Agent 根据内容生成封面图和文章配图。把这个流程配置成定时任务，你什么都不做，图文并茂的文章就帮你写好了。</p><p>这个模式的关键是每个 Agent 只做一件事，每件事都是一个固定的 workflow。研究 Agent 不管写作，写作 Agent 不管配图，配图 Agent 只看内容生图。上下文干净，输出质量稳定，比塞给一个 Agent 全做强得多。</p><p>不过说实话，这个模式实际跑起来并不会很美好。AI 写的初稿质量参差不齐，很多内容还都需要你做大量修改才能符合你的要求。</p><h2 id="k8s-安全部署">K8s 安全部署</h2><p>想让 OpenClaw 7×24 稳定跑起来，最简单是一台 Mac Mini，但如果你本来就有 K8s 集群，容器化放进去更省心。K8s 给它三层保护：容器隔离、网络策略、资源限制。容器不碰宿主机文件系统，Network Policy 只放行外部 API 出口、挡住内网，资源上限防止失控吃算力。</p><p>我自己维护了一个 Helm Chart：<a href="https://github.com/feiskyer/openclaw-kubernetes"><code>feiskyer/openclaw-kubernetes</code></a>，内置了 LiteLLM 作为模型网关。API Key 统一管在网关层，OpenClaw 只知道本地的 LiteLLM 地址，拿不到真实密钥，这样就算哪个 Skill 出问题也泄不出去。一条命令部署：</p><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>helm install openclaw oci://ghcr.io/feiskyer/openclaw-kubernetes/openclaw<span style="color:#ae81ff">\</span></span></span><span style="display:flex;"><span> --create-namespace --namespace openclaw<span style="color:#ae81ff">\</span></span></span><span style="display:flex;"><span> --set secrets.openclawGatewayToken<span style="color:#f92672">=</span>$gatewayToken<span style="color:#ae81ff">\</span></span></span><span style="display:flex;"><span> --set secrets.telegramBotToken<span style="color:#f92672">=</span>$telegramBotToken</span></span></code></pre></div><p>一个安全细节要注意，OpenClaw 的 Web 前端没有任何认证，千万不要直接暴露到公网上。正常使用，接入 Telegram、Slack 之类的聊天工具，在聊天工具中给 OpenClaw 发指令也完全不需要把 GateWay 公开。</p><h2 id="玩法灵感库">玩法灵感库</h2><p>如果看完这些还是不知道从哪入手，GitHub 上有个<a href="https://github.com/hesamsheikh/awesome-openclaw-usecases"><code>awesome-openclaw-usecases</code></a> 仓库，收集了 30 个已验证的真实用例，也可以去看看，找找灵感。</p><p>几个让我印象深的案例：</p><p>语音确认出席。活动前让 OpenClaw 依次拨打每个嘉宾的电话，通过 AI 语音对话确认到场情况，最后汇总成一份报告。用的是 Telnyx 的语音接口，整个流程零人工介入。</p><p>Reddit→MVP 流水线。用<code>Last 30 Days</code> 这个 Skill 挖掘 Reddit 和 X 上最近一个月的真实用户吐槽，整理出痛点，然后让 OpenClaw 直接写一个 MVP。比如，研究 OpenClaw 的用户反馈，发现“初始配置太难”是高频问题，Agent 直接就做了一个配置向导 Web 应用出来。</p><p>AI 收益追踪。每次科技公司财报前自动准备摘要，财报后推送分析和对比，永远不会漏掉关注的公司。</p><h2 id="写在最后">写在最后</h2><p>说到底，OpenClaw 能干多少事，取决于你给它配了多少 Skills、设计了多少 cron 任务。它就像一个本来什么都不会但极其听话的员工。你得先告诉它能用什么工具、怎么做事，它才会越来越有用。</p><p>Skills 生态现在挺成熟了。官方的<a href="https://clawhub.ai">ClawHub</a> 上架了 1 万多个 Skill，直接<code>clawhub install &lt;skill-name&gt;</code> 一条命令就可以安装。<a href="https://github.com/VoltAgent/awesome-openclaw-skills"><code>VoltAgent/awesome-openclaw-skills</code></a> 是社区维护的精选列表，按分类整理了数千个 Skill，找灵感比直接搜 ClawHub 更快。</p><p>当你碰到问题时，不妨到这里搜一搜，说不定就能找到你想要的。</p><hr><p>欢迎长按下面的二维码关注<strong>Feisky</strong> 公众号，了解更多云原生和 AI 知识。</p><p><img src="/images/mp.png" alt="Feisky 公众号二维码" loading="lazy" decoding="async"/></p>
]]></content:encoded><dc:extent>5 min read</dc:extent></item></channel></rss>