摘要
AI 编程工具正经历一场深刻的范式革命,从被动响应“提示词”(Prompt)的助手,演变为能够主动、高效地利用项目知识和工具的“自主代理”(Agent)。本文深度解析两大前沿热点:Claude Code 的 Agent Skills 和 Cursor 的动态上下文发现(Dynamic Context Discovery)。通过剖析这两项技术的官方实现,我们将揭示 AI 代理如何被赋予“专业技能”和“自主学习”能力,并探讨这一趋势对未来软件开发的深远影响。
1. Claude Code Agent Skills:为 AI 打造可复用的“专家工具箱”
根据 Claude Code 官方文档,Agent Skills 是一种开放标准,旨在将特定领域的专业知识和工作流程,封装成 AI 可以自动发现和调用的“技能”。这标志着 AI 从一个“万能的通才”向一个“可定制的专家团队”转变。
1.1 什么是 Skill?它如何工作?
一个 Skill 的核心是一个名为 SKILL.md 的 Markdown 文件。它不仅仅是一段提示,而是一个结构化的知识包,其工作流遵循“发现-激活-执行”三步曲:
定义与存储:
SKILL.md文件:每个 Skill 的核心,包含两部分:YAML 元数据:位于文件顶部,必须包含
name(技能名称)和description(功能描述和触发时机)。description尤为关键,因为它是 AI 判断何时使用该技能的主要依据。Markdown 指令:详细说明了当技能被激活时,Claude 应该如何一步步执行任务。
存储位置决定作用域:Skills 可以存储在个人(
~/.claude/skills/)、项目(.claude/skills/)或组织级别,实现了知识的共享和版本控制。
工作机制(发现 → 激活 → 执行):
① 发现 (Discovery):启动时,Claude 仅加载所有可用 Skill 的
name和description。这是一个关键的性能优化,让 AI 知道“有哪些技能可用”而无需立即消耗大量上下文窗口。② 激活 (Activation):当用户发出请求时(例如,“帮我审查一下代码”),Claude 会将请求与所有技能的
description进行匹配。如果匹配成功(例如,匹配到某个description为“使用我们团队的标准审查 PR”的技能),Claude 会请求用户授权使用该 Skill。③ 执行 (Execution):一旦获得授权,Claude 才会将完整的
SKILL.md文件内容加载到上下文中,并严格遵循其中的指令执行任务。
1.2 Skills 的核心优势:渐进式披露与零上下文执行
Skills 最强大的地方在于其对上下文窗口的极致优化,这通过两大特性实现:
渐进式披露 (Progressive Disclosure):
这是 Skills 的精髓。开发者应将最核心的指令和导航链接放在 SKILL.md 中,而将冗长的 API 文档、代码示例等详细信息拆分到单独的文件(如 reference.md、examples.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 一个一次性的答案,而是教给它一套可复用、可版本化、可共享的“方法论”,使其成为特定项目或领域的专家。
2. Cursor:动态上下文发现,让 AI 像人一样“查资料”
Cursor 的博文《动态上下文发现》则从另一个角度解决了 AI 编程的核心痛点——如何让 AI 在有限的上下文中,高效获取整个项目的知识。Cursor 的答案是,将“静态地灌输所有信息”转变为“赋予 AI 动态发现信息的能力”。
2.1 核心思想:万物皆文件
Cursor 的核心抽象非常简单而强大:将各种上下文来源(工具输出、聊天历史、终端日志等)都视为文件。Agent 的初始(静态)上下文非常小,但它被赋予了强大的文件操作工具(如 grep、tail、语义搜索),使其能在需要时主动、按需地从这些“文件”中发现和读取信息。
2.2 动态上下文发现的实践
将长工具响应转换为文件:
当一个工具(如 shell 命令或 MCP 调用)返回了巨大的输出时,传统做法是截断它,导致信息丢失。Cursor 则将完整输出写入一个临时文件。Agent 只得到一个文件路径,它可以先用
tail查看结尾,如果发现需要更多信息,再去读取文件的其他部分,极大地节省了 Token。
在摘要时引用对话历史:
当对话变得过长需要总结时,简单的摘要会丢失关键细节。Cursor 将完整的对话历史保存为一个文件,并在生成摘要时将该文件的引用提供给 Agent。如果 Agent 发现摘要中缺少某个细节,它可以主动搜索历史文件来找回被遗忘的信息。
高效加载 Agent Skills 和 MCP 工具:
Agent Skills:Cursor 支持 Agent Skills 标准,并用“动态发现”对其进行了优化。Agent 的系统提示中只包含 Skill 的名称和简短描述(静态上下文)。当任务触发某个 Skill 时,Agent 会利用
grep或语义搜索等工具,去动态地读取并加载完整的SKILL.md文件。MCP 工具:对于包含大量工具的 MCP 服务器,Cursor 不会将所有工具的冗长描述都塞进上下文。相反,它将所有工具描述同步到一个文件夹中。Agent 只知道工具的名称,并在需要时按需查找具体工具的描述文件。Cursor 的 A/B 测试表明,仅此一项优化就将 Agent 的总 Token 消耗减少了 46.9%。
将集成终端会话视为文件:
Cursor 会自动将集成终端的所有输出同步到本地文件系统中。当用户提问“为什么我的命令失败了?”时,无需复制粘贴,Agent 可以直接去
grep相关的终端历史文件,定位错误信息。
2.3 关键优势与理念
Token 效率:只在绝对必要时才将信息引入上下文,大幅降低成本和噪音。
提升质量:减少了上下文中不相关或矛盾的信息,让 Agent 能更专注于核心任务。
增强自主性:AI 不再是被动的信息接收者,而是主动的信息发现者,更接近一个真正自主的“代理”。
结论:Cursor 的“动态上下文发现”是一种深刻的理念转变。它认为 Agent 的核心能力不应是“记住一切”,而应是**“知道如何找到一切”**。通过将所有上下文抽象为可搜索的文件,Cursor 为 AI 构建了一个强大的“外部知识库”和高效的“信息检索系统”。
3. AI 编程的未来:从“提示工程师”到“AI 训练师”
Claude Skills 和 Cursor 的动态上下文发现,共同揭示了 AI 编程工具的未来发展方向:
“能力”与“发现”的融合:
未来的顶尖 AI 编程工具必须两者兼备。它需要一个像 Claude Skills 那样强大的框架,让开发者能够定义和共享“能力”(How-to);同时,它也需要一个像 Cursor 那样高效的“发现”机制,让 AI 能够自主、低成本地加载这些能力和海量的项目上下文。
从“提示工程”到“环境工程”:
开发者的角色正在悄然改变。未来的重点将不再是绞尽脑汁地编写完美的、一次性的提示词,而是转向**“环境工程”或“AI 训练”**:
为项目编写高质量的
README和 API 文档,因为 AI 会去阅读它们。将团队的最佳实践和工作流封装成标准化的 Agent Skills。
配置和管理 AI 可以访问的工具(MCP)和数据源。
开发者将从“代码的创作者”转变为“AI Agent 的教练和系统设计师”,负责构建一个能让 AI 高效、准确工作的知识环境。
以“文件”为中心的 Agent 交互:
Cursor 将万物视为文件的抽象,可能成为未来 AI 与复杂环境交互的通用范式。这种简单而强大的原语,使得 AI 可以用一套统一的工具(读、写、搜)与代码库、文档、历史记录、工具输出等一切信息源进行交互。
总结: AI 编程正从一个“问答系统”进化为一个“操作系统”。在这个新系统中,Skills 是预装的“应用程序”,而动态上下文发现则是高效的“文件系统和内存管理机制”。驾驭好这两股力量的开发者和团队,将在即将到来的 AI 原生开发时代中获得无与伦比的生产力优势。