首页 / 文章 / 《实用笔记》:kagent——您应当了解的Kubernetes原生AI智能体框架

《实用笔记》:kagent——您应当了解的Kubernetes原生AI智能体框架

《实用笔记》操作指南:kagent——您应当了解的Kubernetes原生AI智能体框架,包含适用于采用该架构的团队的契约、校验规则以及可直接插入的代码模块。

4687 词

本指南将逐步构建从原材料到可运行系统的完整流程,适用于 kagent:这个你真正应该了解的 Kubernetes 原生 AI 智能体框架。重点在于可操作的步骤、明确的检查点,以及可直接放入代码库的代码,无需猜测其用途。 在概览阶段,应在修改代码之前明确输入参数、各步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行相应步骤,而无需推测隐藏的状态。 可将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,定义成功标准,杜绝默许的半完成状态。

什么是 kagent?

在完成“什么是kagent”这一阶段时,首先写下相关约定:所需的输入参数、成功标志,以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。 在耗时较高的步骤之后设置检查点。当操作员重新尝试后续节点时,恢复流程不应再次收取相同的LLM调用费用。

架构

在架构设计阶段,首先需明确相关约定:所需的输入参数、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 配置信息应与应用程序代码分开存放。环境文件、密钥存储以及功能开关都应集中管理,这样操作人员无需查看整个系统结构即可进行审计。 在耗时较高的步骤之后设置检查点。当操作人员重新执行后续节点时,恢复流程不应再次调用相同的大型语言模型。

┌─────────────────────────────────────────────────────────┐
│                   Kubernetes Cluster                     │
│                                                         │
│  ┌──────────────┐     ┌──────────────┐                  │
│  │  Controller  │────▶│  Agent CRDs  │                  │
│  │   (Go)       │     │  ToolServers │                  │
│  └──────────────┘     │  ModelConfig │                  │
│         │             └──────────────┘                  │
│         ▼                                               │
│  ┌──────────────┐     ┌──────────────┐                  │
│  │   Engine     │────▶│  MCP Server  │                  │
│  │ (Python ADK  │     │  (Built-in   │                  │
│  │  or Go ADK)  │     │   tools)     │                  │
│  └──────────────┘     └──────────────┘                  │
│         │                                               │
│  ┌──────▼───────┐                                       │
│  │  Dashboard   │  ← Web UI (React/TypeScript)          │
│  │  + CLI       │  ← kagent CLI (Go)                   │
│  └──────────────┘                                       │
└─────────────────────────────────────────────────────────┘

控制器

在处理控制器阶段时,首先需明确相关契约:所需的输入参数、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 同时记录正常流程与异常恢复路径。重试机制、人工审核环节以及死信处理都是产品功能的一部分,而非后续需要补充的内容。 在成本较高的操作之后设置检查点。当操作员重新尝试某个节点时,恢复流程不应再次调用相同的大型语言模型。 在处理控制器阶段时,首先需明确相关契约:所需的输入参数、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 将此阶段视为输入与验证后输出之间的契约。为相关产物命名,定义成功判定标准,并拒绝默许部分完成的情况。

引擎(应用)

将 Engine App 阶段视为可度量的对象来处理时,其效果最佳。在扩大范围之前,先记录一份理想的测试用例、一个故障案例以及回滚说明。在功能结果旁同时记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。要保持图表状态简洁且类型明确,嵌套的数据结构会掩盖是哪个节点修改了哪个字段,还会在中断后导致无法继续处理。

工具服务器

将工具服务器阶段视为可度量的对象来管理,效果最佳。在扩大范围之前,先记录一份理想的运行日志、一个故障案例以及回滚说明。 应将配置与应用程序代码分开。环境文件、密钥存储和功能开关应集中存放,以便操作人员无需查看全部内容即可进行审计。 需以结构简洁的格式提供工具,并明确标注其副作用。主机需要在自动批准之前知道哪些调用会改变状态。

人工干预机制(HITL)

