阳仔
发布于 2026-01-16 / 5 阅读
0
0

Agent Skills

摘要

AI 编程工具正经历一场深刻的范式革命,从被动响应“提示词”(Prompt)的助手,演变为能够主动、高效地利用项目知识和工具的“自主代理”(Agent)。本文深度解析两大前沿热点:Claude Code 的 Agent SkillsCursor 的动态上下文发现(Dynamic Context Discovery)。通过剖析这两项技术的官方实现,我们将揭示 AI 代理如何被赋予“专业技能”和“自主学习”能力,并探讨这一趋势对未来软件开发的深远影响。


1. Claude Code Agent Skills:为 AI 打造可复用的“专家工具箱”

根据 Claude Code 官方文档,Agent Skills 是一种开放标准,旨在将特定领域的专业知识和工作流程,封装成 AI 可以自动发现和调用的“技能”。这标志着 AI 从一个“万能的通才”向一个“可定制的专家团队”转变。

1.1 什么是 Skill?它如何工作?

一个 Skill 的核心是一个名为 SKILL.md 的 Markdown 文件。它不仅仅是一段提示,而是一个结构化的知识包,其工作流遵循“发现-激活-执行”三步曲:

  1. 定义与存储

    1. SKILL.md 文件:每个 Skill 的核心,包含两部分:

      • YAML 元数据:位于文件顶部,必须包含 name(技能名称)和 description(功能描述和触发时机)。description 尤为关键,因为它是 AI 判断何时使用该技能的主要依据。

      • Markdown 指令:详细说明了当技能被激活时,Claude 应该如何一步步执行任务。

    2. 存储位置决定作用域:Skills 可以存储在个人(~/.claude/skills/)、项目(.claude/skills/)或组织级别,实现了知识的共享和版本控制。

  2. 工作机制(发现 → 激活 → 执行)

    1. ① 发现 (Discovery):启动时,Claude 仅加载所有可用 Skill 的 namedescription。这是一个关键的性能优化,让 AI 知道“有哪些技能可用”而无需立即消耗大量上下文窗口。

    2. ② 激活 (Activation):当用户发出请求时(例如,“帮我审查一下代码”),Claude 会将请求与所有技能的 description 进行匹配。如果匹配成功(例如,匹配到某个 description 为“使用我们团队的标准审查 PR”的技能),Claude 会请求用户授权使用该 Skill

    3. ③ 执行 (Execution):一旦获得授权,Claude 才会将完整的 SKILL.md 文件内容加载到上下文中,并严格遵循其中的指令执行任务。

1.2 Skills 的核心优势:渐进式披露与零上下文执行

Skills 最强大的地方在于其对上下文窗口的极致优化,这通过两大特性实现:

  • 渐进式披露 (Progressive Disclosure)

这是 Skills 的精髓。开发者应将最核心的指令和导航链接放在 SKILL.md 中,而将冗长的 API 文档、代码示例等详细信息拆分到单独的文件(如 reference.mdexamples.md)中,并通过 Markdown 链接在 SKILL.md 里引用它们。

效果:AI 只有在执行任务、遇到链接并判断需要时,才会去读取这些链接的文件。这避免了一次性将海量文档塞入上下文,实现了上下文的“按需加载”。

  • 零上下文脚本执行 (Zero-Context Execution)

Skill 目录中可以包含可执行脚本(如 scripts/helper.py)。在 SKILL.md 中,你可以指示 Claude 运行这个脚本,而不是读取它。

效果:脚本的执行在外部环境中完成,只有脚本的输出(stdout)会被送回并消耗上下文 token,而脚本本身的源代码完全不占用上下文空间。这对于执行复杂的验证、数据处理或任何预先写好比让 AI 临时生成更可靠的操作来说,是巨大的效率提升。

1.3 Skills 与其他定制化方法的区别

Claude Code 文档明确指出了 Skills 与其他工具的核心区别:Skills 是由模型根据用户意图自动触发的,而其他工具(如斜杠命令)需要用户显式调用。

工具

核心用途

触发方式

Agent Skills

赋予 AI 专业知识和如何做某事的方法 (e.g., “如何审查 PR”)

AI 自动发现并触发

MCP 工具

为 AI 提供可用的外部工具 (e.g., “这是一个数据库查询工具”)

AI 根据需要调用

斜杠命令

可复用的固定提示词 (e.g., /deploy staging)

用户手动输入

CLAUDE.md

全局的、项目范围的指令 (e.g., “总是使用 TypeScript”)

每次对话都加载

结论:Agent Skills 的本质是**“授人以渔”**。它不是给 AI 一个一次性的答案,而是教给它一套可复用、可版本化、可共享的“方法论”,使其成为特定项目或领域的专家。


2. Cursor:动态上下文发现,让 AI 像人一样“查资料”

Cursor 的博文《动态上下文发现》则从另一个角度解决了 AI 编程的核心痛点——如何让 AI 在有限的上下文中,高效获取整个项目的知识。Cursor 的答案是,将“静态地灌输所有信息”转变为“赋予 AI 动态发现信息的能力”。

