跟着 Anthropic 博客和文档,学习「Agent Skills」构建的最佳实践 跟随 Anthropic 博客和文档,学习「Agent Skills」构建的最佳实践
重新阅读了 Anthropic 工程博客和 Agent Skills 文档: 1. https://anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills 2. https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices
在这两篇文章中,找到了 Agent Skills 构建的这几个关键原则和最佳实践,咱们是基于 Claude 来解读的,但同样适用于其他 AI Agents,咱们一起看看。
先说结论:一个优秀 Skill 的“标准画像” · 名字(Name):使用动名词(如 processing-pdfs),清晰明确。 · 描述(Description):用第三人称(如 “Processes Excel files…” 而不是 “I can help you…“),并包含具体的触发关键词。 · 核心文件:一个精炼的 SKILL. md 作为“中控台”,若干个 .md 作为“专业手册”,以及一组 .py 或 .sh 脚本作为“精密工具”。
“极简主义”:只提供 Claude 不知道的信息 Claude 本身已经拥有庞大的知识库,上下文窗口是昂贵的公共资源。 · 不要过度解释:如果 Claude 已经知道什么是 PDF 或 Git,不要在技能中解释这些基础概念。 · 挑战每一行文字:问自己:“Claude 真的需要这段解释吗?”、“这段话的 Token 成本是否换回了足够的价值?” · 对比示例: · 反面(啰嗦):“PDF 是一种便携式文档格式,要提取它,你需要安装 pdfplumber 库…” · 正面(专业):直接给出代码示例 import pdfplumber; …。
动态调节“自由度”:给 Claude 合适的约束 根据任务的性质,决定给 Claude 多少发挥空间。 · 高自由度(文字指令):适用于有多种路径可通向成功、需要根据上下文做决策的任务(如:代码审查、内容润色)。 · 中自由度(带参数的脚本):适用于有固定模式但需要灵活配置的任务(如:生成周报、数据分析)。 · 低自由度(固定脚本):适用于极度脆弱、不容出错的任务(如:数据库迁移、系统部署)。 · 金句:像对待机器人一样——在悬崖边的窄桥上,给它死指令(低自由度);在开阔的草原上,给它大方向(高自由度)。
利用“渐进式披露”结构化你的文件夹 不要把所有东西都塞进一个 SKILL. md,这会迅速耗尽 Token。 · 保持扁平化:官方建议参考链接只保留一层深度。即 SKILL. md 直接指向 reference. md,不要出现 SKILL. md -> A. md -> B. md 的深层嵌套。 · 模块化拆分: · 如果技能涉及多个领域(如财务、销售),将它们拆分为 finance. md 和 sales. md。 · 在 SKILL. md 中做一个“目录”,Claude 只有在处理财务问题时才会去读取财务相关的详细文档。 · 长文档技巧:如果一个参考文件超过 100 行,务必在顶部加一个目录。这能确保 Claude 即使只是部分预览文件,也能看到全貌。
强制执行“验证循环” 这是提升 Agent 成功率最有效的工程手段。 · Checklist 模式:让 Claude 在执行复杂任务前,先拷贝一份清单到回复中,每完成一步打一个钩。这能防止 Claude “偷懒”跳过关键步骤。 · “运行 -> 校验 -> 修正”:在技能中包含验证脚本。 · 示例:修改 XML 文件后,强制 Claude 运行一个 validate. py。如果报错,Claude 必须根据错误信息自我修正,而不是直接报错退出。 · 让 Claude 互检:如果不用代码,也可以让 Claude 根据 STYLE_GUIDE.md 来自我审计。
评价驱动开发:先写测试,再写技能 不要凭空想象 Claude 需要什么,要从失败中学习。 · 识别差距:先让 Claude 在没有技能的情况下执行任务,记录它在哪里跌倒了(例如:不知道公司的特定 API 格式)。 · 最小化补足:只编写刚好能让它通过测试的那部分技能描述。 · 模型差异化测试: · Haiku:需要更详细、直白的引导。 · Sonnet:需要高效、平衡的指令。 · Opus/4.5:非常聪明,要避免过度解释,否则它会觉得你太啰嗦而忽略重点。