基于 RAG 技术的内部 Agent 设计与实现方案

在企业内部运营场景中,员工常面临业务咨询需求分散、解答效率低等问题。为提升内部服务响应速度与准确性,本文提出一种基于检索增强生成(RAG)技术的内部 Agent 方案,通过标准化文档处理、热点问题优先匹配、动态数据库优化等设计,实现 “高效匹配 + 精准回答” 的闭环,为企业内部业务咨询提供可靠解决方案。结合实际文档处理需求,新增 “不同格式文档差异化分割” 与 “片段标注文档名称” 机制,进一步提升检索准确性与片段可追溯性。

一、方案核心设计思路

内部 Agent 的核心诉求是 “适配固定业务场景、降低检索成本、提升回答准确率”,因此方案围绕 “热点问题优先 + RAG 精准增强” 构建,整体流程可概括为四步:

  1. 用户问题预处理:针对员工提问的随机性(口语化、信息省略等),通过 Prompt 工程将原始问题完善为标准化表述,避免因提问不规范导致后续检索偏差;

  2. 热点问题检索匹配:预先构建存储内部高频咨询问题的向量数据库,将预处理后的用户问题与库中问题进行相似度检索,优先匹配高相似度热点问题,减少 RAG 检索开销;

  3. 动态数据库优化:数据库记录每个热点问题的被调用次数,未匹配成功的用户问题将被纳入库中,实现热点问题库的 “自迭代”;

  4. RAG 增强与大模型处理:若匹配到热点问题,结合 RAG 检索文档片段验证并补充细节;若未匹配,则直接用用户问题触发 RAG 检索(新增 “差异化文档分割 + 片段标注文档名” 机制),筛选最优片段后交由大模型生成最终回答。

该思路既利用了内部业务问题的 “固定性” 提升响应效率,又通过 RAG 技术保障回答的准确性,同时借助动态优化与文档处理升级,让系统更贴合实际业务文档场景。

二、方案核心模块实现细节

(一)用户问题预处理:解决 “提问随机性” 痛点

员工提问常存在 “口语化(如‘加班怎么报’)、信息不全(如‘怎么领设备’)” 等问题,预处理环节需通过 Prompt 工程实现 “标准化 + 无歧义”,避免后续检索偏差。

1. 预处理 Prompt 设计

根据内部业务场景差异,设计两类核心 Prompt 模板,兼顾 “场景明确性” 与 “术语准确性”:

  • 场景化预处理模板(适用于业务分类清晰的场景,如财务报销、IT 设备申领):

    已知当前业务场景为【{内部业务场景,如:研发人员IT设备申领}】,请完成以下操作:1. 将用户问题“{用户原始问题}”转化为书面化表述,补充省略的业务主体(如“领电脑”→“研发人员申领笔记本电脑”);2. 保留原始问题中的核心术语(如“OA审批”“设备台账”),不新增无关信息;3. 最终输出1条完整、无歧义的标准化问题。

  • 关键词导向模板(适用于业务场景较泛,但有固定术语的场景):

    第一步:从用户问题“{用户原始问题}”中提取核心业务关键词(如“考勤”“加班时长”“差旅报销”);第二步:基于关键词补全问题,确保表述完整(例:原始问题“请假流程”→补全为“员工申请带薪年假的流程是什么”)。最终仅输出补全后的标准化问题。

2. 预处理校验机制

为避免预处理偏离业务实际,新增 “术语校验” 环节:维护一份内部业务核心术语词表(如 “OA 系统”“项目报销单”“设备申领单”),预处理后检查标准化问题是否包含至少 1 个核心术语,若未包含则重新触发预处理,确保问题方向不跑偏。

(二)热点问题检索匹配:效率与精准的平衡

该模块是方案的 “效率核心”,需同时解决 “相似度匹配准确性” 与 “热点库动态优化” 两大问题,具体设计如下:

1. 向量数据库设计:多字段支撑检索与维护

向量数据库需突破 “仅存问题 + 调用次数” 的简单设计,补充业务属性字段,以提升检索效率与可维护性。以 PostgreSQL+pgvector(轻量型向量存储方案)为例,数据库字段设计如下:

