【第三部分:第一个 Agent 应用】14. 开发一个完整的企业知识助手:从 RAG 到 Agent

简介: 本文以企业知识助手为综合实践,整合 RAG、Agentic RAG、Tool Calling、MCP、Memory、State、Structured Output、权限控制、引用溯源与 Trace/Eval 等能力,说明企业知识助手如何从“知识库问答”升级为能够连接业务系统、理解上下文并执行真实任务的 Enterprise Agent。文章重点介绍权限感知检索、Metadata、业务 Tool、长期记忆、人工确认和可观测评估等生产级能力,并结合 BaseMetas EKA 架构说明企业知识与 Agent 如何协同落地。

前面的文章,我们已经分别介绍了 Context Engineering、Function Calling、Structured Output、RAG、Agent Loop、状态机和 Memory。这些能力单独使用时并不复杂。真正进入企业应用以后,问题变成:怎样把这些能力组合成一个真正可以被员工使用的知识助手?

早期企业知识助手通常可以概括为:上传文档 → 建知识库 → 用户提问 → RAG → 大模型回答。但到了 2026 年,这已经只能算知识库问答系统。一个真正完整的企业知识助手,还应该知道:

  • 当前用户是谁,可以访问哪些知识;
  • 简单问题应该直接检索,复杂问题是否需要多轮 Agentic RAG;
  • 答案依据了哪些原文;
  • 什么时候应该查询数据库或业务系统,而不是继续搜索文档;
  • 用户过去确认过哪些偏好和决策;
  • 工具调用是否需要审批;
  • 出错发生在检索、Tool、模型还是权限环节;
  • 模型升级以后效果是否真的变好。

因此,企业知识助手真正需要建设的不是一个“聊天框”,而是一套:Knowledge + Agent + Tool + Memory + Governance组成的 AI 应用运行体系。

一、先明确:我们要开发的不是“企业版 ChatGPT”

一个常见误区,是把企业知识助手理解成:给通用大模型增加一个企业知识库。这种产品当然有价值,但能力边界仍然比较窄。例如员工问:“上海地区销售人员出差住宿标准是多少”?普通 RAG 可以很好地回答。但如果继续问:“我下周要去上海参加客户交流,根据公司制度帮我确认预算,并查询当前项目还有多少差旅预算,如果足够就生成一份出差申请”。任务已经发生变化。系统至少需要:

需求 需要的能力
查询差旅制度 RAG
查找适用地区和人员标准 Metadata / Permission Filter
查询项目剩余预算 Tool / Business API
理解用户和当前项目 Context / Memory
生成出差申请 Structured Output
提交申请 Tool Calling
高风险提交前确认 Human-in-the-Loop
记录整个执行过程 Trace

所以企业知识助手真正的演进是:Knowledge Assistant → Enterprise Agent知识仍然是核心,但已经不是全部。

二、一个完整企业知识助手应该具备哪些能力

可以把系统能力分成五层。

层次 核心能力
交互层 对话、多轮、流式输出、文件上传
Agent 层 意图判断、路由、规划、Tool Calling
Knowledge 层 RAG、Agentic RAG、Citation、Metadata
Context 层 Session、State、Memory、Workspace
Governance 层 Permission、Audit、Trace、Evaluation

这五层有一个非常重要的分工:Knowledge 层负责“知道什么”;Agent 层负责“下一步做什么”;Governance 层负责“允许做到什么”。因此,一个比较完整的架构可以设计为:

三、知识层:从“每次都 RAG”升级为按复杂度选择策略

前面的 RAG 文章已经介绍过 Hybrid Search、Rerank、Query Rewrite 和 Agentic RAG,这里不再重复原理。完整企业知识助手真正需要解决的是:什么时候用哪一种检索方式?一个简单策略可以是:

问题类型 推荐方式
简单制度查询 Traditional RAG
精确编号 / 产品编码 Keyword + Metadata
多文档综合 Agentic RAG
多条件筛选 Agentic RAG
数据计算 RAG + Tool / SQL
实时信息 Tool / Search
企业系统数据 Connector / API

也就是说,不应该设计成:

所有问题
→ Vector Search
→ LLM

而应该先进行 Routing。例如:

if query.type == "simple_knowledge":
    return rag.search(query)

if query.type == "complex_knowledge":
    return agentic_rag.run(query)

if query.type == "business_data":
    return tool_agent.run(query)

