github Tencent/TencentDB-Agent-Memory v0.3.6

10 hours ago

[0.3.6] - 2026-05-28

🚀 新功能

  • Recall 上下文预算控制 (#71 / #70):新增 recall.maxCharsPerMemoryrecall.maxTotalRecallChars 配置,按分数顺序裁剪超长条目并丢弃溢出部分,避免长会话因记忆膨胀挤占上下文。
  • L1 / L2 / L3 提示词按用户输入语言自适应 (#38):l1-extractionl1-dedupscene-extractionpersona-generation 四个 prompt 的自由文本字段现在跟随用户消息语言书写,无需配置 locale
  • Embedding sendDimensions 可选关闭:新增 embedding.sendDimensions 配置项,设为 false 时省略请求体中的 dimensions 字段,可对接 BGE-M3 等固定维度模型。
  • Gateway 可选 Bearer 鉴权 + CORS 白名单:新增 server.apiKey / TDAI_GATEWAY_API_KEYserver.corsOrigins / TDAI_CORS_ORIGINS,启用后非 /health 路由需携带 Bearer token,constant-time 比较防时序攻击。Hermes Python 客户端同步支持 MEMORY_TENCENTDB_GATEWAY_API_KEY
  • Offload collect 模式:新增 offload.mode: "collect",仅执行数据采集而不触发 L3 压缩,适用于纯数据积累或调试场景。

🐛 修复

  • L2 LLM 失败导致 scene_blocks/ 被清空 (#88):LLM 抛错时自动从最新备份恢复 scene_blocks/,fail-soft 设计。
  • 场景文件名含空格导致 Persona Scene Navigation 引用失效:新增 filename-normalizer.ts,在 SceneExtractor.extract 中自动归一化文件名。
  • api.runtime.stateundefined 导致注册崩溃 (#78 / #85 / #79):加可选链 + fallback,支持 runtimeState.resolveStateDir()OPENCLAW_STATE_DIR~/.openclaw 三级降级。
  • contextEngine slot ID 与插件名不一致:改为 memory-tencentdb,避免 openclaw doctor --fix 重置 slot。
  • L1.5 settle 永不返回导致 L2 卡死:增加 60s 超时,未配置 Context Engine slot 时自动 force-settle。
  • Standalone 文本任务仍暴露工具 (#58 / #59):enableTools=false 时彻底不传工具列表。
  • L2 cold-start skip 误更新 l2LastRunTime:仅在确实运行过时更新时间戳。
  • sanitizeText 误删 emoji / CJK / Math Bold 等非 BMP 字符 (#30 / #31):正则加 u flag,只匹配孤立 surrogate。
  • Emergency 截断在 MIN_KEEP 拒绝下死锁:新增 _emergencyTruncateOversized,兜底强制删除并配对清理。
  • 多轮 aggressive compression 累计耗时:由 6 轮全量 tiktoken 改为单趟精确切点,615 条消息 84s→14s。
  • FP-HEAD-DELETE 误删新消息:改用 FP-BOUNDARY-DELETE + BOUNDARY-INCR-SKIP,重放场景 38s→122ms。
  • 首次 assemble 慢:增加 fast-token-estimate 前置短路,29s→1.4s。
  • Token 计算精度details 加入 INTERNAL_KEYSl3TiktokenEncoding 默认改为 cl100k_base
  • Dockerfile.hermes 生成的 config.yamlapi_key (#77 / #81):同步写入 model.api_key
  • 安装脚本多处问题 (#18 / #19 / #20 / #54 / #55):支持 HERMES_AGENT_DIR 覆盖、root 不再递归 su、systemd 环境用绝对路径 node。
  • Cleaner 安全加固:拒绝无效 cutoff、expired/total > 80% 阻止删除、最小保留护栏。

✨ 改进

  • l3TiktokenEncoding 默认改为 cl100k_base,匹配主流国产/开源模型分词器。
  • Offload 日志降级:AGGRESSIVE / EMERGENCY 等降到 debug,仅超 10s 输出 WARN。
  • Docker 文档补充 cd docker/opensource 前置步骤;新增 question/consultation issue 模板。

⚠️ 配置项变化(向后兼容)

Key 默认值 说明
recall.maxCharsPerMemory 0 0/未设置 = 不裁剪
recall.maxTotalRecallChars 0 0/未设置 = 不裁剪
embedding.sendDimensions true false 时不携带 dimensions,适配 BGE-M3 等
l3TiktokenEncoding cl100k_base(原 o200k_base仅在显式依赖 o200k_base 时需手动覆盖

Full Changelog: v0.3.5...v0.3.6

Don't miss a new TencentDB-Agent-Memory release

NewReleases is sending notifications on new releases.