Total Recall

Polar Sponsor
爱发电 赞助
.NET 9.0

唯一的自主记忆技能,无需数据库、无向量、无需手动保存。只需一个 LLM 观察者,将对话压缩为优先级信息。

总计 recall – 自主代理内存

功能概述

总计 recall – 自主代理内存是一项面向实际任务的技能,主要用于唯一能自己监视的内存技能;没有数据库, 没有向量;

核心要点

  • 没有手动保存;
  • 只有 LLM 观察器可以压缩您的对话, 使其具有先验性。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

使用与执行

使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

结果检查与注意事项

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

全面回忆 — 自主智能体记忆系统

唯一能自主持续观察的记忆能力。

无需数据库。无需向量索引。无需手动保存。仅需一个 LLM 观察者,将你的对话自动压缩为带优先级的笔记,在内容增长时主动合并,并补全任何遗漏信息。五层冗余保障,零维护成本。约 $0.10/月。

当其他记忆能力要求你“记得去记住”时,本系统只需专注倾听。

架构

第 1 层:观察者(cron 定时任务,每 15–30 分钟一次)
    ↓ 将近期消息压缩 → observations.md
第 2 层:反思者(当 observations.md 超过 8000 字时自动触发)
    ↓ 合并相关内容,剔除已过时信息 → 减少 40–60% 冗余
第 3 层:会话恢复(每次执行 /new 或 /reset 时运行)
    ↓ 捕获观察者可能遗漏的会话
第 4 层:响应式监听器(inotify 守护进程,仅 Linux 支持)
    ↓ 在主会话目录中检测到 40+ 条新 JSONL 写入后触发观察者,5 分钟冷却期
第 5 层:预压缩钩子(memoryFlush)
    ↓ 在 OpenClaw 执行上下文压缩前进行紧急捕获,确保无信息丢失

功能说明

  • 观察者读取近期会话转录文件(JSONL),将其发送至 LLM 处理,并将压缩后的观察结果按优先级(高、中、低)追加至 observations.md
  • 反思者在 observation 日志体积过大时自动激活,合并相关条目,并剔除陈旧的低优先级条目
  • 会话恢复在每次会话启动时运行,检查上一会话是否已被捕获;若未捕获,则立即执行一次紧急观察
  • 响应式监听器使用 inotify 监听会话目录,使高频活动期的捕获速度显著快于 cron 默认间隔
  • 预压缩钩子在 OpenClaw 即将压缩上下文前触发,确保关键信息不被截断或丢弃

快速开始

1. 安装技能

clawdhub install total-recall

2. 设置 API 密钥

添加至你的 .env 文件或 OpenClaw 配置中:

OPENROUTER_API_KEY=sk-or-v1-xxxxx

3. 运行初始化脚本

bash skills/total-recall/scripts/setup.sh

该脚本将执行以下操作:

  • 创建内存目录结构(memory/、logs/ 及备份目录)
  • 在支持 inotify + systemd 的 Linux 系统上:安装响应式监听器服务
  • 输出需手动添加的 cron 任务与智能体配置说明

4. 配置智能体以加载 observation 日志

将以下内容添加至智能体的工作区上下文(例如 MEMORY.md 或系统提示词):

会话启动时,读取 `memory/observations.md` 获取跨会话上下文。

或使用 OpenClaw 的 memoryFlush.systemPrompt 注入启动指令。

平台支持

平台 观察者 + 反思者 + 会话恢复 响应式监听器
Linux(Debian/Ubuntu 等) 完整支持 需安装 inotify-tools
macOS 完整支持 暂不支持(仅 cron 模式)

所有核心脚本均采用可移植 bash 编写。stat、date 和 md5 命令通过 _compat.sh 实现跨平台兼容。

配置

所有脚本均从环境变量读取配置,提供合理默认值:

变量 默认值 说明
OPENROUTER_API_KEY (必需) 用于 LLM 调用的 OpenRouter API 密钥
MEMORY_DIR $OPENCLAW_WORKSPACE/memory observations.md 所在路径
SESSIONS_DIR ~/.openclaw/agents/main/sessions OpenClaw 会话转录文件存放路径
OBSERVER_MODEL deepseek/deepseek-v3.2 压缩任务主用模型
OBSERVER_FALLBACK_MODEL google/gemini-2.5-flash 主模型失败时的备用模型
OBSERVER_LOOKBACK_MIN 15 白天回溯时间窗口(分钟)
OBSERVER_MORNING_LOOKBACK_MIN 480 凌晨 8 点前回溯时间窗口(分钟)
OBSERVER_LINE_THRESHOLD 40 Linux 下触发响应式监听的 JSONL 行数阈值
OBSERVER_COOLDOWN_SECS 300 Linux 下响应式触发间的冷却时间(秒)
REFLECTOR_WORD_THRESHOLD 8000 触发反思者的字数阈值
OPENCLAW_WORKSPACE ~/your-workspace 工作区根目录