将“人在回路”HITL阶段视为可度量的对象时,其效果最佳。在扩大范围之前,需记录一份理想状态下的流程记录、一个故障案例以及回滚说明。同时文档化正常流程与恢复流程。重试机制、人工审核环节以及错误处理都是产品本身的组成部分,而非后续需要补充的内容。保持图形状态的结构化与类型化,嵌套的数据结构会掩盖哪个节点编写了哪个字段的信息,并且在中断后会导致流程无法继续。将“人在回路”HITL阶段视为输入与已验证输出之间的契约,为相关文档命名、明确成功标准,杜绝无声的半完成状态。

tools:
  - type: McpServer
    mcpServer:
      name: kagent-tool-server
      kind: RemoteMCPServer
      apiGroup: kagent.dev
      toolNames:
        - k8s_get_resources       # runs immediately
        - k8s_apply_manifest      # pauses for approval
        - k8s_delete_resource     # pauses for approval
      requireApproval:
        - k8s_apply_manifest
        - k8s_delete_resource

提示词模板

在提示词模板阶段,应在修改代码之前明确输入内容、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。应在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。当下一步操作是编写代码或调用工具时,优先选择具有架构验证的结构化输出,而非自由形式的文字描述。

systemMessage: |
  You are a Kubernetes management agent named {{.AgentName}}.
  {{include "builtin/safety-guardrails"}}
  {{include "builtin/tool-usage-best-practices"}}
  {{include "my-prompts/cluster-specific-rules"}}
  Your tools: {{.ToolNames}}

智能体记忆与上下文压缩

在代理内存与上下文阶段,应在修改代码之前明确输入内容、该步骤的负责人以及终止标准。操作员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个位置,以便操作员无需查看整个系统结构即可进行审核。 对于涉及资金支出或修改生产数据的操作,必须经过人工审批。编译时的连接方式并不等同于业务功能的完整性。

作为工具的代理(A2A)

在“Agent作为工具”的A2A阶段,修改代码之前需明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新执行该步骤,而无需猜测隐藏状态。 需同时记录正常流程与异常恢复路径。重试机制、人工审核环节以及错误消息处理都是产品功能的一部分,而非后续需要补充的内容。 在网关处进行身份验证,在数据层再次授权。仅凭承载令牌并不足以界定租户边界。 在“Agent作为工具”的A2A阶段,修改代码之前需明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新执行该步骤,而无需猜测隐藏状态。 应将此阶段视为输入与经过验证的输出之间的契约。为相关工件命名,定义成功检测标准,并拒绝默许的半完成状态。

支持的LLM提供商

在处理“支持的LLM提供商”阶段时,首先需记录下相关合同条款:所需输入、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外账单。 缓存稳定的系统指令和工具架构。重复发送相同的开头信息是导致资源浪费的常见原因。

apiVersion: kagent.dev/v1alpha2
kind: ModelConfig
metadata:
  name: default-model-config
  namespace: kagent
spec:
  provider: OpenAI
  model: gpt-4o
  apiKeySecret: kagent-openai
  apiKeySecretKey: OPENAI_API_KEY

优点

在处理“Pros”阶段时,首先写下合同条款:所需的输入参数、成功标志以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 将配置信息与应用程序代码分开存放。环境文件、密钥存储以及功能开关应集中于一个位置,这样操作人员无需查看整个系统结构即可进行审计。 在成本较高的步骤之后设置检查点。当操作人员重新执行后续节点时,恢复流程不应再次计费相同的LLM调用。

缺点

在处理 Cons 阶段时,首先需写下契约内容:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 同时记录正常流程与恢复流程。重试机制、人工审核环节以及死信处理都是产品本身的组成部分,而非后续的优化工作。 在成本较高的步骤之后设置检查点。当操作员重新尝试后续节点时,恢复流程不应再次调用相同的 LLM 接口。 在处理 Cons 阶段时,首先需写下契约内容:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 将此阶段视为输入与验证后输出之间的契约。为相关成果命名,明确成功判定标准,并拒绝默许部分完成的情况。

模型选择:本地部署与 API

将“选择模型本地阶段”视为可度量的界面来使用效果最佳。在扩大范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。在功能结果旁同时记录处理时间以及令牌或查询成本。提前了解成本情况,就能避免从演示环境过渡到共享环境时出现意外账单。为每轮及每次会话设定令牌预算。智能工具往往会大量消耗上下文资源,设置上限可防止演示过程变成意外收费的源头。

