本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

体系结构

该系统被设计为一个分层多智能体生态系统。它使用一个中央主管 (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 Fleet 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