一、LLM 的“手无缚鸡之力”:能说,不能做

大语言模型(LLM)的本质,是一个基于概率的文本生成器。它通过海量语料学习语言模式,能在给定上下文下预测下一个最可能的 token。这种能力让它在信息整合、逻辑推理、创意生成上表现出色。

但它存在三个根本性局限:

1. 封闭世界假设

LLM 的知识完全来源于训练数据,无法感知外部状态。

  • 它不知道你当前目录下有什么文件
  • 它不知道服务器是否宕机
  • 它不知道最新股价是多少

2. 无副作用(Side-effect Free)

LLM 的输出只是文本,不会改变现实世界的状态

  • 它可以写出 rm -rf /,但不会真的删除你的系统
  • 它可以描述“部署成功”,但不会触发 CI/CD 流水线

3. 无长期记忆

每次对话都是“全新开始”(除非使用上下文窗口),无法记住:

  • 你上周让它生成的项目结构
  • 你偏好的代码风格
  • 任务的中间状态(如“依赖已安装,下一步该写组件”)

二、破局点:LLM + Tools = Agent(智能体)

真正的突破,来自于将 LLM 与可执行工具结合,形成 AI Agent(智能体)

️ 最小可行工具集(MVP Tools)

表格

工具能力典型场景
readFile(path)读取任意文件内容分析现有代码、读取配置
writeFile(path, content)写入/覆盖文件生成新文件、修复 bug
listDirectory(path)列出目录结构了解项目布局
executeCommand(cmd, { cwd })执行终端命令安装依赖、启动服务、构建项目

极简 Agent 示例(Node.js)

import { spawn } from 'child_process';
import { writeFile } from 'fs/promises';

async function handleTask(task) {
  if (task.includes('创建 React 项目')) {
    // 1. 执行命令创建项目
    await new Promise((resolve, reject) => {
      const proc = spawn('pnpm', ['create', 'vite', 'my-todo-app', '--template', 'react-ts']);
      proc.on('close', (code) => code === 0 ? resolve() : reject(new Error('创建失败')));
    });

    // 2. 写入自定义 README
    await writeFile('my-todo-app/README.md', '# AI 生成的 Todo Appn由全栈 Agent 自动创建');

    // 3. 返回结果
    return ' 项目 my-todo-app 已创建并初始化!';
  }
  return '未识别任务';
}

Agent 的核心范式

  • LLM = 大脑:理解用户意图、拆解任务、选择工具、规划步骤
  • Tools = 手脚:执行具体操作、返回真实世界反馈
  • 循环迭代:LLM 根据工具返回结果,决定下一步行动(ReAct 模式)

甜头来了:AI 真的能干活了!


三、新瓶颈:工具生态的“巴别塔困境”

然而,随着工具数量增加,新的复杂性浮现:

场景碎片化

表格

问题描述
语言壁垒Python 数据分析脚本无法被 Node.js Agent 调用
部署隔离公司内部 Java 微服务运行在 Kubernetes,如何安全暴露?
协议混乱有的工具用 REST,有的用 gRPC,有的直接读 stdin/stdout
参数不一致同一个“读文件”功能,A 工具叫 filePath,B 工具叫 path

️ LLM 调用失败率高

  • 因为缺乏工具 schema 描述,LLM 只能靠 prompt 猜参数
  • 一旦猜错(如传了 cd dir && cmd 而工具已设 cwd),命令直接失败
  • 错误无法自动恢复,Agent 卡死

四、MCP 协议:为 AI 工具建立“通用语言”

2024 年底,Anthropic 提出并开源 Model Context Protocol(MCP) ,旨在解决上述问题。

MCP 的三大核心能力

表格

