AI Agent - MCP Overview
提示工程 + RAG
- LLM 可以开箱即用,通过提示工程和它直接对话并解决问题
- 随着 LLM 的能力越来越强,尤其是其推理模型的出现,LLM 的回答越来越准确
- 但 LLM 并非全知全能,预训练的数据有截止时间 - RAG
- RAG 是一种 LLM 应用开发范式
- 将 LLM 与外部数据源相结合来提高准确性和相关性
- 先通过向量之间的相似度,用检索系统从外部数据源搜索数据,以识别与用户查询相关的信息
- LLM 随后利用检索到信息生成更精确,更及时的响应
RAG 过程 - 通过 RAG 增加 LLM 的知识,大大提高了 LLM 回答的准确性和相关性
Key | Value |
---|---|
检索 | 通过向量数据库或者其它检索系统,找出与用户查询相关的信息 |
增强 | 将检索到的信息作为上下文提供给 LLM |
生成 | LLM 基于这些额外信息生成回答 |
Agent + Tool Call
- RAG 解决的是让 LLM 使用内部知识,同时减少幻觉的问题,但 RAG 本身并没有增强 LLM 的行动能力 - Agent
- Agent 本质上是赋予 LLM 使用工具并采取行动的开发范式
Agent 的工作流程
Key | Value |
---|---|
规划 | LLM 理解用户需求,规划解决方案 |
工具选择 | 决定使用哪些工具来完成任务 |
工具调用 | 调用选定的工具并处理返回结果 |
反思和调整 | 评估进展,必要时调整计划 |
输出结果 | 向用户呈现最终结果 |
- 工具调用的能力让 LLM 不再局限于生成文本,而是可以执行实际操作,极大扩展了 AI 应用的范围和价值
- OpenAI 的 Function Calling 和 Anthropic 的 Tool Use 都允许开发者为 LLM 定义可调用的工具,LLM 可以自主决定何时使用这些工具
LLM 应用开发范式
- 要让 LLM 拥有各种工具调用的能力,绝非易事
- 即使是使用 LangChain,要为 LLM 配置一个工具,也要在程序中手动向 LLM 注册工具的名称以及各种参数
- 在有了 MCP 协议后,无论是 RAG,还是 Agent + Tool Calls,这两个 LLM 应用开发的关键范式,都将得益于 MCP 提供的工具发现和主动调用能力
MCP + RAG + Agent
MCP 是一个开放标准,用于将 AI 连接到数据库和工具,相当于为 LLM 构建的 API 层
- MCP 为 LLM 提供了连接到不同数据源和工具的标准方式
- 所有的工具或者服务提供商都会按照 MCP 协议制定的标准定义一个共享接口
- 无需每个开发团队都分别与他们构建一次性集成,而 MCP 客户端中的 LLM 可以无缝地接入该接口
- 对于 RAG 来说
- MCP 通过统一的 SessionMessage 协议和工具发现机制,使 RAG 能够无缝接入多源数据检索
- 只需一次集成即可动态检索并注入上下文,大幅提高 RAG 的准确性和可维护性
- 对于 Agent 来说
- MCP 为 Agent 提供了标准化的工具调用接口和结果回传格式
- 让 LLM 可以自主选择、分步调度各类工具执行复杂任务,无需手动注册或编码集成
- 这将显著提升 Agent 应用的开发效率和扩展能力
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.