3分钟源码揭秘:Skill和Custom Agent的本质区别!一张图看懂什么时候写哪个!
像VS Code Github Copilot这样的AI编辑器 里,我们可以通过两种方式定制 AI 助手的行为:Skill 和 Custom Agent。
它们都能让 AI 按照你写的文档来工作,但很多人用了半天,却没搞懂到底什么时候该用哪个。
今天,我们就从底层原理出发,用最直白的大白话讲明白这两者的本质区别,然后给你一张清晰的选型地图。
先说结论:一个像“临时工”,一个像“贴身助理”
-
Skill:你告诉 AI 有份资料放在某个地方,需要用的时候自己去读。AI 读完之后,资料就留在了聊天记录里。聊得久了,记录太长,早期的资料可能就被系统“截掉”了。
-
Custom Agent:你把资料直接贴在 AI 的“耳边”(系统提示词里),每次对话它都听得一清二楚,无论聊多久都不会忘。
听起来好像 Custom Agent 更厉害?别急,我们看它们到底是怎么工作的。
一、Skill 的加载机制:目录 + 自助取阅
每次你发消息时,VS Code Copilot 会先扫描整个工作区,把所有 Skill 的名称、简短描述和文件路径整理成一份轻量级的 XML 目录(大约只占 100 个 token),塞进系统提示词里给 AI 看。
这份目录就像图书馆的检索卡,只告诉你书名和在哪排书架上,不给你看书的内容。
然后,AI 会根据当前的任务,判断有没有需要的 Skill。如果有,它就会调用 read_file (阅读文件)的工具去读取对应的 SKILL.md 文件。读取的结果会以“工具执行结果”的形式,放进聊天历史里。
关键点来了:这个“工具结果”是有容量限制的——单个结果不能超过整个上下文窗口的 50%。而且聊天历史本身优先级不高,一旦对话太长、token 不够用,系统会优先“剪掉”老的历史记录。换句话说,Skill 的内容很可能在几轮对话后就被遗忘了。
所以,Skill 适合那种一次性、用完即弃的知识——比如某个特定代码格式的检查规则,AI 读完用一次,后面忘了也无所谓。
二、Custom Agent 的加载机制:每轮强行“洗脑”
Custom Agent 完全不同。当你切换到某个 Agent 模式后,它的 .agent.md 文件正文会被系统拿出来,在每次请求时重新渲染,放到所有聊天历史之前的 SystemMessage 或 UserMessage 里。
这意味着:无论对话多长,AI 每轮都能看到完整的 Agent 指令,就像有人在它耳边反复念叨“记住,你现在是某某角色,要遵守以下规则……”。这些指令永远不会沉入历史,也永远不会被截断。
此外,Custom Agent 还可以作为独立的“子任务”运行,拥有自己隔离的上下文,适合处理需要多步协作、且不希望被外部干扰的复杂任务。
三、到底怎么选?一张决策树就够

四、总结
Skill 是“阅后即焚”的临时知识,Custom Agent 是“刻在脑子里”的永久设定。
理解了这一点,你就能在 VS Code Copilot 里游刃有余地组合使用它们,让 AI 真正成为得力的助手。

夜雨聆风
