AI Agent 落地的第 0 步:MCP、RAG 与工具调用的工程化选择

技术开发AI AgentMCPRAGFunction Calling工程化2026-08-24

AI Agent 落地的第 0 步:MCP、RAG 与工具调用的工程化选择

1. 从大模型到 Agent:为什么需要记忆、规划与工具

大模型是无状态的静态知识库,Agent需要记忆、规划、工具来弥补不足。记忆解决上下文连续,规划解决任务分解,工具解决实时交互。

2. MCP 协议如何统一外部工具调用,对比 Function Calling

MCP(Model Context Protocol)是开放协议,通过 Client/Server 模型统一外部工具。Function Calling 是模型厂商私有机制,工具定义与调用方式绑定平台。
维度MCPFunction Calling
标准化开放协议厂商私有
工具定义元数据 JSON SchemaAPI 参数
连接方式客户端-服务端函数注册
适用场景企业级多系统集成轻量级单模型集成

3. RAG 在 Agent 中的边界:知识检索 vs 实时工具

RAG适合静态私有文档,工具适合实时数据和业务操作。判断原则:答案在文档中用RAG,答案需要系统计算/操作用工具。

4. 生产级 Agent 的评测、监控与安全

评测指标包括工具选择准确率、参数填充正确率、规划效率和任务完成率。监控需要覆盖 Trace、成本、延迟。安全要防 Prompt 注入、越权操作和数据泄露。

5. 经典代码示例:基于开源框架搭建一个检索+工具的Agent

这里使用 LangChain + Chroma + Tavily Search + OpenAI 构建一个 Agent。
import os
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_community.vectorstores import Chroma
from langchain_core.tools import Tool
from langchain_openai import OpenAIEmbeddings
llm = ChatOpenAI(model='gpt-4o-mini', temperature=0)
embedding = OpenAIEmbeddings()
vectorstore = Chroma(collection_name='company_docs', embedding_function=embedding)
retriever = vectorstore.as_retriever(search_kwargs={'k': 5})
def retriever_tool(input: str) -> str:
 docs = retriever.invoke(input)
 return '\n\n'.join([d.page_content for d in docs])
rag_tool = Tool.from_function(
 func=retriever_tool,
 name='company_docs_search',
 description='在公司知识库中检索信息,入参是自然语言查询。'
)
search = TavilySearchResults(max_results=3)
tools = [rag_tool, search]
prompt = ChatPromptTemplate.from_messages([
 ('system', '你是一个智能助手,可以检索知识库或搜索实时信息来回答问题。'),
 ('human', '{input}'),
 ('placeholder', '{agent_scratchpad}'),
])
agent = create_openai_tools_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True, handle_parsing_errors=True)
res = agent_executor.invoke({'input': '请对比我们公司最新的产品与竞争对手的公开信息,并给出建议。'})
print(res['output'])

Mermaid流程图

graph TD A[用户输入] --> B[Agent 调度器] B --> C{需要工具?} C -- 是 --> D[工具调用] D --> E{继续规划?} E -- 是 --> B E -- 否 --> F[最终回答] C -- 否 --> F F --> G[输出]

推荐视频

平台推荐搜索词出处
B站MCP协议入门出处:B站
腾讯视频AI Agent开发实战出处:腾讯视频
优酷RAG应用详解出处:优酷
抖音AI Agent工具调用出处:抖音

免责声明

本文仅供参考,不构成技术选型建议。代码示例可能随开源版本变化,请以官方文档为准。视频版权归原作者及平台所有。

操作清单

  • 明确业务问题,定义Agent边界
  • 根据供应商锁定情况选择MCP或Function Calling
  • 划分RAG与工具使用场景
  • 建立评测集和过程指标
  • 配置全链路追踪和监控告警
  • 实施最小权限与人工审批
  • 使用开源框架快速原型验证

避坑指南

  • 不要把能力全塞进Prompt,优先用RAG和工具承载。
  • RAG对表格和时序数据效果差,考虑混合检索。
  • 工具返回内容需要消毒,防止Prompt注入。
  • MCP仍在快速迭代,需要固定客户端和服务端版本。
  • 评测不能只看最终答案,要关注工具调用过程。
  • Agent循环成本高,要设置最大迭代次数。
  • 能够修改外部系统的工具必须加白名单和审计。
PREMIUM

需要完整版教程?

包含详细步骤、视频演示、提示词模板和可下载资料包。微信支付即时获取。

购买完整版 ¥29.90