MEMORY-GATEWAY-REPORT · SKILL · V1.0

记忆网关签名上报客户端

封装元极恒一记忆网关 /api/report/truth 的正确鉴权与上报,解决 401 Unauthorized。含 HMAC-SHA256 签名、真值上报、云端查询、写锁自动重试。

鉴权机制 已打通 · 勿再踩坑

头值
X-DIDDID-BR-000002
X-SignatureHMAC-SHA256 请求签名
X-Signature-Timestamp当前 Unix 时间戳(±300s 窗口)
签名密钥 = PBKDF2-HMAC-SHA256(passphrase, salt=b'yuanji-signing-salt', 100000, dklen=32)
签名消息 = f"{METHOD}|{PATH}|{timestamp}|{sha256('')}"
          # 关键:gateway 调 guard_request 未传 body → 用空 body hash
X-Signature = HMAC-SHA256(密钥, 签名消息)
✅ 正确签名 → HTTP 200 真值写入成功(本会话已多次验证)

命令速查 纯标准库

# 上报单条真值
python3 scripts/memory_gateway_client.py report --truth-id TRUTH-001 \
    --category meta_rule --content "真值内容" --source session-test
# 查询云端真值(X-DID 单头)
python3 scripts/memory_gateway_client.py query --q "关键词" --limit 5
# 签名密钥自检 / 健康检测
python3 scripts/memory_gateway_client.py secret
python3 scripts/memory_gateway_client.py health
下载 Skill 源码包 (ZIP)

踩坑记录 避免重复

错误根因解法
401 signature_required缺签名带 X-Signature + X-Signature-Timestamp
401 signature_mismatch用请求体 hash 签名改用空 body hash(guard_request 未传 body)
database is locked云端 directive_consumer 并发写锁自动重试(脚本已内置)
⚠️ 前置:密钥存云端(/root/zongyuan-yuanji/config/.yuanji_passphrase),需 SSH 可达,或用环境变量 MEMORY_GATEWAY_PASSPHRASE。
memory-gateway-report · 记忆网关签名上报客户端 V1.0 · Ω₀⊂⊙∞⊂Ω · DID-BR-000002
主页·流水线·产品·状态