
# kagent插件
[Kagent](https://kagent.dev/docs/kagent/introduction/what-is-kagent)是专为DevOps和平台工程师设计的开源编程框架，将强大的AI代理功能引入Kubernetes集群，自动化执行运维任务、排查故障并优化云原生环境中的工作流，帮助团队更高效地解决复杂的技术挑战。其主要提供以下功能：
- **自动化运维**：通过AI代理自动处理常见故障（如Pod崩溃、网络策略冲突），减少人工干预。
- **知识沉淀**：将团队经验转化为可复用的诊断流程和策略，避免重复劳动。
- **协作平台**：提供自定义代理开发框架，支持共享针对Ingress、CRD等场景的运维方案，加速问题响应。
CCE Standard/Turbo集群深度集成[Kagent](https://kagent.dev/docs/kagent/introduction/what-is-kagent)能力，提供开箱即用的kagent插件，支持一键部署生产级AI运维代理框架，实现智能化的集群管理体验。
#### 基本概念
表1插件基本概念 
| 概念                                                          | 定义                                                       | 作用                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| [代理（Agent）](https://kagent.dev/docs/kagent/concepts/agents) | AI Agent是一种基于人工智能的应用程序，能够以自然语言与用户交互，并代表用户执行任务。           | - **自然语言交互**：允许用户通过日常语言与复杂系统交互，无需记忆命令或查阅文档，显著提升非专家用户的操作效率。  - **自动化执行**：将重复性任务（如日志分析、配置检查、扩缩容）转化为自动化流程，减少人工操作错误。  - **知识固化与协作**：将专家经验编码为可共享的Tool和代理指令，形成团队知识库，避免经验流失或重复劳动。   |
| [工具（Tool）](https://kagent.dev/docs/kagent/concepts/tools)   | Tool是AI Agent用于与环境交互的可执行函数或API，赋予Agent执行具体操作的能力，不仅是生成文本。 | - **环境交互**：允许Agent执行实际任务，如查询数据、修改配置、触发操作，而不仅是"对话"。  - **扩展Agent能力边界**：通过Tool集成，Agent可以突破LLM的纯文本限制，直接操作真实系统。  - **执行安全可控**：工具通常包含权限校验和输入过滤，避免危险操作。                              |
   
更多概念请参见[Kagent](https://kagent.dev/docs/kagent/introduction/what-is-kagent)。
 #### 前提条件
- 已安装v1.28及以上版本的CCE Standard/Turbo集群。
- 已使用[AI推理框架插件](https://support.huaweicloud.com/usermanual-cce/cce_10_0996.html)部署推理服务。
 
#### 约束与限制
- 由于kagent服务启动需即时安装，请确保集群内的Pod访问公网。您可以[为集群配置SNAT规则](https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_10049.html)以保证Pod能够访问公网，配置SNAT规则将涉及一定费用，具体请参见[NAT网关价格计算器](https://www.huaweicloud.com/pricing/calculator.html#/nat)。
- 该插件当前正处于上线阶段，**已发布区域请以控制台实际为准**。
- **该插件处于公测阶段** ，您可体验最新插件特性，但**需要注意该版本的稳定性未得到完全的验证，不适用于CCE服务SLA**。
 
#### 安装插件
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 在左侧导航栏中选择"插件中心"，在右侧找到**kagent插件**，单击"安装"。
3. 在安装插件页面，进行相关配置。 
   表2插件规格配置 
   | 参数           | 参数说明                                                             |
   |:---|:---|
   | 选择版本         | 表示插件版本，请按需选择。                                                    |
   | 插件规格         | 当前仅支持"默认"规格。                                                     |
   | openaiApiUrl | 表示推理服务地址Url，见[前提条件]。          |
   | openaiApiKey | 表示推理服务访问鉴权key，用于鉴权访问，见[前提条件]。 |
   | openaiModel  | 表示推理服务中使用的模型名称，见[前提条件]。       |
      
   
   
4. 配置完成后，请在右下角单击"安装"。kagent插件状态变为"运行中"时，则说明安装成功。
 
#### 组件说明
表3kagent 组件 
| 容器组件   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 资源类型       |
|:---|:---|:---|
| kagent | kagent由以下内容组成： - Controller：表示Kubernetes控制器，用于监视kagent自定义资源，并创建运行代理所需的资源。  - UI：用于提供管理和使用AI代理的Web界面，以便进行可视化操作。  - Engine：是运行代理和工具的Python应用程序，使用[Autogen](https://github.com/microsoft/autogen)构建。   | Deployment |
   
#### 使用示例
本示例将展示如何通过kagent插件构建自定义agent。
1. 在已有的ECS中安装kubectl，并使用kubectl连接集群，具体操作请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)。
2. 执行以下命令，创建节点访问类型Service的YAML文。通过该Service，可以访问命名空间kube-system中的工作负载cceaddon-kagent，其访问端口和容器端口均设置为80。 
   ```
   vim kagent-svc.yaml
   ```
   文件内容如下：
   ```
   apiVersion: v1
   kind: Service
   metadata:
     name: kagent-svc
     namespace: kube-system
     labels:
       app.kubernetes.io/instance: cceaddon-kagent
       app.kubernetes.io/name: kagent
   spec:
     ports:
       - name: ui
         protocol: TCP
         port: 80
         targetPort: 80
         nodePort: 30371  # 节点端口
       - name: app
         protocol: TCP
         port: 8081
         targetPort: 8081
         nodePort: 30372  # 节点端口
     selector:
       app.kubernetes.io/instance: cceaddon-kagent
       app.kubernetes.io/name: kagent
     type: NodePort
     sessionAffinity: None
     externalTrafficPolicy: Cluster
     ipFamilies:
       - IPv4
     ipFamilyPolicy: SingleStack
     internalTrafficPolicy: Cluster
   ```
   
   
3. 执行以下命令，创建上述Service。 
   ```
   kubectl apply -f kagent-svc.yaml
   ```
   回显结果如下：
   ```
   service/kagent-svc created
   ```
   
   
4. 执行以下命令，查看节点的EIP地址。 
   ```
   kubectl get node -owide
   ```
   回显结果如下：
   ```
   NAME            STATUS                     ROLES    AGE        INTERNAL-IP     EXTERNAL-IP     
   192.168.0.211   Ready                      <none>   12d        192.168.0.211   xx.xx.xx.xx  
   192.168.0.32    Ready,SchedulingDisabled   <none>   7d16h      192.168.0.32    <none>          
   192.168.1.173   Ready,SchedulingDisabled   <none>   12d        192.168.1.173   xx.xx.xx.xx
   ```
   
   
5. 在浏览器中输入http://\<任一节点EIP\>:\<节点端口\>/，访问kagent插件的UI界面。 
   图1UI界面   
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002264076960.png "点击放大")
   
   
6. 单击"New Agent"，创建agent实例，默认使用安装插件时所填入的推理服务，具体参数示例请参见[图2]。
   
   图2创建新agent   
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002264440606.png "点击放大")
   
   
7. 配置完成后，请单击"Create Agent"。创建完成后，即可使用该agent实例。
 
#### 版本说明
表4kagent插件版本记录 
| 插件版本   | 支持的集群版本                                                                                                                                                                                                                                                                   | 更新特性                             | 社区版本                                                                 |
|:---|:---|:---|:---|
| 0.1.15 | v1.28 v1.29 v1.30 v1.31 v1.32 | CCE Standard/Turbo集群支持使用kagent插件 | [v0.1.15](https://github.com/kagent-dev/kagent/releases/tag/v0.1.15) |
   
