智能代理RAG:为DIFC法院构建法律文档检索系统
‘智慧火花’团队参与了EORA AI 2026年智能法律RAG挑战赛,开发了两个RAG系统。目标是基于迪拜国际金融中心(DIFC)的300多份法院文件,精准回答各类问题。赛事奖金池高达3.2万美元,吸引超过300名参赛者,分为初赛(30份文档,100个问题)和决赛(300份文档,900个问题)两阶段。问题类型涵盖布尔判断、名称查询、日期、数字及自由文本,评分标准包括准确率、响应速度与令牌使用效率。
RAG中向量搜索的挑战
向量搜索在语义匹配方面表现优异(如‘合同终止’≈‘合同取消’),但在处理具体事实时力不从心,例如‘杰森诉克鲁格案的审理城市是哪里?’。随着文档规模扩大,这一问题愈发突出——小规模库中检索迅速,而大规模语料库则需复杂索引。
关键突破在于分块策略:将文本拆分为有意义的片段。简单按固定模式(如第1条、第2款)切分适用于结构严谨的文档,但对分块大小要求极高。过小的块导致向量信息模糊、缺乏上下文;过大则产生模糊、歧义的表示。
示例问题:
- 原文:‘听证会出席人员包括:参与者1、参与者2、参与者3。’
- 按列表标记分割 → 每个条目失去独立意义。
分块策略与混合检索
混合检索融合向量相似度、BM25算法与元数据。通过一个基于问答对训练的重排序模型(reranker),将前k×10的结果精炼至前k名,显著提升精度。
分块方法对比:
| 方法 | 描述 | 优势 | 劣势 |
|--------|----------|-------|--------|
| B1. 固定大小+重叠 | N个词元的块,带重叠区域 | 实现简单 | 可能破坏上下文连续性 |
| B2. 层级式 | 大块→小块递归拆分,保留大单元上下文 | 上下文完整 | 实现复杂 |
| B3. 语义驱动 | 基于机器学习按语义聚类 | 相关性高 | 资源消耗大 |
团队采用B1与B2方案,因时间限制未尝试B3。
简洁架构方案
使用Qdrant + LlamaIndex进行向量存储,Unstructured解析PDF并保留原始结构。
分块方式:按页面+重叠。检索策略:混合检索 + 正则表达式匹配 + 元数据过滤。重排序器:启用。
优点:
- 快速部署。
- 性能稳定可预测。
- 接地性直接来自页面级分块。
缺点:
- 正则表达式易引发误报或漏检。
- 对文档结构依赖性强。
- 初期接地未利用元数据(后期修复)。
结果:
- 初赛阶段:准确率从0.9降至0.81(修复后),接地率从0.5升至0.58。
- 决赛阶段:准确率0.79,接地率0.63,平均响应速度达标。
智能代理RAG:路由与工具协同
分块方式:层级式。算法流程:
- LLM分析样本文档结构;
- 识别重复模式;
- 递归合并小块至目标大小。
挑战:不同页面间模式不一致 → 生成噪声多、质量差的分块。
检索机制:代理路由将查询分发至四个工具(元数据、精确匹配、文档比对、混合检索),并根据案件编号或法律条文引用进行过滤。架构为:路由 → 工具(含重排序) → 代理生成器。
优点:
- 根据上下文精准选择工具。
- 过滤机制有效。
缺点:
- 分块不稳定。
- 产生大量噪声分块。
- 未充分测试(截止前出现API错误)。
初赛结果:准确率0.74,接地率0.6,响应较慢(2次LLM调用)。最终提交未完成。
核心经验总结
- 混合检索 + 重排序是超越语义相似性的关键保障。
- 在时间紧迫下,基于页面的分块比层级分块更简单且更稳定。
- 代理路由有价值,但需严格定义工具接口并充分测试。
- 基于元数据的接地是实现确定性响应的核心。
- 正则表达式可作为补充,但无法替代向量检索——使用时需谨慎,避免误触发。
总体评价:简洁方案表现稳定(准确率0.79,接地率0.63)。智能代理方案潜力可观,但分块与调试风险较高。实践证明:在复杂与可预测之间,应优先选择后者。
— Editorial Team
暂无评论。