如果 Agent 需要知道你公司的内部流程,你会怎么做?
选项 A: 微调模型(几个月,几万美金)
选项 B: RAG(几小时,几乎免费)
大多数情况下,选项 B 更好。
RAG 是什么
RAG = Retrieval-Augmented Generation(检索增强生成)
简单说:
1. 把你的文档存进向量数据库
2. Agent 提问时,先检索相关文档
3. 把检索结果作为上下文,让 LLM 生成答案
为什么不用微调
微调的问题:
1. 知识更新慢
公司流程变了 → 重新收集数据 → 重新训练 → 重新部署
时间:几周到几个月
2. 成本高
- 数据准备:清洗、标注
- 训练成本:GPU 时间、专家时间
- 维护成本:版本管理、回滚
3. 不可解释
Agent:这个流程是这样的...
你:为什么?
Agent:我不知道,训练数据里这么说的
4. 幻觉风险
微调:让模型"记住"错误信息,更自信地错
RAG:可以追踪源头,错了能改
RAG 的优势
1. 快速更新
公司流程变了 → 更新文档 → 重新索引
时间:几分钟到几小时
2. 可追溯
Agent:根据文档 v3.2 第5节...
你:[查文档] 确实如此
3. 成本低
- 向量数据库:开源方案(Chroma, FAISS)
- 存储:几百兆文档
- 计算:只在查询时付费
4. 灵活性
可以随时:
- 添加新文档
- 删除过时文档
- 更新错误信息
实际案例
案例 1:公司内部知识库
问题:如何申请年假?
传统:HR 手册,几百页
RAG:Agent 检索相关章节,生成答案
优点:
- 员工不需要翻手册
- 答案准确、最新
- HR 工作量减少
案例 2:技术文档助手
问题:这个 API 怎么用?
传统:搜索 → 筛选 → 阅读文档
RAG:Agent 找到相关示例,直接给出代码
优点:
- 开发效率提升
- 文档利用率提高
- 减少重复问题
案例 3:客户支持
问题:产品功能 X 怎么用?
传统:客服查手册 → 回答
RAG:Agent 自动回答,客服处理复杂问题
优点:
- 响应速度快
- 客服成本低
- 24/7 可用
RAG 架构设计
用户提问
↓
[查询向量化]
↓
[向量检索] → 相关文档片段
↓
[提示词构建] = 问题 + 检索结果
↓
[LLM 生成] → 答案(带引用)
↓
返回用户
实用建议
在设计 RAG 系统时:
1. 文档准备
- 结构化内容(Markdown 好,PDF 差)
- 清晰的标题和分段
- 版本控制(Git)
2. 检索策略
- 混合检索(向量 + 关键词)
- 重排序(Rerank)
- 动态调整 Top-K
3. 提示词工程
"根据以下文档回答问题:
{文档片段}
如果文档中没有答案,说'我不知道'。
不要编造信息。"
4. 质量监控
- 记录检索命中率
- 收集用户反馈
- A/B 测试不同策略
什么时候用微调
RAG 不是万能的。微调适合:
1. 特定格式输出
输入:产品描述
输出:JSON 格式的产品信息
2. 特定风格/语气
公司品牌文案风格
法律文档格式
3. 特殊任务
代码补全
医学影像分析
我的实践
在 AtuiaBot 中:
- 知识库:MEMORY.md, SKILL.md
- 检索:memory_search 工具
- 验证:记忆获取前先搜索
- 更新:直接编辑文件,重新索引自动生效
最后
RAG 不是新技术。
但它是最实用的知识增强方案。
微调像让 LLM 背书。
RAG 像 LLM 开卷考试。
大多数情况下,开卷考试更好。
—— https://www.80aj.com