Files
aiops/docs/ai-agent/08-代码审计与平台智能化优化.md
T
Logan.Li e0d652d211 feat: 完善堡垒机与 Agent 智能运维能力
- 支持 Windows Agent 构建、安装脚本和统一上报协议

- 增强 RDP 剪贴板、虚拟盘和文件传输能力

- 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口

- 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
2026-07-05 23:49:36 +08:00

15 KiB
Raw Blame History

Agent CLI 代码审计与平台智能化优化

更新:2026-07-05 范围:Agent CLI、智能助手、告警分析、预测分析,以及它们如何关联 AIOps 平台资产、告警、指标、日志、Kubernetes 和 CMDB。// Logan.Li


结论

当前 Agent CLI 的执行底座已经可用:WebSocket 会话、ReAct 主循环、工具调用、安全确认、会话持久化、历史恢复和 Evolver 记忆都已落地。

真正需要升级的是“平台上下文能力”。现在模型主要能操作目标主机或 Kubernetes 目标,但它还不能像专业 AIOps Agent 一样主动查询平台内的 CMDB、告警历史、指标趋势、日志片段、发布变更、拓扑依赖和相似事故。

一句话:Agent CLI 已经具备执行能力,但智能助手、告警分析、预测分析要从“页面拼 prompt”升级为“平台上下文工具 + 证据链推理 + 可审计闭环”。

2026-07-05 第一版已落地:

能力 状态 代码位置
AIOps 上下文服务 已完成第一版 backend/pkg/aiopscontext/
平台总览接口 已完成 GET /api/v1/aiops/context/summary
目标上下文包接口 已完成 POST /api/v1/aiops/context/pack
Agent CLI 资产搜索工具 已完成 aiops_asset_search
Agent CLI 告警查询工具 已完成 aiops_alert_list
Agent CLI 指标摘要工具 已完成 aiops_metric_summary
智能助手总览快捷操作接入 已完成第一版 AIOpsAssistant.tsx
告警 RCA 后端化 已完成第一版 POST /api/v1/aiops/alert-analysis
告警 RCA Trace 与上下文落库 已完成第一版 ai_analysis_traces / GET /api/v1/aiops/analysis-traces/:trace_id
MCP Server 暴露 待增强 后续基于 pkg/aiopscontext 封装

当前代码观察

已完成能力

能力 代码位置 说明
ReAct 循环 backend/pkg/agentcli/core/agent.go 16 轮主循环、工具调用、输出裁剪、循环检测
工具注册 backend/pkg/agentcli/agentcli.go 主机模式注册 ssh_execute,K8s 模式注册 kubernetes_get/pod_logs/pod_execute/kubernetes_action
安全确认 backend/pkg/agentcli/safety/safety.go high+ 操作触发 WebSocket 确认,critical 硬拒
会话持久化 backend/controller/agent_cli.go agent_cli_sessions / agent_cli_messages
历史追问 backend/controller/agent_cli_history.go 从历史消息恢复 LLM 上下文
智能助手上下文 frontend/src/components/aiops/AIOpsAssistant.tsx 快捷操作会拉取告警、Agent 指标、仪表盘数据拼进 prompt
预测分析 frontend/src/components/aiops/predictUtils.ts 指标趋势、容量预测、成本预测已有本地算法

主要缺口

优先级 缺口 影响
P0 没有 AIOps 平台上下文工具 Agent 只能查远端现场,不能查 CMDB、告警、指标、日志、变更和相似事故
P0 告警分析缺证据链 当前更多是单条告警 + LLM/规则模板,无法解释“为什么是这个根因”
P0 智能助手上下文在前端拼接 逻辑散在页面,难复用、难审计、难做权限过滤
P1 K8s Agent 连接预检仍可能阻塞 loadKubernetesAgentContext 会同步 ListNamespaces/ListPods,不可达集群会影响连接体验
P1 Agent 工具 trace 不够细 告警 RCA 已有 trace/span 和上下文包落库;Agent CLI 工具调用还需要补 parent_span_id、输入脱敏、输出大小、工具耗时分布
P1 RBAC 工具裁剪未落地 不同角色看到的工具应不同,例如只读用户不能拿到 ssh_execute 写操作能力
P1 Evolver 记忆仍偏文件化 企业版需要 DB 化、可检索、可删除、可按租户/用户/资产隔离
P2 预测分析还在前端计算 适合先验证体验,后续应迁到后端任务,支持定时预测、历史留存和告警联动

