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阶段,如需升级,请先关注对应版本是否存在不兼容变更。