Kagenti Operator

Kagenti Operator 是一个 Kubernetes 原生的 operator,能够注册、发现并保护作为普通 Kubernetes 工作负载运行的 AI agents 和 MCP 工具。它基于开源项目 kagenti/kagenti-operator 构建,可让你通过 Kubernetes Custom Resource Definitions (CRDs),以声明式方式将普通的 Deployment 转换为受管的 agent——并提供一致的标签、agent-to-agent (A2A) 发现以及可选的身份/安全 mesh。

概述

该 operator 提供以下 CRDs(API group agent.kagenti.dev):

  • AgentRuntime:将目标工作负载(DeploymentStatefulSet)注册为 agenttool。controller 会应用 kagenti.io/typeapp.kubernetes.io/managed-by 标签,计算配置哈希,并且——在启用身份栈时——通过 AuthBridge webhook 触发 sidecar 注入。
  • AgentCard:表示已发现的 agent。sync controller 会从工作负载的 Service 中获取该 agent 的 A2A Agent Card 并进行索引,同时支持可选的 JWS 签名验证和 SPIFFE 身份绑定。
  • AuthorizationPolicy:应用级授权意图,operator 会将其转换为底层 mesh(Istio / Kuadrant)。

operator 本身作为一个 OLM operator 交付,其 operand 是一个单独的 Kagenti custom resource(API group kagenti.alauda.io)。安装 operator 并创建 Kagenti 资源后,会将 agent controllers、CRDs 和 admission webhooks 部署到集群中。

名为 agent-label-protectionValidatingAdmissionPolicy 会阻止直接在 DeploymentStatefulSet 上设置 kagenti.io/type 标签——它只能由 operator 通过 AgentRuntime 应用。

关键特性

  • 声明式 agent 注册:为 Deployment 添加 protocol.kagenti.io/a2a 标签,并将其指向一个 AgentRuntime;其余部分由 operator 管理。
  • 动态 agent 发现AgentCard 资源会自动创建并同步,因此 agents 可以相互发现。
  • LLM 后端无关:agents 可与任何兼容 OpenAI 的 chat endpoint 通信,因此集群内的 AI InferenceService 可以作为模型后端。
  • MCP 工具集成:将 Model Context Protocol servers 部署为 tool 类型工作负载,由 agent 调用以扩展其能力。
  • 可插拔身份与安全:可启用可选栈(SPIRE/SPIFFE mTLS、Keycloak、Istio),用于工作负载身份和零信任传输。

核心配置

AI 上,operator 提供一个 核心配置:已启用 agent 注册、动态发现(AgentCard)以及 MCP 工具集成,而身份/安全栈(SPIRE、Keycloak、Istio mTLS)默认禁用,因为它需要基础安装中不包含的组件。在此配置下:

  • agent Pod 运行时不会注入 sidecar(只有你自己的容器)。
  • AgentRuntime 会报告 MTLSReady=False,原因是 SPIREUnavailable——这是预期行为,不会阻止 agent 或 tool 功能。

当集群中已具备 SPIRE、Keycloak 和 Istio 后,即可启用身份栈。

使用场景

  • Kubernetes 上的 agentic 应用:将 A2A agents 和 MCP tool servers 作为一等、可发现的工作负载运行。
  • 自托管模型后端:使用由 AI InferenceServices 提供的模型来驱动 agent,而不是外部 LLM 提供商。
  • 增强工具的 agents:通过 MCP servers 为 agent 扩展实时数据能力(天气、搜索、内部 API 等)。