LLM 服务商配置

Total Recall 支持任意兼容 OpenAI Chat Completion API 的服务商。通过设置环境变量切换服务商:

变量 默认值 说明
LLM_BASE_URL https://openrouter.ai/api/v1 API 接口地址
LLM_API_KEY 回退至 OPENROUTER_API_KEY API 密钥
LLM_MODEL deepseek/deepseek-v3.2 使用的模型

服务商示例

# OpenRouter(默认)
export OPENROUTER_API_KEY="your-key"

# Ollama(本地)
export LLM_BASE_URL="http://localhost:11434/v1"
export LLM_API_KEY="ollama"
export LLM_MODEL="llama3.1:8b"

# Groq
export LLM_BASE_URL="https://api.groq.com/openai/v1"
export LLM_API_KEY="your-groq-key"
export LLM_MODEL="llama-3.3-70b-versatile"

生成的文件

memory/
  observations.md          # 主观察日志(会话启动时加载)
  observation-backups/     # 反思者备份(保留最近 10 份)
  .observer-last-run       # 上次观察者运行时间戳
  .observer-last-hash      # 上次处理消息的 MD5 去重哈希值
logs/
  observer.log
  reflector.log
  session-recovery.log
  observer-watcher.log

cron 任务

初始化脚本将创建以下 OpenClaw cron 任务:

任务 调度周期 说明
memory-observer 每 15 分钟一次 压缩近期对话
memory-reflector 每小时一次 当 observations.md 体积过大时执行合并

响应式监听器(仅 Linux)

响应式监听器使用 inotifywait 检测会话目录活动,从而比单纯依赖 cron 更快地触发观察者。需 Linux 系统并已安装 inotify-tools。

# 安装 inotify-tools(Debian/Ubuntu)
sudo apt install inotify-tools

# 查看监听器状态
systemctl --user status total-recall-watcher

# 查看日志
journalctl --user -u total-recall-watcher -f

成本

通过 OpenRouter 使用 DeepSeek v3.2:

  • 典型使用场景(观察者 + 反思者)每月约 $0.03–0.10
  • 每日约 15–30 次 cron 执行,每次处理数百 token

技术原理

观察者

  1. 查找最近修改的会话 JSONL 文件
  2. 过滤掉子智能体/定时任务会话
  3. 从设定回溯窗口中提取用户与助手消息
  4. 基于 MD5 哈希比对实现消息去重
  5. 将消息连同观察者提示词(含优先级压缩逻辑)发送至 LLM
  6. 将结果追加至 observations.md
  7. 若 observation 日志超过字数阈值,则触发反思者

反思者

  1. 备份当前 observations.md
  2. 将整份日志连同合并指令发送至 LLM
  3. 验证输出长度小于输入(合理性校验)
  4. 用合并后版本替换原日志
  5. 清理旧备份(保留最近 10 份)

会话恢复

  1. 每次执行 /new 或 /reset 时运行
  2. 对上一会话文件末尾若干行计算哈希值
  3. 与上次观察者运行时记录的哈希值比对
  4. 若不一致:以恢复模式(4 小时回溯窗口)运行观察者
  5. 兜底方案:若观察者失败,则直接提取原始消息

响应式监听器

  1. 使用 inotifywait 监听会话目录
  2. 仅统计主会话文件的 JSONL 写入次数
  3. 累计达 40+ 行后触发观察者(含 5 分钟冷却)
  4. 检测到 cron 或外部观察者运行时,重置计数器

自定义提示词

观察者与反思者的系统提示词位于 prompts/ 目录下:

  • prompts/observer-system.txt — 控制对话压缩方式
  • prompts/reflector-system.txt — 控制 observation 合并逻辑

可编辑这些文件,使其契合智能体的性格特征与关注重点。

梦境循环(Dream Cycle)

梦境循环是一个可选的夜间智能体,于非活跃时段运行,用于进一步整合 observations.md。它将陈旧条目归档,并添加语义钩子(semantic hook),确保真正有价值的信息不会丢失。上下文保持精简,所有内容仍可高效检索。

功能说明

  • 按影响等级(关键 / 高 / 中 / 低 / 极低)与时效性对每条 observation 进行分类
  • 将超过相关性阈值的条目归档
  • 为每个归档条目添加语义钩子(特定关键词 + 归档引用)
  • 自动验证归档结果,异常时自动回滚

特性

