智能体 Skills 技术原理分析和应用
目录文章目录目录Agent SkillsSkills v.s. MCPSkills v.s. PromptSkills 的技术框架抽象设计层面具体实现层面SKILL.mdYAML FrontmatterStructured InstructionsReferencesScriptsSkills 的运行原理工作流程渐进式加载作用域划分Skills 的应用安装网站资源基础推荐find-skills找技能skill-creator创建技能MCP BuilderMcPorter定时任务日常使用推荐Web Access SkillPUA文档操作推荐Word 文档处理PDF 文档处理Excel 文档处理PPT 文档处理图表生成ObsidianHumanizer-zh研发工作推荐Githubfrontend-design前端设计大师cache-componentsNext.js 性能专家fullstack-developer全栈开发特种兵frontend-code-review前端查错利器code-reviewer通用代码审查lint-fix格式修复小帮手webapp-testing自动化测试管家pr-creatorPR 写作助手update-docs文档同步神器Skills 的编写The Complete Guide to Building Skills for ClaudeGood Skills vs Bad SkillsGood Skill 原则Skills 的质量测试让 Claude 来引导你编写自定义的 Skills参考文档Agent SkillsAgent Skills 是 Anthropic 为 Claude 大模型设计的一种能力扩展机制它允许用户为 Claude 添加自定义的功能和工具。Skills 的技术规范https://agentskills.io/home根据官方解释Claude Skills 的定义是一种让我们将工作方法、标准、流程封装为可重复使用模块的功能。Skills 一旦创建Claude 就会在相关任务中自动识别并应用相应技能是一种能被 Claude 识别并复用的工作流。能够很好的用于扩展 Claude Agent 的能力边界和保证输出的稳定性。可见Skills 适用于已形成成熟方法论的重复性任务如故障诊断、固定的数据处理与分析流程等。我们在特定业务场景下积累的经验、代码、标准、流程都可以打包成 Skills。并且多个 Skills 可自动协同工作产生仅凭常规提示词难以达到的高质量输出显著提升工作效率和结果一致性。简而言之Skills 就是把大模型的智能固化为你本地的技能。智能LLM 的知识停留在文本表达上但没手没脚无法触及世界。技能为 LLM 安装上手脚让它能够使用工具、能够干活。同时定义清楚这个活应该怎么干这才是一门技能。本地技能的载体是 Markdown 文件它被安装在本地所以技能是固定的不是 LLM 动态生成的。实际上任何你写超过 2 遍的 prompt都该考虑封装成 Skills。Skills v.s. MCP刚开始接触 Skills 的同时总会搞不清楚它和 MCP 之间的区别是什么。维度MCPSkills核心定位面向工具的通信协议面向任务的能力封装与工作流设计目标解决 LLM 如何标准化地连接外部世界解决 LLM 如何高效、准确、标准地完成具体事情比喻厨房里的“单一厨具”如一把刀、一个烤箱一本完整的“菜谱”如“如何制作法式焗蜗牛”领域协议层应用层工具暴露方式一次性全量暴露连接即注入所有工具定义渐进式披露先加载元数据再逐步深入工具调用准确率工具越多准确率越低基准测试已验证即使中等模型也能保持较高准确率Token 消耗量极高每个 MCP Server 的所有工具都要进上下文极低只加载当前阶段所需信息可扩展性成本MCP Server 越多Token 成本和复杂度越高Skills 数量增加对 Token 成本压力也较小适合场景能力暴露数据库、云 API、SaaS、地图服务等重复性流程标准化文件处理、代码 Review、写作规范、固定工作流Powerful Agent MCP Tools (能力) Skill (SOP/标准作业程序)Skills v.s. Prompt简而言之Prompt 是一次性消耗品Skills 才是持久化的核心资产。Prompt 在 Agent 中的应用具有以下问题上下文膨胀Context Bloat一旦任务稍微复杂一点Prompt 就会变得复杂背景、规则、口径、示例、边界条件、反例、输出模板等等。这些内容都在消耗 token更糟糕的是随着上下文越来越长LLM 的注意力被稀释容易出现幻觉结果就会变得更不稳定要么漏步骤要么忘规则要么在关键约束上“选择性失忆”。不可复用也难维护即便 Agent 提供了 Prompt Template但代码文件依旧难以维护当业务线多了、场景多了就会得到一堆模版版本。更现实的问题是组织知识无法结构化沉淀。缺乏结构化执行保障Prompt 的本质是把模型往一个方向 “引导”。它没有真正的执行约束也没有验收机制模型可以自由发挥、可以跳步、可以编造 “看起来合理” 的细节。使得 Agent 在 toB 生产流程难以得到保障。我们需要的是一种更像软件模块的新单元可封装、可加载、可验证。Agent 开发的下半场不是比谁的 Prompt 写得长而是比谁能把复杂的项目拆解成一个个甚至不需要思考、只需要执行的标准动作Skills。Skills 的技术框架抽象设计层面在抽象设计层面一个 Skill 被设计为 “多层次渐进式上下文加载机制”所以可以将 Skill 分为以下层级L1 索引层Metadata是 Skill 的职业名片LLM 通过 “名片” 来找到对应的 Skill 干活。Agent 在系统提示词中只看到这部分用于通过路由决策 “是否调用该 Skill”。L2 指令层Instructions是 Skill 的能力说明了一个任务应该如何完成。当 Agent 决定调用 Skill 时才会加载这个 Markdown 文件 5k tokens。这里定义了完整的思维链Chain of Thought、操作流程和边界条件。L3 资源层Resources是 Skill 的资源完成一个任务所需要的资源。包括scripts/代码、references/文档、assets/模板。这些文件只有在执行具体步骤需要时才会被读取或执行。好的 Skill 设计不应把所有规则一次性塞给 LLM而应像操作系统加载动态链接库DLL一样按需加载。具体实现层面在具体实现层面一个 Skill 的本质就是一个文件夹包括以下文件种类。Metadata 和 Instructions 层文件SKILL.md 文件是 Skill 的核心作为技能说明书。通过 Metadata 说明 Skill 能做什么以及通过 Instructions 说明 Skill 会怎么做。具体包括使用场景、使用方式、使用步骤、及注意事项等上下文补充信息。一个最简单的 Skill 模版只包含了一个 SKILL.md 文件https://github.com/anthropics/skills/blob/main/template/SKILL.md--- name: template-skill description: Replace with description of the skill and when Claude should use it. ---# Insert instructions belowResources 层文件resources/ 目录完成一个任务所需要的资源。script/ 目录脚本目录和文件用于固化确定性操作使得执行过程精准、一致、不会幻觉。如果没有 Script 的话LLM 可能每次都会给你生成不同的 Script 内容。另外提前准备好 Script 也能剩下不少 Token。所以当同样的代码被反复执行时或者需要确定性和可靠性时就该用 Script。reference/ 目录引用目录和文件用于向 LLM 提供少样本学习的参考示例。一个 Skill 的文件结构参考skill-name/ ├── SKILL.md# 核心大脑Prompts Rules├── scripts/# 执行手脚Python/Bash 脚本├── references/# 领域知识API 文档、Schema└── assets/# 静态资源模板文件这种设计将 “知识”References、“逻辑”Scripts与 “指令”SKILL.md解耦使得 Skill 具备了工程化的维护性。可见Skill 就像是一个打包好的 “技能包”它把完成某个特定任务所需的领域知识、操作流程、要用到的工具、以及最佳实践全都封装在了一起。SKILL.md一个经典的 SKILL.md 应该包含以下内容name技能名称description能力描述做什么、不做什么triggers触发提示哪些用户意图/关键词/任务类型适用usage instructions使用说明步骤、策略constraints约束条件格式、语气、禁止项、合规要求示例给模型一个“标准答案的形状”从结构上被划分为了 2 各部分如下图所示。一个 SKILL.md 示例--- name: weather-reporter description: 智能天气播报员用生动的语言播报天气状况 ---# 天气播报员 Skill当用户询问天气时按以下流程播报## 播报流程1. **获取天气数据** - 调用天气 API 获取当前天气 - 记录温度、湿度、风速、天气状况2. **生成播报文案** - 用生动、拟人化的语言 - 加入场景感如阳光正好适合出门散步 - 根据天气给出建议穿衣、带伞等3. **格式化输出** - 使用 emoji 增强可读性 - 结构清晰今日天气 → 出行建议 → 温馨提示## 示例输出️ 今日天气播报天气晴朗微风拂面温度22°C体感舒适湿度65%空气清新 出行建议- 阳光正好适合户外活动- 轻薄外套即可注意防晒- 风力较小骑行很惬意 温馨提示今天是晒被子/洗车的好日子哦~ ☀️## 注意事项- 避免使用专业术语用生活化语言 - 每条播报控制在200字以内 - 保持温暖、亲切的语气YAML FrontmatterSKILL.md 首先就是 YAML Frontmatter前言作为 Skill 的 Metadata 部分包括name名字标识。description是 Skill 的名片非常重要。allowed-tools允许 Skill 使用的 Tools 清单。例如---name:PDF Operationsdescription:Split and merge PDF files. Use when you need to extract pages from PDFs,split PDFs by page ranges,or merge multiple PDF files into one. Requires PyPDF2 package (install with pip install PyPDF2).allowed-tools:Bash,Read,Write,Glob,Grep---其中最重要的 description 决定了 2 件事LLM 什么时候选用你。用户搜索 Skills 的时候能不能找到你。如果你的 Skill 被选用率太低那大概是 description 没写好。所以用大白话写的清晰、准确的 description对 Skill 能否起作用至关重要。通常我们采用 3 段式编写什么时候用Use when什么时候不用Don’t use when输出什么Output另外还有一个技巧就是 “关键词轰炸”把 Skill 使用场景中的关键词更全面的写到 description 中。Structured InstructionsStructured Instructions结构化指令部分的内容是存粹的 Markdown 格式没有特殊的语法全是大白话这部分的内容应该提供关于 Skill 的全面描述包括功能、使用说明、参考资料、资源和示例。但注意要采用 “清晰的层级结构”利用 LLM 的 Attention Mechanism清晰的层级结构比一大堆纯文本更容易让 LLM 在处理长上下文时保持专注而不会 “遗忘”。例如## 1. GoalXXX## 2. Workflow### Step 1: [第一个主要步骤]清楚解释发生什么。 示例\\\bashpython scripts/fetch_data.py --project-id PROJECT_ID\\\预期输出[描述成功的样子]### Step 2: [第二个主要步骤]...根据需要添加更多步骤## 3. Examples**示例1[常见场景]** 用户说Set up a new marketing campaign执行动作1. 通过 MCP 获取现有 campaigns2. 用提供的参数创建新 campaign 结果Campaign 创建完成返回确认链接 根据需要添加更多示例## 4. Troubleshooting**错误[常见错误信息]** - 原因[为什么发生]- 解决[如何修复]根据需要添加更多错误案例Instructions 中最常见的章节之一就是 Workflow用户可以将以往的 SOP 直接翻译为 Workflow 的内容。在实践中可以结合 2 个技术Explicit CoT显式的思维链强制 LLM 进入思考并按照步骤执行。Checklist检查清单是 CoT 的增强可以非常有效的约束 AgentLLM 的执行过程变得更加稳定和可靠。例如下是 Skill baoyu-slide-deck 的 Checklist 设计。用 ⚠️ 标记关键节点告诉模型哪些步骤绝对不能跳过。子步骤嵌套复杂步骤拆得更细。标注条件分支比如 “Step 4: Review outline (conditional)” 意思是根据前面用户的选择决定是否执行。Copy this checklist and check off items as you complete them: Slide Deck Progress: -[]Step1: SetupAnalyze -[]1.1Load preferences -[]1.2Analyze content -[]1.3Check existing ⚠️ REQUIRED -[]Step2: Confirmation ⚠️ REQUIRED -[]Step3: Generate outline -[]Step4: Review outline(conditional)-[]Step5: Generate prompts -[]Step6: Review prompts(conditional)-[]Step7: Generate images -[]Step8: Merge to PPTX/PDF -[]Step9: Output summary此外还有一个 Pre-Delivery Checklist特别适合输出型的 Skill生成代码、生成设计、生成文档。让 Skill 在最终交付之前做一次检查。例如 ui-ux-pro-max 在最后加了一个交付前检查清单每一条都是 “具体的、可检查的”。## Pre-Delivery Checklist### Visual Quality-[]No emojis used as icons(use SVG instead)-[]All icons from consistent iconset-[]Brand logos are correct -[]Hover states dont cause layoutshift### Interaction-[]All clickable elements have cursor-pointer -[]Transitions are smooth(150-300ms)### Accessibility-[]All images have alt text -[]Form inputs have labels -[]prefers-reduced-motion respectedReferencesReferencese.g. reference.md、references/ 等通常以 “附加文件” 的方式包含在 SKILL.md 中。一方面减小 SKILL.md 的内容另一方面扩展其功能定义。Scripts目前支持的 Python、Shell、JavaScript 类型的脚本文件。Skills 的运行原理工作流程Skills 的工作流程用户输入 → 意图识别 → 技能匹配 → 动态加载 → 生成输出渐进式加载Anthropic 提倡的是 Progressive Disclosure渐进式加载设计思想只有在需要的时候才发送给 LLM。因为 LLM 上下文窗口是公共资源。除了 Skill 之外还要和 System Prompt、User Prompt、Context、History、RAG 一起挤在有限的 LLM 上下文空间里。没用的东西越多就会约影响 LLM 的注意力留给真正工作的空间也就越少。所以Skills 被设计为渐进式加载的方式。在 Agent 启动时会将每个已安装 Skills 的 name 和 description 预先加载到其 System Prompt 中使得 AgentLLM 知道什么时候使用哪个 Skill而不需要将这个 Skill 都加载到 Prompt 中从而节省了 token。首先加载 SKILL.md 的 Metadata 到 LLM。约 100 Token。被 LLM 选中后再加载整个 SKILL.md 文件到 LLM。低于 5000 Token。真正开始执行时才加载整个 SkillScript/Resource/Reference 到 LLM。不限制 Token。所以要把详细内容拆分到 References 目录里SKILL.md 只在需要的步骤才引用它。例如一个 code-review-expert包含 4 份 checklist好几千字把它们放在了 references/ 里。SKILL.md 里只在对应步骤写一句 Load references/xxx.mdAgentLLM 执行到那个步骤时才去读。code-review-expert/ ├── SKILL.md# 主文件只有流程编排└── references/# 参考文档├── solid-checklist.md# 第二步才加载├── security-checklist.md# 第四步才加载├── code-quality-checklist.md# 第五步才加载└── removal-plan.md# 第三步才加载简而言之SKILL.md 应该控制在 500 行以内超过的部分一律拆到 references/ 里。显然的这种设计既高效又节省 token体现了对成本和性能的深度考量。作用域划分由于 Skills 的技术特性所以安装的 Skills 太多时难免会有 Description 重叠导致 Skill 选用不准确。所以针对 Claude Code 而言对 Skills 的作用域进行了划分。Project Scope某一个具体的项目有效安装位置 {project}/.claude/skills/。Agent ScopeClaude Code 有专门的智能体粒度作用域安装位置 ~/.agents/skills/。User Scope个人用户的所有项目都有效安装位置 ~/.claude/skills/。当同名 Skill 存在于多个 scope 时的优先级项目级 用户级。Skills 的应用安装因为 Skills 的本质就是一个文件夹所以 Skills 的安装非常简单Claude Code 用户只需要把 Skill 文件夹放到 ~/.claude/skills/ 目录下即可使用。OpenClaw 用户可以使用 Clawhub 指令来进行安装也可以直接把 Skill 文件夹放到 ~/.openclaw/workspace/skills 目录下。而且 Claude 和 OpenClaw 的 Skills 都遵守 AgentSkills 标准所以它们之间的通用的。网站资源Anthropics 官方 Skillshttps://github.com/anthropics/skillsClawhub 市场https://clawhub.ai/SMP 市场https://skillsmp.com/开源社区https://github.com/ComposioHQ/awesome-claude-Skills基础推荐find-skills找技能https://github.com/vercel-labs/skills/tree/main/skills/find-skillsfind-skills 以 94.1K 的安装量稳居 skills.sh 生态市场榜首远超其他 Skills。find-skills 就像市场的 “搜索栏”快速帮你找到需要的技能。find-skills 的定位很明确作为发现和安装 skills 的工具。它的核心特性有三个智能搜索交互式选择多平台支持包括Claude Code、OpenCode、CodeX、Cursor。find-skills 需要 Node.js 环境和 npx 指令提供了以下核心命令npx skillsfind[query]# 搜索技能交互式或按关键词npx skillsaddpackage# 安装技能npx skills list# 查看已安装npx skills removepackage# 卸载技能snpx skills check# 检查更新npx skills update# 更新所有技能常见分类参考Web 开发React、Vue、Angular、Node.js 等测试单元测试、集成测试、E2E 测试等DevOps部署、CI/CD、监控、日志等数据分析CSV 处理、数据可视化、统计分析等文档Markdown、Word、PDF、幻灯片等业务品牌指南、广告分析、客户研究等创意设计、图像处理、视频编辑等skill-creator创建技能https://github.com/anthropics/skills/tree/main/skills/skill-creator通过引导式对话帮助用户将脑海中的想法或纸面上的 SOP 自动转化为符合标准的 SKILL.md 文件。clawhubinstallskill-creatorMCP Builderhttps://github.com/anthropics/skills/tree/main/skills/mcp-builder适用于 Python FastMCP 或 Node/TypeScript MCP SDK 环境。指导创建高质量的 MCP Model Context Protocol 服务器使语言模型能与外部服务和 API 交互。McPorterhttps://clawhub.ai/steipete/mcporter装上 mcporter 后 OpenClaw 就可以直接支持 MCP 了。这意味着成千上万个现成的 MCP Server 可以被 OpenClaw 使用。clawhubinstallmcporter定时任务让 OpenClaw 定时地主动帮你做事。clawhubinstallcron日常使用推荐Web Access Skill将联网搜索和浏览器操控结合到一起的 skill。https://github.com/eze-is/web-accessClaude code 本身自带的搜索工具并不能够搜到非公开的站内信息碰到小红书、B站这种站内内容基本搜不到什么有用的东西。Web Access Skill 可以通过 Chrome DevTools Protocol 直接连你本地的 Chrome 进程带着你的登录状态所以其实你平时登录过的微博、小红书、B站、飞书它都能直接用不需要重新登录。出于节省token考虑还选择了 Jina 作为一个可选中间层可以和 WebFetch、Curl 组合使用能把网页正文预先转成干净的 Markdown 再读大幅节省 token 消耗。有一个前提条件是需要Chrome更新到最新版。还需要允许远程调试可以在地址栏输入 chrome://inspect/#remote-debugging进行勾选。它会自动沉淀每个网站的操作经验。在本地按域名存一份操作记录哪些选择器好使、哪些路径走得通、哪些坑要避开会全都记下来。第一次访问可能慢一点但之后再去同一个网站就快得多了越用越顺像是Agent自己在攒工作经验。PUAPUA skill 就是专治这种摆烂的。当你的项目改来改去实在改不好的时候直接 /pua。然后它就会开始找原因了。当你某一个 BUG 它死活改不明白的时候直接开启 PUA 模式。https://github.com/tanweai/pua它会有四级压力升级如果 Agent 在同一个思路上原地打转PUA 会强制打断它让它执行一个 7 项检查清单逼它换思路。文档操作推荐Word 文档处理https://github.com/anthropics/skills/tree/main/skills/docxhttps://github.com/anthropics/skills/tree/main/skills/doc-coauthoring适用于处理专业的 Word 文档。支持 docx 文件的创建、编辑与分析包括追踪修订、添加评论、保留格式和文本提取。PDF 文档处理https://github.com/anthropics/skills/tree/main/skills/pdf适用于需要以编程方式处理、生成或分析 PDF 的场景。提供全面的 PDF 操作工具集支持文本与表格提取、创建新 PDF、合并/拆分文档及处理表单。Excel 文档处理https://github.com/anthropics/skills/tree/main/skills/xlsx适用于需要处理电子表格数据的各类任务。支持 xlsx 等电子表格文件的创建、编辑与分析包括公式、格式化、数据分析和可视化。PPT 文档处理https://github.com/anthropics/skills/tree/main/skills/pptx适用于各类演示文稿处理任务。支持 pptx 文件的创建、编辑与分析包括处理布局、模板、图表和自动生成幻灯片。能将 pptx 直接转换为 Markdown 格式供 AI 深度阅读甚至可以解构幻灯片的 XML 原始数据来提取备注、评论和隐藏的图文排版信息。图表生成https://clawhub.ai/Matthewyin/diagram-generator能够将复杂的文本逻辑转化为可视化图表。它支持 Mermaid 等多种格式擅长处理时间轴、流程图和思维导图。Obsidian读写你的 Obsidian vault帮你整理笔记、打标签、做知识关联。Obsidian CEO 开源的三大专属Skillshttps://github.com/kepano/obsidian-Skillsjson-canvas创建和编辑JSON Canvas文件.canvas用于可视化画布、思维导图、流程图obsidian-bases创建和编辑Obsidian Bases.base文件包含表格视图、卡片视图、过滤器和公式obsidian-markdown创建和编辑Obsidian风味Markdown支持wikilinks、嵌入、callouts、属性和标签Humanizer-zhhttps://github.com/op7418/Humanizer-zh/tree/mainAI 写作去痕工具中文版。通过重组长短句、注入情感逻辑对文字进行细颗粒度的重构让文本彻底告别 “AI 味”。npx skillsaddhttps://github.com/op7418/Humanizer-zh.git研发工作推荐Github创建 Issue、查看 PR、管理仓库。开发者装这个配合 Agent Browser 可以直接让 OpenClaw 帮你巡检项目。需要配置 Github 的 Personal Access Token。clawhubinstallgithubfrontend-design前端设计大师https://github.com/anthropics/skills/tree/main/skills/frontend-design它能驾驭极简、复古、野兽派等多种大胆的设计风格从排版、色彩到动效细节帮你打造出具有艺术感和辨识度的 UI。cache-componentsNext.js 性能专家https://github.com/vercel/next.js/tree/canary/.claude-plugin/plugins/cache-components/skills/cache-componentsNext.js 开发必装。将 Partial PrerenderingPPR和缓存的最佳实践直接集成到了你的工作流中。它不仅能自动生成带缓存优化的数据获取组件还能智能处理 边界和 use cache 语法。fullstack-developer全栈开发特种兵https://github.com/Shubhamsaboo/awesome-llm-apps/tree/main/awesome_agent_skills/fullstack-developer这个 Skill 扮演的是一位精通现代 Web 技术的全栈专家。它专注于 JavaScript/TypeScript 生态特别是 React (Next.js) Node.js 主流数据库PostgreSQL/MongoDB的组合。frontend-code-review前端查错利器https://github.com/langgenius/dify/tree/main/.agents/skills/frontend-code-review专为前端代码.tsx, .ts, .js定制的审查官。它不仅仅检查语法还会深入业务逻辑、性能表现和代码质量三个维度。它能发现“在特定场景下导致白屏”的隐形 Bug或者“不必要的重渲染”等性能杀手。code-reviewer通用代码审查https://github.com/google-gemini/gemini-cli/tree/main/.gemini/skills/code-reviewerGoogle Gemini 出品的通用型审查工具。它的强大之处在于结构化反馈它不会给你一堆乱七八糟的建议而是输出包含“总体概述”、“关键问题”、“改进建议”和“最终结论”的专业报告。支持审查本地变更和远程 PR。lint-fix格式修复小帮手https://github.com/facebook/react/tree/main/.claude/skills/fix这个 Skill 专注于自动化处理这些“琐事”。它能识别项目中的 Lint 规则并自动修复格式错误保持代码风格的统一。webapp-testing自动化测试管家https://github.com/anthropics/skills/tree/main/skills/webapp-testing基于 Playwright 构建的本地测试工具集。它采用“先侦查后行动”的策略能自动分析页面 DOM 结构编写并执行测试脚本。不仅能验证功能还能截图、抓取控制台日志是前端开发者的调试好帮手。pr-creatorPR 写作助手https://github.com/google-gemini/gemini-cli/tree/main/.gemini/skills/pr-creatorpr-creator 能根据你的代码变更自动生成高质量、符合团队规范的 Pull Request 描述。它能提升 Code Review 的效率让你的提交记录清晰可读。update-docs文档同步神器https://github.com/vercel/next.js/tree/canary/.claude-plugin/pluginsupdate-docs 能自动检测代码变更并帮你更新相关的技术文档确保“文码一致”。Skills 的编写参考文档https://mp.weixin.qq.com/s/PEisnE_CzFbexPZMSgmgJAThe Complete Guide to Building Skills for ClaudeThe Complete Guide to Building Skills for Claude构建 Claude Skills 终极指南》是 Anthropic 发布了一份 32 页的官方指南把手教你怎么把自己的工作流程、领域知识封装成 AI 能自动执行的技能包。https://platform.claude.com/docs/zh-CN/agents-and-tools/agent-skills/best-practicesAnthropic 总结了三大典型应用场景文档类型的工作比如生成前端设计、PPT、合同模板、数据分析报告。工作流自动化多步骤流程需要一致的方法论。MCP 增强你已经有 MCP 提供工具访问Skill 负责封装 “怎么用好这些工具” 的知识。不只是调用 MCP 工具而是封装了一整套工作流程。Anthropic 强调 “先测试再封装”不要一上来就写 Skill。正确流程先在对话中反复测试一个具体任务。找到最有效的提示方式。记录 Claude 的成功输出。把这个成功经验提取成 Skill。这样做的好处利用 Claude 的上下文学习能力快速找到最优解而不是盲目写一堆规则。Anthropic 在指南中总结了五种经过验证的工作流模式。这些模式可以直接套用到你的场景中。顺序工作流编排适用于有明确先后顺序的多步骤流程。关键技巧明确步骤依赖、每步验证、失败时回滚。# 示例客户入职流程Step1: 创建账户调用 create_customer Step2: 设置支付方式等待验证 Step3: 创建订阅使用 Step1的 customer_id Step4: 发送欢迎邮件多 MCP 协调一个工作流跨越多个服务。关键技巧清晰划分阶段、数据在服务间传递、每阶段验证后再进入下一阶段。# 示例设计到开发的交接流程。Phase1: Figma MCP → 导出设计资源和规格 Phase2: Drive MCP → 存储资源并生成分享链接 Phase3: Linear MCP → 创建开发任务并附加资源链接 Phase4: Slack MCP → 在#engineering 频道通知团队迭代优化输出质量可以通过多轮迭代提升的场景。关键技巧明确质量标准、写脚本自动检查、设定停止条件不能无限迭代。# 示例报告生成。1. 生成初稿2. 运行验证脚本检查问题缺失章节、格式不一致、数据错误3. 针对问题进行修正4. 重新验证5. 重复直到质量达标上下文感知工具选择同样的目标但根据不同上下文选择不同工具。关键技巧清晰的决策标准、备选方案、向用户解释为什么选择这个工具。# 示例智能文件存储根据文件类型和大小决策 -10MB云存储 MCP - 协作文档Notion/Docs MCP - 代码文件GitHub MCP - 临时文件本地存储领域专用智能在工具调用之外嵌入领域专业知识。关键技巧把领域规则编码进 Skill、合规检查先于行动、完整的审计日志。# 示例金融合规检查调用支付 MCP 之前1. 检查制裁名单2. 验证管辖区域是否允许3. 评估风险等级4. 记录合规决策 通过后执行支付 拒绝后标记审核、创建合规案例Good Skills vs Bad Skills维度GoodBad单一职责原则每个 Skill 只做一件事且把它做好。例如可以分解为三个独立的 Skillquery_data、generate_chart、send_email。一个 Skill 试图做太多事比如“既负责数据查询又负责图表生成还负责邮件发送”。描述清晰度使用自然语言描述清晰、具体。明确说明输入、输出和核心功能。例如“根据用户提供的城市名和日期范围查询并返回该城市的天气数据。”描述模糊充满技术术语智能体难以理解。例如“一个用于数据处理的工具。”参数设计参数精简、命名语义化如 city_name date_range并为每个参数提供清晰的描述和示例。明确使用 Skill 需要的参数如何获取以及参数如何使用。参数过多、命名不规范如 arg1 p2缺少详细的注释说明。可组合性设计时就考虑到了可组合性其输出可以作为其他 Skill 的输入方便构建更复杂的任务流Workflow可以尝试通过单一职责完成原子 Skill 的开发并通过某项具体任务 SOP Skill 完成协调。设计上是“一锤子买卖”难以与其他 Skill 联动。Good Skill 原则一个成熟的 Skill 通常具备 3 类特征声明式触发通过 name description 让 Agent 能“路由”到正确能力而不是靠猜。分层加载先加载少量元信息确认需要时再注入详细指令和外部资源避免上下文爆炸。输出可验收输出不是一段自由文本而是符合 spec 的结构化结果可检查、可回归、可自动化。一个成熟的 SKILL.md 通常具备以下元素Overview问题定义这个 Skill 解决什么问题适用什么场景不适用什么场景Inputs输入规范必填字段是什么格式是什么缺失怎么处理Workflow分步流程明确步骤、分支条件、依赖工具最好能让人类也照着执行一遍。Output Spec输出验收标准Output Spec输出验收标准Guardrails边界与异常处理明确禁止事项、合规要求、遇到冲突信息如何处理、无法完成时如何降级。ExamplesI/O 示例至少给 2-3 个典型样例覆盖正常、边界、异常。Resources外置依赖模板文件、脚本、规则库、引用材料的路径与调用方式。一个成熟的 Skill 的内容组织应该具备以下特点L1 描述要精准Skill 的 description 写得太泛会造成多个技能路由混乱结果随机。L2 要控制指令长度不是越长越好考虑 LLM 的注意力机制。L2 只保留流程与规范而把长期稳定的东西放到 L3 资源里用工具读取。L3 执行要有反馈例如明确 Script 的输入和输出。最近 Anthropic 发布了文档《The Complete Guide to Building Skills for Claude构建 Claude Skills 终极指南》详细定义了 Agent Skills 的标准格式和最佳实践。Micro-skills微技能将大任务拆解为小而专的 Skills。坚持单一职责让每个 Skill 都像一块积木小而美专注于解决一个具体问题便于日后的复用和组合。Naming is Routing命名即路由SKILL.md YAML Frontmatter 就是用来路由的name 应该要见名知意而 description 描述中必须包含 WHAT做什么和 WHEN什么时候用。定边界“别在 X 场景调用我这时候用 Y Skill”可以让 Skill 选用更准确。给例子Few-Shot Prompting这是最关键的一点与其费尽口舌解释不如直接给出几个清晰的输入输出示例。榜样的力量是无穷的模型能通过具体例子秒懂你想要的格式、风格和行为。立规矩Structured Instructions定角色给它一个明确的专家人设比如 “你现在是一个资深的市场分析师”。拆步骤把任务流程拆解成一步步的具体指令引导它 “思考”。画红线明确告诉它 “不能做什么”防止它天马行空地 “幻觉”。给它 “自我纠错Self-Correction” 的能力在最后结束之前明确要求 Verify验证自己的执行结果符合要求之后再输出。造接口Interface Design像设计软件 API 一样明确定义 Skill 的输入参数和输出格式比如固定输出 JSON 或 Markdown。这让你的 Skill 可以被其他程序稳定调用和集成。固定输出模板Output Template定义具体的 Markdown 表格格式或 JSON Schema。用 domain_secrets 管理凭证不要把密钥写进 Skill 的指令中用 domain_secretsLLM 看到的是占位符如 $API_KEY实际值由 sidecar 在请求发出前注入。LLM 永远看不到明文。渐进式暴露SKILL.md 控制在 500 行以内超过的部分一律拆到 references/ 里。勤复盘Iterative Refinement把 Skills 当作一个产品来迭代。在实际使用中留心那些不尽如人意的 “Bad Case”然后把它们变成新的规则或反例补充到你的 Skills 定义里让它持续进化越来越聪明、越来越靠谱。Skills 的质量测试准备针对性的挑战库和挑战智能体。尤其是面向生产的 Skill建议维护一套“黑帽子测试用例”信息不全、诱导、冲突数据、极端输入每次改动都跑一遍。让 Claude 来引导你编写自定义的 Skills这种自定义 Skills 的过程符合 Spec Coding “先思考后行动” 的思想即先详细定义可以执行的需求规范Specification然后再推动 AI 进行开发。它的流程包含 “需求分析、技术设计、任务拆解” 的文档编写过程最后让 AI 根据规范来完成编码。这种一步步的工作流程能保证每一步都有依据实现从需求到代码的准确转化。只要你安装了 skill-creator skill 之后就可以和 Claude Code 聊天让它引导你创建一个自定义的 Skill 了。当然了一个好用的、符合预期的 Skill 需要反复的打磨。好在你可以使用自然语言让 Claude Code 帮你不断优化。参考文档https://mp.weixin.qq.com/s/i4swQzpV1QbZu612iJBMiQhttps://mp.weixin.qq.com/s/BBJ3aLi0WxzUh1DM0_ytwAhttps://mp.weixin.qq.com/s/m9nL_jsdKRj4G-AWueAmzw