2.1 核心思想:万物皆文件

Cursor 的核心抽象非常简单而强大:将各种上下文来源(工具输出、聊天历史、终端日志等)都视为文件。Agent 的初始(静态)上下文非常小,但它被赋予了强大的文件操作工具(如 greptail、语义搜索),使其能在需要时主动、按需地从这些“文件”中发现和读取信息

2.2 动态上下文发现的实践

  1. 将长工具响应转换为文件

  1. 当一个工具(如 shell 命令或 MCP 调用)返回了巨大的输出时,传统做法是截断它,导致信息丢失。Cursor 则将完整输出写入一个临时文件。Agent 只得到一个文件路径,它可以先用 tail 查看结尾,如果发现需要更多信息,再去读取文件的其他部分,极大地节省了 Token。

  1. 在摘要时引用对话历史

  1. 当对话变得过长需要总结时,简单的摘要会丢失关键细节。Cursor 将完整的对话历史保存为一个文件,并在生成摘要时将该文件的引用提供给 Agent。如果 Agent 发现摘要中缺少某个细节,它可以主动搜索历史文件来找回被遗忘的信息。

  1. 高效加载 Agent Skills 和 MCP 工具

    1. Agent Skills:Cursor 支持 Agent Skills 标准,并用“动态发现”对其进行了优化。Agent 的系统提示中只包含 Skill 的名称和简短描述(静态上下文)。当任务触发某个 Skill 时,Agent 会利用 grep语义搜索等工具,去动态地读取并加载完整的 SKILL.md 文件

    2. MCP 工具:对于包含大量工具的 MCP 服务器,Cursor 不会将所有工具的冗长描述都塞进上下文。相反,它将所有工具描述同步到一个文件夹中。Agent 只知道工具的名称,并在需要时按需查找具体工具的描述文件。Cursor 的 A/B 测试表明,仅此一项优化就将 Agent 的总 Token 消耗减少了 46.9%

  2. 将集成终端会话视为文件

  1. Cursor 会自动将集成终端的所有输出同步到本地文件系统中。当用户提问“为什么我的命令失败了?”时,无需复制粘贴,Agent 可以直接去 grep 相关的终端历史文件,定位错误信息。

2.3 关键优势与理念

  • Token 效率:只在绝对必要时才将信息引入上下文,大幅降低成本和噪音。

  • 提升质量:减少了上下文中不相关或矛盾的信息,让 Agent 能更专注于核心任务。

  • 增强自主性:AI 不再是被动的信息接收者,而是主动的信息发现者,更接近一个真正自主的“代理”。

结论:Cursor 的“动态上下文发现”是一种深刻的理念转变。它认为 Agent 的核心能力不应是“记住一切”,而应是**“知道如何找到一切”**。通过将所有上下文抽象为可搜索的文件,Cursor 为 AI 构建了一个强大的“外部知识库”和高效的“信息检索系统”。


3. AI 编程的未来:从“提示工程师”到“AI 训练师”

Claude Skills 和 Cursor 的动态上下文发现,共同揭示了 AI 编程工具的未来发展方向:

  1. “能力”与“发现”的融合

  1. 未来的顶尖 AI 编程工具必须两者兼备。它需要一个像 Claude Skills 那样强大的框架,让开发者能够定义和共享“能力”(How-to);同时,它也需要一个像 Cursor 那样高效的“发现”机制,让 AI 能够自主、低成本地加载这些能力和海量的项目上下文。

  1. 从“提示工程”到“环境工程”

  1. 开发者的角色正在悄然改变。未来的重点将不再是绞尽脑汁地编写完美的、一次性的提示词,而是转向**“环境工程”“AI 训练”**:

    • 为项目编写高质量的 README 和 API 文档,因为 AI 会去阅读它们。

    • 将团队的最佳实践和工作流封装成标准化的 Agent Skills

    • 配置和管理 AI 可以访问的工具(MCP)和数据源。

    • 开发者将从“代码的创作者”转变为“AI Agent 的教练和系统设计师”,负责构建一个能让 AI 高效、准确工作的知识环境。

  1. 以“文件”为中心的 Agent 交互

  1. Cursor 将万物视为文件的抽象,可能成为未来 AI 与复杂环境交互的通用范式。这种简单而强大的原语,使得 AI 可以用一套统一的工具(读、写、搜)与代码库、文档、历史记录、工具输出等一切信息源进行交互。

总结: AI 编程正从一个“问答系统”进化为一个“操作系统”。在这个新系统中,Skills 是预装的“应用程序”,而动态上下文发现则是高效的“文件系统和内存管理机制”。驾驭好这两股力量的开发者和团队,将在即将到来的 AI 原生开发时代中获得无与伦比的生产力优势。

参考链接

Agent Skills - Claude Code Docs

动态上下文发现


评论