logo
08

RAG & Agent 策略:复杂系统设计

⏱️ 75分钟

RAG & Agent 策略:复杂系统设计

交付物:企业级知识库架构图 & 多 Agent 协作方案

为什么 PM 需要理解 RAG 和 Agent?

当你的 AI 产品需求超出"简单问答"的范畴时,你会遇到两个关键技术:

  • RAG(Retrieval-Augmented Generation):让 AI 基于你的数据回答问题
  • Agent:让 AI 自主规划、调用工具、完成复杂任务

作为 PM,你不需要写代码,但需要:

  • 理解这些技术能做什么、不能做什么
  • 能够设计合理的产品方案
  • 能够与工程师有效沟通

本章将帮你建立产品视角的 RAG 和 Agent 设计能力。


1. RAG 基础:让 AI "读懂"你的数据

1.1 为什么需要 RAG?

问题:LLM 有知识截止日期,且不了解你的私有数据。

  • GPT-4 的知识截止于 2024 年
  • LLM 不知道你公司的产品文档、政策、FAQ

解决方案:RAG = 检索 + 生成

用户提问
    ↓
检索相关文档(Retrieval)
    ↓
将文档作为上下文(Context)
    ↓
LLM 基于上下文生成回答(Generation)

1.2 RAG 核心流程

flowchart LR
    A[原始文档] --> B[文档切分]
    B --> C[向量化]
    C --> D[(向量数据库)]

    E[用户提问] --> F[问题向量化]
    F --> G[相似度检索]
    D --> G
    G --> H[获取相关文档]
    H --> I[构建 Prompt]
    I --> J[LLM 生成回答]

1.3 PM 需要关注的 RAG 设计决策

决策点选项影响
文档切分策略按段落/固定长度/语义检索准确性
向量模型选择OpenAI/开源模型成本和效果
Top-K 数量返回多少条结果召回率 vs 噪音
相似度阈值最低相似度要求准确性 vs 覆盖率
重排序策略是否二次排序答案质量
引用展示是否显示来源用户信任度

1.4 文档切分策略详解

为什么要切分?

  • 文档太长,超出上下文窗口
  • 检索时需要找到最相关的"片段"

切分策略对比

策略优点缺点适用场景
固定长度(如 500 tokens)简单、均匀可能切断语义结构松散的文档
按段落/章节保持语义完整长度不均匀结构化文档
语义切分智能、准确计算成本高高质量要求场景
重叠切分避免边界信息丢失冗余存储长文档

PM 建议

  • 产品文档、FAQ:按段落/章节
  • 长篇文章、报告:固定长度 + 重叠
  • 对话记录:按对话轮次

2. RAG 架构设计

2.1 基础 RAG 架构

用户界面
    │
    ▼
┌─────────────────────────────────────────┐
│              应用层                      │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  │
│  │ 问题理解 │  │ 检索处理 │  │ 答案生成 │  │
│  └─────────┘  └─────────┘  └─────────┘  │
└─────────────────────────────────────────┘
    │                │
    ▼                ▼
┌─────────┐    ┌─────────────┐
│   LLM   │    │ 向量数据库   │
│ (GPT-4) │    │ (Pinecone)  │
└─────────┘    └─────────────┘

2.2 企业级 RAG 架构(交付物)

                    ┌────────────────────────────────────┐
                    │           负载均衡                  │
                    └────────────────────────────────────┘
                                    │
                    ┌───────────────┼───────────────┐
                    ▼               ▼               ▼
            ┌────────────┐  ┌────────────┐  ┌────────────┐
            │   API 网关   │  │   API 网关   │  │   API 网关   │
            └────────────┘  └────────────┘  └────────────┘
                    │               │               │
                    └───────────────┼───────────────┘
                                    │