多钩子检索(Multi-Hook Retrieval) — 每个归档条目附带 4–5 种替代搜索短语。即使使用与原文不同的词汇,仍可准确召回对应记忆。

置信度评分(Confidence Scoring) — 每条 observation 均附带置信度分(0.0–1.0)与来源类型(explicit、implicit、inference、weak、uncertain)。高置信度条目保留更久;低置信度条目更快进入归档队列。

记忆类型系统(Memory Type System) — 共 7 类记忆,各具独立 TTL(生存期):event(14 天)、fact(90 天)、preference(180 天)、goal(365 天)、habit(365 天)、rule(永不过期)、context(30 天)。该元数据以不可见 HTML 注释形式嵌入 observations.md。

Observation 分块(Observation Chunking) — 将 3 条及以上关联紧密的 observation 压缩为单一条目摘要。源条目归档,摘要条目以 chunk hook 替代之。最高可实现 75% 的 token 节省。

重要性衰减(Importance Decay) — 每类记忆按日应用专属衰减率,用于归档决策前的重要性分数修正。低于归档阈值的条目进入移除队列。衰减率:event(-0.5/天)、fact(-0.1/天)、preference(-0.02/天)、rule/habit/goal(无衰减)。

模式提升(Pattern Promotion) — 扫描近期梦境日志,识别跨 3 天以上、出现频次 ≥3 的重复主题。将提升建议写入 memory/dream-staging/ 待人工审核。使用 staging-review.sh 列出、查看、批准或拒绝提案。context 类型永不自动提升。

部署步骤

  1. 运行 bash skills/total-recall/scripts/setup.sh — 自动创建梦境循环所需目录。

  2. 添加夜间 cron 任务:

    # 梦境循环 — 每日凌晨 3 点执行
    0 3 * * * OPENCLAW_WORKSPACE=~/your-workspace bash ~/your-workspace/skills/total-recall/scripts/dream-cycle.sh preflight
    
  3. 使用 prompts/dream-cycle-prompt.md 作为系统提示词配置你的 cron 智能体。推荐模型组合:Claude Sonnet(用于梦境分析与决策)、DeepSeek v3.2(用于低成本、高速观察)。

  4. 初始几晚启用 READ_ONLY_MODE=true。每次运行后检查 memory/dream-logs/,确认其拟归档内容是否符合预期。

  5. 确认无误后,切换至 READ_ONLY_MODE=false。

配置

变量 默认值 说明
DREAM_TOKEN_TARGET 8000 归档合并后 observations.md 的目标 token 数
READ_ONLY_MODE false 设为 true 以启用只读分析(不执行写入)

文件说明

文件 说明
scripts/dream-cycle.sh Shell 辅助脚本:preflight、archive、update-observations、write-log、write-metrics、validate、rollback
prompts/dream-cycle-prompt.md 夜间梦境循环运行所用的智能体提示词
dream-cycle/README.md 梦境循环快速参考文档
schemas/observation-format.md 扩展版 observation 元数据格式说明

创建的目录

memory/
  archive/
    observations/        # 归档条目(按夜拆分为单个 .md 文件)
    chunks/              # Observation 分块组
  dream-logs/            # 夜间运行报告
  dream-staging/         # 等待人工审核的模式提升提案
  .dream-backups/        # 运行前安全备份
research/
  dream-cycle-metrics/
    daily/               # 每夜生成的 JSON 格式指标

故障排查

观察者未运行?

  • 检查 logs/observer.log 中的错误日志
  • 确认 OPENROUTER_API_KEY 已正确设置且有效
  • 验证 cron 是否启用:crontab -l

会话启动时未加载 observations?

  • 确保智能体启动指令中包含读取 memory/observations.md 的逻辑
  • 确认 MEMORY_DIR 指向正确路径

响应式监听器未触发(Linux)?

  • 运行 systemctl --user status total-recall-watcher
  • 检查 inotify-tools 是否已安装:which inotifywait
  • 查看监听器日志:journalctl --user -u total-recall-watcher -f

梦境循环归档过于激进?

  • 启用 READ_ONLY_MODE=true,先审阅梦境日志再正式启用
  • 调高 DREAM_TOKEN_TARGET 值,减少单次归档量

梦境循环归档不足?

  • 降低 DREAM_TOKEN_TARGET 值,触发更积极的合并策略

设计灵感

本系统的设计灵感源自人类睡眠期间的记忆机制——海马体(观察者)负责即时捕捉经历,而在睡眠巩固阶段(反思者),重要记忆得以强化,噪声则被舍弃。

延伸阅读:《你的 AI 存在注意力缺陷》

“把你那屁股弄到火星上去。”——好吧,至少让你的智能体把记忆运转起来。

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习