AI笔记之Agent,MCP,提示词,上下文,上下文工程,skill,代理含义与区别
AI笔记之Agent,MCP,提示词,上下文,上下文工程,skill,代理含义与区别

code review!
文章目录
1. Agent、MCP、提示词、上下文、上下文工程、Skill的含义与区别
1.1 Agent(智能体/代理)
Agent是最上层的概念,指能够自主执行任务的智能系统。AI agent是一个能够代表用户或另一个系统自主执行任务的系统或程序。业界常用一个公式来概括其架构:**Agent = LLM(大脑)+ Planning(规划)+ Memory(记忆)+ Tool Use(工具使用)**Agent架构一句话总结:Agent = LLM(大脑)+ Planning(规划)+ Memory(记忆)+ Tool Use(工具使用)。
简单说,Agent是一个能感知任务、做决策、调用工具、执行多步操作以达成目标的"智能程序",而不只是被动回答问题的聊天机器人。
1.2 提示词(Prompt)
提示词是给LLM的输入指令,是最基础的交互单元。它的特点是"单次、静态"——传统的提示工程(Prompt Engineering)专注于优化单一、静态的文本指令,以期在单次交互中获得最佳结果。Prompt Engineering的目标很聚焦:Prompt Engineering主要是激发LLM做好单一件事情,适合处理流程简单的工作。
1.3 上下文(Context)
上下文是模型在生成回答时能"看到"的全部信息(不只是提示词,还包括历史对话、检索到的资料、工具描述、记忆等)。近期的研究将其重新定义为动态结构:论文突破性地将上下文定义为动态结构化信息组件的集合,而非静态字符串。
1.4 上下文工程(Context Engineering)
这是比Prompt Engineering更高维度的学科,是当前Agent时代的核心工程实践。核心定义是:上下文工程是指设计、构建并优化一个动态系统,该系统能够在正确的时间,以正确的格式,向大型语言模型提供正确的信息和工具,从而使其高效、可靠地完成指定任务。
它与Prompt Engineering的本质区别在于:上下文是运行在LLM调用之前的软件系统的输出,而非一个简单的静态模板,并且上下文是根据当前任务即时生成的,对于一个请求可能包含日历数据,对于另一个请求则可能包含邮件内容或数据库查询结果。也正因为上下文窗口有限,研究显示即便使用百万令牌规模的上下文窗口,由于上下文干扰和混淆,模型性能在约3.2万个令牌时就会开始下降,所以需要"工程化"手段(压缩、检索、记忆管理等)来主动管理,而非单纯堆信息。RAG、记忆系统、工具选择都是上下文工程的组成部分:RAG(检索增强生成)是Context Engineering的一个子集,Context Engineering不仅包含检索,还包含动态的上下文选择、关键信息的压缩、多轮对话中的记忆持久化,以及Token窗口的最优分配。
1.5 MCP(Model Context Protocol,模型上下文协议)
MCP解决的是"AI如何连接外部世界"的标准化问题。MCP是一个开源标准,用于将AI应用连接到外部系统,由Anthropic于2024年11月推出。其架构包含三个核心组件:LLM包含在MCP host中(如AI驱动的IDE或对话式AI);MCP client位于host内部,负责LLM与MCP server之间的通信;MCP server是为LLM提供上下文、数据或能力的外部服务。
一个常见比喻是"AI世界的USB-C":可以把MCP想象成AI应用的USB-C端口——就像USB-C提供了连接电子设备的标准化方式,MCP提供了将AI应用连接到外部系统的标准化方式。它比传统的RAG覆盖范围更广:MCP和RAG都通过外部信息增强LLM,但方式不同、目的不同——RAG主要用于生成文本时检索信息,而MCP是一个更广泛的交互与行动系统。
1.6 Skill(Agent Skills,智能体技能)
Skill是2025年后兴起的概念,解决的是"AI拿到能力/数据后该怎么专业地执行"的问题。Skill是一个Markdown文件(SKILL.md),用于教Claude在特定场景下按你的方式做事,本质相当于给AI代理发放一本专业手册。
它采用"渐进式披露"机制以节省上下文:层级1是技能发现——AI先读取所有技能的元数据判断任务是否相关;层级2是加载核心指令——若相关则自动读取SKILL.md正文;层级3是加载资源文件——只在需要时读取额外的脚本或示例。
Skill与Prompt的核心区别在于复用性和加载方式:Skills是可重复使用、基于文件系统的资源,为Claude提供特定领域的专业知识;与提示(用于一次性任务的对话层级指令)不同,Skills按需加载,无需在多个对话中重复提供相同的指引。
1.7 MCP与Skill的关系(常被混淆)
这是最容易搞混的一对概念,二者分工明确、互补而非替代:MCP连接Claude到外部服务和数据源;Skills提供程序性知识——完成特定任务或工作流的指令。用比喻理解:MCP是AI的"手"(能触碰外部世界),Skill是AI的"技能书"(知道怎么做某件事),需要两者配合——MCP让AI能连接数据库,Skill教AI怎么分析查询结果。也有类似的表述:MCP解决"AI能不能拿到那个资料",Skill解决"拿到资料之后该怎么处理",一个负责进货,一个负责出菜流程。
1.8 整体关系总结
| 概念 | 所处层次 | 核心作用 |
|---|---|---|
| Prompt(提示词) | 最基础输入 | 单次静态指令,激发模型做单一任务 |
| Context(上下文) | 模型输入的全集 | 模型能"看到"的所有信息(对话、记忆、检索结果、工具描述等) |
| Context Engineering(上下文工程) | 系统工程方法论 | 动态构建/管理上下文,决定"在正确时间给正确信息" |
| MCP | 连接协议层 | 标准化AI与外部工具/数据源的连接方式(“手”) |
| Skill | 能力封装层 | 把工作流程、专业知识打包成可复用模块(“技能书”) |
| Agent(智能体) | 顶层系统 | 综合运用以上所有要素,自主规划并执行多步任务的智能系统 |
简单来说:Agent是整个智能系统,它靠LLM思考,靠Prompt接收具体指令,靠上下文工程管理它所需的信息输入,靠MCP连接外部数据和工具,靠Skill获得处理特定任务的专业方法——这些组件共同构成了一个真正能自主完成复杂工作的AI Agent。
2. Codex、Copilot、Cursor、浏览器网页大模型对话窗对Skill的支持情况
2.1 总体情况
好消息是:Codex、Copilot、Cursor都已经支持Agent Skills,只是"原生程度"和存放位置不同;浏览器网页版则要分情况看。Agent Skills已经成为一种跨工具的开放标准:Cursor采纳了Agent Skills规范并在Agent模式下支持技能,技能是Cursor在相关时加载的指令文件夹,这是Claude Code、Copilot和Codex共用的开放标准。核心文件格式是统一的:Agent Skills的格式是通用的——带有YAML前置元数据的SKILL.md文件在各平台都可用,不同之处在于技能存放的位置和安装方式。
2.2 Claude Code(终端命令行)
支持程度最深:Claude Code拥有最全面的技能支持,原生支持SKILL.md文件、用于调用技能的斜杠命令,以及完整的工具集成,技能通过/skill命令激活。
步骤:
- 在项目或用户目录创建
.claude/skills/<技能名>/SKILL.md - 编写带YAML frontmatter的说明文件(名称、描述、使用场景)
- Claude会根据任务自动匹配并加载相关技能,也可用
/skill命令手动调用
2.3 OpenAI Codex(CLI)
Codex支持Skill但激活方式略有不同:Codex会在你的任务匹配技能描述时自动激活该技能。它也兼容SKILL.md格式,OpenAI Codex CLI支持AGENTS.md文件作为自己的指令格式,许多SKILL.md文件由于基本思路相同而兼容。
步骤:
- 将技能放入
.agents/skills或~/.codex/skills/等目录(社区工具也支持兼容路径~/.codex/skills/) - Codex会隐式(无需手动调用)根据任务描述自动激活匹配的技能
2.4 Cursor
Cursor官方已采纳该规范,支持在Agent模式下使用,并且直接复用Claude的技能格式:Cursor在项目级支持.cursor/skills/或.claude/skills/,用户级(全局)为~/.cursor/skills/,内置技能路径为~/.cursor/skills-cursor/;同时Cursor也会读取.claude/skills/,因此为Claude Code编写的技能无需重复即可在Cursor中使用。
步骤:
- 在项目根目录建
.cursor/skills/<技能名>/SKILL.md(或用户级~/.cursor/skills/) - 切换到Agent模式对话
- Cursor会在判断任务相关时自动加载该技能;也可用内置
$skill-installer从GitHub仓库直接安装现成技能
2.5 GitHub Copilot
Copilot支持范围也在扩大:Copilot在编码代理、Copilot CLI和VS Code的agent模式中都支持Agent Skills,可用于Pro、Pro+、Business和Enterprise计划。存放路径为:项目级技能放在.github/skills/或.claude/skills/,个人跨项目技能放在~/.copilot/skills/或~/.claude/skills/(仅编码代理和CLI可用)。
步骤:
- 在仓库中创建
.github/skills/<技能名>/SKILL.md - 注意子目录名需为小写加短横线格式
- 在VS Code的Agent模式或Copilot CLI中触发相关任务,Copilot会自动读取匹配的技能
2.6 浏览器网页版对话窗(claude.ai)
如果你说的是claude.ai网页版,答案是可以,且分两种:
- 官方预置技能(如处理docx、pdf、pptx、xlsx):预构建的技能(docx、pdf、pptx、xlsx)在付费计划的Claude.ai中自动生效。
- 自定义技能:自定义技能可以通过"设置→功能→能力"上传ZIP文件添加。团队和企业版还可由管理员统一为整个组织配置技能。
步骤(claude.ai网页):
- 登录付费版Claude.ai(Pro/Max/Team/Enterprise)
- 进入Settings→Features→Capabilities
- 上传自定义Skill的ZIP包,或直接使用官方内置技能(无需额外操作)
- 对话中提到相关任务时会自动调用
2.7 其他浏览器网页对话窗(如ChatGPT网页版、Gemini网页版等)
需要说明的是,"SKILL.md"这套标准是Anthropic提出并被上述工具广泛采纳的规范,目前搜索结果中提到的官方/生态支持列表主要集中在:目前支持的平台包括Claude(Claude.ai和Claude Code)、GitHub Copilot、VS Code、Codex(OpenAI)、Antigravity(Google)、Gemini CLI、Kiro和Junie。也就是说,Gemini CLI(命令行)已纳入支持列表,但纯网页版ChatGPT、Gemini网页聊天窗口目前不在通用SKILL.md生态的官方支持范围内,它们各自有自己的定制机制(如ChatGPT的自定义GPTs),并非同一套Skill标准。
2.8 快速对比表
| 平台 | 是否支持 | 存放路径示例 | 触发方式 |
|---|---|---|---|
| Claude Code | 支持,原生最深 | .claude/skills/ |
自动匹配 + /skill |
| Codex | 支持 | .agents/skills、~/.codex/skills/ |
任务匹配自动激活 |
| Cursor | 支持(官方采纳标准) | .cursor/skills/、兼容.claude/skills/ |
Agent模式自动加载 |
| Copilot | 支持 | .github/skills/、~/.copilot/skills/ |
Agent模式/CLI自动加载 |
| claude.ai网页版 | 支持 | 后台上传ZIP | 设置页面上传,对话自动调用 |
| ChatGPT/Gemini网页版 | 不支持此标准 | — | 各自专属机制,非SKILL.md |
如果需要跨工具统一管理(一份技能同时用在Codex/Cursor/Copilot),社区也有工具支持自动检测并将技能安装到每个工具的对应目录:可自动检测Claude Code、Cursor、Codex、Gemini CLI、Copilot、Windsurf、Cline和Goose,并将技能放入对应助手的正确目录中。
3. 对References、Scripts的支持
这是个很细节但很关键的问题——因为references(参考资料)和scripts(脚本)正是Skill能否真正发挥威力的核心机制。下面拆开说。
3.1 标准结构:Skill文件夹里到底有什么
一个完整的Skill文件夹通常是这样的:
pdf-processing/
├── SKILL.md # 必需:frontmatter + 说明
├── scripts/ # 可选:可执行的辅助脚本
├── references/ # 可选:长篇参考文档
└── assets/ # 可选:模板、数据文件
这背后的设计原理叫"渐进式披露":只有名称和描述(每个约100 token)会在启动时加载,完整的SKILL.md正文只在技能被激活时加载,而scripts/、references/、assets/中的文件只在被明确引用时才会加载。也就是说,references和scripts不是白白占用上下文的,是按需读取的,这也是Skill比传统Prompt省token的关键。
3.2 References(参考文档)支持情况
References本质上是纯文本/Markdown文件,读取门槛很低——只要Agent能读文件系统就能用。因此:
- 所有已支持SKILL.md的平台都能读取references:Cursor、Codex、Copilot、Claude Code均可,因为技能是文件系统层面的,不依赖API,能读取目录结构、解析Markdown的任何Agent都能使用Skill。
- 实践中常见做法是把正文控制在500行以内,详细内容推到references/目录,比如REFERENCE.md(完整API参考,按需加载)、EDGE_CASES.md(故障排查,按需加载)。
结论:References支持是全平台通用的,没有兼容性障碍。
3.3 Scripts(脚本)支持情况——这里才是关键差异点
Scripts需要"执行能力",所以取决于每个Agent是否具备代码执行/终端环境。
3.3.1 Claude Code
支持最完整,Claude Code使用与Codex相同的渐进式披露:启动时解析元数据,按需加载完整说明,并可以在任务需要确定性行为时执行捆绑的脚本。但注意一个前提条件:技能对Pro、Max、Team和Enterprise计划可用(需启用代码执行)。也就是说必须手动开启"代码执行"权限才能真正跑脚本。
3.3.2 Codex CLI
同样是原生级支持,Codex CLI与Claude Code一样"渐进式披露",能执行脚本;而且脚本目录会被明确写进结构规范:scripts/ ← Optional: executable code。由于Codex默认跑在沙盒/云容器里,其安全机制在于OS会在系统调用执行前就拒绝,这意味着脚本执行是被内核级沙盒(Seatbelt/Landlock/seccomp)管控的,相对更"重规矩"。
3.3.3 Cursor
Cursor的Agent模式本身具备执行终端命令的能力,加上Cursor采纳的是同一套开放标准,所以理论上脚本目录里的内容可以被识别和运行,但搜索结果中没有专门指出Cursor对scripts/目录有独立于Claude Code的特别处理逻辑——因为它直接复用.claude/skills/目录,脚本执行依赖的是Cursor Agent模式本身已有的终端执行能力。
3.3.4 GitHub Copilot
这里要注意一点局限:一些针对特定Agent的元数据字段(比如Claude Code的context: fork或Cursor的globs)会被Copilot忽略,但核心指令部分仍可正常工作。这句话主要针对SKILL.md正文和frontmatter,并未明确提及scripts/执行的兼容性细节;但由于VS Code中Copilot的Agent模式本身可以执行终端命令(@workspace或slash commands模式下),推断脚本理论上可运行,只是搜索结果没有给出像Claude Code/Codex那样明确的"脚本执行"官方说明。
3.4 一个重要的安全提醒
由于scripts/目录允许执行代码,这也带来了新的攻击面:安全研究人员已经发现有恶意技能滥用scripts/目录,或在SKILL.md正文中嵌入提示注入负载。所以从任何来源(尤其是不熟悉的GitHub仓库)安装带scripts/的Skill前,建议先打开脚本内容人工检查一遍,而不是盲目信任。
3.5 小结对比表
| 平台 | References支持 | Scripts支持 | 备注 |
|---|---|---|---|
| Claude Code | 完全支持 | 原生支持,但需手动开启代码执行权限 | 深度最高 |
| Codex CLI | 完全支持 | 支持,运行在内核级沙盒中 | 安全边界最严 |
| Cursor | 完全支持 | 理论支持(依赖Agent模式本身的终端执行能力),官方文档未单独强调scripts/机制 | 复用Claude目录 |
| Copilot | 完全支持 | 理论支持(依赖VS Code Agent模式终端能力),部分Agent专属元数据字段会被忽略 | 核心指令通用 |
以下是 Agent 核心生态组件的中英文关系图解。Agent 是顶层系统,它通过 Context Engineering 来动态管理整个 Context 输入;同时,它以 MCP 为“手”连接外部世界,以 Skill 为“技能书”指导专业工作流程。
+---------------------------------------------------------------------------------+
| AGENT (智能体/代理) |
| Formula: Agent = LLM (大脑) + Planning (规划) + Memory (记忆) + Tool Use (工具) |
+---------------------------------------------------------------------------------+
| |
| 1. 主动管理与优化输入 | 2. 调度能力与连接外部
v v
+-------------------------------+ +-----------------------------------------+
| Context Engineering (上下文工程) | | CAPABILITY LAYER (能力层) |
| (Dynamic System Methodology) | +-----------------------------------------+
+-------------------------------+ / \
| / 2a. 提供专业程序性知识 \ 2b. 标准化连接外部
| 动态构建与分发 / (Procedural Knowledge) \ (External System)
v v v
+-------------------------------+ +-----------------------------+ +-----------------------------+
| CONTEXT (上下文) | | Agent Skills (智能体技能) | | MCP (Model Context Prot.) |
| (All structured info for LLM) | | (SKILL.md / "技能书" / 出菜) | | ("AI的USB-C" / "手" / 进货) |
+-------------------------------+ +-----------------------------+ +-----------------------------+
^ | |
| 包含最基础的交互单元 | 采用"渐进式披露"加载 | 包含三大核心组件
| v v
+-------------------------------+ +-----------------------------+ +-----------------------------+
| PROMPT (提示词) | | - SKILL.md (YAML Front.) | | - MCP Host (AI应用/IDE) |
| (Single/Static Text Command) | | - references/ (参考资料) | | - MCP Client (内部通信) |
| | | - scripts/ (辅助脚本组件) | | - MCP Server (外部服务) |
+-------------------------------+ +-----------------------------+ +-----------------------------+
更多推荐

所有评论(0)