Files
aiops/docs/ai-agent/06-会话记忆与Evolver.md
T
Logan.Li e0d652d211 feat: 完善堡垒机与 Agent 智能运维能力
- 支持 Windows Agent 构建、安装脚本和统一上报协议

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

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

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

135 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 06 - 会话记忆与 Evolver
> 会话解决“发生过什么”,记忆解决“下次如何做得更好”。两者都必须按用户、目标和安全策略治理。// Logan.Li
---
## 会话表
`agent_cli_sessions` 记录一次任务级元数据:
| 字段 | 说明 |
|------|------|
| `UserID` | 发起用户 |
| `Mode` | `host` / `kubernetes` |
| `ServerID`、`ServerName`、`ServerHost` | 主机目标快照 |
| `ClusterID`、`ClusterName`、`Namespace`、`PodName`、`Container` | K8s 目标快照 |
| `Title` | 任务标题 |
| `Status` | `running/done/aborted/error` |
| `Provider`、`Model` | LLM 快照 |
| `Rounds`、`TotalTokens`、`Duration` | 执行统计 |
| `Error` | 错误信息 |
---
## 消息表
`agent_cli_messages` 记录事件级过程:
| 字段 | 说明 |
|------|------|
| `Round` | ReAct 轮次 |
| `Type` | `session/thought/tool_call/tool_result/done/error` |
| `Role` | `user/assistant/tool` |
| `Content` | 用户输入、思考、最终答案 |
| `ToolName`、`ToolArgs`、`ToolOutput` | 工具过程 |
| `Risk`、`Success`、`Duration`、`Tokens` | 风险和统计 |
历史回放只读取消息,不重新调用 LLM 或工具。
---
## WebSocket 生命周期
```text
connect
→ start
→ create session
→ persist user message
→ run Agent
→ persist events
→ finish session
```
控制消息:
| type | 说明 |
|------|------|
| `start` | 新任务 |
| `continue` | 当前会话继续追问 |
| `resume` | 恢复历史上下文 |
| `confirm` / `reject` | 高危工具决策 |
---
## 继续追问
继续追问依赖 `buildConvHistoryFromMessages()`:
```text
agent_cli_messages
→ 重建 []llm.Message
→ 保持 tool_call/tool_result 配对
→ core.Agent.Run(prior=history)
```
这要求历史消息不能只存纯文本,必须保留工具调用结构。
---
## Evolver 记忆
Evolver 在任务结束后异步学习:
```text
RunResult
→ TaskExecution
→ Evolve()
→ experiences / facts / procedures
→ 下次 BuildSystemPrompt 注入
```
当前默认目录:
```text
data/agentcli/
```
任务失败也可以产生有效经验,但必须标注失败原因。
---
## 记忆类型
| 类型 | 作用 |
|------|------|
| Experience | 某类任务的成功/失败经验 |
| Fact | 主机、集群、服务的稳定事实 |
| Procedure | 可复用排障步骤 |
| Skill | 预留为结构化技能或 Runbook |
---
## 会话和记忆的区别
| 维度 | 会话 | 记忆 |
|------|------|------|
| 目的 | 回放、审计、继续追问 | 下次任务提示 |
| 粒度 | 每条事件 | 提炼后的经验 |
| 存储 | DB | 当前文件,后续 DB 化 |
| 删除 | 用户可删除历史 | 需要独立治理 |
| 风险 | 工具输出泄露 | 敏感事实长期留存 |
---
## 企业化建议
| 能力 | 说明 |
|------|------|
| 记忆 DB 化 | 按 user_id、team_id、target_id 隔离 |
| 记忆可视化 | 用户能查看 AI 记住了什么 |
| 记忆删除 | 支持删除、禁用、过期 |
| 记忆脱敏 | 敏感输出不进入记忆 |
| 团队共享 | 高质量经验可转为团队 Runbook |
| 来源追踪 | 每条记忆能追溯到 session/message |