9.7 RAG 实践入门

本节为初学者提供 RAG 系统的快速上手指南。我们从 Opencode 的两种实现路径出发,介绍最简单的配置方法、基本问答交互,以及系统评估的核心要点。

9.7.1 Opencode 中的 RAG 实现路径

在 Opencode 环境中构建 RAG 系统,有两条可行路径。选择哪条取决于文档规模和检索精度要求。

路径一:文件级 RAG

利用 Opencode 内置的 Read 和 Grep 工具直接搜索项目目录中的文档。这是最简单的方案,无需额外配置。

适用场景:

条件 说明
文档数量 50 份以内
文档总量 500KB 以内
检索需求 关键词匹配足够,无需语义理解
配置要求 零配置,即开即用

局限性: - 只能做关键词匹配,无法理解语义 - 问「降准」找不到写着「下调存款准备金率」的段落

路径二:MCP 集成向量数据库

通过 MCP 协议连接 Qdrant 等向量数据库,实现真正的语义检索。

适用场景:

条件 说明
文档数量 不限,支持数万份文档
检索需求 需要语义理解,处理同义词、近义表达
精度要求 金融合规场景,要求高召回率
配置要求 需启动 Docker 服务,配置 MCP
提示选择建议

初学者从文件级 RAG 起步,理解 RAG 的基本逻辑。当文档超过 50 份或需要语义检索时,再迁移到向量数据库方案。两种方案的 AGENTS.md 配置逻辑相同,迁移成本很低。

9.7.2 简单实践示例

以下演示文件级 RAG 的最小可行配置。

第一步:准备知识库文档

创建项目目录结构:

my-rag-project/
├── AGENTS.md
└── knowledge_base/
    └── policies/
        ├── 2024q3_monetary_policy.md
        └── lpr_history.md

第二步:配置 AGENTS.md 检索规则

在项目根目录创建 AGENTS.md:

## 项目说明

这是一个货币政策问答系统,知识库包含央行政策文档。

## 检索规则

当用户询问货币政策、利率、准备金等问题时:

1. 使用 Grep 工具搜索 knowledge_base/policies/ 目录
2. 按关键词定位相关段落
3. 基于搜索结果回答,不得编造
4. 回答时标注来源文件名

## 知识库内容

- 2024 年 Q3 货币政策执行报告
- LPR 历史报价记录

第三步:基本问答交互

在项目目录启动 Opencode 后即可进行问答。

注记知识卡片

AGENTS.md 中的检索规则定义了模型的检索行为。规则越清晰,模型的行为越可预期。好的检索规则应明确三点:何时检索、去哪里找、怎么引用。

9.7.3 系统评估方法

RAG 系统的质量需要从检索和生成两个层面评估。

检索层评估指标

指标 含义 目标值
Recall@K Top-K 结果中包含正确文档的比例 > 80%
MRR 正确结果的平均排名倒数 > 0.6
Precision@K Top-K 结果中相关文档的比例 > 60%

生成层评估指标

指标 含义 目标值
答案准确率 回答内容与事实一致 > 85%
来源标注率 正确引用了文档来源 > 90%
幻觉率 编造了文档中没有的信息 < 5%
完整性 回答覆盖了问题的各个方面 > 80%
警告注意

幻觉率是金融 RAG 系统最需要关注的指标。一个看似合理但错误的数字(如编造的利率数据)可能导致严重的合规问题。建议对关键数字类回答进行 100% 的人工复核。

常见问题与排查方向

问题现象 可能原因 排查方向
检索不到相关文档 关键词不匹配 检查文档用词,考虑添加同义词
检索结果与问题无关 分块过大或过小 调整分块大小(800-1000 字)
回答内容不完整 检索结果数量不足 增加 Top-K 值
回答包含错误信息 检索噪声或模型幻觉 引入重排序,降低低分结果权重