┌───────────────────────────────────┼───────────────────────────────────┐
│                              应用服务层                                │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐                │
│  │   问题预处理   │  │   检索编排    │  │   答案生成    │                │
│  │  - 意图识别   │  │  - 多路召回   │  │  - Prompt   │                │
│  │  - 关键词提取  │  │  - 重排序    │  │  - 流式输出   │                │
│  │  - 问题改写   │  │  - 过滤去重   │  │  - 引用标注   │                │
│  └──────────────┘  └──────────────┘  └──────────────┘                │
└───────────────────────────────────────────────────────────────────────┘
            │                   │                   │
            ▼                   ▼                   ▼
    ┌──────────────┐    ┌──────────────┐    ┌──────────────┐
    │  LLM 服务     │    │  向量数据库   │    │  缓存服务     │
    │  - GPT-4     │    │  - Pinecone  │    │  - Redis     │
    │  - Claude    │    │  - Milvus    │    └──────────────┘
    │  - 本地模型   │    │  - Weaviate  │
    └──────────────┘    └──────────────┘
                               │
                        ┌──────┴──────┐
                        ▼             ▼
                ┌──────────────┐  ┌──────────────┐
                │   索引管道    │  │   文档存储    │
                │  - 切分     │  │  - S3       │
                │  - 向量化   │  │  - MongoDB  │
                │  - 元数据   │  └──────────────┘
                └──────────────┘

2.3 RAG 优化策略

提升检索质量

策略描述效果
混合检索关键词 + 向量检索结合提高召回率
查询改写用 LLM 改写用户问题解决表述不清问题
HyDE先生成假设答案,再检索提高语义匹配
重排序用更强的模型二次排序提高准确率

提升生成质量

策略描述效果
压缩上下文只保留最相关的内容减少噪音
分步推理先推理再回答提高复杂问题准确率
自检机制LLM 检查自己的答案减少幻觉
引用标注标注答案来源可验证性

3. Agent 基础:让 AI 自主完成任务

3.1 什么是 Agent?

Agent = LLM + 规划能力 + 工具调用

传统 LLM:
用户输入 → LLM → 输出答案

Agent:
用户输入 → LLM 规划 → 调用工具1 → 分析结果 → 调用工具2 → ... → 输出答案

3.2 Agent 核心能力

能力描述示例
规划(Planning)将复杂任务拆解为步骤"帮我分析竞品" → 1.搜索竞品信息 2.整理对比 3.生成报告
工具调用(Tool Use)调用外部工具获取信息或执行操作搜索引擎、代码执行、API 调用
记忆(Memory)记住历史对话和中间结果短期记忆、长期记忆
反思(Reflection)检查结果,修正错误验证答案、重新规划

3.3 Agent 设计模式

模式 1:ReAct(推理 + 行动)

思考:我需要知道竞品A的融资情况
行动:搜索"竞品A 融资"
观察:找到3条结果...
思考:结果显示竞品A在2024年获得B轮融资
行动:继续搜索竞品B的融资情况
...

模式 2:Plan-and-Execute(规划 + 执行)

规划:
1. 搜索竞品A的基础信息
2. 搜索竞品B的基础信息
3. 对比两个竞品的功能
4. 生成分析报告

执行:按步骤依次执行

模式 3:Multi-Agent(多智能体协作)

协调者 Agent:接收任务,分配给子Agent
├── 搜索 Agent:负责信息检索
├── 分析 Agent:负责数据分析
├── 写作 Agent:负责报告生成
└── 审核 Agent:负责质量检查

4. Multi-Agent 协作方案设计(交付物)

4.1 多 Agent 架构

                    ┌──────────────────┐
                    │   协调者 Agent    │
                    │  (Orchestrator)  │
                    └────────┬─────────┘
                             │
           ┌─────────────────┼─────────────────┐
           │                 │                 │
           ▼                 ▼                 ▼
    ┌────────────┐    ┌────────────┐    ┌────────────┐
    │ 研究 Agent  │    │ 分析 Agent  │    │ 执行 Agent  │
    │ - 搜索     │    │ - 数据处理  │    │ - API调用   │
    │ - 爬取     │    │ - 图表生成  │    │ - 文件操作  │
    │ - 总结     │    │ - 洞察提取  │    │ - 通知发送  │
    └────────────┘    └────────────┘    └────────────┘

4.2 协作流程设计

场景:AI 竞品分析助手

## Agent 定义

### 协调者 Agent

角色:任务分配和结果整合
输入:用户的分析请求
输出:完整的分析报告
能力:

-   理解用户需求
-   拆解任务
-   分配给合适的子 Agent
-   整合各 Agent 的输出

