AI编程 | 概念一览

AI 编程 | 概念全景梳理


因为自己不太懂 AI 相关的一些概念,问了问 AI,看了些文章,然后整理成这篇笔记。本文主要讲 AI 相关的核心概念,以及从用户发出需求开始,背后究竟发生了哪些事。定位偏基础,适合前端 / 全栈工程师建立 AI 工程视角。如有错误,欢迎各位看官不吝指教!🙏🏻


一、先看历史:技术是怎么一步步走到今天的

理解现在,得先知道来路。

很多人第一次接触这些概念时,会以为"向量数据库催生了大模型"------其实顺序正好相反,是大模型的爆火让向量数据库找到了用武之地。把时间线梳理清楚,后面每个概念"为什么存在"就自然而然想明白了。

复制代码
┌─────────────────────────────────────────────────────────────────────────────┐
│                          AI 技术发展时间线                                   │
├──────────┬──────────────────────────────────────────────────────────────────┤
│  2017    │  Google 发布论文《Attention Is All You Need》                     │
│          │  → Transformer 架构诞生,奠定现代 LLM 的基石                      │
├──────────┼──────────────────────────────────────────────────────────────────┤
│ 2018~20  │  BERT(Google)、GPT-1/2/3(OpenAI)相继问世                     │
│          │  → 预训练 + 微调范式确立,涌现能力(Emergent Ability)首次出现    │
├──────────┼──────────────────────────────────────────────────────────────────┤
│ 2022.11  │  ChatGPT 发布,LLM 进入大众视野                                  │
│          │  → 开发者开始大量接入 LLM API,工程化需求爆发                     │
├──────────┼──────────────────────────────────────────────────────────────────┤
│ 2022~23  │  向量数据库(Pinecone / Milvus / Chroma)大规模普及              │
│          │  RAG 范式兴起,解决 LLM 知识过期 & 幻觉问题                      │
│          │  LangChain / LlamaIndex 等 Agent 框架相继出现                    │
│          │  Cursor 发布(Anysphere,2023),AI 编码工具元年                  │
├──────────┼──────────────────────────────────────────────────────────────────┤
│ 2024.11  │  Anthropic 发布 MCP 协议(Model Context Protocol)               │
│          │  → 工具调用标准化,Agent 生态走向统一                             │
├──────────┼──────────────────────────────────────────────────────────────────┤
│  2025    │  Claude Code 发布(Anthropic,终端 CLI Agent)                   │
│          │  → Agent 落地加速,多 Agent 协作成为新议题                        │
└──────────┴──────────────────────────────────────────────────────────────────┘

用一句话把上面的链条串起来:

LLM 是地基 → RAG 给 LLM 装上长期记忆 → MCP 让工具调用有了统一标准 → Agent 把大脑、记忆和手脚整合成一个自主系统 → Skills / AGENTS.md 给 Agent 装上了项目规则手册


二、核心概念逐个拆解

2.1 LLM --- 大语言模型

LLM(Large Language Model) 是基于 Transformer 架构、经过海量文本预训练的大规模语言模型,代表产品有 GPT-4、Claude、Gemini。

它的本质能力是预测下一个 token------通过对海量人类文本的学习,把语法、逻辑、常识都压缩进数百亿个神经网络参数(Weights)里。这些参数在训练完成后就固定下来,模型"出厂"后不会自动更新。

交互模式极其简单:

复制代码
  ┌─────────────┐       ┌──────────────────┐       ┌─────────────┐
  │  Prompt In  │ ────► │   LLM 推理引擎   │ ────► │  Text Out   │
  │  (输入)   │       │  理解 · 推理 · 生成│       │  (输出)   │
  └─────────────┘       └──────────────────┘       └─────────────┘

把 LLM 理解成大脑是一个很贴切的比喻------它能理解你说的话、写代码、做逻辑推理。但光有大脑还不够,它不能主动翻文件、执行命令、访问网络,这些能力需要外部系统配合,这也是 RAG、MCP、Agent 存在的根本原因。

LLM 是如何理解自然语言的?

LLM "理解"语言并非真的像人类一样读懂含义,而是一套数学流程:将文字逐步转化为高维数值,再通过注意力机制捕获词语之间的关联。整个过程分为四步:

复制代码
  ① 分词(Tokenization)
  ┌─────────────────────────────────────────────────┐
  │  原始文本:"帮我写一个 Vue 组件"                  │
  │      ↓ Tokenizer(分词器)                       │
  │  Token 序列:["帮", "我", "写", "一个", "Vue",   │
  │               "组", "件"]                        │
  │  每个 Token 映射到一个整数 ID                     │
  └─────────────────────────────────────────────────┘

  ② 向量化(Embedding)
  ┌─────────────────────────────────────────────────┐
  │  每个 Token ID → 高维浮点向量                    │
  │  "Vue" → [0.23, -0.81, 0.44, ...](768~4096 维) │
  │  此时每个词有了"位置",但彼此还是孤立的           │
  └─────────────────────────────────────────────────┘

  ③ 注意力计算(Self-Attention)--- Transformer 核心
  ┌─────────────────────────────────────────────────┐
  │  模型对每个 Token 计算它与其他所有 Token 的       │
  │  "相关程度"(注意力权重)                        │
  │                                                 │
  │  "组件" 会把注意力集中到 "Vue" 和 "写" 上        │
  │  → 语义从孤立词变为"语境中的词"                  │
  │                                                 │
  │  多头注意力(Multi-Head Attention):             │
  │  同时从多个维度捕获语义、句法、指代等不同关系     │
  └─────────────────────────────────────────────────┘

  ④ 自回归生成(Auto-regressive Generation)
  ┌─────────────────────────────────────────────────┐
  │  基于以上所有上下文,预测"下一个 Token"的概率分布 │
  │  → 采样 / 取最高概率 → 追加到序列 → 再次预测     │
  │  → 循环直到生成 <EOS>(结束符)                  │
  └─────────────────────────────────────────────────┘

💡 LLM 本质上在做的事是:从海量文本中学习"哪些词在什么语境下应该出现在一起",然后在推理时根据上下文,给出统计上最合理的续写。它没有主观理解,但因为训练数据足够大,涌现出了很强的"仿理解"能力。

LLM 的固有局限:

缺陷 说明
知识截止(Knowledge Cutoff) 训练数据有时间截止点,对最新事件一无所知
幻觉(Hallucination) 可能生成看起来合理但实际错误的内容
领域知识不足 企业私有文档、内部代码库完全不了解
上下文窗口有限 单次推理能处理的文本量存在上限
推理成本高 按 token 计费,长对话成本显著

正是这些局限,推动了后续一系列工程技术的诞生。


2.2 Prompt --- 提示词

Prompt 就是你发给模型的输入内容。它不只是一句话,而是模型"看到"的全部信息的总称------包括角色定义、背景上下文、任务指令和输出格式要求。

复制代码
  ┌──────────────────────────────────────────────────────┐
  │                   一个完整的 Prompt                   │
  ├─────────────────────┬────────────────────────────────┤
  │   System Prompt     │  角色定义、能力边界、输出格式  │
  │   (系统提示词)     │  行为约束、禁止项              │
  ├─────────────────────┼────────────────────────────────┤
  │   History           │  历史对话记录(多轮上下文)     │
  │   (对话历史)       │                                │
  ├─────────────────────┼────────────────────────────────┤
  │   Context           │  RAG 检索到的相关文档片段      │
  │   (增强上下文)     │  当前项目代码 / 文件内容       │
  ├─────────────────────┼────────────────────────────────┤
  │   User Query        │  用户当前的问题 / 需求          │
  │   (用户输入)       │                                │
  └─────────────────────┴────────────────────────────────┘

模型给出的答案质量,很大程度上取决于 Prompt 的质量,这也是「提示词工程(Prompt Engineering)」这个方向存在的原因。同一个需求,描述得越清晰、上下文越充分,模型的输出就越准确。


2.3 Token 与 Context Window

Token

Token 是模型内部处理文本的最小单位,可以理解为"子词"。不同模型的 tokenizer 分词规则有差异,大致参考:

  • 英文单词:running ≈ 1 token
  • 中文汉字:1 个汉字 ≈ 1~2 token(视 tokenizer 而定)
  • 常见短语可能被合并为 1 个 token

💡 费用计算 = 输入 token 数 + 输出 token 数 ,发送的 Prompt 和模型返回的文本都算在内。可用 tiktoken(OpenAI)等工具库在本地预估消耗。

Context Window(上下文窗口)

上下文窗口是模型单次推理能"看到"的最大 token 数量,等同于它的工作记忆------不仅仅是当前这一条消息,而是所有塞进去的内容总和:

复制代码
  ┌──────────────────────────────────────────────────────────────────────┐
  │                        Context Window                                │
  │                                                                      │
  │  System   │  对话   │  RAG 检索   │  工具返回  │  当前输入 │  输出   │
  │  Prompt   │  历史   │  上下文     │  结果      │           │  预留   │
  │                                                                      │
  │ ◄──────────────── 最大 Token 限制(不同模型不同)────────────────►  │
  └──────────────────────────────────────────────────────────────────────┘