本地模型中可靠有效的做法

在舞台环境中表现稳定的方案,若能被视作可测量的对象,则效果最佳。在扩大范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。 将配置置于应用程序代码之外。环境文件、密钥存储和功能开关应集中存放,这样操作人员无需查看整个系统结构即可进行审计。 为每轮对话和每次会话设定token预算。智能工具往往会大量消耗上下文资源,设置上限可避免演示过程突然产生额外费用。

哪些需要API模型

将“需要 API 的阶段”视为可度量的对象来处理时,其效果最佳。在扩大范围之前,先记录一份理想的操作流程、一个故障案例以及回滚说明。 同时记录正常处理路径和异常恢复路径。重试机制、人工审核环节以及死信处理都是产品本身的一部分,而非后续才添加的功能。 为每次交互和每个会话设定令牌预算。智能工具会大量消耗上下文资源,设置上限可避免演示过程变成意外的费用账单。 将“需要 API 的阶段”视为输入与经过验证的输出之间的契约。为相关文档命名,明确成功标准,绝不允许默默完成部分任务。

成本与隐私的现实

在成本与隐私考量阶段,应在修改代码之前明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。应在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外账单。对于会产生费用或修改生产数据的操作,必须经过人工审批。编译时的配置并不等同于业务功能的完整性。

竞争对手格局

在“竞争环境分析”阶段,应在修改代码之前明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放,以便操作人员无需查看整个系统结构即可进行审计。 对于涉及资金支出或修改生产数据的操作,必须经过人工审批。编译时的连接方式并不等同于业务功能的完整性。

k8sgpt vs kagent

在 k8sgpt 对抗 kagent 的阶段中,修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程与故障恢复路径。重试机制、人工审核环节以及错误处理都是产品功能的一部分,而非后续需要补充的内容。 对于任何会耗费资金或修改生产数据的操作,都必须经过人工审批。仅靠编译时的配置并不足以保证业务的完整性。 在 k8sgpt 对抗 kagent 的阶段中,修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应将这一阶段视为输入与经过验证的输出之间的契约。为相关输出文件命名,明确成功判定标准,绝不允许出现无声无息的半完成状态。

BotKube 对抗 kagent

在对比 BotKube 和 kagent 的阶段时,首先需列出相关约定:所需输入、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。 在耗时较高的步骤之后设置检查点。当操作员重新执行后续节点时,恢复流程不应再次收取相同的 LLM 调用费用。

HolmesGPT 与 kagent 的对比

在处理 HolmesGPT 与 kagent 的对比阶段时,首先需列出相关契约:所需输入、成功标志以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放于一个位置,这样操作人员无需查看整个系统结构即可进行审计。 在耗时较高的步骤之后设置检查点。当操作人员重新执行后续节点时,恢复流程不应再次计费相同的 LLM 调用。

kubectl-ai 与 kagent

在处理 kubectl-ai 与 kagent 的对比阶段时,首先需明确相关约定:所需输入、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 同时记录正常流程与恢复流程。重试机制、人工审核环节以及死信处理都是产品功能的一部分,而非后续需要补充的内容。 在成本较高的操作之后设置检查点。当操作员重新处理某个节点时,恢复流程不应再次调用相同的 LLM 服务。 在处理 kubectl-ai 与 kagent 的对比阶段时,首先需明确相关约定:所需输入、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 将此阶段视为输入与验证后输出之间的契约。为相关成果命名,定义成功检测标准,并杜绝无声的半完成状态。

演示:在 kind 环境下使用 kagent(Mac 版 Docker Desktop)

在演示环境中,若将其视为可测量的界面使用,效果最佳。在扩大范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。在功能结果旁还需记录执行时间以及令牌或查询成本。提前了解成本情况,可避免从演示环境过渡到共享环境时出现意外费用。要保持图表状态简洁且类型明确,嵌套的数据块会掩盖是哪个节点修改了哪个字段,且在中断后还会导致数据恢复失败。

