整体架构

我们先给出整体的服务架构图,简单来说我们的智能OnCall系统有三大Agent:知识库Agent,对话Agent、运维Agent。

这个的架构图可能一时半会还不能完全看懂,没关系,先有个印象就行,后续章节会进行抽丝剥茧的讲解,后面的实战章节也会层层递进更详细的分析。

📷 [图片 token=QKQEbFTjyo4JH5xQLYCcCvW6nUg(未能下载,见飞书原文)]

层次结构

一个服务通常可以分为几层来看,对于智能OnCall Agent系统而言,同样如此,系统可以分为如下几层:

  1. 接入层:对外提供api接口

  2. 业务层:利用服务层的组件进行编排,负责向接入层提供编排完成可使用的Agent

  3. 服务层:核心组件实现层,如加载文件,切分文件,提供工具等。负责向业务层提供原子能力,支撑Agent的编排

  4. 存储层:文档信息我们存储到向量数据库中

编排流程

下面介绍最核心的三个Agent的编排流程,这三个Agent贯穿整个项目。

注意:初览下面的流程图,或许会觉其逻辑脉络稍显繁复——不必急于一时。待你通读完《架构设计》篇章,再折返审视,其内在关联便会豁然开朗。

注意:有些术语看不懂没关系,后续篇幅会详细介绍,先有个概念即可!!!

知识库RAG

整体流程分为两部分:

提问前链路(数据准备)

  1. 分片:将原始文档(如业务告警处理手册)切割为多个语义完整的片段。

  2. 索引

  • 用Embedding模型将每个片段转为向量。
  • 将片段文本和向量存入向量数据库。
  1. 完成后,知识库即构建完毕,等待用户提问。

提问后链路(回答生成)

  1. 召回:将用户问题向量化,去向量数据库里面进行相似度匹配,查询最相似的10个片段(快但准度低)。

  2. 重排:使用专门计算文本对相似度的模型,逐对计算用户问题与每个召回片段的语义相关性(慢但准度高)。

  3. 生成:选出最相似的3个片段+用户问题,交给大模型,让大模型根据提供的3个片段进行回答。

📷 [图片 token=FxcdbnrjboDxkExZLJlc0FHInCh(未能下载,见飞书原文)]

对话Agent

对话Agent的核心目标是结合外部知识(RAG召回)与工具调用能力(ReAct模式),解决复杂问题。

整体流程可概括为:

  1. 从向量数据库中获取与用户问题相关的上下文信息

  2. 构建带上下文(召回的内容)的system prompt

  3. 使用ReAct模式进行多轮交互

  4. 最终输出答案

举一个技术场景的例子,问题:地球和火星的质量加起来是多少?(AI 不知道具体数值,需要调用工具)

  • 第1次循环:思考->行动->观察

    • 思考:我需要地球和火星的质量,得先查地球质量。
    • 行动:调用查星球质量工具,输入地球
    • 观察:工具返回地球质量≈5.97×10²⁴ kg
  • 第2次循环:再思考->行动->观察

    • 思考:有了地球质量,还缺火星的,继续查火星。
    • 行动:调用查星球质量工具,输入火星
    • 观察:工具返回火星质量≈6.42×10²³ kg
  • 第3次循环:再思考->行动->观察

    • 思考:现在有两个数了,需要相加,得用计算器。
    • 行动:调用计算器工具,输入5.97e24 + 6.42e23
    • 观察:工具返回≈6.61×10²⁴ kg
  • 结束循环:结果够了,可以回答用户了,地球和火星的质量加起来是6.61×10²⁴ kg。

flowchart TD
    Start([开始]) --> Input[/接收用户问题  
地球和火星质量总和?/]
    Input --> Reason{思考}

    Reason -->|1. 制定计划: 需地球质量| R1[思考  
需要地球质量,先查询地球]
    R1 --> A1[行动  
调用工具查询地球质量]
    A1 --> O1[观察  
返回: 5.97×10²⁴ kg]
    O1 --> Reason

    Reason -->|2. 继续执行: 需火星质量| R2[思考  
已有地球质量,还需火星质量]
    R2 --> A2[行动  
调用工具查询火星质量]
    A2 --> O2[观察  
返回: 6.42×10²³ kg]
    O2 --> Reason

    Reason -->|3. 继续执行: 需计算总和| R3[思考  
数据齐全,需要计算总和]
    R3 --> A3[行动  
调用计算器工具]
    A3 --> O3[观察  
返回总和: 6.61×10²⁴ kg]
    O3 --> Reason

    Reason -->|4. 拥有足够信息| Answer[生成最终答案]
    Answer --> End([结束])

ReAct = Reasoning(推理)+ Acting(行动),核心是让 AI 像人一样 边想边做、边做边调整,通过 思考->行动->观察->再思考的闭环 解决问题。

ReAct 就是让 AI 模仿这个过程:遇到问题不直接瞎猜答案,而是先想该查什么,再调用工具(比如计算器、数据库、搜索引擎),拿到结果后判断够不够,不够就继续查,直到能给出最终答案。

📷 [图片 token=Qa7WbrNlpoYHMxxyiGYcFFnsnNd(未能下载,见飞书原文)]

运维Agent

运维Agent的核心目标是将运维人员的告警处理经验转化为自动化流程,通过计划生成->工具执行->动态调整的闭环,替代人工完成重复性告警排查工作。

整体架构可概括为:

  1. 从向量数据库中获取与告警相关的上下文信息

  2. 构建带上下文(召回的内容和工具信息)的system prompt

  3. 使用Plan-Execute-Replan模式进行多轮交互

  4. Planner生成结构化排查计划

  5. Executor调用监控/日志工具执行步骤

  6. Replanner评估结果,决定继续执行/调整计划/输出结论

  7. 最终输出答案

用大白话举个例子:想象你要装修一套新房,完全没经验的话,你会怎么避免手忙脚乱?

  • Plan(规划):先找设计师出详细方案,拆改哪里、水电怎么走、用什么材料、分几个阶段施工,形成清晰的步骤清单。

  • Execute(执行):施工队按计划开工,先拆旧、再布水电,一步一步推进当前阶段的任务。

  • Replan(重规划):施工中发现原计划的承重墙不能拆,则设计师重新调整布局(比如把书房门改到另一侧),更新计划后继续施工,直到最终完工。

📷 [图片 token=F387bGybOoq8gxx16aicmwqlnBr(未能下载,见飞书原文)]

Plan-Execute-Replan 就是让 Agent 模仿这个过程:遇到复杂任务不盲目动手,而是先设计方案,再按图施工,遇到问题时灵活调整方案,确保最终达成目标。

📷 [图片 token=LQLAbT2aIodUbJxqJEdcgtqVnJd(未能下载,见飞书原文)]