面向攻击型代理的持久记忆
一次渗透测试装不进一个上下文窗口。真实行动跨越侦察、利用与后渗透,持续数小时;如果 agent 到第 4 阶段就忘了第 1 阶段所见,它就会重复劳动、遗漏发现并做出更差判断。持久记忆,才是把 LLM 变成操作者的关键。
三种记忆
- 情景记忆: 关于执行了什么、何时、输出如何的不可变日志。
- 工作记忆: 行动的实时状态——主机、凭据、跳板路径、未决假设。在阶段间压缩总结。
- 语义记忆: 可复用知识(TTP、writeup),由 Beorn 通过 RAG 提供。
有纪律地检索
典型错误是把全部记忆塞进每个提示。我们按相关性与阶段检索:agent 请求"10.0.0.0/24 的有效凭据",就只得到这些,并附来源。
memory.query({ scope: "10.0.0.0/24", kind: "credential",
phase: "lateral-movement", max_tokens: 800 })
有作用域的记忆,而非泄露
若不加控制,记忆就是外泄面。每次写入都经过 Sentinel:批准范围之外一律不持久化,kill-switch 立即清除工作记忆。情景记忆加密保存以供取证;工作记忆按设计为临时。
我们交付什么
在 Gandalf 中,持久记忆是一等公民:每个 agent 以上一阶段重建的摘要开始,而非空白窗口。更少重复、具上下文的决策,以及完整轨迹。