端到端智能对话系统架构文档
一、文档概述
本文档描述一个端到端智能对话系统的整体架构,该系统整合以下核心技术:
| 技术 | 核心职责 |
|---|---|
| Agent AI | 自主推理、任务规划与多轮对话编排 |
| Agent Skills | 领域能力封装与可复用工作流 |
| Function Call | 大模型与外部工具/API 的调用接口 |
| MCP | 上下文与工具的统一协议与扩展机制 |
| RAG | 知识检索增强与事实性保障 |
二、系统总体架构
┌─────────────────────────────────────────────────────────────────────────────────┐
│ 用户交互层 (User Interface) │
│ Chat UI / API Gateway / 多模态输入 │
└─────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────────┐
│ 对话编排层 (Orchestration Layer) │
│ ┌─────────────────────────────────────────────────────────────────────────┐ │
│ │ Agent AI 核心引擎 │ │
│ │ • 意图理解 • 任务分解 • 多轮规划 • 上下文管理 • 响应生成 │ │
│ └─────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Agent Skills │ │ Function Call│ │ MCP │ │ RAG │ │
│ │ 技能调度 │ │ 工具调用 │ │ 协议适配 │ │ 检索增强 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────────┐
│ 能力与数据层 (Capability & Data Layer) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ MCP Servers │ │ 外部 API │ │ 向量数据库 │ │ 知识库 │ │
│ │ Tools/ │ │ 业务系统 │ │ (RAG) │ │ 文档存储 │ │
│ │ Resources │ │ │ │ │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────────────────────┘
三、核心组件详解
3.1 Agent AI 核心引擎
定位:系统的「大脑」,负责理解用户意图、规划执行路径、协调各能力模块并生成最终回复。
核心能力:
-
意图理解与槽位填充
- 从自然语言中提取任务类型、实体、约束条件
- 支持多轮澄清与追问
-
任务规划与分解
- 将复杂任务拆解为可执行的子任务序列
- 支持条件分支、循环与并行执行
-
上下文管理
- 维护对话历史、会话状态、用户画像
- 支持长上下文与摘要压缩
-
能力调度决策
- 根据任务类型选择:Skill / Function Call / RAG / 纯生成
- 支持多能力组合与链式调用
与其它组件的协作:
- 通过 Agent Skills 执行预定义工作流(如代码审查、文档处理)
- 通过 Function Call 调用 LLM 原生工具接口
- 通过 MCP 获取动态工具、资源与提示模板
- 通过 RAG 在生成前注入领域知识
3.2 Agent Skills
定位:可复用的领域能力与工作流,以结构化指令(SKILL.md)形式指导 Agent 执行特定任务。
架构要点:
skill-name/
├── SKILL.md # 主指令:触发条件、步骤、模板
├── reference.md # 详细参考(按需加载)
├── examples.md # 示例
└── scripts/ # 可执行脚本(可选)
与系统集成方式:
- 触发机制 :通过
description中的关键词与场景描述,由 Agent 在对话中自动匹配 - 执行流程:Agent 读取 SKILL.md,按步骤执行(含脚本调用、模板填充等)
- 与 Function Call 的关系:Skill 可内部调用 Function/MCP 工具,形成「工作流 + 工具」组合
典型 Skill 示例:
| Skill | 触发场景 | 主要能力 |
|---|---|---|
| code-review | PR 审查、代码变更 | 按团队标准做质量/安全审查 |
| pdf-processing | PDF 处理、表单提取 | 文本/表格提取、表单填充 |
| commit-helper | 写 commit message | 分析 diff 生成规范提交信息 |
3.3 Function Call(函数调用)
定位:LLM 与外部工具/API 之间的标准调用接口,使模型能「决定何时调用、传什么参数」。
典型流程:
用户输入 → LLM 推理 → 输出 tool_calls[] → 系统执行工具 → 结果回传 LLM → 继续生成
与 MCP 的关系:
- Function Call:多数 LLM API(OpenAI、Claude 等)的原生工具调用格式
- MCP:提供统一的工具发现、调用协议,可被转换为 Function Call 格式供 LLM 使用
集成模式:
┌─────────────┐ tools/list ┌─────────────┐
│ MCP Client │ ◄─────────────────► │ MCP Server │
└─────────────┘ tools/call └─────────────┘
│ │
│ 转换为 Function Call 格式 │
▼ │
┌─────────────┐ │
│ LLM API │ ← 工具定义 + 调用结果 │
│ (OpenAI等) │ │
└─────────────┘ │
3.4 MCP(Model Context Protocol)
定位:AI 应用与外部上下文源之间的标准化协议,统一管理工具、资源与提示模板。
3.4.1 架构模型
MCP 采用 Host-Client-Server 架构:
┌─────────────────────────────────────────────────────────────────┐
│ MCP Host(AI 应用,如 Cursor / Claude Desktop) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ MCP Client 1│ │ MCP Client 2│ │ MCP Client 3│ ... │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
└─────────┼────────────────┼────────────────┼─────────────────────┘
│ 1:1 连接 │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ MCP Server A│ │ MCP Server B│ │ MCP Server C│
│ (Filesystem)│ │ (Database) │ │ (Sentry) │
└─────────────┘ └─────────────┘ └─────────────┘
- MCP Host:AI 应用,负责聚合上下文、协调 LLM、管理客户端生命周期
- MCP Client:由 Host 创建,与单个 MCP Server 保持独立连接
- MCP Server:提供工具、资源、提示等能力,可本地(stdio)或远程(HTTP)
3.4.2 协议层次
| 层次 | 内容 |
|---|---|
| 传输层 | stdio(本地)、Streamable HTTP(远程),支持认证 |
| 数据层 | JSON-RPC 2.0,生命周期管理 + 能力协商 |
3.4.3 核心原语(Primitives)
Server 提供:
| 原语 | 用途 |
|---|---|
| Tools | 可执行函数(如查询、文件操作、API 调用) |
| Resources | 静态/动态数据源(文件、数据库记录、API 响应) |
| Prompts | 可复用提示模板(系统提示、few-shot 示例) |
Client 提供:
| 原语 | 用途 |
|---|---|
| Logging | 服务器向客户端发送日志 |
| Elicitation | 向用户请求额外信息或确认 |
| Sampling | 请求 Host 的 LLM 完成补全(服务器不直接依赖 LLM SDK) |
3.4.4 典型交互序列
- 初始化 :
initialize→ 能力协商 →notifications/initialized - 工具发现 :
tools/list→ 获取工具列表及 inputSchema - 工具执行 :
tools/call→ 传入 name + arguments → 返回 content - 实时更新 :
notifications/tools/list_changed→ 客户端刷新工具列表
3.5 RAG(Retrieval-Augmented Generation)
定位:在生成前从知识库检索相关文档,增强 LLM 的上下文,提升准确性与可追溯性。
3.5.1 基础流水线
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 文档摄入 │ ──► │ 向量索引 │ ──► │ 检索服务 │
│ 分块/预处理 │ │ 元数据 │ │ 相似度搜索 │
└──────────────┘ └──────────────┘ └──────────────┘
│
▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 最终回复 │ ◄── │ LLM 生成 │ ◄── │ 上下文注入 │
│ 引用溯源 │ │ 条件于检索 │ │ 重排序/过滤 │
└──────────────┘ └──────────────┘ └──────────────┘
3.5.2 三阶段
| 阶段 | 内容 |
|---|---|
| 摄入(Ingestion) | 文档解析、分块策略、向量化、写入向量库,支持元数据、版本、混合索引 |
| 推理(Inference) | 查询向量化 → 检索 → 重排序/过滤 → 注入 prompt;支持多轮检索(生成中动态检索) |
| 评估(Evaluation) | 检索质量、生成质量、幻觉率、引用准确性等指标 |
3.5.3 与 Agent 的集成
- 触发条件:当 Agent 判断需要领域知识、内部文档或实时数据时,发起 RAG 查询
- 调用方式:可作为 MCP Resource、或独立 RAG 服务通过 Function Call 暴露
- 高级形态:PipeRAG 等支持检索与生成流水线并行,降低延迟
四、端到端对话流程
用户: "帮我查一下项目文档里关于 API 鉴权的说明,并给一个 Python 示例"
执行流程:
- Agent AI:意图识别 → 任务分解为「检索文档」+「生成示例」
- RAG:对「API 鉴权」做向量检索,返回相关文档片段
- Agent AI:将检索结果注入上下文,生成 Python 示例
- (可选)MCP:若需执行代码,通过 MCP 工具调用运行环境
- Agent AI:整合结果,返回带引用的回复
五、技术选型建议
| 层级 | 可选方案 |
|---|---|
| LLM | OpenAI GPT-4、Claude、国产大模型(支持 Function Call) |
| MCP | 官方 Python/TypeScript SDK,自建或使用 Sentry/Filesystem 等现成 Server |
| RAG | LangChain/LlamaIndex + Chroma/Pinecone/Milvus + Embedding 模型 |
| Agent 框架 | LangGraph、AutoGen、CrewAI 等 |
| Skills | 基于 SKILL.md 规范,存储在 .cursor/skills/ 或 ~/.cursor/skills/ |
六、安全与扩展性
6.1 安全
- MCP:Host 作为中介,控制对 Server 的访问与授权
- Function Call:校验工具参数、限制可调用工具集合
- RAG:文档级权限、检索结果过滤、敏感信息脱敏
6.2 扩展性
- MCP:通过新增 Server 扩展工具与资源,无需改 Host 核心逻辑
- Skills:新增 SKILL.md 即可扩展工作流
- RAG:支持多数据源、多索引、混合检索策略
七、总结
本架构将 Agent AI 作为编排核心,通过 Agent Skills 提供可复用工作流,通过 Function Call 与 MCP 统一工具与上下文接入,通过 RAG 增强领域知识,形成端到端智能对话系统。各组件职责清晰、可独立演进,便于按业务需求裁剪与扩展。