Kagent是一個用於在Kubernetes上構建、部署以及運行AI應用的架構。部署Kagent之後,可使用聲明式API建立智能體和MCP Server,並且支援對接多種大模型。
Agent基礎概念介紹
Agent是一種可以用自然語言與使用者互動的應用程式。Agent使用 LLM 產生對使用者請求的響應,還可以代表使用者執行操作。
每個Agent由以下組件組成:
LLM:負責對使用者請求進行理解和響應,比如千問、ChatGPT等。
Agent指令:一組定義代理行為和功能的指令。這也稱為系統提示。指令中通常會定義Agent的角色、和使用者互動的注意事項、可以執行的行為以及如何響應使用者的請求等。比如:“你是一個Kubernetes營運人員。可以協助使用者管理他們的Kubernetes資源”。
工具:代理可用於與其環境互動的函數。工具可以是一個支援MCP協議的MCP Server,也可以是一個支援A2A協議的其他Agent。比如:
ACK MCP Server支援擷取叢集資訊、運行叢集診斷、查看Prometheus指標等。
某個自訂的Agent支援對執行商品資訊檢索之類的特殊任務。
核心功能
Kagent是一個Kubernetes原生的Agent部署和編排架構,可使用kagent實現如下功能:
使用YAML檔案快速在ACK叢集中部署一個可用的Agent。
使用YAML檔案快速在ACK叢集中部署一個MCP Server,並且可以和Agent進行互動。
支援對接自行開發的MCP Server,實現專屬Agent。
通過YAML檔案編排多個Agent,實現multi-agent多智能體架構。
支援將自行開發的Agent進行統一編排。
核心API
Kagent使用Kubernetes自訂資源作為核心API。主要有以下資源:
ModelConfig:主要用於配置AI模型的調用資訊,比如千問、OpenAI供應商的URL、模型以及API Key等參數。RemoteMCPServer:主要用於註冊HTTP協議的MCP Server,配置之後可以在Agent中引用。既支援配置一個叢集外部署的MCP Server提供的URL,也支援配置叢集中以Service形式部署的MCP Server。Agent:智能體配置。智能體被抽象為AI模型、指令和工具的組合。AI模型根據配置的Prompt處理人類或其他Agent的調用,並通過自己可調用的MCP Server來實現特定任務。工具既可以是一個MCP Server,也可以是一個支援A2A協議的Agent。

Kagent實現架構
Kagent主要由三部分組成:
controller:處理各種kagent相關的API,負責將它們轉換成叢集中的agent應用。
App/Engine:這是kagent的核心組件。這是一個基於ADK開發的Python應用,建立的agent資源就會被controller即時翻譯成一個Agent App應用,負責處理對話迴圈,並且支援A2A協議。
UI:kagent預設提供了一套Web UI,可使用瀏覽器通過UI建立並管理Agent,並且可以直接在這個UI中和Agent互動。
使用說明
Kagent社區預設提供的安裝模板具有較高的RBAC許可權。ACK對該模板進行了限制,預設只有kagent命名空間下的關鍵許可權(如建立、刪除Deployment、Service,讀取Secret等),因此只能在kagent命名空間下建立Agent、ModelConfig等資源。如需在其他命名空間下建立資源,請為kagent相關的角色新增ClusterRole資源。
目前kagent的API尚處於Alpha階段,如需升級,請先關注對應版本是否存在不相容變更。