字段名称 数据类型 核心作用
question_id UUID(主键) 唯一标识每条问题,用于后续调用次数更新、答案关联
standard_question 文本 标准化后的热点问题(如 “员工如何申请加班时长审批”)
question_vector vector(768) 标准化问题的向量表示(需与用户问题预处理使用同一 Embedding 模型,如 Sentence-BERT-zh)
business_tags 文本数组 业务分类标签(如 [“HR 管理”,“加班审批”,“研发部”]),用于检索时缩小范围
call_count 整数 问题被成功匹配的调用次数(初始为 0,匹配成功后自动 + 1)
update_time 时间戳 最后一次调用或更新时间,用于后续冷点问题清理
answer_summary 文本(可选) 热点问题的标准答案摘要,匹配成功后可直接复用,减少 RAG 检索步骤
2. 双阶段检索策略:提升匹配精准度

单纯依赖 “相似度阈值” 易出现 “误匹配” 或 “漏匹配”,因此采用 “标签过滤 + 相似度排序” 双阶段检索:

  • 第一阶段:标签过滤:从预处理后的用户问题中提取业务标签(如从 “研发人员领显示器” 提取 [“IT 设备”,“研发部”]),在向量库中筛选出 “business_tags 交集≥1” 的问题,将检索范围从全库缩小至特定业务领域,提升检索速度;

  • 第二阶段:相似度排序:对过滤后的问题,计算 “用户预处理问题向量” 与 “热点问题向量” 的余弦相似度,取 Top3 结果,若 Top1 相似度≥预设阈值(如 0.8),则判定为匹配成功,否则触发后续 RAG 流程。

3. 阈值动态调整:适配不同业务场景

固定阈值无法满足所有业务需求,需按业务属性差异化设定:

  • 高固定性业务(如财务报销、考勤规则):阈值设为 0.85-0.9,避免因表述差异导致误匹配;

  • 高灵活性业务(如项目协作、跨部门沟通):阈值设为 0.7-0.8,兼容更多表述方式。

    初期可通过 100 条人工标注的历史问题测试,确定各业务场景的最优阈值。

(三)RAG 检索增强:新增 “差异化分割 + 文档名标注”,保障回答准确性

当未匹配到热点问题,或需补充热点问题细节时,通过 RAG 技术检索内部文档片段。针对内部文档格式多样(PDF、Word、Excel、Markdown 等)的特点,新增 “不同格式文档差异化分割” 机制,并在每个片段最上方标注文档名称,实现 “精准分割 + 清晰溯源”,核心设计如下:

1. 文档差异化分割策略:按格式定制分割逻辑

内部文档格式差异会导致信息结构不同(如 PDF 多为规章制度、Excel 多为数据表格、Word 多为流程说明),需针对性设计分割规则,避免统一分割导致的信息断裂或冗余。具体分割策略如下:

文档格式 核心特点 差异化分割规则 分割工具推荐
PDF 多章节、含页码、排版固定 1. 优先按 “章节标题” 分割(如 “第 3 章 设备申领流程” 为分割节点);2. 无明确章节时,按 “页码 + 内容逻辑” 分割(每 2-3 页为一个单元,确保包含完整段落);3. 若含表格,将 “表格标题 + 完整表格” 作为独立片段(避免表格拆分) LangChain-PDFLoader、PyPDF2
Word 含标题层级(如一级标题、二级标题)、段落灵活 1. 按 “标题层级” 分割(以一级 / 二级标题为父节点,下属段落为子片段,如 “3.1 申领条件” 下的所有段落归为一个片段);2. 若为纯文本文档(无标题),按 “段落逻辑” 分割(每 3-5 个连贯段落为一个片段,确保主题统一) LangChain-Docx2txtLoader
Excel 多工作表、以数据 / 表格为主 1. 按 “工作表名称 + 表格主题” 分割(如 “工作表:员工考勤表” 下,将 “考勤规则说明” 与 “月度考勤数据” 分为两个片段);2. 每个片段需包含 “表头 + 关键数据行 + 数据说明”(如 “请假类型:事假 / 病假;请假时长限制:每月≤3 天”) LangChain-PandasExcelLoader
Markdown 含语法标记(# 标题、- 列表)、结构清晰 1. 严格按 “标题层级(#、##、###)” 分割(每个标题下的内容为独立片段);2. 代码块 / 表格单独作为片段,并标注 “代码块”“表格” 类型(如 “【类型:表格】员工加班审批流程”) LangChain-UnstructuredLoader
2. 文档片段标准化格式:顶部标注文档名称,强化可追溯性

在原切片格式基础上,将 “文档名称” 置于片段最顶部,同时保留来源、标签、内容等核心信息,确保检索后能快速定位片段所属文档,减少歧义。优化后的切片格式示例:

【文档名称】:企业IT设备管理规范V2.0

【文档来源】:内部规章制度库(2024年5月更新)

【章节/工作表】:第3章 设备申领流程(PDF格式)

【业务标签】:\["IT设备","员工申领","全部门适用"]

【片段内容】:员工申领笔记本电脑需满足以下条件:1. 入职满1个月且已完成劳动合同签订;2. 由部门负责人在OA系统提交“IT设备申领单”,备注“项目用途”;3. 审批通过后,IT部门在3个工作日内完成设备发放与台账登记。

格式设计说明

  • 文档名称需包含 “核心主题 + 版本号”(如 “员工考勤管理办法 V3.1”),避免同主题不同版本文档混淆;

  • 文档来源补充更新时间,与后续 “时效性筛选” 逻辑联动;

  • 章节 / 工作表字段标注文档格式(如 “(Excel - 工作表:报销标准)”),便于追溯分割逻辑是否适配格式特点。

3. 片段筛选规则:新增 “文档格式适配性” 维度

在原有 “相关性 + 时效性 + 业务匹配度” 排序基础上,新增 “文档格式适配性” 维度,确保筛选的片段与问题类型匹配(如数据类问题优先选 Excel 片段,流程类问题优先选 Word/PDF 片段):

筛选维度 排序规则
相关性 基于片段与用户问题的向量相似度排序(核心优先级)
文档格式适配性 1. 数据类问题(如 “2024 年差旅费标准”):优先选 Excel 片段;2. 流程类问题(如 “请假步骤”):优先选 Word/PDF 片段;3. 规则类问题(如 “加班审批条件”):优先选 Markdown/PDF 片段
时效性 优先选择更新时间较近的片段(如 2024 年文档优于 2022 年文档)
业务匹配度 片段标签与用户问题标签交集越多,优先级越高

若片段间存在信息冲突,仍以 “时效性优先” 为原则,同时结合文档格式适配性二次验证(如 Excel 数据片段的报销标准,优先级高于 PDF 中的旧标准描述)。

(四)大模型处理:输出标准化与合规性

大模型需基于 “热点问题 + RAG 片段” 生成回答,核心是 “信息准确、格式统一、来源可溯”,因此设计差异化 Prompt 模板适配不同场景,同时强化 “文档名称” 的引用要求:

1. 场景一:匹配到热点问题
任务:为内部员工提供业务咨询回答,需结合热点问题逻辑与文档片段细节,确保准确合规,且明确标注片段所属文档名称。

1. 用户原始问题:{用户原始问题}

2. 匹配热点问题:{库中standard_question}

3. RAG检索片段(按优先级排序):
   - 片段1:【文档名称】《XXX》,【来源】《XXX》,【内容】XXX
   - 片段2:【文档名称】《XXX》,【来源】《XXX》,【内容】XXX

回答要求:
1. 优先以热点问题逻辑为框架,用RAG片段补充具体细节(如流程步骤、时间节点);
2. 引用片段时必须标注“文档名称”(如“根据《企业IT设备管理规范V2.0》中的说明”);
3. 若片段与热点问题冲突,以最新文档片段为准,并说明“当前以《XXX(文档名称)》(更新时间)的内容为准”;
4. 仅使用内部文档信息,不编造外部内容。
2. 场景二:未匹配到热点问题
任务:基于内部文档片段,为员工解答问题,需保证回答有依据、无歧义,且清晰标注片段所属文档名称。

1. 标准化用户问题:{预处理后的问题}

2. RAG检索片段(按优先级排序):
   - 片段1:【文档名称】《XXX》,【来源】《XXX》(更新时间:XXXX),【内容】XXX
   - 片段2:【文档名称】《XXX》,【来源】《XXX》(更新时间:XXXX),【内容】XXX

回答要求:
1. 整合片段信息,按“问题-结论-依据(含文档名称)”结构输出(如“结论:XXX。依据:《企业IT设备管理规范V2.0》中提到XXX”);
2. 每个结论必须对应标注“文档名称+来源章节/工作表”;
3. 若片段信息不足,需说明“当前《XXX(文档名称)》等内部文档暂未覆盖该问题,建议联系{对应部门,如IT部}咨询”,不虚构答案;
4. 避免包含内部敏感信息(如薪酬数据、未公开项目信息)。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