主流模型上下文窗口参考(2025 年):

模型 上下文窗口
GPT-4o 128K tokens
Claude 3.5 Sonnet 200K tokens
Claude 3.7 Sonnet 200K tokens
Gemini 1.5 Pro 1M tokens
Gemini 2.0 Flash 1M tokens

当对话内容超出窗口上限时,Agent 通常会采用两种策略兜底:

  1. 滑动窗口(Sliding Window):丢弃最早的对话轮次,只保留最近 N 条
  2. 自动摘要(Auto Summary):把早期对话压缩成摘要,保留语义而非原文

2.4 Vector Embeddings --- 向量嵌入

向量嵌入(Vector Embeddings) 是把文本、图片等非结构化内容,转换为一组高维数值数组的过程。这个数组就是"向量",由 Embedding 模型生成,维度一旦确定就固定不变。

为什么需要向量?因为计算机无法直接比较两段文字的"语义相似度",但可以计算两个向量的距离(余弦相似度 / 欧氏距离)。Embedding 的核心意义就是:把语义相似的内容,映射到向量空间中相近的位置

复制代码
  文本空间(无法直接比较语义)        向量空间(可以度量距离)
  ┌──────────────────────┐           ┌────────────────────────────────┐
  │  "今天天气真好"       │           │  [0.82, -0.31, 0.56, ...]  ◄──┼─ 距离近
  │  "阳光明媚的一天"     │  Embed ►  │  [0.79, -0.28, 0.61, ...]  ◄──┼─ 语义相似
  │  "股票大跌了"         │           │  [-0.44, 0.91, -0.20, ...] ◄──┼─ 距离远
  └──────────────────────┘           └────────────────────────────────┘

💡 向量的每一个维度本身没有具体含义,是神经网络在训练过程中自动学习到的抽象语义特征,维度数由 Embedding 模型决定(固定不变,如 text-embedding-3-small 输出 1536 维)。


2.5 Vector Database --- 向量数据库

向量数据库(如 Milvus、Pinecone、Qdrant,本地可用 Chroma)是专门为高效相似度检索而设计的存储层,支持 ANN(近似最近邻)算法,能在毫秒级别从海量向量中找到最相似的 K 个结果。

它的存储结构很简洁,核心就三个字段:唯一 ID、向量数组、原始内容或元数据。

json 复制代码
// 基础结构(以 Qdrant 字段命名为例)
{
  "id": "doc_12_chunk_3",
  "vector": [0.012, -0.88, 0.34, ...],   // Embedding 模型生成的高维向量
  "payload": {
    "text": "LangChain 是一个 LLM 应用框架...",
    "source": "langchain.pdf",
    "chunk_index": 3,
    "created_at": 1710000000
  }
}

💡 存储策略:小文本直接放在 payload 里;大文本存关系型数据库,向量库只存 ID 引用,避免单条记录过大影响检索性能。

向量数据库能存哪些东西:

类别 示例
文档知识库 技术文档、产品手册、法律条文
对话历史 用户历史对话的语义摘要
企业内部知识 内部 Wiki、会议记录、邮件摘要
代码库 函数、类的代码块及注释
网页内容 爬取并切块后的网页段落
用户画像 用户偏好、行为模式的向量表示
多模态内容 图片 / 视频的文本描述向量

数据库膨胀的管理策略:

随着时间推移,向量数量会持续增长,常用三种策略控制规模:

  1. 滑动窗口(Sliding Window):只保留最近 N 天的数据,到期删除
  2. 重要性降权(Importance Decay):旧向量降低检索权重而非直接删除,保留但弱化影响
  3. 分层存储(Tiered Storage):近 7 天热存储、7~30 天温存储、30 天以上归档,按访问频率分层

此外,随着数据量增大,可通过分片、倒排索引、聚类等技术解决性能扩展问题------这不是简单的二维坐标检索,而是有一整套工程体系支撑的。


2.6 RAG --- 检索增强生成

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种独立的技术范式,可以单独使用(比如企业知识库问答系统),也常作为 Agent 的检索模块集成。它的核心思路是:先检索,再生成------在调用 LLM 推理之前,先从外部知识库拉取相关内容,一起塞进 Prompt,让模型"有据可查"地回答,而不是靠训练时的记忆凭空生成。

RAG 分为两个阶段,时序上完全分离:

