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命令激活。

步骤:

  1. 在项目或用户目录创建.claude/skills/<技能名>/SKILL.md
  2. 编写带YAML frontmatter的说明文件(名称、描述、使用场景)
  3. Claude会根据任务自动匹配并加载相关技能,也可用/skill命令手动调用

2.3 OpenAI Codex(CLI)

Codex支持Skill但激活方式略有不同:Codex会在你的任务匹配技能描述时自动激活该技能。它也兼容SKILL.md格式,OpenAI Codex CLI支持AGENTS.md文件作为自己的指令格式,许多SKILL.md文件由于基本思路相同而兼容。

步骤:

  1. 将技能放入.agents/skills~/.codex/skills/等目录(社区工具也支持兼容路径~/.codex/skills/
  2. Codex会隐式(无需手动调用)根据任务描述自动激活匹配的技能

2.4 Cursor

Cursor官方已采纳该规范,支持在Agent模式下使用,并且直接复用Claude的技能格式:Cursor在项目级支持.cursor/skills/.claude/skills/,用户级(全局)为~/.cursor/skills/,内置技能路径为~/.cursor/skills-cursor/;同时Cursor也会读取.claude/skills/,因此为Claude Code编写的技能无需重复即可在Cursor中使用。

步骤:

  1. 在项目根目录建.cursor/skills/<技能名>/SKILL.md(或用户级~/.cursor/skills/
  2. 切换到Agent模式对话
  3. 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可用)。

步骤:

  1. 在仓库中创建.github/skills/<技能名>/SKILL.md
  2. 注意子目录名需为小写加短横线格式
  3. 在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网页):

  1. 登录付费版Claude.ai(Pro/Max/Team/Enterprise)
  2. 进入Settings→Features→Capabilities
  3. 上传自定义Skill的ZIP包,或直接使用官方内置技能(无需额外操作)
  4. 对话中提到相关任务时会自动调用

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 (外部服务)     |
+-------------------------------+   +-----------------------------+   +-----------------------------+

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