2026 年 Agentic RAG 已经开始成为正式产品能力。腾讯云 ADP 当前的 Agentic RAG 可以自主规划检索策略、反思首次结果并进行多轮检索;其知识库检索 Agent 还能组合知识检索、SQL 和计算工具处理跨文档以及数据分析问题。这意味着现代企业知识助手正在从:Retrieval Pipeline升级到:Retrieval Decision System

四、知识库本身也在发生变化:Metadata 正在变得越来越重要

传统知识库主要保存:Chunk、Embedding、DocumentId。但企业数据通常具有非常明确的业务属性:产品、部门、地区、版本、生效时间、文档类型、密级、作者、租户。这些数据应该成为 Metadata。例如:

{
   
  "department": "销售部",
  "region": "上海",
  "effectiveDate": "2026-01-01",
  "documentType": "差旅制度"
}

用户询问:“上海销售人员当前住宿标准”。系统首先就可以过滤:

department = 销售部
region = 上海
effectiveDate <= today

然后再执行语义搜索。这样往往比单纯依赖 Embedding 更准确。2026 年 9 月腾讯云 ADP 已经进一步把 Metadata 引入知识库召回,同时增加知识源定时更新能力,这也说明企业 RAG 正从单纯“向量相似度”继续走向结构化过滤 + 内容检索 + 知识生命周期管理。

五、权限过滤必须发生在检索之前

企业知识助手和公共知识问答最大的区别之一,就是:同一个问题,不同用户可能看到不同答案。例如:员工→ 可以查询普通制度;部门经理→ 可以查询部门经营资料;财务人员→ 可以查询财务制度和预算;高管→ 可以访问经营分析材料。因此不能设计成:检索整个知识库→把内容交给 LLM→最后再判断能不能展示。因为敏感内容已经进入模型 Context。正确方式应该是:User Identity+Tenant / Department / Role→Permission Filter→Allowed Knowledge Scope→Retrieval。也就是说:Permission 是 Retrieval 的前置条件,而不是答案生成后的过滤器。对于多租户系统,还必须保证:Tenant A的 Chunk 在任何情况下都不会进入:Tenant B 用户的 Candidate Recall。这是企业知识助手必须坚持的安全边界。


六、引用不是 UI 装饰,而是答案的数据结构

一个企业知识助手回答:“上海住宿标准为 600 元 / 晚” 还不够。真正可靠的答案应该包含:答案+Evidence+Citation。例如:

上海地区普通员工住宿标准:
600 元 / 晚。

依据:
《2026 年差旅管理办法》
第三章第 12 条
第 8 页

因此 Retriever 返回的不能只是:content 还应该保留:documentId、documentName、version、page、section、chunkId、score。最终 Answer 可以设计为:

record KnowledgeAnswer(
    String answer,
    List<Citation> citations,
    double confidence
) {
   }

这实际上把前面 Structured Output 的思想重新带回来了:企业知识助手的最终输出不是一段字符串,而是“答案 + 证据”的结构化结果。

七、Tool:当知识库不能回答时,不要继续搜索知识库

这是知识助手升级为 Agent 最重要的一步。例如用户问:“我的报销申请现在审批到哪里了”?这个答案根本不应该来自 RAG。它来自:审批系统 API。再例如:“项目还剩多少预算”?应该查询:Project / Finance System。因此 Knowledge Assistant 至少需要:Knowledge Tool、Business Tool
、Search Tool、Calculation Tool,模型根据问题选择能力。例如:

查询差旅制度
→ search_knowledge

查询剩余预算
→ get_project_budget

提交出差申请
→ create_travel_request

OpenAI 当前 Responses API 已经把 file_search、Function Calling、Web Search、远程 MCP 等工具统一到同一工具体系中;其中 file_search 本身支持语义和关键词检索,并由平台托管执行。DeepSeek 当前同样支持 Tool Calls,并提供 strict 模式来约束模型严格按照 Function JSON Schema 生成参数。这说明 Tool Calling 已经逐渐成为现代 Agent 的基础设施,而不再是某个特定框架的附加能力。

八、MCP 正在成为企业知识助手连接外部能力的重要接口层

如果每接一个系统都自己设计:CRM Adapter、OA Adapter、ERP Adapter、Git Adapter、Database Adapter,企业 Agent 很快会进入大量重复集成工作。MCP 的价值,就是逐渐把:Agent ↔ Tool / Data之间的连接方式标准化。