git clone https://github.com/simonjday/kagent-demo

cd kagent-demo

前提条件

将“前置条件”阶段视为可度量的对象来处理效果最佳。在扩大范围之前,先记录一份理想的运行日志、一个故障案例以及回滚说明。 将配置与应用程序代码分开。环境文件、密钥存储和功能标志应集中存放于一个位置,这样操作人员无需查看整个结构即可进行审计。 保持数据结构的层次简单且类型明确。嵌套的数据块会掩盖哪个节点修改了哪个字段的信息,还会在出现中断后导致无法继续处理。

brew install kind kubectl helm kagent

步骤1:创建Kind集群

将“第一步:创建阶段”视为可度量的对象来处理效果最佳。在扩大范围之前,需记录一个理想状态下的流程实例、一个故障案例以及回滚说明。同时将正常流程与恢复流程都记录下来。重试机制、人工审核环节以及错误处理都属于产品本身的组成部分,而非后续需要补充的内容。要保持图表状态简洁且类型明确,嵌套的数据结构会掩盖哪个节点修改了哪个字段的信息,还会导致中断后无法继续处理。将“第一步:创建阶段”视为输入与已验证输出之间的契约,为相关成果命名,明确成功标准,绝不允许出现无声无息的半完成状态。

kind create cluster \
  --name kagent-demo \
  --config kind-cluster.yaml \
  --wait 120s
export OPENAI_API_KEY="sk-..."
./scripts/install.sh
kubectl cluster-info --context kind-kagent-demo
kubectl get nodes
# NAME                        STATUS   ROLES           AGE
# kagent-demo-control-plane   Ready    control-plane   90s

第二步:使用演示配置安装kagent

在第二步的 kagent 安装阶段,应在修改代码之前明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。除了功能结果外,还需记录执行时间以及令牌或查询成本。提前了解成本情况可以避免在从演示环境过渡到共享环境时出现意外账单。对于会耗费资金或修改生产数据的操作,必须经过人工审批。编译时的配置并不等同于业务功能的完整性。

# OpenAI
export OPENAI_API_KEY="sk-..."

# --- or Ollama (no API key needed) ---
# export KAGENT_DEFAULT_MODEL_PROVIDER=ollama
# (ensure: ollama serve && ollama pull qwen3:8b)

# Installs kagent + pre-built demo agents (k8s-agent, helm-agent, observability-agent, istio-agent)
kagent install --profile demo
# Verify the install
kubectl -n kagent get pods
# NAME                          READY   STATUS    RESTARTS
# kagent-controller-xxxx        1/1     Running   0
# kagent-xxxx                   1/1     Running   0

第二步b:选择模型

在步骤2b“选择阶段”中,应在修改代码之前明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个位置,以便操作人员无需查看整个流程即可进行审计。 当下一步是代码执行或工具调用时,优先使用具有架构验证的结构化输出,而非自由形式的文本描述。

export ANTHROPIC_API_KEY="sk-ant-..."

kubectl -n kagent create secret generic kagent-anthropic \
  --from-literal=ANTHROPIC_API_KEY="${ANTHROPIC_API_KEY}"
kubectl apply -f - <<'YAML'
apiVersion: kagent.dev/v1alpha2
kind: ModelConfig
metadata:
  name: claude-sonnet
  namespace: kagent
spec:
  provider: Anthropic
  model: claude-sonnet-4-6
  apiKeySecret: kagent-anthropic
  apiKeySecretKey: ANTHROPIC_API_KEY
  anthropic:
    apiVersion: "2023-06-01"
YAML
kubectl -n kagent get agents -o name | xargs -I {} kubectl -n kagent patch {} \
  --type=merge -p '{"spec":{"declarative":{"modelConfig":"claude-sonnet"}}}'
ollama pull qwen2.5:14b
kubectl apply -f - <<'YAML'
apiVersion: kagent.dev/v1alpha2
kind: ModelConfig
metadata:
  name: qwen25-14b
  namespace: kagent
spec:
  provider: Ollama
  model: qwen2.5:14b
  ollama:
    host: host.docker.internal:11434