能力技术实现价值
跨语言工具以独立进程运行,通过 stdio/HTTP 通信Python/Rust/Java 工具均可接入
跨进程支持本地子进程(stdio)和远程服务(HTTP本地开发 & 企业级部署统一
可发现动态调用 mcp.list_tools 获取工具元数据LLM 知道“能做什么”,不再靠猜

通信方式

表格

方式适用场景安全性
stdio本地工具(如文件操作、CLI)高(子进程隔离)
HTTP远程服务(如数据库、API 网关)中(需鉴权/HTTPS)

标准 MCP 工具示例(Node.js + SDK)

// file-tool.mjs
import { McpServer } from '@modelcontextprotocol/sdk';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server';
import { readFile, readdir } from 'fs/promises';

const server = new McpServer();

// 注册 readFile 工具
server.registerTool({
  name: 'read_file',
  description: '读取指定路径的文件内容',
  inputSchema: {
    type: 'object',
    properties: { path: { type: 'string', description: '文件绝对路径' } },
    required: ['path']
  },
  handler: async ({ path }) => {
    const content = await readFile(path, 'utf8');
    return { content };
  }
});

// 注册 list_directory 工具
server.registerTool({
  name: 'list_directory',
  description: '列出目录下的文件和子目录',
  inputSchema: {
    type: 'object',
    properties: { path: { type: 'string' } },
    required: ['path']
  },
  handler: async ({ path }) => {
    const files = await readdir(path);
    return { files };
  }
});

// 启动 stdio 服务(适合本地调用)
const transport = new StdioServerTransport();
await server.connect(transport);
console.error('MCP File Tool Server Ready');

五、MCP 架构三要素:Host / Client / Server

理解 MCP,必须厘清三个角色的职责边界:

表格

角色职责技术实现
MCP HostAgent 的“大脑载体”,负责任务调度、LLM 调用、结果整合Cursor、Windsurf、LangChain Agent Executor
MCP ClientHost 内置的通信适配器,封装 MCP 协议细节@modelcontextprotocol/client 或 LangChain 的 McpToolkit
MCP Server工具的实际提供者,独立进程/服务,处理具体业务逻辑上述 file-tool.mjs,或 Python/Rust 编写的工具服务

完整工作流程

  1. 初始化阶段
    Host 启动 MCP Client,连接 Server(spawn 子进程 or HTTP 请求)
    → 发送 { "method": "mcp.list_tools" }
    ← Server 返回工具列表及 JSON Schema

  2. 任务执行阶段

    • LLM 根据任务选择工具(如 read_file
    • Host 通过 Client 发送 { "method": "read_file", "params": { "path": "src/App.tsx" } }
    • Server 执行 fs.readFile,返回 { "result": { "content": "..." } }
    • Host 构造 ToolMessage(content=..., tool_call_id=...),追加到对话上下文
    • LLM 基于新上下文继续推理或生成最终答案

六、仅靠工具还不够:Memory + RAG 才是完整 Agent

一个生产级 Agent 需要四大支柱:

text

编辑

AI Agent = LLM + Tools + Memory + RAG

1️⃣ Memory(记忆):解决“健忘症”

为什么需要?

  • LLM 上下文窗口有限(通常 ≤ 128K tokens)
  • 长期任务(如“每周生成周报”)需跨会话记忆
  • 用户偏好(如“用 pnpm 而非 npm”)应被记住

实现方案:

  • 短期记忆:对话历史摘要(LLM 自动生成)
  • 长期记忆:向量数据库存储关键事件(如“用户项目使用 TypeScript”)
  • 检索机制:每次调用前,从记忆库召回相关信息注入 prompt

2️⃣ RAG(检索增强生成):解决“幻觉”

问题本质:

LLM 的知识截止于训练数据(如 GPT-4 截止 2023 年),面对:

  • 公司内部制度
  • 最新 API 文档
  • 私有代码库
  • 实时数据(股价、天气)

它会“自信地胡说”。

RAG 工作原理:

  1. 知识入库:将私有文档(PDF/Word/代码/网页)切片 → 向量化 → 存入向量库
  2. 查询时检索:用户提问 → 生成 query embedding → 检索 top-k 相关片段
  3. 增强 Prompt:将检索结果拼接到 prompt 中
  4. LLM 生成:基于真实知识生成答案

LangChain RAG 示例(增强版):

// 1. 加载多种格式文档
const loaders = [
  new TextLoader('docs/policy.txt'),
  new PDFLoader('docs/handbook.pdf'),
  new WebBaseLoader('https://internal.wiki/api-guide')
];
const docs = await Promise.all(loaders.map(l => l.load()));

// 2. 智能切片(按语义而非固定长度)
const splitter = new RecursiveCharacterTextSplitter({ chunkSize: 500 });
const chunks = await splitter.splitDocuments(docs.flat());

// 3. 向量化存储
const vectorStore = await Chroma.fromDocuments(chunks, new OpenAIEmbeddings());

// 4. 构建带记忆的 RAG 链
const chain = new RetrievalQAChain({
  llm: new ChatOpenAI(),
  retriever: vectorStore.asRetriever({ k: 3 }),
  memory: new ConversationSummaryMemory({ llm: new ChatOpenAI() })
});

// 5. 调用
const res = await chain.call({ query: '如何申请年假?' });
// → 答案严格基于公司制度文档,无幻觉

七、未来已来:MCP 如何重塑应用生态?

MCP 的普及,正在引发一场“应用层革命”:

趋势 1:80% 的 App 将消失

  • 今天:用户需下载淘宝、美团、滴滴、Notion……

  • 未来:用户只需一个 Universal Agent,通过自然语言调用 MCP 服务:

    • 调用 大众点评 MCP:查餐厅、预订
    • 调用 微信支付 MCP:完成支付
    • 调用 高德地图 MCP:叫车
    • 调用 日历 MCP:添加事件

趋势 2:大厂开放 MCP 服务

表格

公司MCP 服务示例价值
GitHubgithub_mcp:创建 PR、查 issue、管理 repo开发者无需离开 IDE
AWSaws_mcp:启停 EC2、查账单、监控告警运维自动化
Salesforcecrm_mcp:查客户、更新商机、发邮件销售效率提升
你的公司erp_mcp / db_mcp / bi_mcp内部系统 AI 化

趋势 3:一人公司成为可能

  • 案例:“OpenClaw养虾”
    一个开发者构建多 Agent 协同系统:

    • 编程 Agent:用 MCP 调用 Cursor 创建项目
    • 设计 Agent:调用 Figma MCP 生成 UI
    • 财务 Agent:调用 QuickBooks MCP 记账
    • 市场 Agent:调用 Google Ads MCP 投放广告

八、开发者行动指南

如果你是一名开发者,现在就是布局全栈 Agent 的最佳时机:

三步走战略

  1. 学习 MCP 协议

    • 阅读 MCP 官方规范
    • 掌握 @modelcontextprotocol/sdk
  2. 将现有服务 MCP 化

    # 示例:把内部 CLI 工具包装成 MCP Server
    npx mcp-wrap --command="my-cli-tool" --name="internal_tool"
    
    • 任何可脚本化的服务,都可暴露为 MCP 工具
  3. 构建自己的 Agent Host

    • 集成:

      • MCP Client(工具调用)
      • RAG(知识检索)
      • Memory(长期记忆)
      • 安全沙箱(限制危险命令)
    • 推荐框架:LangChain(实验性 MCP 支持)、LlamaIndex、自研

关键资源

  • SDK:npm install @modelcontextprotocol/sdk
  • 示例仓库:github.com/modelcontex…
  • 社区:Discord / GitHub Discussions

结语:从“对话”到“行动”,AI 正在进化

  • LLM 让 AI 学会了 说话
  • Tools 让 AI 学会了 动手
  • MCP 让 AI 的手脚 遍布全球
  • RAG 让 AI 的知识 永不落后
  • Memory 让 AI 记得你是谁

我们正站在一个新时代的门槛上:
AI 不再是聊天窗口里的“聪明朋友”,而是能替你工作的“数字员工”。

而这一切,才刚刚开始。

本站提供的所有下载资源均来自互联网,仅提供学习交流使用,版权归原作者所有。如需商业使用,请联系原作者获得授权。 如您发现有涉嫌侵权的内容,请联系我们 邮箱:alixiixcom@163.com