自去年 10 月推出以来,Agent Skills[1]迅速成为 Claude Agent 产品的核心组件,并在社区中得到了广泛的采纳和应用。关于 Skills 的介绍,网上已经有很多文章。本文尝试从底层原理的角度,探讨 Agent Skills 是如何工作的。
按照官方定义,Skills 是一种基于文件系统的资源,用于为 Agent 提供特定领域的专业知识,从而将其转变为专家。理解 Skills 的前提,在于先厘清 Agent 的基本原理。
ReAct Agent
现代 Agent 都是基于ReAct[2]模式构建的。ReAct 的核心思想是将大语言模型的推理能力(Reasoning)与行动执行(Acting)相结合,使 Agent 能够反复思考问题、使用工具,并根据观察结果采取行动,从而实现用户目标。
早期采用 ReAct 模式的 Agent,效果并不理想。随着 LLM 能力的持续演进,特别是函数调用(Function Calling[3])的引入,ReAct 模式的效果得到了显著改善,使得 Agent 能够更可靠且高效地完成任务。
以天气查询为例,从上下文(Context)的角度来看,ReAct Agent 的运行过程大致如下:
System: You are a helpful weather assistant.User: What is the weather like in Chengdu?Assistant: ToolCall(name="get_weather", args={"location": "Chengdu"})User: ToolOutput(result={"weather": "Sunny", "temperature": "22°C"})Assistant: The weather in Chengdu is Sunny with a temperature of 22°C.Claude Code
作为一个现代 Agent 系统,Claude Code 也遵循了 ReAct 模式。我们在揭秘 Claude Code:自主式编程[4](揭秘Claude Code:自主式编程)中介绍过它的核心架构:
Claude Code自主式编程架构
可以看出,Claude Code 与常规 Agent(如天气查询助手)最大的不同之处在于:它工作在操作系统之上,几乎所有的工具都是围绕文件系统和 Shell 命令展开的!
以“查看文件并创建一个 Hello World 函数”为例,Claude Code 运行过程中的 Context 大致如下:
System: You are Claude Code, Anthropic's official CLI for Claude.User: What files are there?Assistant: ToolCall(name="Bash", args={"command": "ls"})User: ToolOutput(result="[README.md]")Assistant: There is only one file named README.md.User: Create a hello world function in Python.Assistant: ToolCall(name="Write", args={"file_path": "hello_world.py", "content": "def hello_world():\n print('Hello, World!')\n\nif __name__ == '__main__':\n hello_world()"})User: ToolOutput(result="Created `hello_world.py` with a simple hello world function.")Assistant: I've created a simple Python file with a "Hello, World!" function.上下文管理
有了对 ReAct Agent 和 Claude Code 的基本认识,我们再来讨论一个关键话题——上下文管理。
了解大语言模型的读者可能知道,LLM 的上下文有两个重要特征:
- 上下文窗口大小限制:LLM 的上下文窗口大小是有限的(早期 GPT 3 仅有 2048 个 token),虽然这个大小在持续增长(比如最新 Claude Sonnet 4.5 已支持百万 token),但仍然是有上限的。
- 上下文过载导致性能下降:即使最先进的 LLM 支持长上下文(如百万 token),但如果上下文内容过多,其性能也会显著下降。除了经典的Lost in the Middle[5],还会出现上下文污染(Context Poisoning)、上下文混淆(Context Confusion)等各种问题。感兴趣的读者可以进一步参考How Long Contexts Fail[6]。
因此,如何有效地管理上下文,成为了 Agent 设计中的一个重要课题。常见的上下文管理策略包括检索增强(RAG)、上下文总结(Context Summarization)、上下文隔离(Context Quarantine)和上下文卸载(Context Offloading)等。本文的讨论重点关注 Context Offloading。
关于 Context Offloading,How to Fix Your Context[7]一文给出了以下定义:
上下文卸载(Context Offloading)是指将信息存到 LLM 的上下文之外,通常借助能管理数据的工具来实现。
而该文引用的 Anthropic 原文The think tool[8]中,则这样指出:
这个“think”工具特别适合用在那些仅凭用户提问、Claude 信息不够没法直接回答的情况,还有那些需要处理外部信息(比如工具返回的结果)的场景。比起深度思考那种全面推演,Claude 用“think”工具做的推理会更聚焦,主要围绕模型刚发现的新信息展开。
在 Claude Code 中实现 Context Offloading
上述关于 Context Offloading 的描述稍显抽象。为了便于理解,我们来设想一个问题:如果要让 Claude Code 支持 Context Offloading,应该如何实现?
结合前文的讨论,我们知道 Claude Code 的能力基本建立在文件系统和 Shell 命令之上。因此,要实现 Context Offloading,从第一性原理出发,我们能够很自然地想到以下方案:
- 将信息存储在文件系统,而不是一开始就全部放到 LLM 的上下文中;
- 为了让 LLM 知道这些信息的存在,需要在 LLM 的上下文中(通常在系统提示词中)记录这些信息的位置;
- 用户提问信息不全时,Agent 可以根据系统提示词的引导,按需从文件系统寻找信息;
- 寻找信息的过程,需要借助文件读写和 Shell 命令等工具;
- 将获取到的外部信息加载到 LLM 的上下文中,以辅助完成用户的目标。
以“生成博客前端页面”为例,为了不把所有的设计指南都塞到 LLM 的上下文中,可以将其保存到resources/frontend-design.md文件中:
# Frontend Aesthetics GuidelinesFocus on:**Typography**: Choose fonts that are beautiful, unique, and interesting...**Color & Theme**: Commit to a cohesive aesthetic......同时,在 Agent 的系统提示词中添加对这个文件的引用:
You are Claude Code...You have access to the following resources:- `resources/frontend-design.md`: Guidelines for designing the frontend UI....如此一来,Agent 只会在用户请求生成前端页面时,才会去额外读取resources/frontend-design.md文件中的内容,从而避免了不必要的上下文膨胀。具体来说,运行过程中的 Context 可能会是这样的:
System: You are Claude Code...\n\nYou have access to the following resources:\n- `resources/frontend-design.md`: Guidelines for designing the frontend UI.User: Generate a blog frontend UI.Assistant: ToolCall(name="Read", args={"file_path": "resources/fontend-design.md"})User: ToolOutput(result="Choose fonts that are beautiful, unique, and interesting...")Assistant: ToolCall(name="Write", args={"file_path": "app/index.html", "content": "<html><head><style>...</style></head><body>...</body></html>"})User: ToolOutput(result="Created file `app/index.html`.")Assistant: ToolCall(name="Write", args={"file_path": "app/styles.css", "content": "..."})User: ToolOutput(result="Created file `app/styles.css`.")Assistant: I've generated a simple blog frontend UI based on the guidelines.讨论到这里,使用过 Skills 的读者可能发现了,如果把上述例子中的resources/重命名为skills/,那么frontend-design.md本质上就是一个 Skill(参考anthropics/skills/frontend-design/SKILL.md[9])。
Skills 的三层加载技术
至此我们可以看出,Skills 的核心思想,其实也遵循了 Context Offloading 的上下文管理策略。当然,上述例子只是最基础的实现。
Agent Skills架构
在 Anthropic 的设计中,又巧妙地引入了 Skills 的三层加载技术,以求最大化减少 LLM 上下文的负担:
- 元数据(Metadata):可用 Skills 的名称、描述及其文件路径。这些信息会被预先放到上下文(系统提示词)中,以确保 Agent 知道有哪些 Skills 可以利用。
- 指令(Instructions):每个 Skill 都有一个对应的
SKILL.md文件,其中包含了 Skill 的详细描述、使用方法和示例等信息。当 Agent 需要某个 Skill 的帮助时,它会通过Read工具读取SKILL.mds 文件的内容,进而将其动态加载到上下文中。 - 资源(Resources):除了
SKILL.md文件,每个 Skill 还可以包含其他类型的资源文件,如配置文件、文档等。当 Agent 需要更具体的信息时,它会进一步读取这些资源文件的内容,从而将其加载到上下文中。
代码执行与虚拟机
除了前文讨论的内容,需要强调的是,Skills 的完整能力还涉及代码执行和虚拟机:
- 代码执行(Code Execution):某些 Skills 可能包含代码片段,甚至 Agent 为了处理任务还会动态生成代码,这些代码都需要执行。
- 虚拟机(Virtual Machine):为了确保安全性,通常需要在一个隔离的沙盒环境(虚拟机)中管理文件系统、执行 Shell 命令和运行代码。
Agent Skills架构
由于篇幅所限,这里不再展开详细讨论,感兴趣的读者可以参考官方文档[10]或者其他相关资料。
结语
–
通过本文的探讨,相信读者对 Agent Skills 有了更深入的理解。在 Claude Agent 产品中,Skills 的实现基于 Context Offloading 这一上下文管理策略;而该策略的落地,则依托于 ReAct 模式的思想框架,以及文件系统、Shell 命令等基础工具的支撑。
普通人如何抓住AI大模型的风口?
领取方式在文末
为什么要学习大模型?
目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。
目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过30%。
随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!
最后
只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!
在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
大模型全套学习资料展示
自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。
希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!
01教学内容
从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!
大量真实项目案例:带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!
02适学人群
应届毕业生:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
vx扫描下方二维码即可
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!
03入门到进阶学习路线图
大模型学习路线图,整体分为5个大的阶段:
04视频和书籍PDF合集
从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)
新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
05行业报告+白皮书合集
收集70+报告与白皮书,了解行业最新动态!
0690+份面试题/经验
AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)
07 deepseek部署包+技巧大全
由于篇幅有限
只展示部分资料
并且还在持续更新中…
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】