当前 OpenAI 的工具体系已经支持 Remote MCP,并且可以对 MCP Tool 设置自动执行或显式审批;私有网络中的 MCP Server 也可以通过 Secure MCP Tunnel 接入,而不必把内部服务直接暴露在公网。

2026 年 7 月发布的 MCP 2026-07-28 规范又进一步增加了:

  1. Stateless Protocol Core;
  2. Multi Round-Trip Requests;
  3. Cacheable List Result;
  4. Extensions;
  5. Authorization Hardening。

这使 MCP 更接近真正适合企业网关、负载均衡和权限体系的 Agent 基础协议。因此企业知识助手中的 Tool Layer 可以逐渐演进为:

Agent Runtime
      │
      ▼
MCP / Tool Gateway
      │
 ┌────┼────────┐
 ▼    ▼        ▼
OA   CRM      ERP

而不是在 Prompt 中硬编码几十个业务接口。

九、Memory:让助手认识用户,但不要污染企业知识

上一篇已经专门讨论过 Memory,这里只关注它在企业知识助手中的位置。企业知识助手通常至少会使用两种 Memory:

Session Memory

解决:“我们刚才聊到哪里了?”

User Long-term Memory

解决:“这个用户长期有什么稳定偏好?”

例如:用户习惯中文回答、用户是研发人员、常用项目为 Project-A。但需要特别注意:用户 Memory 与企业 Knowledge 必须分开。用户说:“我记得公司报销标准是 800”。不能因为这句话被长期记忆,就污染正式企业知识库。正确优先级应该是:Authoritative Knowledge>Business System Data>User Memory。Memory 可以帮助 Agent:理解用户,但不能替代企业事实来源。

十、把这些能力组合起来:一次完整请求到底怎样执行

来看一个完整例子。用户说:“我下周要去上海参加客户交流,根据公司制度看看我的住宿预算,再查一下 Project-A 还有多少差旅预算,如果够的话帮我生成出差申请”。系统首先识别:用户身份
、项目 = Project-A、目标 = 出差申请。接下来并不是简单执行一次 RAG。

第一步:查询制度

通过 Permission-aware RAG:差旅制度+地区 = 上海+用户职级获得住宿标准,并保存 Citation。

第二步:查询业务数据

发现“剩余项目预算”不属于知识库,于是调用:get_project_budget("Project-A")获得实时预算。

第三步:进行计算与判断

Agent 综合住宿标准+出差天数+剩余预算计算预算是否满足要求。

第四步:生成结构化申请

利用 Structured Output 生成:

{
   
  "project": "Project-A",
  "city": "上海",
  "hotelBudget": 1800,
  "reason": "客户交流"
}

第五步:人工确认

因为:create_travel_request会改变真实业务状态,因此进入 Human-in-the-Loop:是否提交?用户确认后,再真正调用业务系统。这一个场景已经把前面几篇内容全部连接起来:

能力 在本场景中的作用
Context 当前用户和目标
RAG 查询制度
Citation 给出制度依据
Memory 用户和项目偏好
Tool Calling 查询预算
Structured Output 生成申请数据
State 保存当前执行进度
Human Approval 提交前确认

这才是“完整企业知识助手”的真正含义。

十一、代码层不需要写一个巨大的 KnowledgeAssistant

从工程实现看,不建议把所有逻辑都塞进一个KnowledgeAssistantService。更合理的是拆成稳定能力。例如:

interface KnowledgeRetriever {
   
    RetrievalResult search(
        Query query,
        UserContext user
    );
}

interface MemoryService {
   
    List<Memory> recall(
        UserContext user,
        String query
    );
}

interface ToolExecutor {
   
    ToolResult execute(
        ToolCall call,
        UserContext user
    );
}

Agent Runtime 只负责编排:

var context =
    contextAssembler.build(
        user,
        session,
        memoryService,
        currentTask
    );

var result =
    agent.run(
        context,
        knowledgeRetriever,
        toolExecutor
    );

关键不是这几行 API,而是避免形成:

Controller
→ Prompt
→ LLM
→ String

这种难以扩展的结构。企业知识助手应该拥有独立的:Knowledge、Memory、Tool、Session、Permission、Trace服务边界。

十二、流式输出不仅要流 Token,还要流“执行状态”

普通 Chatbot 的 Streaming:

Token
Token
Token

就够了。

Agent 型知识助手则更适合向前端传递:

正在理解问题
正在检索知识库
找到 12 条候选资料
正在重新排序
正在查询业务系统
等待人工确认
正在生成最终答案