外部对标

参考 可借鉴点 AIOps 落地
ReAct 推理和行动交替,行动从外部系统取证,观察结果反哺下一轮推理 保持当前 ReAct 主循环,但工具要扩展到平台数据
SWE-agent ACI 专门为模型设计 Agent-Computer Interface,工具反馈格式影响智能体表现 AIOps 工具返回结构化摘要,而不是把页面文本或原始大 JSON 丢给模型
HolmesGPT SRE Agent 聚焦 incident、Kubernetes、Prometheus、observability 告警分析应自动拉取指标、日志、事件和资源状态
Robusta Prometheus/Kubernetes 告警增强、分组、AI enrichment、自动修复 AIOps 告警中心可做告警分组、上下文增强、修复建议
12-Factor Agents Prompt、上下文、工具、暂停恢复、人工确认都应工程化 把前端快捷 prompt 升级为后端上下文包和工具层
OpenAI Agents Guardrails 输入、输出、工具调用都要有 guardrail 告警自动修复脚本、命令执行、K8s action 都做输入/输出校验
OpenAI Agents Tracing 记录 Agent、LLM、工具、guardrail、自定义事件 在 agent_cli_messages 基础上补 trace_id/span_id/tool_audit

推荐目标架构

智能助手 / 告警分析 / 预测分析 / Agent CLI
        │
        ▼
AIOps AI Orchestrator
  ├─ Context Pack Builder
  ├─ Tool Registry
  ├─ Guardrail / RBAC / Approval
  ├─ Trace / Audit
  └─ LLM Client
        │
        ▼
AIOps Context Graph
  ├─ CMDB: 服务器、云资源、K8s 集群、应用、环境、负责人
  ├─ Observability: 指标、日志、事件、拨测、SNMP、中间件
  ├─ Alerts: 当前告警、历史告警、静默、通知、相似事故
  ├─ Changes: 发布、流水线、脚本、定时任务、审批
  └─ Security: 凭证、权限、会话审计、命令审计

核心不是马上上复杂图数据库,而是先实现一个轻量的 Context Pack:给定 target/alert_id/cluster/pod/time_range,后端统一返回可控、脱敏、限长、带来源的数据包。

为什么先做内部 Tool 层,再做 MCP

MCP 适合作为外部协议入口,但 AIOps 平台内置 Agent CLI 已经有自己的权限、确认、审计和会话体系。如果一开始只做 MCP,会绕开一部分现有治理能力。

推荐顺序:

pkg/aiopscontext
  ├─ 内部工具:注册到 Agent CLI tools.Registry
  ├─ REST 接口:智能助手 / 告警分析 / 预测分析复用
  └─ MCP Server:后续对外暴露给 Codex、Claude Desktop、opsxcli 等外部 Agent

这样 MCP 不是几组零散接口,而是 AIOps 上下文服务的一个协议外壳。


平台上下文工具清单

P0 只读工具

工具 输入 输出 用途
aiops_asset_search keyword/ip/hostname/tag 资产、负责人、环境、云厂商、凭证状态 让模型先识别对象是谁
aiops_alert_list target/severity/status/time_range 告警列表和统计 关联同一目标近期告警
aiops_alert_detail alert_id 告警详情、规则、阈值、当前值 单告警 RCA 起点
aiops_metric_summary target/metric/time_range min/max/avg/p95、趋势、异常点 判断是否趋势性恶化
aiops_log_search target/query/time_range 日志片段、错误聚类、样例 RCA 证据
aiops_k8s_context cluster/namespace/pod Pod、事件、重启、镜像、节点、owner K8s 排障上下文
aiops_change_window target/time_range 发布、脚本、审批、定时任务 关联变更导致故障
aiops_similar_incidents fingerprint 相似告警、历史处理结果 经验复用

