Hindsight 自托管记忆引擎部署与灾备 SOP
本卡片记录 Hindsight 记忆引擎(向量记忆数据库 pgvector + API Worker)在 Debian 宿主机上的自托管 Docker 编排、与 Hermes Agent 的 MCP 工具链集成、以及基于 PostgreSQL 原生逻辑转储的灾备恢复标准流程。
一、 第一性原理架构设计 (动静分离与本地直连)
- 计算与存储层 (沙盒内部):
pgvector/pgvector:pg16容器承载 PostgreSQL 向量数据存储(海马体)。ghcr.io/vectorize-io/hindsight:latest负责后台认知蒸馏与 API 响应。
- 通信与网络隔离:
- API 8888 端口强行绑定宿主机环回网卡 (
127.0.0.1:8888),供本地 Hermes Agent 以零时延直连。 - Web 9999 端口仅在
cf-gateway内部网络暴露,通过 Cloudflare Tunnel 进行 Zero-Trust 安全穿透。
- API 8888 端口强行绑定宿主机环回网卡 (
- 模型中转:
- 依赖的 LLM 抓取通过
https://xlxz321701.yinf.de/v1(gemini-3.6-flash-high) 代理路由完成。
- 依赖的 LLM 抓取通过
二、 阶段一:Docker 服务编排部署
1. 工作空间与环境变量
mkdir -p ~/hindsight-server && cd ~/hindsight-server
# 生成 32 位高强度密码
tr -dc A-Za-z0-9 </dev/urandom | head -c 32 ; echo ''在 ~/hindsight-server/.env 中写入中转 API 密钥(注意进行脱敏处理):
OPENAI_API_KEY=[REDACTED]2. 编排文件 (docker-compose.yml)
version: '3.8'
services:
hindsight-db:
image: pgvector/pgvector:pg16
container_name: hindsight-db
restart: unless-stopped
expose:
- "5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: [REDACTED_POSTGRES_PASSWORD]
POSTGRES_DB: hindsight
volumes:
- pgdata:/var/lib/postgresql/data
networks:
- cf-gateway
hindsight-api:
image: ghcr.io/vectorize-io/hindsight:latest
container_name: hindsight-api
restart: unless-stopped
ports:
- "127.0.0.1:8888:8888" # 本地环回物理隔绝
expose:
- "9999" # 内部代理 UI
environment:
HINDSIGHT_API_DATABASE_URL: postgresql://postgres:[REDACTED_POSTGRES_PASSWORD]@hindsight-db:5432/hindsight
HINDSIGHT_API_LLM_PROVIDER: openai
HINDSIGHT_API_LLM_BASE_URL: "https://xlxz321701.yinf.de/v1"
HINDSIGHT_API_LLM_MODEL: gemini-3.6-flash-high
HINDSIGHT_API_LLM_API_KEY: ${OPENAI_API_KEY}
HINDSIGHT_API_WORKER_ID: "hermes-memory-worker-1"
depends_on:
- hindsight-db
networks:
- cf-gateway
volumes:
pgdata:
networks:
cf-gateway:
external: true3. 启动指令
cd ~/hindsight-server && docker compose up -d三、 阶段二:Hermes 工具链挂载
1. 注入 MCP 扩展模块
# 挂载 Hindsight 记忆引擎(REST API 桥接)
hermes mcp add hindsight_memory --url http://127.0.0.1:8888/mcp
# 挂载 TradingView 行情引擎(标准输入输出桥接)
hermes mcp add tradingview --command "uvx --refresh --from git+https://github.com/atilaahmettaner/tradingview-mcp.git tradingview-mcp"2. 系统灵魂 (SOUL) 认知约束
在 SOUL.md 末尾追加法则:
## 外部大脑与工具链调用 (External Memory & Toolchains)
你已接入 MCP 协议,必须严格遵守以下法则:
1. **绝对记忆中枢 (`hindsight_memory`)**:这是你唯一的长期记忆后端。
- 遇到环境规范、底层配置或核心指令,**必须**调用 `retain` 固化。
- 在执行任务前,**必须**调用 `recall` 检索历史偏好与规范,严禁凭空臆想环境状态。
2. **事实锚定 (`tradingview`)**:
- 在推演衍生品策略时,**必须**调用行情工具获取客观数据,严禁生成价格或波动率计算幻觉。四、 阶段三:灾备策略与系统容错 (Disaster Recovery)
1. 自动化定时备份脚本 (/usr/local/bin/backup_hindsight.sh)
采用 PostgreSQL 原生的逻辑转储(-F c Custom 压缩导出),剥离底层文件系统依赖。
#!/bin/bash
BACKUP_DIR="/root/hindsight_backups"
CONTAINER_NAME="hindsight-db"
DATE=$(date +%Y%m%d_%H%M%S)
FILE_NAME="hindsight_${DATE}.dump"
mkdir -p ${BACKUP_DIR}
# 逻辑转储
docker exec -t ${CONTAINER_NAME} pg_dump -U postgres -F c -d hindsight > ${BACKUP_DIR}/${FILE_NAME}
# 校验并删除超过 7 天的历史转储
if [ -s "${BACKUP_DIR}/${FILE_NAME}" ]; then
find ${BACKUP_DIR} -name "hindsight_*.dump" -type f -mtime +7 -delete
else
exit 1
fi定时 Cron 挂载(每天凌晨 04:00 自动执行):
0 4 * * * /usr/local/bin/backup_hindsight.sh >> /var/log/hindsight_backup.log 2>&12. 灾难恢复标准操作程序 (SOP)
如遇数据损毁,必须严格按照以下物理时序执行,防止数据库死锁与脏读:
# 1. 物理熔断通道,停止后台蒸馏
docker stop hindsight-api
# 2. 执行覆盖式恢复(自动清理残余表并重建 Schema)
docker exec -i hindsight-db pg_restore -U postgres -d hindsight --clean --if-exists < /root/hindsight_backups/hindsight_YYYYMMDD_HHMMSS.dump
# 3. 恢复通信
docker start hindsight-api相关链接
- DockerCompose工作流与更新 Docker 容器管理及三步法平滑更新
- Ignis自托管Obsidian部署 同类 Cloudflare Tunnel Zero-Trust 穿透方案
- Debian系统安全加固与优化 高精度 Chrony 时间同步与防爆破