feat: 持久化诊断历史并修复 Agent 命令执行

This commit is contained in:
cnbugs
2026-07-25 12:40:53 +08:00
parent 4f3a7833a0
commit fdac1eaffc
10 changed files with 650 additions and 45 deletions
+10
View File
@@ -19,6 +19,11 @@
- 实时展示思考步骤、执行命令和真实输出
- 即使选择 AI 执行,`apply``delete``patch``scale``rollout``exec` 等命令仍必须人工确认
- 禁止 shell、管道、重定向和多命令拼接
- **历史记录持久化**:使用 SQLite 保存全部诊断与处理轨迹
- 保存完整诊断结果、文本报告、AI 分析结果
- 保存 Agent 思考、命令、真实输出、审批和执行结果
- 支持按状态、命名空间查询并查看完整详情
- 服务重启后仍可读取历史和恢复最近一次诊断
- **AI 追问对话**:基于诊断上下文多轮追问,深入排查问题
- **Web 仪表盘**Vue3 + Element Plus,实时展示诊断结果
@@ -50,6 +55,9 @@ PORT=8900
# Kubeconfig 路径 (留空使用默认 ~/.kube/config)
KUBECONFIG_PATH=
# 历史记录 SQLite 文件(K8S 部署时请挂载持久卷到该路径)
HISTORY_DB_PATH=/app/data/history.db
```
## API 接口
@@ -63,6 +71,8 @@ KUBECONFIG_PATH=
| POST | `/api/analyze` | AI 分析诊断结果 `{"question":""}` |
| GET | `/api/agent/diagnose/stream` | 自主诊断 SSE 流,`execution_mode=manual|ai` |
| POST | `/api/agent/approve` | 批准或拒绝待执行命令 `{"approval_id":"...","approved":true}` |
| GET | `/api/history/diagnoses` | 查询全部诊断历史,支持 `status``namespace` 过滤 |
| GET | `/api/history/diagnoses/{id}` | 查询诊断详情及全部 AI/Agent 处理轨迹 |
| POST | `/api/chat` | AI 多轮对话 `{"messages":[...]}` |
| GET | `/api/report` | 获取诊断报告文本 |