也就是说 Streaming 的对象正在从:文本流扩展成:Agent Event Stream。例如前端可以接收:

{
   
  "type": "retrieval_started"
}

或者:

{
   
  "type": "tool_completed",
  "tool": "get_project_budget"
}

这样用户看到的不是一个长时间旋转的 Loading,而是 Agent 当前实际在做什么。

十三、可观测性:企业知识助手必须能够回答“为什么这样回答”

普通日志只记录:

Question
Answer

远远不够。

完整 Trace 至少应该包含:

Original Query
Rewritten Query

Retrieved Documents
Retrieval Score
Rerank Result

Memory Recall

Model Calls

Tool Calls
Tool Result

Permission Decision

Citation

Token
Latency
Cost

Final Answer

OpenAI 当前 Agents SDK 的 Trace 可以记录模型调用、Tool Call、Handoff 和 Guardrail;官方也建议先通过 Trace 调试 Agent 行为,再进入系统化 Eval。

当用户说:“这个答案为什么错了”?系统才能判断到底是:

知识没有入库?
权限过滤错了?
Query Rewrite 错了?
Retriever 没召回?
Rerank 排错?
Tool 返回错误?
还是模型推理错了?

这也是 Agent 可观测性与普通 API 日志最大的区别。

十四、Evaluation:知识助手上线以后不能只看“用户觉得还行”

传统软件测试往往强调:Input → Expected Output,但 Agent 具有不确定性,不能只靠几个人工 Demo 验证。至少应该建立一套企业 Golden Dataset:

问题
期望答案
允许访问的知识
必须引用的来源
不允许访问的内容
需要调用的 Tool
期望行为

评估维度可以包括:

维度 示例
Retrieval Recall 正确文档是否召回
Citation Accuracy 引用是否真的支持答案
Answer Correctness 最终回答是否正确
Permission 是否发生越权检索
Tool Selection 是否选择正确 Tool
Task Completion 是否真正完成用户目标
Cost / Latency 代价是否可接受

现代 Agent Eval 也正在从只评价最终答案,转向评价完整执行轨迹。OpenAI 当前的 Agent Evaluation 就支持基于 Trace 对模型调用、Tool Call、Guardrail 和 Handoff 等流程行为进行评分。因此:企业知识助手的质量不是一个 Prompt 的质量,而是一整条执行链的质量。

十五、安全治理:越强的知识助手,越需要确定性的边界

当知识助手只回答文档问题时,风险主要是:答错。当它开始拥有 Tool 后,风险会变成:做错。

因此 Tool 应该分级。

Tool 风险
search_knowledge 低
query_database 中
create_document 中
send_email 高
submit_approval 高
delete_data 极高

可以建立:Read Tool→ 自动执行;Write Tool→ 权限校验;High-risk Tool→ 权限 + Human Approval。同时必须防止:Prompt Injection;越权检索;Tool 参数注入;Memory Pollution;敏感数据进入 Trace;MCP Server 获得过宽权限。

最新 MCP 规范也持续强化 Authorization,2026-07-28 版本进一步加入了授权硬化和正式扩展体系;Enterprise-Managed Authorization 也已经稳定,用于集中管理企业 MCP 授权。因此企业知识助手真正需要的是:Agent 自主决策 + 最小权限 + 确定性安全边界。

十六、2026 年的企业知识助手正在发生哪些变化

把最近的发展放在一起,可以看到几个非常清晰的趋势。

第一,RAG 正在 Agentic 化

简单问题继续使用传统 RAG;复杂问题开始让 Agent 自主规划、多轮检索和交叉验证。

第二,知识库正在结构化

Metadata、权限、版本和知识更新时间越来越重要,不再只关注 Embedding。腾讯云 ADP 在 2026 年 9 月已经新增知识库 Metadata 与知识源定时更新。

第三,Tool 连接正在标准化

Function Calling 仍然重要,但 MCP 正逐渐成为连接企业数据与业务系统的重要标准接口;2026 年 MCP 又继续强化了可扩展性、无状态部署和授权能力。

第四,Memory 开始成为独立服务

Memory 不再等于 History,而是拥有 Capture、Recall、Update、Forget 和 Scope。

第五,质量治理从 Answer 转向 Trace

不只评价模型最后说了什么,还需要评价:它为什么检索这些知识、为什么调用这个 Tool,以及整个任务是否正确完成。