YAML
kubectl -n kagent get agents -o name | xargs -I {} kubectl -n kagent patch {} \
  --type=merge -p '{"spec":{"declarative":{"modelConfig":"qwen25-14b"}}}'

步骤3:打开控制面板

在进入第三步“打开阶段”之前,需先确定输入参数、该步骤的负责人以及退出标准,然后再进行代码修改。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测其中的隐藏状态。 需同时记录正常流程与异常恢复流程。重试机制、人工审核环节以及错误处理措施都是产品本身的一部分,而非后续需要补充的内容。 对于涉及资金支出或修改生产数据的操作,必须经过人工审批。编译时的连接方式并不能等同于业务功能的完整性。

kagent dashboard
# kagent dashboard is available at http://localhost:8082
# Press Enter to stop the port-forward...

在进入第三步“打开阶段”之前,需先确定输入参数、该步骤的负责人以及退出标准,然后再进行代码修改。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测其中的隐藏状态。 应将这一阶段视为输入参数与经过验证的输出结果之间的契约。需为相关成果命名,明确成功标准,并杜绝默许部分完成的情况。

第4步:检查生成结果

在执行“检查生成结果”这一阶段时,首先记下相关契约:所需输入、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。 在耗时较高的步骤之后设置检查点。当操作员重新尝试后续节点时,恢复流程不应再次收取相同的LLM调用费用。

# See the Agent CRDs
kubectl -n kagent get agents
# NAME                  AGE
# helm-agent            2m
# observability-agent   2m
# istio-agent           2m
# k8s-agent    2m
# Inspect the Kubernetes agent
kubectl -n kagent get agent k8s-agent -o yaml

第5步:演示提示1——集群清单

在完成第5步的演示提示阶段时,首先写下相关契约:所需的输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放于一个位置,这样操作人员无需查看整个系统结构即可进行审计。 缓存稳定的系统指令和工具架构。重复发送相同的开头信息是导致资源浪费的常见原因。

List all namespaces in this cluster
How many pods are running in the kagent namespace?

第6步:演示提示2 — Helm认知

在完成第6步演示提示阶段时,首先需写下协议内容:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 同时记录正常流程与异常恢复路径。重试机制、人工审核环节以及错误消息处理都是产品功能的一部分,而非后续需要补充的内容。 缓存系统中稳定的指令和工具结构。重复发送相同的开头信息是导致资源浪费的常见原因。 在完成第6步演示提示阶段时,首先需写下协议内容:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 将此阶段视为输入与验证后输出之间的契约。为相关文件命名,明确成功判定标准,杜绝无声的半完成状态。

What Helm releases are installed in this cluster?

第7步:演示提示3——人工干预机制(添加失败部署场景)

将第7步的演示提示阶段视为可测量的测试界面最为有效。在扩大范围之前,需记录一份最佳示例文本、一个失败案例以及回滚说明。 在功能结果旁同时记录处理时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。 为每轮对话和每次会话设定令牌预算。智能工具往往会大量消耗上下文资源,设置上限能防止演示过程产生意外账单。

kubectl apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: broken-app
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: broken-app
  template:
    metadata:
      labels:
        app: broken-app
    spec:
      containers:
      - name: app
        image: nginx:nonexistent-tag
        resources:
          limits:
            memory: "64Mi"
            cpu: "250m"
EOF
There's a deployment called broken-app in the default namespace that's failing.
Diagnose what's wrong and propose a fix. Ask me before applying any changes.
kubectl delete deployment broken-app

第8步:命令行交互

将第8步的CLI交互阶段视为可度量的对象来处理,效果最佳。在扩大范围之前,先记录一份理想的操作日志、一个故障案例以及回滚说明。 将配置与应用程序代码分开。环境文件、密钥存储和功能标志应集中存放于一个位置,这样操作人员无需查看整个架构即可进行审计。 保持架构状态的简洁性与类型化。嵌套的数据结构会掩盖是哪个节点修改了哪个字段,且在中断后会导致无法继续执行。

# List agents
kagent get agent
# Invoke the helm agent directly
kagent invoke -t "List all Helm releases and flag any that haven't been updated in 30+ days" --agent helm-agent

