Files
GenericAgent/memory/memory_management_sop.md

75 lines
4.4 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.
## 0. 核心公理 (Core Axioms - 最高优先级)
1. **行动验证原则 (Action-Verified Only)**
* **定义**:任何写入 L1/L2/L3 的信息,必须源自**成功的工具调用结果**(如 `shell` 执行成功、`file_read` 确认内容存在、代码运行通过)。
* **禁止**:严禁将模型的“固有知识”、“推理猜测”、“未执行的计划”或“未验证的假设”作为事实写入。
* **口号****No Execution, No Memory. (无行动,不记忆)**
2. **神圣不可删改性 (Sanctity of Verified Data)**
* **定义**凡是经过行动验证的有效配置、避坑指南、关键路径在重构Refactoring/GC时**严禁丢弃**。
* **操作**:可以压缩文字、可以迁移层级(从 L2 移到 L3但绝不能丢失信息的准确性和可追溯性。
3. **禁止存储易变状态 (No Volatile State)**
* **定义**:严禁存储随时间/会话高频变化的数据。
* **示例**:当前时间戳、临时 Session ID、正在运行的 PID、某个具体绝对路径、连接的设备信息
---
## 记忆层级架构
```
L1: global_mem_insight.txt (极简索引层 - 严格控制 ≤30 行)
↓ 导航指向 (Pointer)
L2: global_mem.txt (事实库层 - 现短但会膨胀)
↓ 详细引用 (Reference)
L3: ../memory/ (记录库层 - 包含 .md/.py 等各类文件)
```
---
## 各层职责与原则
### L1全局内存索引 (global_mem_insight.txt)
**职责**:为 L2 和 L3 提供极简导航索引。
**特征**
体积限制:≤ 30 行(硬约束)
- 内容TOPICS、LESSONS_LEARNED
- 更新L2 有新增/删除事实时同步;当发现通用且极其重要的规律时,追加 LESSONS。修改时请极度小心不允许overwrite或code run。只能少量patch改不动宁愿不改。
**禁止**:严禁在此层直接写入 IP、密码、完整路径、API Key。L1 只能是索引指针,不能是数据容器。不写 "How to" 或详细解释。严禁包含特定任务的技术细节特定任务细节应该在L3。更加严禁写入日志记录
---
### L2全局事实库 (global_mem.txt)
**职责**:存储全局环境性事实(路径、凭证、配置、常量等)。
**特征**
- 趋势:随环境扩展而膨胀(可接受)
- 内容:按 `## [SECTION]` 组织的事实条目
- 同步:变化时更新 L1 的相应 TOPIC 导航行
**禁止**:禁止存储易变状态、禁止存储猜测、严禁存储大模型可推理的通用常识
---
### L3任务级精简记录库 (../memory/)
职责:补充 L1/L2 无法容纳、但对**特定任务**未来复用至关重要的少量详细信息。内容必须在满足复用需求的前提下**尽可能短**。
原则:
- 只记录:跨会话仍重要、且难以通过少量 file_read / web_scan / 简单脚本快速重建的要点。
- 优先写:该任务特有的隐藏前置条件、典型易踩坑点,一旦遗忘会导致高成本重试的信息。
- 不记录:普通操作步骤、可在几步探测中重新获得的路径或状态信息。
形式:
- SOP*_sop.md为单一任务或小类任务保留极简的「关键前置 + 典型坑」清单,避免长篇教程。
- 工具脚本(*.py仅封装高复用、逻辑相对复杂且不希望每次都重新推理的处理流程。
---
## L1 ↔ L2 同步规则
| L2 操作 | L1 同步 |
|---------|--------|
| 新增事实 | 在 TOPICS.GLOBAL_MEM 添加导航行 |
| 删除事实 | 在 TOPICS.GLOBAL_MEM 删除导航行 |
| 修改值 | 保持导航行不变 |
---
## 信息分类快速决策树
```
"这条信息该放哪层?"
是『环境特异性事实』? (IP、非标路径、凭证、ID、API 密钥等,大模型 Zero-shot 无法生成准确)
├─ YES → L2 (global_mem.txt)
│ 然后 → L1 [TOPICS.GLOBAL_MEM] 添加导航行
└─ NO
是『通用操作规律』? (全局性避坑指南、排查方法、不针对特定任务的通用准则)
├─ YES → L1 [LESSONS_LEARNED] (仅限 1-2 句脱水准则)
└─ NO
是『特定任务技术』? (艰难尝试才能成功,且未来还能用到的任务,如:微信解析参数、特定游戏坐标、临时工具配置)
├─ YES → L3 (../memory/ 专项 SOP 或脚本)
└─ NO → 判定为『通用常识』或『冗余信息』: 严禁存储,直接丢弃
```