第一版已实现其中 3 个 P0 工具:

工具 实现状态 说明
aiops_asset_search 已完成 查 asset_servers,只返回脱敏资产摘要
aiops_alert_list 已完成 合并 monitor_alert_events 和 monitor_agent_alerts
aiops_metric_summary 已完成 查 monitor_agent_reports,返回 latest/min/max/avg/p95/trend

P1 动作工具

工具 风险 说明
aiops_create_diagnosis_task low 生成诊断任务,不直接执行
aiops_open_terminal_session medium 打开 SSH/RDP/Pod/kubectl 会话,审计关联
aiops_run_readonly_playbook medium 执行只读诊断脚本
aiops_apply_fix_plan high 修复动作必须审批或二次确认

智能助手优化

当前智能助手的快捷操作已经会拉真实告警和指标,但逻辑在前端:

AIOpsAssistant.tsx
  ├─ loadAlertsContext()
  ├─ loadMetricsContext()
  └─ loadReportContext()

建议升级:

  1. 后端新增 GET /api/v1/aiops/context/summary,统一返回平台概览、活跃告警、高负载主机、近期发布、成本摘要。
  2. 后端新增 POST /api/v1/aiops/context/pack,按目标构建上下文包。
  3. 智能助手 prompt 不直接拼页面数据,而是调用上下文接口并带来源字段。
  4. 多轮对话记录关联 context_pack_id,后续能回放“当时模型看到了哪些数据”。

推荐输出格式:

{
  "scope": "host:10.0.0.1",
  "time_range": "2026-07-05T10:00:00+08:00/2026-07-05T11:00:00+08:00",
  "assets": [],
  "alerts": [],
  "metrics": [],
  "logs": [],
  "changes": [],
  "evidence": [
    {"source": "agent_report", "summary": "CPU p95 92%", "confidence": 0.82}
  ]
}

告警分析优化

当前告警分析流程是:

选择单条告警 → prompt 包含告警字段 → LLM 输出 JSON → 失败回退规则模板

建议升级为:

alert_id
  → Alert Detail
  → 资产/服务/负责人/环境
  → 同目标近 2h 告警
  → 指标窗口: 触发前 30m + 触发后 30m
  → 日志错误 TopN
  → K8s 事件/Pod 重启/发布变更
  → RCA JSON + 证据链 + 修复计划

RCA 输出不要只要自然语言,建议固定结构:

{
  "root_cause": "最可能根因",
  "confidence": 0.78,
  "evidence": [
    {"type": "metric", "source": "agent_report", "detail": "CPU 从 35% 升到 96%"},
    {"type": "log", "source": "loki", "detail": "出现 timeout/refused 错误"}
  ],
  "impact": "影响范围",
  "next_checks": ["还需要确认的点"],
  "fix_plan": [
    {"step": "只读检查", "risk": "safe"},
    {"step": "重启服务", "risk": "high", "requires_approval": true}
  ]
}

预测分析优化

当前预测分析以页面计算为主,适合展示,但还不是平台能力。

建议拆成三层:

  1. 短期异常预测:基于最近 1h/24h 指标,发现 CPU、内存、磁盘、网络的趋势性异常。
  2. 容量预测:基于 7d/30d/90d 时序,预测达到阈值的剩余时间。
  3. 业务风险预测:关联 CMDB、告警、变更、应用等级,输出“哪个业务风险最高”。

预测不应只输出“CPU 会涨到多少”,而应输出:

对象:生产环境 / app=payment / node=xxx
风险:内存 5 天后可能超过 90%
证据:过去 7 天日均增长 3.2%,最近 24h 增速加快
关联:同节点近 24h 有 OOMWarning 2 次,昨日有发布变更
建议:扩容、限制缓存、检查内存泄漏、安排低峰窗口处理

