# L3.5 Daily Decision Logs：在四层 GA 记忆之外增加 reviewed 日志层

> 适用场景：原生 GA 只有 L1/L2/L3/L4 四层记忆，但实际长期运行中，经常需要一种“比原始会话更可信、比长期规则更轻量”的中间层，用来记录任务闭环、关键决策、决策理由和后续行动。

## 一句话定义

**L3.5 是位于 L3 SOP/工具层与 L4 原始会话层之间的 reviewed 日志层。**

它不保存完整对话，也不直接沉淀为长期事实；它只记录已经验证过的结论、明确决策点、任务完成闭环、未来可能复用的规则候选。

推荐目录：

```text
memory/
  daily_logs/              # L3.5 reviewed 正式日志
    README.md              # 本层规则
    YYYY-MM-DD.md          # 每天一个文件，多条日志追加
  daily_logs_backfill/     # 可选：历史回填草稿，未 review，不等同事实
```

## 为什么需要 L3.5

原生四层常见问题：

- **L4 原始会话太长**：信息完整但噪声大，恢复慢，难以快速判断“当时为什么这么定”。
- **L3 SOP 太重**：不是每个任务结论都值得沉淀成 SOP。
- **L2 事实层太稳**：很多结论只是阶段性决策，不适合直接写成长期事实。
- **L1 索引太短**：只能放高频关键词，不能承载决策理由。

L3.5 的目标是补上这个空档：

> 让 Agent 快速找回“上次完成了什么、为什么这么做、下一步该干什么”。

## 定位

L3.5 记录：

- 每天形成的关键结论
- 决策理由
- 后续行动
- 未来规则候选
- 被排除路线及原因
- 已完成的代码/配置/文档变更

L3.5 不记录：

- 完整聊天记录
- 工具调用流水账
- 未验证猜测
- 单次临时报错
- 易变状态
- 密钥或敏感信息

## 文件规则

- 一天只有一个日志文件：`YYYY-MM-DD.md`
- 同一天的多件事，在当天文件里按条目追加
- 不允许“一条日志一个文件”
- 历史日志默认不改；如果结论被推翻，写新的“修正日志”追溯旧条目
- `daily_logs/` 是 reviewed 正式层；`daily_logs_backfill/` 只是 unreviewed 草稿层

## 单条日志粒度

一条日志 = 一个完成的任务闭环 / 一个明确决策点。

### 应写

- 任务完成
- 用户明确要求沉淀
- 形成长期决策
- 完成代码、配置、文档变更
- 确认重要环境事实
- 发现重要坑点并形成结论
- 排除一条路线并明确原因

### 不写

- 普通聊天
- 工具调用流水账
- 未验证猜测
- 单次临时报错
- 无结论探索
- 密钥、token、cookie、API key 等敏感信息

## 推荐日志模板

```markdown
## YYYY-MM-DD HH:MM:SS ｜主题

meta:
  type: daily_decision_log
  date: YYYY-MM-DD
  topic: 主题
  tags: [tag1, tag2]
  status: decided
  upgrade: none

### 结论
一句话说明最终结论。

### 背景
为什么做这件事，用户需求是什么。

### 关键决策
- 决策 1
- 决策 2

### 决策理由
为什么这么定，排除了哪些方案。

### 后续行动
- 下一步 1
- 下一步 2

### 未来规则
- 如果未来遇到类似问题，应如何处理。

### 候选升级
- none / L2 / L3 / L1
```

## 质量红线

- 不写完整对话
- 不写工具调用流水账
- 不写未验证猜测
- 不写易变状态
- 不写密钥或敏感信息
- 单条默认 150~500 字，复杂任务最多约 1000 字

## 检索策略

当用户问：

- “之前怎么定的？”
- “上次为什么这么干？”
- “当时怎么决策的？”
- “哪天说过这个？”
- “之前有没有历史结论？”

应优先查 L3.5，而不是直接查 L4 原始会话。

推荐降级顺序：

1. 当前实例 raw 会话（仅当用户要恢复刚发生上下文）
2. `daily_logs/` reviewed 日志
3. `daily_logs_backfill/` 回填草稿
4. L2/L3 记忆与 SOP
5. L4 raw sessions

如果用户要“原话/完整过程/完整会话”，再查 L4。

## 每轮结束日志判断

每轮任务收尾时，Agent 必须显式判断是否需要写 L3.5 日志：

- 需要：写入当天 `daily_logs/YYYY-MM-DD.md`，并在回复中说明日志位置和主题
- 不需要：不写文件，但说明“不记录”的原因
- 同时用一句话说明当前在推进什么、下一步干什么

这样可以避免长任务断片，也能防止所有小事都污染长期记忆。

## 升级规则

L3.5 不是最终归宿，它是候选池：

- 只出现一次：留在日志
- 跨会话长期有效事实：候选 L2
- 可复用流程或重复出现 2 次以上：候选 L3 SOP
- 高频行为红线：候选 L1 RULES，但 L1 只写极简索引

## 实战效果

L3.5 最适合解决这些问题：

- 长任务中断后，快速恢复“任务推进到哪”
- 多次试错后，保留“为什么放弃某方案”
- 用户问历史决策时，不用翻完整 L4
- 防止 L2/L3 被短期结论污染
- 给未来整理长期记忆提供 reviewed 原料

## 最小接入清单

1. 新建 `memory/daily_logs/README.md`，写入本规则
2. 每天只建一个 `daily_logs/YYYY-MM-DD.md`
3. 每轮任务结束显式判断是否写日志
4. 日志禁止密钥、完整对话、工具流水账
5. 恢复历史决策时优先查 `daily_logs/`
6. 定期把重复出现的日志结论升级到 L2/L3/L1

## 一句话总结

**L3.5 是 Agent 的 reviewed 决策日志层：它不替代 SOP，也不替代原始会话，而是把“已经验证、值得回看的任务结论”稳定地夹在二者之间。**
