- 支持 Windows Agent 构建、安装脚本和统一上报协议 - 增强 RDP 剪贴板、虚拟盘和文件传输能力 - 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口 - 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
135 lines
3.1 KiB
Markdown
135 lines
3.1 KiB
Markdown
# 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 |
|