这些变化共同说明:企业知识助手正在从“知识库前面的聊天界面”,演变成企业 Agent 的统一知识与任务入口。

十七、不要一开始就把所有能力全部打开

即使拥有这些技术,也不意味着第一个版本就应该同时实现:Agentic RAG、GraphRAG、Memory、Multi-Agent、MCP、Workflow、几十个 Tool。更加合理的演进路径是:

第一阶段:可靠知识问答

重点完成:Permission-aware RAG + Citation + Trace

第二阶段:加入实时业务能力

增加:Tool Calling + Business API + Human Approval

第三阶段:提升连续性

增加:Session + Memory + State

第四阶段:处理复杂知识任务

增加:Agentic RAG + 多轮检索 + 数据计算

第五阶段:平台化治理

再建设:MCP Gateway + Eval + Cost + Audit + Tool Governance

这仍然符合本系列一直强调的原则:不要为了使用 Agent 而过度设计。先让系统可靠解决真实问题,再逐步增加自主性。

十八、小结

到这一篇,我们终于把前面介绍的能力真正组合在一起。一个完整的企业知识助手已经不再是:Knowledge Base+LLM而更接近:Enterprise Knowledge Agent = Knowledge + Context + Memory + Tool + State + Permission + Evaluation。其中:

  • RAG 提供企业知识;
  • Agentic RAG 解决复杂知识检索;
  • Tool / MCP 连接真实业务系统;
  • Memory 提供跨任务连续性;
  • State 保存任务执行状态;
  • Structured Output 让结果进入程序;
  • Permission 限定可以看到和操作什么;
  • Citation 让答案有据可查;
  • Trace / Eval 让系统能够持续改进。

这也是为什么真正的企业知识助手不能只关注“回答是否像人”。更加重要的是:答案是否有证据、数据是否有权限、工具是否调用正确、操作是否可审计,以及整个任务是否真正完成。如果把第 6~14 篇连起来看,会得到一条非常清晰的技术路线:Context → Tool → Structured Output → RAG → Agent Loop → Framework → State → Memory → Enterprise Knowledge Agent。到这里,第三部分“第一个 Agent 应用”也基本完成了从基础组件到完整应用的闭环。

上一篇回顾:

https://developer.aliyun.com/article/1764067?spm=a2c6h.13148508.setting.16.30714f0eo4sTzc

下一篇将进入第四部分Agentic 智能体设计模式:

为什么 Agent 也需要设计模式

因为当一个 Agent 已经能够检索知识、调用工具、维护状态并完成真实任务以后,接下来的问题就不再是能不能做出来?而是:面对越来越复杂的任务,应该怎样组织 Agent 的推理、路由、并行、反思、规划和协作?这也将从“Agent 应用开发”正式进入“Agentic 智能体设计模式”。

相关文章
|
12天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
7950 15
|
11天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
1753 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
11天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
1800 12
|
9天前
|
人工智能 编解码 并行计算
MiniMax-H3 一键整合包技术文档:8G 显存运行 AI 漫剧制作 —— 角色替换 / 动作迁移 / 文图生视频部署与调参指南
MiniMax H3 是 MiniMax 开源的全模态视频生成模型,支持文/图/音/视多条件输入,输出最高2K、15秒带双声道音频视频。本文档详述其Int8量化版在8GB显存下的本地一键部署、三段式工作流(EDIT/REPLACE/CONTINUE)、参数调优及常见问题排查。(239字)
|
25天前
|
人工智能 自然语言处理 安全
阿里云千问办公 QwenWork详细介绍:产品核心能力、典型场景、价格及常见问题解答
千问办公是阿里云推出的一站式AI办公平台,主打"不止于对话,更注重交付",依托通义千问旗舰大模型,用户一句话即可完成数据分析、PPT生成、视频剪辑等复杂任务,直接输出可用成果。产品深度打通钉钉生态与企业OA,覆盖桌面端、网页端,提供企业标准版198元/人/月等多档订阅方案,新用户注册即赠2000积分,适配工程师、HR、财务等多职业办公场景,成为能动手干活的"全能AI同事"。
3800 10
|
19天前
|
缓存 IDE Java
【保姆级】Android Studio下载、安装和汉化教程(2026最新)
Android Studio 是 Google 官方推出的免费 Android 应用开发集成环境,基于 IntelliJ IDEA,内置模拟器、调试器、性能分析及 Compose 界面工具,功能全面,文档丰富,是安卓开发首选工具。(239字)
2029 1