体系结构

该系统被设计为一个分层多智能体生态系统。它使用一个中央主管 (Liz)来协调多个专门的AI代理的请求,每个代理连接到一个或多个MCP(模型上下文协议)服务器。

组件

主管 (Liz)

Liz是系统的入口点和用户体验的协调者。Liz并不是直接执行每个技术任务,而是充当一个智能路由器

  • 分析用户的提示以确定所需的领域(例如,安全、配置或车队)。

  • 咨询`AIAgentConfig`元数据以选择最合适的专门代理来完成任务。

  • 跟踪用户在Rancher UI中的位置,并确保相关的集群、名称空间和资源元数据传递给下游代理,以提供“上下文感知”的响应。

专门的AI代理(“团队”)

专门代理是系统的主力军。每个代理都是其特定领域智能的协调者。它使用大语言模型(LLM)作为推理引擎,而代理本身提供结构、协调和安全执行操作。

  • LLM(推理引擎)

    • 解释以自然语言表达的用户输入。

    • 执行推理:将复杂请求分解为更小的步骤。

    • 决定接下来应该发生什么(继续推理与采取行动)。

    • 将工具的输出合成成清晰、易于人类理解的响应。

  • 代理(协调者)

    • 用ReAct(推理+行动)模式包装LLM。

    • 决定何时让 LLM 继续推理或何时根据指示采取行动。

    • 根据 LLM 的指示调用外部工具(通过 MCP 服务器)。

    • 通过将用户的 Rancher 词元传递给 MCP 服务器进行身份验证和授权,确保安全的交互。

MCP 服务器

MCP 服务器充当 ReAct Agent 与 Rancher 和 Kubernetes API 之间的安全受控网关。其功能包括:

  • 暴露工具:它提供了一组定义良好、安全的工具(API 端点),供 ReAct Agent 调用。这些工具抽象了直接与 Rancher/Kubernetes API 交互的复杂性。

  • 与 Rancher 的交互:它将代理的工具调用转换为适当的 API 请求,发送到 Rancher 管理服务器,根据需要检索或修改资源。

UI 扩展

UI 扩展提供了 Rancher 仪表板中的用户聊天界面。它旨在无缝融入 Rancher 体验,并负责:

  • 用户输入:它捕获用户查询并将其发送给 ReAct Agent。

  • 显示响应:它接收来自 ReAct Agent 的响应,并以聊天格式呈现。

工作原理(流程)

  1. 用户请求:用户通过 UI 扩展提交查询。

  2. 主管路由: Liz 确定意图并将查询及 UI 上下文路由到专门的代理(例如,车队代理)。

  3. LLM 推理:专门代理的 LLM 解释请求,推理问题,并提出行动计划。

  4. 代理执行:如果计划需要外部操作,代理将使用用户的安全词元调用适当的 MCP 服务器工具。

  5. 响应制定:LLM 获取工具输出并制作出连贯、易于理解的响应。

  6. 最终响应: Liz 将代理的综合答案返回给 UI。

图 TD 子图 "A. 用户交互" 用户[用户 / DevOps] UI[UI 扩展] 结束 subgraph "B. Supervisor Layer" Liz{Liz Supervisor} end 子图 "C. 专门代理 (ReAct)" RancherAgent(Rancher Agent) FleetAgent(Rancher Continuous Delivery Agent) ProvAgent(Rancher Provisioning Agent) AppCoAgent(SUSE 应用收集代理) ObsAgent(SUSE Observability Agent) SecAgent(SUSE Security Agent) CustomAgent(自定义代理) 结束 子图 "LLM 推理层 (适用于所有代理)" 方向 LR LocalLLM[本地 LLM] PublicLLM[公共 LLM] 结束 子图 "D. 基础设施网关" MCP1[Rancher MCP] MCP2[应用收集 MCP] MCP_Obs[可观察性 MCP] MCP_Sec[安全 MCP] MCP4[第三方 MCP] 结束 子图 "E. 数据与 API" RancherAPI[(Rancher / K8s API)] AppCoAPI[(应用收集 API)] MetricsDB[(SUSE 可观测性 / 指标)] VulnDB[(安全 / CVE 扫描)] ExternalAPI[(外部系统)] 结束 %% 流程 用户 -- "1.查询" --> UI UI -- "2.上下文 + 意图" --> Liz Liz -- "3.路由" --> RancherAgent Liz --> FleetAgent Liz --> ProvAgent Liz --> AppCoAgent Liz --> ObsAgent Liz --> SecAgent Liz --> CustomAgent %% 推理循环示例 + RancherAgent - ."推理引擎" .->LocalLLM RancherAgent -."推理引擎" .->PublicLLM %% 理由 + 行动连接 + RancherAgent -- "4" --> MCP1 + FleetAgent -- "4" --> MCP1 + ProvAgent -- "4" --> MCP1 + AppCoAgent -- "4" --> MCP2 + ObsAgent -- "4" --> MCP_Obs + SecAgent -- "4" --> MCP_Sec + CustomAgent -- "4" --> MCP4 %% API 连接 + MCP1 -- "5" --> RancherAPI + MCP2 -- "5" --> AppCoAPI + MCP_Obs -- "5" --> MetricsDB + MCP_Sec -- "5" --> VulnDB + MCP4 -- "5" --> ExternalAPI %% 样式 + 样式 Liz 填充:#f9f,描边:#333,描边宽度:2px + 样式 本地LLM 填充:#fff3cd,描边:#ffc107,描边虚线:5 5 + 样式 公共LLM 填充:#fff3cd,描边:#ffc107,描边虚线:5 5 + 样式 Note 填充:#fff,描边:无 + 样式 RancherAgent 填充:#d4edda,描边:#28a745 + 样式 FleetAgent 填充:#d4edda,描边:#28a745 + 样式 ProvAgent 填充:#d4edda,描边:#28a745 + 样式 AppCoAgent 填充:#d4edda,描边:#28a745 + 样式 ObsAgent 填充:#d4edda,描边:#28a745 + 样式 SecAgent 填充:#d4edda,描边:#28a745 + 样式 MCP_Obs 填充:#cce5ff,描边:#007bff + 样式 MCP_Sec 填充:#cce5ff,描边:#007bff