### 搜索 Agent

角色:信息检索专家
输入:搜索关键词
输出:结构化的搜索结果
工具:

-   网页搜索
-   新闻搜索
-   社交媒体搜索
    限制:
-   只负责搜索,不做分析

### 分析 Agent

角色:数据分析师
输入:原始数据
输出:分析结论
能力:

-   数据清洗
-   对比分析
-   趋势识别
-   洞察提取

### 写作 Agent

角色:报告撰写专家
输入:分析结论
输出:格式化报告
能力:

-   结构化写作
-   图表生成
-   格式美化

## 协作流程

1. 用户输入:"分析竞品 A 和竞品 B"
2. 协调者理解需求,制定计划:
    - 任务 1:搜索竞品 A 信息 → 搜索 Agent
    - 任务 2:搜索竞品 B 信息 → 搜索 Agent
    - 任务 3:对比分析 → 分析 Agent
    - 任务 4:生成报告 → 写作 Agent
3. 并行执行任务 1 和任务 2
4. 等待搜索完成,执行任务 3
5. 执行任务 4
6. 协调者整合,返回最终报告

4.3 Agent 工具定义(Function Calling)

{
	"tools": [
		{
			"name": "web_search",
			"description": "搜索互联网获取最新信息",
			"parameters": {
				"query": {
					"type": "string",
					"description": "搜索关键词"
				},
				"num_results": {
					"type": "integer",
					"description": "返回结果数量",
					"default": 5
				}
			}
		},
		{
			"name": "get_company_info",
			"description": "获取公司基础信息",
			"parameters": {
				"company_name": {
					"type": "string",
					"description": "公司名称"
				}
			}
		},
		{
			"name": "compare_products",
			"description": "对比两个产品的功能",
			"parameters": {
				"product_a": {
					"type": "string",
					"description": "产品A名称"
				},
				"product_b": {
					"type": "string",
					"description": "产品B名称"
				},
				"dimensions": {
					"type": "array",
					"items": { "type": "string" },
					"description": "对比维度"
				}
			}
		},
		{
			"name": "generate_report",
			"description": "生成分析报告",
			"parameters": {
				"title": {
					"type": "string",
					"description": "报告标题"
				},
				"sections": {
					"type": "array",
					"description": "报告章节内容"
				},
				"format": {
					"type": "string",
					"enum": ["markdown", "pdf", "html"],
					"description": "输出格式"
				}
			}
		}
	]
}

5. 评估与兜底策略

5.1 RAG 评估指标

指标定义计算方式
检索召回率相关文档被检索到的比例检索到的相关文档 / 总相关文档
检索准确率检索结果中相关文档的比例相关文档 / 总检索结果
答案准确性答案正确的比例正确答案数 / 总问题数
答案完整性答案覆盖问题所有方面人工评估
幻觉率生成虚假信息的比例含幻觉答案 / 总答案
引用准确性引用与答案匹配的比例正确引用 / 总引用

5.2 Human-in-the-Loop 设计

                ┌──────────────────────────────────────────┐
                │                用户界面                   │
                └──────────────────────────────────────────┘
                                    │
                                    ▼
                        ┌───────────────────┐
                        │    置信度判断      │
                        └───────────────────┘
                          /             \
                    高置信度           低置信度
                        │                │
                        ▼                ▼
                ┌──────────────┐  ┌──────────────┐
                │   直接回答    │  │  人工审核队列  │
                └──────────────┘  └──────────────┘
                                        │
                                        ▼
                                ┌──────────────┐
                                │   人工审核    │
                                │  - 修正答案   │
                                │  - 补充知识库 │
                                │  - 标注样本   │
                                └──────────────┘

5.3 兜底策略

场景兜底策略
检索无结果引导用户换个问法 / 推荐热门问题
低置信度答案标注"仅供参考" / 提供人工入口
超出知识范围明确说明"这个问题我不确定"
敏感问题拒绝回答 / 转人工
系统错误友好提示 + 自动重试
高延迟流式输出 / 预估等待时间

5.4 Safety Guardrails

用户输入
    │
    ▼
