每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

Claude 的"代理技能(Agent Skills)"系统是一套以提示词为核心的元工具架构,通过"专门化指令注入"来扩展大语言模型的能力。与传统的函数调用或代码执行不同,技能通过"提示展开"和"上下文修改"来改变模型随后处理请求的方式,而不需要编写可执行代码。
该文章从第一性原理拆解了"代理技能"体系,描述了一个名为"Skill"的工具如何作为元工具,将特定领域的指令注入对话上下文;并以"skill-creator"和"internal-comms"两个技能为案例,贯穿文件解析、API 请求结构以及模型决策过程的全生命周期讲解。
总览
报道总结称,Claude 通过"技能"来改进其处理专门任务的方式。技能以文件夹形式存在,包含说明、脚本和资源,便于在需要时加载。系统采用"声明式、基于提示词"的发现与调用机制:模型依据系统中呈现的文字性描述来决定是否调用技能,底层不依赖算法级的技能选择或意图检测;决策完全发生在模型自身的语言推理过程中。
文章强调,技能并非可执行代码:不会运行 Python 或 JavaScript,也没有 HTTP 服务或函数调用;它们也不是硬编码在系统提示中,而是存在于 API 请求结构的独立部分。
报道将技能定义为"注入到对话中的专门化提示模板"。技能被调用时,会同时修改会话上下文(注入指令)与执行上下文(调整工具权限并可切换模型)。技能并不直接"做事",而是展开为详尽的提示,帮助模型以更合适的方式解决特定问题;在模型可见的工具模式中,每个技能都像动态加入的工具模式项一样出现。
当用户发送请求时,Claude 会接收三部分信息:用户消息、可用工具(如 Read、Write、Bash 等),以及"Skill"工具。Skill 工具的描述中包含所有可用技能的名称、描述及相关字段的格式化清单。模型读取该清单并以语言理解匹配用户意图;例如当请求与"internal-comms"描述吻合时,模型会以 command: "internal-comms" 的形式调用 Skill 工具。
术语说明方面,文中区分了"Skill 工具"(大写 S,管理所有技能的元工具,出现在工具数组中)与"skills"(小写,指像 pdf、skill-creator、internal-comms 这样的具体技能)。
文章再次强调,技能选择机制无算法路由或意图分类;系统将所有技能以文本形式嵌入 Skill 工具的提示中,由模型自行决策。这是纯粹的 LLM 推理:无正则、无关键词、无基于 ML 的意图检测,决策发生在模型的前向计算中,而非应用代码。
工具与技能的差异
报道给出了一张对照表以澄清"传统工具"与"技能"的差别:执行模型(同步直接 vs. 提示扩展)、目的(执行操作 vs. 引导复杂流程)、返回值(即时结果 vs. 会话与执行上下文变更)、并发性(通常安全 vs. 不并发安全)以及类型(多样 vs. 始终为"prompt")。
如何构建技能
文章以 Anthropic 技能仓库中的"skill-creator"为案例,指出技能是将专业知识打包为可组合资源,使通用代理转化为更契合需求的专门化代理。核心洞见为:技能 = 提示模板 + 会话上下文注入 + 执行上下文修改 + 可选的数据文件与脚本。
每个技能以名为 SKILL.md 的 Markdown 文件定义(大小写不敏感),并可附带 /scripts、/references、/assets 等子目录存放脚本与资源。示例中,"skill-creator"包含许可证及若干 Python 脚本,并不包含 references 或 assets。
系统会从多个来源发现与加载技能:如用户设置目录、项目设置目录、插件提供的技能以及内置技能;桌面端也支持上传自定义技能。
文中强调"循序披露(Progressive Disclosure)"原则:在前台只呈现最少信息帮助代理做出下一步判断;若被选择,再加载更详尽的 SKILL.md;运行中视需要再加载辅助资源与脚本。
SKILL.md 的结构与前言区(Frontmatter)
SKILL.md 由两部分构成:YAML 前言区负责配置"如何运行"------如权限、模型与元数据;Markdown 正文则是"让模型做什么"的具体指令、流程、范例与步骤。
示例"skill-creator"的前言区包含名称、描述与许可证字段。文章逐一解读字段,并指出"描述"是模型决定何时调用技能的主要信号,建议以明确、行动导向的语言撰写。系统还会在描述末尾附加来源信息(如"(plugin:skills)")以区分不同来源的技能。
文中提及一个尚未正式文档化的字段 when_to_use:代码中广泛出现,但可能为废弃、内部实验或计划中的功能。当前实现是将其与描述以连字符拼接后呈现;作者建议在生产环境谨慎使用,优先在描述中直接写明使用场景。
权限与模型
allowed-tools 用于声明技能可在未经额外批准的前提下使用哪些工具。建议仅声明所需最小集合,并可用通配符细化范围(如 Bash(git:*) 仅允许 git 子命令)。文中给出了多组正确与错误示例,提醒不要扩大不必要的攻击面。
model 字段可指定特定模型,默认继承会话当前模型;复杂任务可请求更强模型,也可显式设置"inherit"。此外,version、disable-model-invocation 与 mode 等可选字段用于版本管理、禁止自动调用(需手动 /skill-name 调用)以及将技能标注为修改行为或上下文的"模式命令"。
正文写法与最佳实践
正文应聚焦核心指令,并配合循序披露引用外部文件。文中提供了推荐的章节骨架(目的、概览、前置条件、步骤、输出格式、错误处理、示例、资源)及示例"技能创建流程"。最佳实践包括:控制在约5000词以内,使用祈使句,尽量引用外部文件;路径使用 {baseDir} 变量避免硬编码。技能被调用时,仅开放 allowed-tools 中声明的工具,并在需要时覆写模型。
资源打包
报道建议将复杂逻辑放入 /scripts(由 Bash 或 Python 执行),详尽文档放入 /references(按需读取进入上下文),模板与二进制资源放入 /assets(仅按路径引用,不直接读入上下文),以在保持提示精炼的同时提供足够的外延能力。
常见技能模式
- 脚本自动化:通过脚本执行复杂多步或确定性逻辑,再解析输出。
- 读-处理-写:文件转换、清洗或报告生成的基本范式,只需 Read/Write。
- 搜索-分析-报告:以 Grep 搜索、Read 上下文、分析并生成结构化报告。
- 命令链执行:按依赖顺序执行一连串命令,适合类 CI/CD 流程。
- 向导式多步工作流 、基于模板的生成 、迭代细化 与上下文聚合等高级模式也被系统性归纳,并配有 SKILL.md 片段示例与所需工具集合。
内部架构:Skill 元工具
文章指出,技能通过"元工具"Skill 运行,与 Read、Bash 等直接执行的"普通工具"不同,技能会注入专门化指令并动态修改执行环境(如权限、模型与思考预算),这使得消息往返更复杂:除了常规的工具调用与结果,还会多出用于注入技能提示的消息。
Skill 工具的实现包含名称、输入/输出模式与一个动态生成提示的 prompt 函数,用于在运行时汇总所有可用技能并呈现在 <available_skills> 区块中,实现"循序披露"。
双通道可见性与 isMeta 机制
由于技能需要既透明又不淹没用户界面,系统采用"双消息、双通道"的做法:
- 面向用户的"元数据消息"可见(不设 isMeta 或为 false),用于显示技能名称、参数与状态;
- 面向模型的"技能提示消息"隐藏(isMeta: true),承载大量操作说明。
元数据消息使用精简的 XML 结构(如 <command-message>、<command-name>、<command-args>),典型场景是显示"The "pdf" skill is loading"等加载提示;而技能提示消息则载入 SKILL.md 的完整内容,并显式设置 isMeta: true。
示例提示内容包括任务角色、处理流程、可用工具、输出格式、基础路径与用户参数等,确保模型具备完整操作上下文而不污染对话界面。
此外,系统还可按需注入"附件消息"与"权限消息"(如 allowed-tools 列表或模型覆写),以修改运行期的工具权限与模型选择。
作者进一步解释为何必须采用"两条消息"而非"一条消息":若全部可见,界面会被内部指令淹没;若全部隐藏,则用户失去透明度。两条消息分别服务不同受众与目的(可见的状态与隐藏的操作指南),并走不同的前端处理路径,符合"单一职责原则"。
执行生命周期案例:pdf 技能
生命周期从发现与加载开始:系统并行扫描用户命令、技能与插件、内置命令等,并解析插件目录中的 SKILL.md,抽取前言区字段(描述、when_to_use、allowed-tools、model 等)与正文,形成可供 Skill 工具展示的技能条目。示例"pdf"技能的聚合结果包含描述、适用场景、预核准的工具与提示正文等信息。
当用户提出"从 report.pdf 抽取文本"之类请求时,模型会在 Skill 工具描述的 <available_skills> 中比对,决定调用 "pdf"。随后进入 Skill 工具执行阶段,依次进行输入校验(空命令、未知技能、非 prompt 类型等错误码)、权限检查(基于允许/拒绝规则决定允许、拒绝或询问),并在通过后加载技能文件,生成用户可见的元数据消息与隐藏的技能提示消息,同时准备好"执行上下文修改器",以注入工具白名单和模型覆写。
系统最终将包含上述注入消息与权限信息的整套对话数组发送给 API:其中既有可见的加载提示,也有 isMeta: true 的完整技能提示,以及声明允许的工具集合。
结论与心智模型
报道总结称,Claude Code 将"专门知识"视作"可注入的提示",以修改会话上下文;并通过权限与模型配置来修改执行上下文。技能选择依赖模型推理而非算法匹配;权限作用范围与时机由技能执行期严格限定。一次技能调用通常会注入两条用户消息:一条用于界面透明度,另一条用于向模型提供详尽指令。该设计在灵活性、安全性与可组合性之间取得平衡,而不依赖传统函数调用。