Hindsight 记忆备份 3 步指南:从首次备份到故障恢复
【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight
你的 AI 智能体在 Hindsight 里积累了几个月的项目知识和用户偏好,一旦数据库损坏或误操作清空,这些记忆只能重来。Hindsight 自带的hindsight-admin命令可以把整套记忆导出成一个 zip 快照,故障时再整库还原——本文带你从第一次备份走到多租户恢复。
🔍 备份保护的是什么:Hindsight 记忆数据全景
Hindsight 把智能体记忆存在 PostgreSQL 的表里,一次备份会完整导出这些内容:
- 记忆银行(bank,记忆的隔离容器)及其配置
- 文档与分块(chunk,文档切分后的检索单元)
- 记忆单元:事实(facts)、经验(experiences)、观察(observations)
- 实体及其共现关系、记忆链接(memory links)
- 心智模型(mental models)、指令、Webhook
- 审计日志、异步操作等内部运维表
备份默认作用于publicschema;多租户部署下每个租户是独立 schema,可以用--schema单独圈定范围。备份文件是一个 zip,内部按外键依赖顺序存放 22 张核心表,全程在REPEATABLE READ隔离级别的事务内完成,导出的是一张前后一致的全库快照。
🛠️ 核心操作:日常备份与故障恢复怎么做
如何创建第一个 Hindsight 记忆备份
先安装 CLI(随hindsight-api包提供,装完hindsight-admin即可用):
pip install hindsight-api -U安装成功后运行一条命令,就会把当前 schema 的全部记忆表导出成 zip:
hindsight-admin backup /backups/hindsight-2026-09-15.zip执行时它会逐张表打印进度,结束时输出两行:Backed up 12834 rows across 22 tables和Backup saved to /backups/...zip。文件落盘且行数大于 0,这次备份就算成功。
如果是 Docker 部署,在 API 容器内执行同样的命令,环境配置会自动继承:
docker exec -it hindsight-api hindsight-admin backup /data/backup.zip注意:容器内路径重启可能丢失,建议随后把文件同步到宿主机或对象存储。
如何配置每日自动备份脚本
备份支持用 cron 定时执行。最小脚本只保留三行关键逻辑:
# /usr/local/bin/hindsight-backup.sh DATE=$(date +%F) hindsight-admin backup "/var/backups/hindsight/$DATE.zip" find /var/backups/hindsight -name '*.zip' -mtime +30 -delete # 保留 30 天把它挂进 crontab(crontab -e):0 2 * * * /usr/local/bin/hindsight-backup.sh,每天凌晨 2 点生成一个备份并自动清理 30 天前的旧文件。hindsight-admin读取与 API 相同的HINDSIGHT_API_DATABASE_URL环境变量,脚本环境里必须能看到它,否则命令会直接报错退出。
故障场景下如何执行一键恢复
⚠️restore会先删除目标 schema 里的全部现有数据,再导入备份。恢复前请先对现状再备份一次;跳过这一步,目标里未备份的新写入会全部丢失。
确认后执行:
hindsight-admin restore /backups/hindsight-2026-09-15.zip它会询问This will DELETE all existing data... Continue?,输入 y 后逐表回放,成功时最后两行是Restored 12834 rows across 22 tables与Restore complete。恢复建议安排在停写窗口执行,避免新旧数据交错。
多租户下独立恢复的 3 个步骤
Hindsight 多租户按 schema 隔离,备份和恢复都可以只针对单个租户,其他租户不受影响。
- 先做一次整库兜底备份:
hindsight-admin backup /backups/all.zip。 - 单独恢复出问题的租户:
hindsight-admin restore /backups/tenant-acme.zip --schema tenant_acme --yes--yes跳过交互确认,供脚本使用;不带它则恢复前会停下等你输入。
- 恢复后检查向量索引覆盖。经历过逻辑恢复的银行可能缺少按银行划分的向量索引,召回会回退到更慢的全局索引。运行:
hindsight-admin repair-bank --all --dry-run # 先看缺哪些 hindsight-admin repair-bank --all # 确认后用后台方式重建repair-bank用CREATE INDEX CONCURRENTLY重建索引,不阻塞线上读写,可以重复执行。
📈 让备份更可靠:频率、存储与演练策略
备份策略按环境定频率即可:
| 环境 | 频率 | 保留期 | 存放位置 |
|---|---|---|---|
| 生产 | 每日全量(高写入可加每日两次) | 30 天 | 异机或对象存储 |
| 开发 | 每日或每周 | 7 天 | 本地磁盘 |
| 测试 | 每周 | 14 天 | 本地磁盘 |
如果备份连续 2 天失败、或同一 schema 的备份大小突然增大 50% 以上,让监控告警提醒你查一下磁盘和写入量。如果超过一个月没有验证过备份,把它恢复到测试库跑一次——能成功导入且召回正常,这个备份才算可用。
如果目标库和备份文件在同一块磁盘上,则一次磁盘故障会同时失去两者,备份文件要放在独立的磁盘或区域。恢复后记得核对记忆银行数量,并跑一两个代表性查询确认智能体行为没变。
🎯 记住这三件事
hindsight-admin backup导出一张包含 22 张核心表的一致性快照,zip 文件就是全部记忆。restore是"先清空目标 schema 再导入",先备份现状再恢复,多租户用--schema圈定范围。- 备份的价值靠演练兑现:每月恢复一次到测试库,失败就当天排查。
下一步:把每日备份脚本挂上 cron,然后在本月内完成一次完整的恢复演练。更多参数见 官方 admin CLI 文档。
【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考