ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何给 Hindsight 做记忆备份与灾难恢复:5 分钟跑通全量备份、校验和恢复

如何给 Hindsight 做记忆备份与灾难恢复:5 分钟跑通全量备份、校验和恢复 如何给 Hindsight 做记忆备份与灾难恢复5 分钟跑通全量备份、校验和恢复【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsightHindsight 是一个为 AI 智能体提供持久记忆的开源系统智能体学到的事实、经验和观察都落在它背后的 PostgreSQL 数据库里。一旦这个库损坏或丢数据智能体积累的所有记忆就归零。照本文操作你可以用 hindsight-admin 工具在几分钟内完成一次全量备份并掌握校验和恢复的完整流程。先看清风险一次没有备份的升级能丢什么真实事故往往很短一次磁盘故障或者一次版本升级时迁移任务中途挂掉PostgreSQL 的数据文件就再也读不出来了。几个月里智能体沉淀的对话事实、项目约定、用户偏好随库一起消失它从懂业务的老人退回每次都要重新自我介绍的新人。而且上下文窗口补不回来——会话一结束未写进记忆系统的信息就没了备份只能在你动手的那一刻之后才存在。所以下面这套流程的正确姿势是先备份再动任何有风险的变更。数据存在哪里一个 PostgreSQL schema 就是备份的最小单元所有记忆数据都在 PostgreSQL 的一个 schema 里默认是 public多租户部署下每个租户对应一个独立 schema。备份和恢复都以 schema 为最小单元而不是单条记录。一个 schema 里包含记忆银行bank及其配置文档与切片实体及其关系记忆单元事实、经验、观察实体共现关系和记忆链接心智模型与指令、webhooks 和文件存储内部运营表异步操作、审计日志、图维护队列最后一类容易被忽略但正是它们让恢复后的库行为一致而不是只剩一堆数据。首次备份一条命令产出带清单的 zip 包hindsight-admin backup一条命令即可完成全量备份工具随hindsight-api包一起安装。hindsight-admin backup /backups/hindsight.zip输出路径不带.zip后缀时会自动补上。这条命令直连数据库而不是走 HTTP API所以要和 API 部署在同一台主机或同一个容器里运行让它继承同一份HINDSIGHT_API_DATABASE_URL配置。备份在单个 REPEATABLE READ 事务内完成得到一张跨所有表的一致快照zip 包里除了各表数据还带一个 manifest.json逐表记录行数、字节数和列结构后面校验全靠它。多租户部署时用--schema指向某个租户 schema 就能只备它hindsight-admin backup /backups/tenant-acme.zip --schema tenant_acmeDocker 部署时在 API 容器内执行docker exec -it hindsight-api hindsight-admin backup /data/backup.zip怎么确认这份备份真的可用备份有效性的判断标准只有一条它能在目标库上完整还原并被正常查询。分三步做成本从低到高。第一步核对输出和 manifest。备份结束会打印总行数和表数行数忽高忽低、或比预期明显偏少都说明数据写入侧先出问题了。用unzip -l列出包内容确认 manifest.json 和各表数据文件齐全。第二步也是最重要的一步恢复演练。每把备份丢进一个独立的测试库走一遍完整恢复绝不在生产库上演练。第三步恢复后比对数字。控制台的银行统计页面能直接看到记忆单元数量拿它和恢复前的数字对照再跑几条有代表性的召回查询结果一致才算演练通过。恢复之前必须做的三件事恢复命令会先清空目标 schema 的全部现有数据再导入这一步不可逆所以动作之前必须做完三件事先给当前数据做一次备份——万一要回退你有恢复前这一版。确认要恢复的 zip 来自预期的时间点。文件损坏或版本不匹配时工具会在清空数据之前报错退出生产数据保持原样。确认--schema指向的就是目标 schema避免把租户 A 的数据灌进租户 B。确认无误后执行hindsight-admin restore /backups/hindsight-2024-01-15.zip交互确认脚本里加--yes跳过确认。恢复到指定租户 schema 时带上--schemahindsight-admin restore /backups/tenant-acme.zip --schema tenant_acme --yes整个恢复在单个事务里完成要么全部导入、要么完全不动不会留下半新半旧的状态物化视图刷新和序列同步也会自动处理。跨版本备份恢复时目标库不再存在的列会被自动剥掉不会因此报错。⚠️ 逻辑恢复不会重建 bank 级的向量索引——索引依赖在线写入路径增量维护恢复出来的库会退化成全局索引 后过滤召回变慢且可能漏结果。恢复后务必跑一次hindsight-admin repair-bank --all它用并发方式重建缺失索引、幂等、不阻塞在线读写。如果只是想迁移单个记忆银行比如换嵌入模型、换向量扩展用 bank 级导出导入而不是整库恢复export-bank打出的 zip 不含向量导入时由目标实例用自己的模型重新生成。注意import-bank是整库恢复不是合并目标 bank 已存在会直接失败可加--target-bank换个新名字导入。命令细节见 admin CLI 文档。日常运营频率、监控与演练备份策略按环境区分即可一张表说清楚环境频率保留期限恢复演练生产每日全量30 天每季度一次开发/测试每周全量7 天不做强制要求备份文件生成后立刻复制一份到另一块盘或对象存储。数据和备份放在同一块盘上等于没备。盯着两个信号备份任务的成功率、备份文件大小的突变。体积突然掉零或暴涨通常说明数据写入侧已经先出了问题。卡死的异步操作不算数据丢失但会拖住记忆更新。用hindsight-admin worker-status看处理中的任务发现长期不动的条目用decommission-worker worker-id把它释放回队列。演练记录耗时和结果留底。在测试库里发现备份文件损坏比在生产事故现场发现便宜得多。最小可行方案每天一条hindsight-admin backup定时任务保留最近 30 天每份备份复制到独立于数据盘的第二存储位置恢复前先对当前库做一次备份每季度在测试库完整演练一次备份 → 校验 → 恢复恢复后执行repair-bank --all并核对银行统计数字【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表