# Run the k8s agent
kagent invoke -t "Are there any pods in a non-Running state across all namespaces?" --agent k8s-agent

第9步:构建自己的代理(适用于GitOps的YAML格式)

将第9步“构建你的阶段”视为可度量的对象来使用效果最佳。在扩大范围之前,先记录一份理想的执行日志、一个故障案例以及回滚说明。 同时记录正常流程和恢复流程。重试机制、人工审核环节以及错误处理都是产品本身的一部分,而非后续需要补充的内容。 保持图表状态简洁且类型明确。嵌套的数据结构会掩盖哪个节点修改了哪个字段的信息,还会在流程中断后导致无法继续执行。 将第9步“构建你的阶段”视为输入与已验证输出之间的契约。为相关成果命名,明确成功标准,绝不允许出现无声的、不完整的完成情况。

apiVersion: kagent.dev/v1alpha2
kind: Agent
metadata:
  name: platform-ops-agent
  namespace: kagent
spec:
  type: Declarative
  declarative:
    runtime: go                        # Fast startup; no Python deps
    modelConfig: default-model-config
    systemMessage: |
      You are a platform operations agent for this Kubernetes cluster.
      You help engineers diagnose issues, review Helm releases, and check
      workload health. You MUST ask for approval before modifying any resource.
      Be concise. Provide your reasoning before each tool call.
    tools:
      - type: McpServer
        mcpServer:
          name: kagent-tool-server
          kind: RemoteMCPServer
          apiGroup: kagent.dev
          toolNames:
            - k8s_get_resources
            - k8s_describe_resource
            - k8s_get_logs
            - k8s_get_events
            - k8s_apply_manifest
            - k8s_delete_resource
            - helm_list
            - helm_status
          requireApproval:
            - k8s_apply_manifest
            - k8s_delete_resource
    context:
      compaction:
        compactionInterval: 5          # Summarise after every 5 exchanges

第10步:卸载

在步骤10的卸载阶段,应在修改代码之前明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。应在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。对于会产生支出或修改生产数据的操作,必须经过人工审批。编译时的配置并不等同于业务功能的完整性。

kagent uninstall

是否应该使用它?

在“是否应使用该功能”阶段,应在修改代码之前明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放,以便操作人员无需查看整个流程即可进行审计。 对于涉及资金支出或修改生产数据的操作,需经过人工审批。编译时的连接方式并不等同于业务功能的完整性。

结论

在结论阶段,应在修改代码之前明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及错误处理都是产品不可或缺的部分,而非后续需要补充的内容。 对于涉及资金支出或修改生产数据的操作,必须经过人工审批。仅靠编译时的配置并不能保证业务的完整性。 在结论阶段,应在修改代码之前明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,绝不允许出现无声无息的半完成状态。

操作检查清单

将操作检查清单阶段视为可度量的对象,效果最佳。在扩大范围之前,先记录一份完美的测试用例、一个故障案例以及回滚说明。

优先选择小型且可测试的单元,而非庞大的脚本。当某一步骤出错时,故障应能指向具体的责任主体,而非复杂的流程链。

保持图结构扁平且具有类型约束。嵌套的数据块会掩盖哪个节点修改了哪个字段的信息,还会导致中断后无法继续执行。

在预算允许的情况下,使用测试环境中的固定数据而非真实的付费 API,为关键路径添加冒烟测试。

将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,绝不允许出现无声的半完成状态。

保持图结构扁平且具有类型约束。嵌套的数据块会掩盖哪个节点修改了哪个字段的信息,还会导致中断后无法继续执行。

在推广该技术栈之前,应先冻结版本,为关键流程记录标准输出日志,并明确回滚步骤。共享环境需要设置速率限制、租户验证机制,以及负责密钥轮换的明确责任人。与其展示花哨的一次性演示,不如注重扎实的可靠性。

d6fc3a8252f1的批量处理说明:不要将提供商密钥放入代码仓库,为每个会话设置令牌使用上限,并将日志存储在评估用示例文件旁边,以便后续模型更换时仍能保持对比性。