Files
aiops/docs/ai-agent/06-会话记忆与Evolver.md
Logan.Li 1c98c25c74 feat(agentcli): 运行结果 incomplete 语义与契约文档
RunResult 增加 Outcome/Reason;触顶标记 incomplete:max_steps;
WebSocket finish 区分 incomplete 与 fatal error。补充 ai-agent docs 13 与挂点索引。
2026-10-19 03:53:09 +08:00

4.0 KiB
Raw Permalink Blame History

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 生命周期

connect
  → start
  → create session
  → persist user message
  → run Agent
  → persist events
  → finish session

控制消息:

type 说明
start 新任务
continue 当前会话继续追问
resume 恢复历史上下文
confirm / reject 高危工具决策

继续追问

继续追问依赖 buildConvHistoryFromMessages():

agent_cli_messages
  → 重建 []llm.Message
  → 保持 tool_call/tool_result 配对
  → core.Agent.Run(prior=history)

这要求历史消息不能只存纯文本,必须保留工具调用结构。


Evolver 记忆

Evolver 在任务结束后异步学习:

RunResult
  → TaskExecution
  → Evolve()
  → experiences / facts / procedures
  → 下次 BuildSystemPrompt 注入

当前默认目录:

data/agentcli/

任务失败也可以产生有效经验,但必须标注失败原因。


记忆类型

类型 作用
Experience 某类任务的成功/失败经验
Fact 主机、集群、服务的稳定事实
Procedure 可复用排障步骤
Skill 预留为结构化技能或 Runbook

会话和记忆的区别

维度 会话 记忆
目的 回放、审计、继续追问 下次任务提示
粒度 每条事件 提炼后的经验
存储 DB 当前文件,后续 DB 化
删除 用户可删除历史 需要独立治理
风险 工具输出泄露 敏感事实长期留存

企业化建议

能力 说明
记忆 DB 化 按 user_id、team_id、target_id 隔离
记忆可视化 用户能查看 AI 记住了什么
记忆删除 支持删除、禁用、过期
记忆脱敏 敏感输出不进入记忆
团队共享 高质量经验可转为团队 Runbook
来源追踪 每条记忆能追溯到 session/message

续聊与 incomplete(2026-09-18 增补)// Logan.Li

平台路径:resumeSession → convHistory → continueTask(prior) ——相对 opsxcli 更接近真·续跑。

仍须对齐 13-契约:tool 轨迹完整;触顶/超时标记 incomplete + reason + resumable。

项 现状 目标
续聊 prior 注入 已有 保持;补集成测试与文档示例
MaxIterations=16 硬停 有 incomplete/max_steps,允许加预算再 continue
incomplete 对外语义 偏 error/文案 结构化状态枚举
ToolTimeout / MaxContext 120s / 8000 写入可观测字段;与契约一致
opsxcli aiops
resume UI 为主,引擎未接通 续聊链路已通
tool integrity 多 tool 有丢 observation 风险 按 tool_call_id 整组保留
默认上下文 6000 8000
默认工具超时 60s 120s