89 lines
5.6 KiB
Markdown
89 lines
5.6 KiB
Markdown
## 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),但绝不能丢失信息的准确性和可追溯性。
|
||
* 记忆修改时请极度小心,尽量不要overwrite或code run。只能少量patch,改不动宁愿不改。
|
||
3. **禁止存储易变状态 (No Volatile State)**
|
||
* **定义**:严禁存储随时间/会话高频变化的数据。
|
||
* **示例**:当前时间戳、临时 Session ID、正在运行的 PID、某个具体绝对路径、连接的设备信息
|
||
4. **最小充分指针 (Minimum Sufficient Pointer)**
|
||
* 上层只留能定位下层的最短标识,多一词即冗余。
|
||
---
|
||
## 记忆层级架构
|
||
```
|
||
L1: global_mem_insight.txt (极简索引层 - 严格控制 ≤30 行)
|
||
↓ 导航指向 (Pointer)
|
||
L2: global_mem.txt (事实库层 - 现短但会膨胀)
|
||
↓ 详细引用 (Reference)
|
||
L3: ../memory/ (记录库层 - 包含 .md/.py 等各类文件)
|
||
```
|
||
---
|
||
## 各层职责与原则
|
||
### L1:全局内存索引 (global_mem_insight.txt)
|
||
**职责**:为 L2 和 L3 提供极简导航索引,确保关键能力可被发现。
|
||
**特征**:
|
||
- 体积限制:≤ 30 行(硬约束),< 1k tokens(期望)。严禁填写细节(除非极高频任务)
|
||
- 内容:两层「场景关键词→记忆定位」映射 + RULES(红线规则 + 高频犯错点)
|
||
- 第一层:高频场景 key→value(直接给出 sop/py/L2 section 名),自包含可只写一个词
|
||
- 第二层:低频场景仅列关键词,需要时 read L2 或 ls L3 自行定位
|
||
- 作用:触发词,不索引则不知道有此能力
|
||
- RULES:压缩版避坑准则,包含:
|
||
- 红线规则(致命型):违反会导致进程终止或系统崩溃(如 `禁无条件杀python(会杀自己)`)
|
||
- 红线规则(隐蔽型):违反不报错但产生错误结果(如 `搜索用google不用百度`)
|
||
- 高频犯错点:容易遗忘的关键约束(如 `es(PATH有)` 防止找路径)
|
||
- 更新:L2/L3 有新增/删除时,判断频率归入对应层。修改时请极度小心,不允许overwrite或code run。只能少量patch,改不动宁愿不改。
|
||
**禁止**:严禁写入密码、API Key。允许内联非敏感触发参数(如代理端口)。不写 "How to" 或详细解释。严禁包含特定任务的技术细节(特定任务细节应该在L3)。更加严禁写入日志记录!
|
||
---
|
||
### L2:全局事实库 (global_mem.txt)
|
||
**职责**:存储全局环境性事实(路径、凭证、配置、常量等)。
|
||
**特征**:
|
||
- 趋势:随环境扩展而膨胀(可接受)
|
||
- 内容:按 `## [SECTION]` 组织的事实条目
|
||
- 同步:变化时更新 L1 的相应 TOPIC 导航行,只能导航
|
||
**禁止**:禁止存储易变状态、禁止存储猜测、严禁存储大模型可推理的通用常识
|
||
---
|
||
### L3:任务级精简记录库 (../memory/)
|
||
职责:补充 L1/L2 无法容纳、但对**特定任务**未来复用至关重要的少量详细信息。内容必须在满足复用需求的前提下**尽可能短**。
|
||
原则:
|
||
- 只记录:跨会话仍重要、且难以通过少量 file_read / web_scan / 简单脚本快速重建的要点。
|
||
- 优先写:该任务特有的隐藏前置条件、典型易踩坑点,一旦遗忘会导致高成本重试的信息。
|
||
- 不记录:普通操作步骤、可在几步探测中重新获得的路径或状态信息。
|
||
形式:
|
||
- SOP(*_sop.md):为单一任务或小类任务保留极简的「关键前置 + 典型坑」清单,避免长篇教程。
|
||
- 工具脚本(*.py):仅封装高复用、逻辑相对复杂且不希望每次都重新推理的处理流程。
|
||
---
|
||
## L1 ↔ L2/L3 同步规则
|
||
| 操作 | L1 同步 |
|
||
|---------|--------|
|
||
| L2/L3 新增场景 | 判断频率:高频→第一层加 key→value;低频→第二层加关键词 |
|
||
| L2/L3 删除场景 | 删除对应层的关键词/映射行 |
|
||
| L2/L3 修改值 | 若不影响场景定位则不动 L1 |
|
||
| 发现通用避坑规律 | 压缩为一句加入 RULES |
|
||
|
||
> **同步红线**:L1 只写关键词/名称,禁搬细节。
|
||
|
||
---
|
||
## 信息分类快速决策树
|
||
```
|
||
"这条信息该放哪层?"
|
||
|
||
是『环境特异性事实』? (IP、非标路径、凭证、ID、API 密钥等,大模型 Zero-shot 无法生成准确)
|
||
├─ YES → L2 (global_mem.txt)
|
||
│ 然后 → 按频率归入 L1 第一层(key→value)或第二层(仅关键词)
|
||
│
|
||
└─ NO
|
||
↓
|
||
是『通用操作规律』? (全局性避坑指南、排查方法、不针对特定任务的通用准则)
|
||
├─ YES → L1 [RULES] (仅限 1 句压缩准则)
|
||
│
|
||
└─ NO
|
||
↓
|
||
是『特定任务技术』? (艰难尝试才能成功,且未来还能用到的任务,如:微信解析参数、特定游戏坐标、临时工具配置)
|
||
├─ YES → L3 (../memory/ 专项 SOP 或脚本)
|
||
│
|
||
└─ NO → 判定为『通用常识』或『冗余信息』: 严禁存储,直接丢弃
|
||
``` |