┌──────────────────────────────────────┐
│           输入过滤层                  │
│  - 敏感词检测                        │
│  - 恶意攻击检测(Prompt Injection)   │
│  - 长度/格式验证                     │
└──────────────────────────────────────┘
    │
    ▼
┌──────────────────────────────────────┐
│           RAG / Agent 处理            │
└──────────────────────────────────────┘
    │
    ▼
┌──────────────────────────────────────┐
│           输出过滤层                  │
│  - 敏感内容检测                      │
│  - 事实一致性检查                    │
│  - 格式规范化                        │
└──────────────────────────────────────┘
    │
    ▼
用户输出

6. 实战案例:企业知识库问答系统

6.1 需求描述

产品:企业内部知识库问答系统
用户:公司全体员工
场景:

-   查询公司政策(HR、财务、行政)
-   查询产品文档
-   查询技术文档
-   查询历史项目资料

要求:

-   基于公司内部文档回答
-   答案准确,不能胡说
-   需要标注来源
-   敏感信息需要权限控制

6.2 架构设计

┌────────────────────────────────────────────────────────────┐
│                        用户界面                            │
│  ┌──────────────────────────────────────────────────────┐  │
│  │  [搜索框] 请输入你的问题...                          │  │
│  │                                                      │  │
│  │  快捷入口:[年假政策] [报销流程] [产品FAQ]           │  │
│  └──────────────────────────────────────────────────────┘  │
└────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌────────────────────────────────────────────────────────────┐
│                     API Gateway                            │
│                  (认证 + 限流 + 日志)                       │
└────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌────────────────────────────────────────────────────────────┐
│                     应用服务                               │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐       │
│  │  问题预处理  │→ │  权限检查   │→ │  RAG 流程   │        │
│  └─────────────┘  └─────────────┘  └─────────────┘       │
│         │                │                │               │
│         ▼                ▼                ▼               │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐       │
│  │  意图识别   │  │  用户权限   │  │  检索 + 生成 │        │
│  │  - HR相关   │  │  - 部门权限 │  │  - 多路召回  │        │
│  │  - 产品相关 │  │  - 职级权限 │  │  - 重排序   │        │
│  │  - 技术相关 │  │  - 项目权限 │  │  - 答案生成 │        │
│  └─────────────┘  └─────────────┘  └─────────────┘       │
└────────────────────────────────────────────────────────────┘
                              │
           ┌──────────────────┼──────────────────┐
           ▼                  ▼                  ▼
    ┌────────────┐     ┌────────────┐     ┌────────────┐
    │    LLM     │     │  向量数据库 │     │   缓存     │
    │  (GPT-4)   │     │ (Milvus)   │     │  (Redis)   │
    └────────────┘     └────────────┘     └────────────┘
                              │
           ┌──────────────────┼──────────────────┐
           ▼                  ▼                  ▼
    ┌────────────┐     ┌────────────┐     ┌────────────┐
    │ HR 知识库  │     │ 产品知识库  │     │ 技术知识库  │
    │ - 政策文档 │     │ - 产品手册 │     │ - 技术文档 │
    │ - 流程SOP  │     │ - FAQ     │     │ - 代码文档 │
    └────────────┘     └────────────┘     └────────────┘

6.3 关键设计决策

决策选择理由
向量数据库Milvus开源、可自部署、支持权限
LLMGPT-4 + 本地模型兜底质量优先、成本可控
文档切分按章节 + 重叠HR 文档结构化强
检索策略混合检索(关键词+向量)兼顾精确和语义
权限控制基于元数据过滤在检索层面过滤
引用展示必须显示来源可追溯、可验证

7. 本章小结

通过这一章的学习,你应该掌握了:

  1. RAG 原理:检索增强生成的核心流程和设计决策
  2. RAG 架构:从基础到企业级的架构设计
  3. Agent 概念:规划、工具调用、记忆、反思
  4. Multi-Agent:多智能体协作方案设计
  5. 评估与兜底:如何保证系统质量和安全

关键心法

  • RAG 不是银弹——检索质量决定答案质量
  • Agent 不是万能——需要设计好边界和兜底
  • 系统设计要"防御性"——假设每个环节都可能出错
  • 持续迭代——上线后收集反馈,持续优化

下一章,我们将学习 AI 产品的安全合规设计。


参考资源

📚 相关资源