复制代码
  ━━━━━━━━━━━━━━━━━━━━━━  阶段一:知识库构建(离线,一次性)  ━━━━━━━━━━━━━━━━━━━━━━

  原始数据源           文档解析            Chunk 切分
  ┌──────────┐        ┌──────────┐        ┌──────────┐
  │ PDF / MD │        │  文字    │        │ 段落切块 │
  │ 代码/Wiki │ ─────► │  提取    │ ─────► │(~512 tok)│
  └──────────┘        └──────────┘        └────┬─────┘
                                               │
                                     Embedding 模型向量化
                                               │
                                               ▼
                                        ┌──────────┐
                                        │ Vector DB│  ← 写入,离线完成
                                        └──────────┘

  ━━━━━━━━━━━━━━━━━━━━━━  阶段二:知识查询(在线,每次请求)  ━━━━━━━━━━━━━━━━━━━━━━

  用户提问             临时向量化(只读)   相似度检索           精排
  ┌──────────┐        ┌──────────┐        ┌──────────┐        ┌──────────┐
  │"如何使用  │        │ Embedding│        │  top-k   │        │Reranker  │
  │ Vue 3    │ ─────► │(不写入  │ ─────► │  相关文档│ ─────► │ 精排打分 │
  │  响应式?"│        │  DB)    │        │          │        └────┬─────┘
  └──────────┘        └──────────┘        └──────────┘             │
                                                           ┌────────▼───────┐
                                                           │  拼入 Prompt   │
                                                           │  送给 LLM 生成 │
                                                           └────────────────┘

💡 在线查询阶段,用户问题会被临时向量化用于检索,这个向量不会写入数据库,只是一次性的检索 key。写入操作仅发生在离线的构建阶段。

Top-K 文档是什么?

在相似度检索这一步,系统会把用户问题的向量与知识库中所有文档 Chunk 的向量逐一比较相似度(余弦相似度等),然后按相似度从高到低排序,取出得分最高的前 K 个文档片段,这就是 Top-K 文档。

复制代码
  向量数据库中有 10000 个 Chunk
  ─────────────────────────────────────────────────────
  相似度排名  │  Chunk 内容摘要                │ 相似度得分
  ─────────────────────────────────────────────────────
  #1         │  Vue 3 响应式原理 ref/reactive  │  0.94
  #2         │  Vue 3 Composition API 入门     │  0.91
  #3         │  watchEffect 与 watch 的区别    │  0.87
  ···        │  ···                            │  ···
  #10000     │  CSS Grid 布局教程              │  0.03
  ─────────────────────────────────────────────────────
  Top-K(K=3)→ 取 #1 #2 #3,拼入 Prompt 交给 LLM

K 值是一个可调参数,通常取 3~10。K 越大,检索到的上下文越丰富,但也会消耗更多 Context Window 空间并引入噪音;K 越小,精准度高但可能遗漏关键信息。

实际工程中通常还会在 Top-K 后接一个 Reranker(精排模型),对这 K 个候选片段做二次评分重排,进一步提升最终送入 LLM 的文档质量。

在 AI 编码场景下,RAG 的"检索"就是:接收到你的需求后,扫描整个项目索引,找到相关的组件、类型定义和配置文件,作为上下文一起发给模型------这是模型能"理解你的项目"的根本原因。


2.7 MCP --- 模型上下文协议

MCP(Model Context Protocol,模型上下文协议) 是 Anthropic 于 2024 年 11 月发布的开放协议,本质是定义了一套标准:工具如何向模型声明自己的能力,模型如何通过统一接口调用这些工具。

没有 MCP 之前,每个编辑器都要自己实现一套"读文件、执行命令、调 API"的逻辑,彼此不通用。有了 MCP,就像有了 USB 接口标准------任何工具只要实现了 MCP Server,任何支持 MCP 的 Agent 就能直接调用,无需重复开发。

复制代码
  MCP = 工具 / 系统  与  LLM  之间的统一通信标准
MCP 三层架构
复制代码
  ┌───────────────────────────────────────────────────────────────────┐
  │                          Host(主机)                              │
  │           运行环境 Cursor / VS Code / Claude Code                  │
  │           · Agent 的载体,用户交互的 UI 界面                        │
  │           · 协调和管理多个 Client 实例                              │
  └───────────────────────────┬───────────────────────────────────────┘
                              │ 管理(1 Host : N Client)
              ┌───────────────┼───────────────┐
              ▼               ▼               ▼
  ┌──────────────────┐ ┌──────────────────┐  ...
  │  Client A        │ │  Client B        │
  │  大模型的"网卡"   │ │  大模型的"网卡"   │
  │  · 转发 tool_call│ │  · 转发 tool_call│
  │  · 回传执行结果  │ │  · 回传执行结果  │
  └────────┬─────────┘ └────────┬─────────┘
           │ 1:1 连接             │ 1:1 连接
           ▼                     ▼
  ┌──────────────────┐  ┌──────────────────┐
  │  Server A        │  │  Server B        │
  │  文件系统插件    │  │  GitHub 插件     │
  │  read/write_file │  │  clone/push/PR   │
  └──────────────────┘  └──────────────────┘

通信协议(JSON-RPC 格式):

json 复制代码
{
  "method": "tools/call",
  "params": {
    "name": "write_file",
    "arguments": { "path": "src/app.js", "content": "..." }
  }
}

MCP 支持两种传输机制:

传输方式 适用场景 特点
Stdio(标准输入输出) 本地进程通信 性能最优,无网络开销,通常 1:1 服务单个 Client
HTTP / SSE(流式) 远程工具调用 支持多 Client 并发连接,适合云端部署的 MCP Server

MCP Server 支持的工具能力(举例):

复制代码
文件系统   read_file(path)  /  write_file(path, content)  /  list_dir(path)
终端执行   run_shell(cmd)        ← 必须在安全隔离环境下运行
Git 操作   clone / commit / push / create_pr
HTTP 请求  http_get(url)  /  headless 浏览器(处理动态页面)
向量检索   vector_search(query_embedding, top_k)
数据库     直接连接 DB 驱动执行 SQL
CI/CD      调用云 provider SDK(aws cli、gcloud 等)
代码执行   code_executor(code, language)

双向工作流(Sampling): MCP 还支持"反向请求"------Server 可以发起对 LLM 的调用请求,实现更复杂的递归 Agent 行为:

复制代码
  正向(工具调用): Host ──► Client ──► Server(执行工具)
  反向(Sampling): Server ──► Client ──► Host ──► LLM(发起 LLM 推理)

实现 MCP Server 常用的工具库:

  • 系统操作subprocess / child_process(执行 Shell),os / pathlib(文件系统)
  • HTTPrequests / httpx(Python),axios / fetch(JavaScript)
  • 云服务boto3(AWS)、google-cloud-*(GCP)、paramiko(SSH)
  • 浏览器自动化:Playwright、Puppeteer、Selenium

2.8 Guardrails --- 护栏

高速公路的护栏是为了防止车辆偏离轨道。AI 里的护栏,是为了防止模型的输入和输出偏离安全、合规、准确的边界。它既是概念,也是工程上的独立模块,通常集成在 Agent 或平台层中。

Guardrails 覆盖整条链路,从用户输入到最终输出都有介入:

复制代码
  用户输入
      │
      ▼
  ┌─────────────────────────────────────────────────────┐
  │  输入层(pre-prompt)                                │
  │  敏感词过滤 · 注入攻击检测 · 格式校验                │
  └──────────────────────┬──────────────────────────────┘
                         │
                         ▼
  ┌─────────────────────────────────────────────────────┐
  │  工具声明层                                          │
  │  白名单约束可调用工具 · 参数类型校验                  │
  └──────────────────────┬──────────────────────────────┘
                         │
                         ▼
  ┌─────────────────────────────────────────────────────┐
  │  模型交互层(runtime)                               │
  │  tool_call 权限校验 · 高危命令二次确认               │
  └──────────────────────┬──────────────────────────────┘
                         │
                         ▼
  ┌─────────────────────────────────────────────────────┐
  │  后处理层(post-generation)                         │
  │  规则匹配 · 合规检查 · 敏感数据过滤                  │
  └──────────────────────┬──────────────────────────────┘
                         │
                         ▼
  ┌─────────────────────────────────────────────────────┐
  │  审计层                                              │
  │  记录所有调用日志,支持人工审计与回滚                 │
  └─────────────────────────────────────────────────────┘

按作用分类(参考 McKinsey 框架):

类型 作用
适当性(Appropriateness) 检测内容是否有毒、有害、带偏见,拦截不当内容
幻觉(Hallucination) 确保生成内容不含事实错误或误导性信息
合规性(Regulatory-compliance) 验证内容是否符合行业监管要求
对齐(Alignment) 确保输出不偏离用户的原始意图
验证(Validation) 检查内容是否满足特定标准,可触发修正循环

四个核心组件:

  • Checker(检查器):扫描 AI 生成内容,检测错误并标记问题
  • Corrector(校正器):Checker 发现问题后,对输出进行润色和修正
  • Rail(轨道):管理 Checker 与 Corrector 的交互循环,未达标则反复触发修正
  • Guard(守卫):统筹协调以上三者,汇总结果,输出最终内容

2.9 AI Agent --- 智能体

前面提到,LLM 本身只能"问答",它不会主动做事。AI Agent 就是在 LLM 之上构建的自主系统,赋予了模型"主动推进任务"的能力。

复制代码
  AI Agent = LLM(大脑)
           + Memory(记忆)         ← Context Window(短期)+ Vector DB(长期)
           + Tool Layer / MCP(手脚)← 文件读写、终端、网络、Git...
           + Planning & Execution  ← 拆解目标、循环执行、自我纠错

一个典型的例子:输入"帮我实现用户登录逻辑"

复制代码
  用户输入:"帮我实现用户登录逻辑"
        │
        ▼
  ① 感知 & 理解:读取项目结构,了解技术栈和现有代码
        │
        ▼
  ② 规划:拆解任务步骤 → 选择需要调用的工具
        │
        ▼
  ③ 执行工具调用:
     read_file("src/router/index.ts")     → 了解现有路由结构
     read_file("src/types/user.ts")       → 了解用户类型定义
     write_file("src/api/auth.ts", ...)   → 生成认证 API 层
     write_file("src/views/Login.vue", .) → 生成登录页面
        │
        ▼
  ④ 观察 & 反馈:
     run_shell("npm run build")           → 验证编译
     → 发现类型错误 → 自动修复 → 再次验证
        │
        ▼
  ⑤ 任务完成 or 继续下一轮循环

这个 "感知 → 规划 → 执行 → 观察 → 反馈" 的循环,叫做 ReAct(Reasoning + Acting)框架,是 Agent 行动的基本模式,可能循环多轮直到任务完成或触发终止条件。

Agent 内部模块结构:

复制代码
  ┌────────────────────────────────────────────────────────────────────┐
  │                         Agent Runtime                              │
  │                                                                    │
  │  ┌───────────────┐  ┌───────────────┐  ┌──────────────────────┐   │
  │  │    Planner    │  │    Router     │  │       Memory         │   │
  │  │               │  │               │  │                      │   │
  │  │ · 分解任务    │  │ · 直接回答?  │  │ · short-term         │   │
  │  │ · 制定步骤    │  │ · 需要 RAG?  │  │   (Context Window)   │   │
  │  │ · 选择工具    │  │ · 需要工具?  │  │ · long-term          │   │
  │  └───────────────┘  └───────────────┘  │   (Vector DB / 文件) │   │
  │                                         └──────────────────────┘   │
  │  ┌─────────────────────────────────────────────────────────────┐   │
  │  │                     Tool Manager                            │   │
  │  │  · 维护可用工具列表(tool schema)                           │   │
  │  │  · 通过 MCP Client 发起工具调用,接收执行结果                │   │
  │  └─────────────────────────────────────────────────────────────┘   │
  │  ┌─────────────────────────────────────────────────────────────┐   │
  │  │                    Prompt Builder                           │   │
  │  │  System Prompt + 对话历史 + RAG 文档 + 工具结果 + 用户输入  │   │
  │  └─────────────────────────────────────────────────────────────┘   │
  └────────────────────────────────────────────────────────────────────┘

Agent 目前已具备多模态能力,能查看图片内容、读取代码截图。音频、视频等模态的支持也在持续推进中。


2.10 Skills --- 技能规范文件

Skills 是一种「技能规范说明集」,让 AI 编程助手理解某个技术、规范、工具或最佳实践的正确使用方式。

一个 Skill 通常是一个格式化的 Markdown 文件,包含两个核心部分:

  • 元数据(Metadata):定义 Skill 的名称、版本、适用的文件范围(Patterns)等
  • 指令内容(Instructions):描述编码标准、最佳实践、API 正确用法及需规避的坑

说人话就是:当我写 Vue 项目时,你就参考我给的 Vue 规则集(API、写法推荐、最佳实践)来给方案,而不是靠训练时学到的旧知识。

Skills 的流行起源于社区开源项目 antfu/skills(由 Vue 核心团队成员 Anthony Fu 发起),将规则文件打包成 npm 包,方便复用别人的规范,而不用每个人都从头搭建。

安装使用:

shell 复制代码
# 安装 vue、vite、vue-best-practices 三个 skill
npx add-skill antfu/skills --skill vue --skill vite --skill vue-best-practices

安装时会交互式询问你要支持哪些 Agent,根据选择生成对应目录:

shell 复制代码
◆  Which agents do you want to install to?
│
│  ── Universal (.agents/skills) ── always included ──────────────
│    • Amp  • Codex  • Cursor  • Gemini CLI
│    • GitHub Copilot  • Kimi Code CLI  • OpenCode
│
│  ── Additional agents ─────────────────────────
│ ❯ ● Claude Code (.claude/skills)
│   ○ Cline (.cline/skills)
│   ○ Continue (.continue/skills)
│  ↓ 24 more
└

安装后生成的目录结构:

shell 复制代码
.agents/skills/         ← 通用目录,Cursor / Copilot / Codex / Gemini CLI 等都读这里
├── vue/
│   ├── references/
│   │   ├── core-new-apis.md
│   │   ├── advanced-patterns.md
│   │   └── script-setup-macros.md
│   ├── GENERATION.md
│   └── SKILL.md
└── vite/
    ├── references/
    │   └── core-features.md
    └── SKILL.md

.claude/skills/         ← Claude Code 专用目录(部分 Agent 有独立目录)

可以把 Skill 理解为:给 Agent 的任务级 playbook / 工作手册------告诉它"在这个项目里,你应该怎么写代码"。


2.11 其他词汇

Vibe Coding(氛围编程):以自然语言描述意图、由 AI 自动生成代码、开发者主要负责审查和引导的编程方式。强调人机协作中的"方向感",而非逐行手写。

Multimodal(多模态):处理多种数据类型(文本、图像、音频、视频)的能力。GPT-4o、Claude 3、Gemini 均已支持图文混合输入。


三、项目中的上下文配置文件

这些文件的共同目的只有一个:为 Agent / 模型提供额外上下文、规范和快速索引,减少模型反复推断、猜测项目规则的成本。

复制代码
  ┌────────────────────────────────────────────────────────────────┐
  │                  项目配置文件 · 作用层级                        │
  ├────────────────────┬───────────────────────────────────────────┤
  │  llms.txt          │  三方库级别:告知 AI 哪里找最新文档        │
  ├────────────────────┼───────────────────────────────────────────┤
  │  AGENTS.md         │  项目级别:构建命令、规范、约定             │
  ├────────────────────┼───────────────────────────────────────────┤
  │  CLAUDE.md         │  工具级别:特定 Agent 的偏好配置           │
  │  .cursorrules      │                                           │
  ├────────────────────┼───────────────────────────────────────────┤
  │  .agents/skills/   │  技术栈级别:框架 API 规范和最佳实践       │
  └────────────────────┴───────────────────────────────────────────┘

AGENTS.md

专门给 AI 编码 Agent 看的项目说明文件,类似"AI 专用 README",聚焦机器执行的细节:构建命令、测试流程、代码风格规范、commit message 格式等。Agent 启动时会优先读取,避免反复询问或靠训练知识猜测项目约定。

可分层嵌套使用------在 monorepo 的子包目录里也可以放 AGENTS.md,Agent 会优先使用距当前编辑文件最近的那一个。

llms.txt / llms-full.txt

为大语言模型优化的依赖库文档索引文件,以简洁 Markdown 格式提供结构化清单,告知 AI 哪里能找到该库的 API 文档、最佳实践和核心架构说明。

当你的项目用到某个库时,AI 会读取该库的 llms.txt,确保使用的是最新 API 而非训练数据里的旧版本。(还记得 Tailwind CSS 因流量经济考虑拒绝添加 llms.txt 的 PR 吗?😂)

CLAUDE.md / Copilot Instructions

针对特定 Agent 的默认上下文和指令集,用于持久化用户的偏好配置------比如"所有组件必须用 <script setup> 语法"、"禁止使用 any 类型"等。

.cursorrules / .skills

工具特有的规则文件,在特定环境下约束 Agent 的自动行为。例如 .cursorrules 可强制要求"使用 TypeScript 严格模式"、"禁止直接操作 DOM"、"组件必须放在 src/components 目录下"。


四、Agent 完整交互流程

掌握了前面所有概念后,来看一次完整的 Agent 执行过程究竟是什么样的。

前提:向量数据库已完成离线知识库构建;Agent 启动时已将 AGENTS.md 内容注入 System Prompt;MCP Client 已初始化并与各 MCP Server 建立连接。

Agent 上下文来源优先级(从高到低):

复制代码
  ① 对话 Context Window      ------ 实时输入,权威度最高
  ② System Prompt / AGENTS.md ------ 启动时注入,规定基础行为
  ③ RAG 检索结果              ------ 按需召回,补充领域知识
  ④ Vector DB 长期记忆        ------ 历史语义索引
  ⑤ 模型训练参数              ------ 静态知识,兜底

完整执行流程(Mermaid 流程图):

核心循环:⑤ LLM 推理 → ⑥ 工具执行 → ⑦ 结果回传 可能循环多轮,直到任务完成或触发终止条件(最大步数 / 超时)。简单问答和代码审查路径会跳过 ③④ 步,直接进入 ⑤。


五、主流工具横向对比

这些工具都内置了 Agent,但各有侧重:

工具 类型 核心特点
Cursor IDE(基于 VS Code) Anysphere 公司,2023 年发布。理解完整项目上下文,Agent 模式可自主完成多步任务
Windsurf IDE(基于 VS Code) Codeium 公司出品。内置 Cascade Agent,实时感知编辑器状态(光标位置、控制台信息)
GitHub Copilot 插件 最早的 AI 编程助手,主要做代码补全建议,支持 VS Code、JetBrains 等主流编辑器
Claude Code 终端 CLI Anthropic,2025 年发布。纯终端 Agent,深度感知未打开的文件,完整支持 MCP 和 Skills

社区开源项目:

项目 定位
OpenCode 开源终端 Agent,类 Claude Code,model-agnostic,支持多种 LLM 后端
OpenHands 开源"全栈 AI 工程师",内置 Docker 沙盒隔离,面向团队 / 企业的编码 Agent 平台
OpenClaw 面向个人的全能自动化助理,支持通过聊天 / 短信 / WhatsApp 触发日常任务自动化

六、生态全景总结

读完全文,把各个部分的分工再整理一遍:

复制代码
  ┌────────────────────────────────────────────────────────────────────┐
  │                      AI 工程生态 · 各层分工                         │
  ├─────────────────┬──────────────────────────────────────────────────┤
  │  LLM            │  Reasoning --- 理解语言、逻辑推理、生成内容          │
  ├─────────────────┼──────────────────────────────────────────────────┤
  │  RAG             │  Knowledge --- 外挂知识库,突破知识截止和幻觉限制   │
  ├─────────────────┼──────────────────────────────────────────────────┤
  │  MCP             │  Tool Interface --- 标准化工具调用,扩展执行能力    │
  ├─────────────────┼──────────────────────────────────────────────────┤
  │  Agent           │  Planning + Execution --- 自主拆解任务并推进完成   │
  ├─────────────────┼──────────────────────────────────────────────────┤
  │  Skills /        │  Context + Rules --- 注入项目规范,约束生成行为    │
  │  AGENTS.md       │                                                  │
  ├─────────────────┼──────────────────────────────────────────────────┤
  │  Guardrails      │  Safety --- 输入输出双向防护,保障安全与合规        │
  └─────────────────┴──────────────────────────────────────────────────┘

它们之间的依赖关系,形成一个完整的闭环:

复制代码
                         LLM(推理引擎)
                              │
             ┌────────────────┼────────────────┐
             ▼                ▼                ▼
          RAG              MCP            Guardrails
       检索知识           执行工具          安全防护
      (Vector DB)      (Tool Server)
             │                │
             └────────────────┘
                      │
                      ▼
                   Agent
              协调以上一切,主动推进任务
                      │
             ┌────────┴────────┐
             ▼                 ▼
          Skills          AGENTS.md
         框架规范           项目约定

结语

AI 工程的本质,是把 LLM 的推理能力 ,通过一系列工程组件放大成自主行动能力

我们正在经历的不只是工具的更新------更像是一次开发范式的迁移:从人写每一行代码,到人描述意图、AI 执行实现,再到 AI 自主规划、人审查结果。

随着 Agent 越来越成熟,机器人(不只是人形机器人,还有工业机械臂、农业辅助器械)越来越智能,AI 在人类重复性工作中的参与度也会越来越高。带来的是效率还是新的复杂性?可能两者都有。但这大概率是接下来的方向。


参考

相关推荐
workflower2 小时前
大型语言模型简史
人工智能·语言模型·自然语言处理·chatgpt·机器人·集成测试·ai编程
阿杜杜不是阿木木2 小时前
从0到1构建像Claude Code那样的Agent(三):行动前先计划
java·服务器·windows·agent·ai编程·claudecode
UXbot15 小时前
为什么 AI 正在重新定义 UI 设计工具的入门门槛
前端·人工智能·低代码·ui·交互·ai编程·ux
AI袋鼠帝16 小时前
体验完阿里「悟空」,我想把电脑里的龙虾换掉了,是真NB!
aigc·openai·ai编程
王小酱17 小时前
json-render:Generative UI 的终极框架 —— 让 AI 安全地生成界面
openai·ai编程·aiops
王小酱17 小时前
PageAgent-住在网页里的 AI 操控员
openai·ai编程·aiops
王小酱17 小时前
A2UI 深度解读:让 AI Agent "说出"用户界面的开放协议
openai·ai编程·aiops
米小虾18 小时前
hackerbot-claw 攻击事件深度解析:AI Agent 时代的安全警钟
github·ai编程
进击的野人18 小时前
Prompt工程入门指南:写给AI学习新手的提示词秘籍
人工智能·aigc·ai编程