Hindsight 0.5.2 深度解读:实体共现图、心智模型召回控制与可靠性修复 Hindsight 0.5.2 深度解读实体共现图、心智模型召回控制与可靠性修复【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsightHindsight 0.5.2 是一次以“可观测性与可控性”为核心主题的版本更新控制平面新增实体共现图Entity Co-occurrence Graph可视化、心智模型刷新Mental Model Refresh引入可配置的召回参数、异步操作开始暴露底层任务载荷与文档 ID同时修复了 retain、consolidation 与嵌入式守护进程embedded daemon中的一批可靠性问题。读完本文你将了解 0.5.2 各项新特性的具体能力、对应的源码实现位置以及各可靠性修复解决了什么边界问题便于在升级与排障时精准定位。版本总览0.5.2 相对 0.5.1 是drop-in replacement可直接替换核心 API 无破坏性变更。本次发布的主要内容包括Entity Co-occurrence Graph在控制平面中可视化 bank 内部实体之间的共现关系Recall Controls for Mental Models心智模型触发 API 接受召回控制参数可调刷新时的上下文范围Async Operation Observability异步操作retain、consolidation、reflect暴露任务载荷与所触碰的文档 IDRevamped Bank Statisticsbank 统计视图基于统一的现代 UI 原语重构信息密度更高Identifying User-AgentPython、TypeScript、Rust/Go 客户端统一发送带版本信息的User-Agent头Reliability Fixes覆盖 consolidation 重试预算、retain 嵌入数量不匹配、嵌入式守护进程清理、OpenClaw 插件钩子注册、bank 模板配置校验与 TypeScript SDK 类型导出共 6 项修复Changelog 工具调整首次将hindsight-integrations/的变更从主 changelog 中剥离详见文末。Entity Co-occurrence Graph不写查询即可看清 bank 的知识图谱形态控制平面新增了共现图视图展示一个 bank 内哪些实体在记忆中一起出现。它能帮助运维人员快速发现倾向于共现的簇——人物、项目、工具——并支持从某个节点直接跳转到连接这些实体的记忆。这是实体解析entity resolution与图检索graph retrieval的天然配套为运维人员提供了一种无需编写查询即可审视 bank 知识图谱形态的可视化手段。服务端entity_cooccurrences聚合表与图端点从源码结构看该功能的数据底座是 Postgres 中的entity_cooccurrences聚合表——Postgres 存储实现直接读取这张表来构造图图端点实现在 API 路由 中操作 ID 为get_entity_graph内部委托给 memory 引擎的get_entity_graph引擎层将其路由到具体存储的聚合实现接口声明见 BaseMemoryStore.get_entity_graph。从注释可以推断只有“拥有自己实体数据”的存储才会覆写此方法Postgres 存储读取其entity_cooccurrences表接口签名还带有limit默认 1000与min_count默认 1两个过滤参数可按共现频次裁剪稀疏边共现关系的写入与实体解析流程紧密相关entity_resolver 中的注释明确指出该聚合“由实体图端点与解析阶段的消歧信号共同读取”即共现数据既是可视化来源也是实体消歧的输入信号数据模型层面的维护如级联删除语义、聚合回填可分别在 graph.py 与 alembic 迁移历史中追溯例如alembic/versions/b5d4e3f2a1c9_backfill_entity_cooccurrences_event_time.py即为共现事件时间的回填迁移。控制平面从实体列表到星图视图的导航前端实现位于 entities-view.tsx该视图在“关系模式”星图与“列表模式”之间切换通过listEntities分页加载实体每页 50 条选中某个实体后并发发起两个请求——getEntity拉取实体详情listMemories按entityId反向检索该实体关联的全部记忆并渲染为时间线。渲染侧则由 constellation.tsx 的星图组件承载图数据经graph-data模块转换后呈现。也就是说博客中“从节点导航到连接记忆”的能力对应的是实体 → 记忆反向查询 时间线展示的完整交互闭环。Recall Controls for Mental Models给心智模型刷新加“变焦”心智模型Mental Model是从 bank 底层事实中综合出的结构化知识。在 0.5.2 之前驱动心智模型刷新的召回步骤使用固定默认值0.5.2 起心智模型触发 API 接受召回控制参数可以调节每次刷新拉取多少、以及拉取什么类型的上下文。这一能力对应两类典型场景需要更紧、更聚焦某主题的心智模型时收窄召回范围希望在某次特定刷新中扩大覆盖时放宽召回的“网”。结合仓库中围绕心智模型的大量测试如 test_mental_model_trigger_flags.py、test_mental_model_trigger_tag_groups.py、test_mental_model_refresh_pending_dedupe_3487.py 等可以推断触发刷新本身已支持 flag 与 tag group 维度的筛选0.5.2 的召回控制是在此基础上进一步把刷新内部 recall 步骤的参数也暴露出来使“触发条件”与“召回范围”形成两级可调的刷新控制面。Async Operation Observability让异步操作可关联、可审计Hindsight 的 retain、consolidation、reflect 等均以异步操作形式执行。此前操作记录只能看到状态看不到内容——即它实际在处理什么。0.5.2 起异步操作开始暴露底层任务载荷task payload操作被调度时携带的参数所触碰的文档 ID 列表。这一变化带来的直接收益是可以把一个异步操作反向关联到它摄取的文档或调度它的任务上适用于三类场景——仪表盘展示、排查卡住stuck的操作、审计 worker 行为。配合控制平面的操作视图运维人员可以在不再猜测 worker 内部状态的情况下定位积压原因。Revamped Bank Statistics更高信息密度的 bank 统计视图控制平面的 bank 统计视图已基于一套现代化的共享 UI 原语重构信息密度更高图表更易于快速扫读同一套原语也被复用到控制平面的其他视图中保证整体观感一致。从后端视角看bank 统计数据的读取有明确的多存储适配设计如 BaseMemoryStore 中的count_memories_many、last_write_at_many等批量接口分别支持对一批 bank 一次性取回记忆计数与最后写入时间并支持strongread-your-writes一致性级别选择——这意味着统计视图的“最后写入时间”等指标在多 bank 场景下并非逐 bank 往返查询。相关实现可进一步参考hindsight-api-slim/hindsight_api/engine/bank_stats.py一带的统计聚合代码及其测试 test_bank_stats.py。Identifying User-Agent让流量来源“自报家门”所有官方客户端——Python、TypeScript、Rust/Go——现在会在每次 HTTP 请求中发送可识别的User-Agent头。这使得服务端日志、代理日志与可观测性仪表盘更易阅读可以一眼看出是哪个 SDK 版本在产生流量、发现环境中过时的客户端版本、在调试时按客户端过滤流量。以 Python 客户端为例HindsightClient 构造参数 支持传入可选的user_agent覆盖默认值默认值取自DEFAULT_USER_AGENT常量注释特别说明该覆盖主要面向集成方integrations使用。TypeScript、Rust 与 Go 客户端在hindsight-clients/typescript、hindsight-clients/rust、hindsight-clients/go下均有对应的 User-Agent 处理逻辑与测试如 client_options.test.ts行为保持一致。Reliability Fixes六项可靠性修复逐项解析0.5.2 修复了一批在生产与长时基准测试中暴露的边界问题1. Consolidation 重试预算落在正确的调用点重试预算retry budget此前没有真正在 LLM 调用点生效导致 consolidation 可能在无感知地多试或少试。修复后配置的 retry 限制被正确应用于 LLM 调用处consolidation 实际遵循配置的重试上限。对应行为可用 test_consolidation_retry_budget.py 与 test_consolidation_round_limit.py 验证。2. Retain 嵌入数量不匹配不再崩溃此前当生成的 embedding 数量与提取出的 fact 数量不一致时retain 会抛出IndexError。0.5.2 改为检测并妥善处理这种不匹配而不是直接崩溃。这与仓库中嵌入批处理相关逻辑hindsight-api-slim/hindsight_api/engine/retain/下的编排与批量嵌入代码对应相关测试可参考 test_retain_chunks_embedding_batching.py。3. 嵌入式守护进程清理加锁超时嵌入式模式embedded mode的清理路径在获取锁时改为带超时获取消除了一类在锁竞争激烈时关闭shutdown挂死的问题。源码印证见 embedded.py锁获取调用为self._lock.acquire(timeout5.0)即最多等待 5 秒后放弃等待并继续走清理流程而不是无限期阻塞。该行为的回归测试为 test_cleanup_timeout.py。4. OpenClaw 插件钩子注册回归修复OpenClaw 插件此前在反复加载时存在回归auto-recall / auto-retain 可能静默停止触发。修复后插件在每次入口调用entry invocation时都会可靠地注册其 agent 钩子。插件实现位于 hindsight-integrations/openclaw/。5. Bank 模板配置校验对齐BankTemplateConfig的校验现已与_CONFIGURABLE_FIELDS集合对齐无效或此前被静默忽略的配置项会在模板应用template application时即被捕获而不是在运行中产生难以解释的行为。相关实现与测试可参考 test_bank_template_configurable_fields.py、test_bank_template_full_roundtrip.py。6. TypeScript SDK 类型导出BankTemplate类型现在从包根package root重新导出使用者无需再深入子路径subpath导入。对应测试为 hindsight-clients/typescript 中的导出面测试类型定义见 hindsight-clients/typescript/src/index.ts。Changelog 工具集成包退出主 changelog0.5.2 也是第一个使用调整后 changelog 生成器的版本仅改动hindsight-integrations/目录的提交不再出现在主 changelog 中。原因是集成包已迁移到独立的发布节奏——每个集成有自己的 tag 与 per-integration changelog——把集成变更从核心 changelog 中剥离使核心发布说明聚焦于 API、控制平面、客户端与基准。仓库中配套的工具脚本包括 generate-openapi.sh、release-integration.sh 等体现了“核心与集成双轨发布”的流程设计。适用前提与升级说明0.5.2 相对 0.5.1 无核心 API 破坏性变更可直接升级实体共现图依赖服务端Postgres 存储维护的entity_cooccurrences聚合表从源码结构看该聚合随实体解析与记忆写入持续更新对仅有 store-owned 存储的 bank图数据来自其自有聚合User-Agent 头由官方客户端自动携带集成方如需自定义可通过客户端构造参数覆盖但建议保留 SDK 版本信息以维持流量可识别性。如需更完整的逐项变更清单可查阅原始发布说明 Whats new in Hindsight 0.5.2。【免费下载链接】hindsightHindsight: Agent Memory That Learns项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考