落地阶段

第 1 阶段:可用智能分析

周期:1-3 天。

  1. 新增 aiops/context/summary 和 aiops/context/pack 后端接口。(已完成第一版)
  2. Agent CLI 新增只读平台工具:aiops_asset_search、aiops_alert_list、aiops_metric_summary。(已完成第一版)
  3. 智能助手、告警分析、预测分析统一改用后端上下文包。(智能助手总览、告警分析已接入,预测分析待迁移)
  4. 告警分析补充同目标近期告警、指标摘要、资产信息。(已完成第一版)

验收标准:

  • 告警分析结果至少包含 3 条可追溯证据。
  • 智能助手回答能引用平台实际资源和告警。
  • 不可达 K8s/数据源不会阻塞其他页面。

第 2 阶段:企业级 RCA

周期:1-2 周。

  1. 增加 trace_id/span_id,告警 RCA 已完成 root span;后续继续打通 Agent CLI 工具调用、确认、输出。
  2. 工具 RBAC 裁剪,不同角色拥有不同工具集。
  3. 上下文包落库,告警 RCA 已支持回放和审计;预测分析、智能助手、Agent CLI 后续统一接入。
  4. 相似事故检索:按目标、指标、错误关键词、解决方案做 fingerprint。
  5. 修复计划接审批流,避免模型直接执行高危动作。

验收标准:

  • 每次 AI 分析都能回放输入数据、工具调用和最终结论。
  • 高危修复必须进入确认或审批。
  • 相似事故能命中历史会话/告警。

第 3 阶段:预测与闭环

周期:3-6 周。

  1. 预测任务后端化:定时生成容量、成本、可用性风险。
  2. 预测结果转告警规则或风险事件。
  3. 引入拓扑依赖:主机、应用、K8s、云资源、数据库、中间件。
  4. 建立 AI 评测集:误报率、根因命中率、建议采纳率、平均处理时长。

验收标准:

  • 预测风险能进入告警中心或风险看板。
  • RCA 对高频故障有稳定命中率。
  • 形成“告警 → 分析 → 处置 → 复盘 → 记忆”的闭环。

近期代码任务建议

顺序 任务 文件方向
1 修复告警分析 prompt 和兜底脚本里未展开的 i18n 文本 frontend/src/components/aiops/AIAlertAnalyzer.tsx、analyzerHelpers.ts
2 新增后端 ContextPack DTO 和 builder backend/controller/aiops_context.go 或 backend/pkg/aiopscontext/
3 智能助手快捷操作改为调用 ContextPack AIOpsAssistant.tsx、frontend/src/api/aiops/
4 Agent CLI 注册只读 AIOps 工具 backend/pkg/agentcli/tools/、backend/pkg/agentcli/agentcli.go
5 告警分析后端化,返回 RCA 结构化 JSON backend/controller/aiops_alert_analysis.go
6 告警 RCA 增加 trace_id/span_id 和上下文包落库 model.AIAnalysisTrace、backend/controller/aiops_alert_analysis.go
7 Agent CLI 增加工具级 span model.AgentCLISession、model.AgentCLIMessage 或新增 agent_tool_traces

已完成:1、2、4、5、6,以及 3 的智能助手总览和告警分析接入。下一步优先做 Agent CLI 工具级 span 和预测分析后端化。


判断标准

好的 AIOps 智能分析必须满足四点:

  1. 有对象:知道分析的是哪台主机、哪个应用、哪个 Pod、哪个环境。
  2. 有证据:结论引用告警、指标、日志、事件、变更中的具体事实。
  3. 有边界:不确定时明确说明,不编造数据。
  4. 可执行:建议能转成只读检查、修复计划、审批动作或自动化任务。

只要沿着这条线做,智能助手、告警分析、预测分析就会从“AI 页面”变成 AIOps 平台真正的智能中枢。