| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(R8-B): 公开基准复现 + 加法式适配器指标 + P7-D 报告 - eval/benchmarks: 新增 matchFact 公开基准适配器包与单测(确定性、无副作用) - eval/run_kpi.go: 新增 -fact-adapter 开关(默认关闭,只增不改,不影响原生指标) - eval/reports: 补 P7-D 最终基准报告(MRR 0.9917 / fact v4 0.9607),标注旧摘要 SUPERSEDED 只增不改:默认关闭时逐位复现基线,适配器仅在开启时追加口径指标。 | 22 天前 | |
feat(R15): 四路合流(投毒检测可评测化 + opt-in 接线 + 合并度激活 + 工程债收口) A 路:投毒防护补上「检测」端(R14 及以前只有处置,ProvInjectionSuspect 无写入方) - kernel/poison_detect.go: 16 条 RE2 规则 + 1 条零宽/等价字符变体检测,ID 字典序静态声明, 全量扫描不截断,无时间无随机;DetectInjection 只出判定、MarkSuspect 只置标签 (高危 confidence 压到 0.3);WithInjectionDetection opt-in 追加,DefaultWritePolicies 仍 6 条 - eval/dataset/injection_v2.jsonl (342) / benign_near.jsonl (300):provenance 留空 - eval/polaris/polaris_injection.go: 独立入口,不进 holdout、不输出 M1/M2 - 实测 recall=1.0000 (342/342) / precision=1.0000 / fpr=0.0000 (0/300) B 路(已在 35626f1 提交):drift_pipeline / flush_pipeline,默认关 C 路:合并度死指标激活 - eval/holdout/holdout_v3.jsonl (840 行, L2 144, 实体 24 组) + check_holdout_v3.go - polaris_mergence.go: 仅新增 edges_per_relation / entity_coverage 两输出字段 - v3: l2=144 / mean_edges_per_memory=10.125 / entity_groups=24;v2 仍为 0(反向断言) D 路:工程债收口(含合流时首次真跑抓出的缺陷修复) - kernel/edge_persist_pg_test.go: PG 真机往返 13 用例(编译错误 6 处已修; 时间列改 BIGINT 存 unix ns 保真,原 TIMESTAMPTZ 微秒精度丢纳秒; Save 取 pg_advisory_xact_lock 串行化并发,原实现撞唯一索引) - eval/e2e/pg/setup_edge_persist.sh: 修引号未闭合导致的 dash 语法错误 - scripts/gate.sh: 8 项 → 12 项([7b] 受控修改审计 / [8] 投毒检测 / [9] 合并度激活 / [10] 接线默认关);修 [6] 纯测试条目假 FAIL 与 [9] 扫 stdout 找不到 JSON 的缺陷 - D3: 4 个既有 gofmt 噪音文件收口,全仓 gofmt -l 归零 - D4: 报告体积拆分约定(明细 *.detail.jsonl 不入库) - lightmem.md: 附录 D 更新为 R15 门禁矩阵 + D.5 缺陷登记 + 附录 B v2.4.2 验证(192.168.0.88,FreeBSD 15.1 / go1.25.14,全部 -count=1): - gate.sh: PASS 12 / FAIL 0 / SKIP 0(2 module) - PG 真机: EdgePersistPg 13 PASS / 0 SKIP;无环境下 13 SKIP 且 ok(红线 12) - 北极星: M1=1.0000 (800/800)、M2=0.2498、压缩 35.33%、fp vetoed=0, 与 R14 r14_final_holdout 逐字节一致(832178 bytes) - 红线:12 文件白名单逐文件 diff 一致;writepolicy.go / metrics.go diff 为空 | 21 天前 | |
feat(R28): 非 superuser 断言(L-240) + 可见性内存索引/结果缓存埋点(L-239) + 夹具两道保险 —— 门禁 15/0/0 | 17 天前 | |
feat(R16 收口): S1-S8 全部交付,P8 骨架可用 + 北极星三语料补评 + ZFS 容灾 【S1 Qdrant 后端】 - 新增 kernel/backend_qdrant.go(15KB,stdlib-only HTTP REST) - 实现 StorageBackend / LayerScanner / ComplianceBackend 三接口全 20 项方法 - cfg.Qdrant==nil 时返回明确 error,不静默降级(R15 诚实口径) - tokenize 词元重合度打分与 SQLite 骨架一致,保证 eval 可复现 - kernel/profile.go 接线 BackendQdrant 分支(只增不改,1 处 switch case) - 新增 kernel/backend_qdrant_test.go(5 项单测) 【S2 节点角色与拓扑】 - 新增 kernel/node_role.go:Coordinator/Worker/Archive/Gateway 四角色 + PreFilter/NodeRegistry/CrossNodeBroadcaster 接口 + 内存实现 + BuildTopology - 新增 kernel/topology.go:Topology(BFS hop 重算)+ RevocationStore(TTL 自清) - 新增 node_role_test.go / topology_test.go(8 项单测) - 接线默认关(R16 红线④),不进入主线 【S3 P5 应用连接器】 - 新增 kernel/connector_app.go:AppConnector + git 元数据扫描(无网络依赖) - 幂等入口走 IdempotencyLookup(§4.1 统一写入) - 新增 kernel/connector_app_test.go(7 项单测) 【S4 门禁与北极星口径】 - scripts/gate.sh:[1b] 全仓 gofmt 默认硬门禁(GATE_STRICT_FMT=1) - eval/polaris/polaris_holdout.go:corpus_note 动态化(与 config.holdout 同源) - 新增 r16_polaris_holdout450(450 条纯 LoCoMo,M1=0.8067) - 新增 r16_polaris_holdout_v2_corpusnote(800 条,M1=1.0000,与 R15 逐位一致) 【S5 FreeBSD jail vnet】 - manuals/p1-freebsd-zfs-setup.md §11A:jail vnet 修复 runbook + PG 迁入 - manuals/pf.rules:管理网段 192.168.1.0/24 → 192.168.0.0/24 对齐实机 【S6 北极星 holdout_v3 补评】 - 新增 eval/reports/r16_polaris_holdout_v3_20261016-015912.json - M1=1.0000(840/840),M2=0.2214,数据面 -7.13% 【S7 ZFS 快照容灾】 - 新增 scripts/zfs_backup.sh(298 行纯 POSIX sh) - manuals/p1-freebsd-zfs-setup.md §10(+255 行) - 0.88 真机端到端验收 ALL_DONE(快照/全量 send/增量 send/rollback/prune) 【S8 报告拆分】 - 三份 R16 北极星报告拆为 *_summary.json(入库)+ *.detail.jsonl(不入库) - 遵循 eval/reports/r15d_report_split_convention.md 【顺带修复】 - .gitattributes 补 *.golden / *.txt eol=lf(消除 golden 测试 CRLF 传输工件) - 新增 roadmap-v5.html(R16 真实进度版) - roadmap.md / README.md / docs/lightmem_promo_v2.3.md 同步更新 - .dumate/inbox 新增 4 份 R16 计划/交付/收口报告 红线:只增不改 Schema;北极星不降级;既有 SQL 不动;接线默认关; 运行平台 FreeBSD 第一优先(本机仅编辑与传输,未装 Go)。 | 20 天前 | |
feat(R15): 四路合流(投毒检测可评测化 + opt-in 接线 + 合并度激活 + 工程债收口) A 路:投毒防护补上「检测」端(R14 及以前只有处置,ProvInjectionSuspect 无写入方) - kernel/poison_detect.go: 16 条 RE2 规则 + 1 条零宽/等价字符变体检测,ID 字典序静态声明, 全量扫描不截断,无时间无随机;DetectInjection 只出判定、MarkSuspect 只置标签 (高危 confidence 压到 0.3);WithInjectionDetection opt-in 追加,DefaultWritePolicies 仍 6 条 - eval/dataset/injection_v2.jsonl (342) / benign_near.jsonl (300):provenance 留空 - eval/polaris/polaris_injection.go: 独立入口,不进 holdout、不输出 M1/M2 - 实测 recall=1.0000 (342/342) / precision=1.0000 / fpr=0.0000 (0/300) B 路(已在 35626f1 提交):drift_pipeline / flush_pipeline,默认关 C 路:合并度死指标激活 - eval/holdout/holdout_v3.jsonl (840 行, L2 144, 实体 24 组) + check_holdout_v3.go - polaris_mergence.go: 仅新增 edges_per_relation / entity_coverage 两输出字段 - v3: l2=144 / mean_edges_per_memory=10.125 / entity_groups=24;v2 仍为 0(反向断言) D 路:工程债收口(含合流时首次真跑抓出的缺陷修复) - kernel/edge_persist_pg_test.go: PG 真机往返 13 用例(编译错误 6 处已修; 时间列改 BIGINT 存 unix ns 保真,原 TIMESTAMPTZ 微秒精度丢纳秒; Save 取 pg_advisory_xact_lock 串行化并发,原实现撞唯一索引) - eval/e2e/pg/setup_edge_persist.sh: 修引号未闭合导致的 dash 语法错误 - scripts/gate.sh: 8 项 → 12 项([7b] 受控修改审计 / [8] 投毒检测 / [9] 合并度激活 / [10] 接线默认关);修 [6] 纯测试条目假 FAIL 与 [9] 扫 stdout 找不到 JSON 的缺陷 - D3: 4 个既有 gofmt 噪音文件收口,全仓 gofmt -l 归零 - D4: 报告体积拆分约定(明细 *.detail.jsonl 不入库) - lightmem.md: 附录 D 更新为 R15 门禁矩阵 + D.5 缺陷登记 + 附录 B v2.4.2 验证(192.168.0.88,FreeBSD 15.1 / go1.25.14,全部 -count=1): - gate.sh: PASS 12 / FAIL 0 / SKIP 0(2 module) - PG 真机: EdgePersistPg 13 PASS / 0 SKIP;无环境下 13 SKIP 且 ok(红线 12) - 北极星: M1=1.0000 (800/800)、M2=0.2498、压缩 35.33%、fp vetoed=0, 与 R14 r14_final_holdout 逐字节一致(832178 bytes) - 红线:12 文件白名单逐文件 diff 一致;writepolicy.go / metrics.go diff 为空 | 21 天前 | |
feat(R16 收口): S1-S8 全部交付,P8 骨架可用 + 北极星三语料补评 + ZFS 容灾 【S1 Qdrant 后端】 - 新增 kernel/backend_qdrant.go(15KB,stdlib-only HTTP REST) - 实现 StorageBackend / LayerScanner / ComplianceBackend 三接口全 20 项方法 - cfg.Qdrant==nil 时返回明确 error,不静默降级(R15 诚实口径) - tokenize 词元重合度打分与 SQLite 骨架一致,保证 eval 可复现 - kernel/profile.go 接线 BackendQdrant 分支(只增不改,1 处 switch case) - 新增 kernel/backend_qdrant_test.go(5 项单测) 【S2 节点角色与拓扑】 - 新增 kernel/node_role.go:Coordinator/Worker/Archive/Gateway 四角色 + PreFilter/NodeRegistry/CrossNodeBroadcaster 接口 + 内存实现 + BuildTopology - 新增 kernel/topology.go:Topology(BFS hop 重算)+ RevocationStore(TTL 自清) - 新增 node_role_test.go / topology_test.go(8 项单测) - 接线默认关(R16 红线④),不进入主线 【S3 P5 应用连接器】 - 新增 kernel/connector_app.go:AppConnector + git 元数据扫描(无网络依赖) - 幂等入口走 IdempotencyLookup(§4.1 统一写入) - 新增 kernel/connector_app_test.go(7 项单测) 【S4 门禁与北极星口径】 - scripts/gate.sh:[1b] 全仓 gofmt 默认硬门禁(GATE_STRICT_FMT=1) - eval/polaris/polaris_holdout.go:corpus_note 动态化(与 config.holdout 同源) - 新增 r16_polaris_holdout450(450 条纯 LoCoMo,M1=0.8067) - 新增 r16_polaris_holdout_v2_corpusnote(800 条,M1=1.0000,与 R15 逐位一致) 【S5 FreeBSD jail vnet】 - manuals/p1-freebsd-zfs-setup.md §11A:jail vnet 修复 runbook + PG 迁入 - manuals/pf.rules:管理网段 192.168.1.0/24 → 192.168.0.0/24 对齐实机 【S6 北极星 holdout_v3 补评】 - 新增 eval/reports/r16_polaris_holdout_v3_20261016-015912.json - M1=1.0000(840/840),M2=0.2214,数据面 -7.13% 【S7 ZFS 快照容灾】 - 新增 scripts/zfs_backup.sh(298 行纯 POSIX sh) - manuals/p1-freebsd-zfs-setup.md §10(+255 行) - 0.88 真机端到端验收 ALL_DONE(快照/全量 send/增量 send/rollback/prune) 【S8 报告拆分】 - 三份 R16 北极星报告拆为 *_summary.json(入库)+ *.detail.jsonl(不入库) - 遵循 eval/reports/r15d_report_split_convention.md 【顺带修复】 - .gitattributes 补 *.golden / *.txt eol=lf(消除 golden 测试 CRLF 传输工件) - 新增 roadmap-v5.html(R16 真实进度版) - roadmap.md / README.md / docs/lightmem_promo_v2.3.md 同步更新 - .dumate/inbox 新增 4 份 R16 计划/交付/收口报告 红线:只增不改 Schema;北极星不降级;既有 SQL 不动;接线默认关; 运行平台 FreeBSD 第一优先(本机仅编辑与传输,未装 Go)。 | 20 天前 | |
feat(R18): 合流收口 — PG e2e 缺陷账清零 + T2 多节点 gRPC 联调 + 北极星档位复跑 + roadmap 同步 A 线(PG e2e 缺陷账清零) - eval/e2e/pg: 引入 uniqueTenant/uniqueID 夹具隔离(os.Getpid + UnixNano), 不再依赖 TRUNCATE,fresh 库与历史残留库均可确定性 PASS(连跑 2 次验证) - confidence 断言加 1e-6 容差(方案 b 兜底) - kernel/migrations/001_pgvector.up.sql: confidence real -> double precision(方案 a, 触红线①③,裁定记录见 lightmem.md 新增 §D.8;存量 float4 库本轮不执行 ALTER) B 线(T2 多节点 gRPC 真机联调) - 新增 kernel/node_rpc_e2e_jail_test.go(env-gated,3 用例:Topology / Query / Revoke) 未设 LIGHTMEM_GRPC_E2E=1 时显式 SKIP,不假 PASS - 形态为「单机多监听」等效替代多 jail,理由与切换方法见手册新增 §11A.7.3.1 - 默认关守护 TestNodeRPCWiringDefaultOff 不受影响 C 线(北极星 qdrant / gRPC 档复跑,纯运行零改动) - 新增 eval/reports/polaris_r18_qdrant.json(832349 B)与 polaris_r18_grpc.json(832347 B) - M1 = 1.0000(800/800),mean_rr = 1.0000,M2 = 0.2498,与 R15 基线判分子树逐位一致 - 新增 .dumate/inbox/_R18_C线交付报告.md D 线(文档同步) - roadmap-v5.html: P8 甘特条 planned -> done(4 条,含内嵌 JSON) - roadmap.md: 5 处「」竖括号 -> 规范引号 合流复核 - 全仓 gofmt 曾 FAIL(B 线新文件注释缩进),已在 0.88 gofmt -w 修正并回写 - 红线核查:白名单 model/storage/lifecycle/compliance/backend_sqlite 零改动; 北极星 eval/polaris、rank_fusion.go、run_kpi.go、eval/holdout 零改动; go.mod/go.sum 无新增依赖 0.88 门禁:PASS 14 / FAIL 0 / SKIP 0(含 [11] PG 真机往返 13/13) 交付物与实测明细见 .dumate/inbox/_R18_收口报告.md | 19 天前 | |
feat(R28): 非 superuser 断言(L-240) + 可见性内存索引/结果缓存埋点(L-239) + 夹具两道保险 —— 门禁 15/0/0 | 17 天前 | |
feat(R24): 索引-内容解耦 + 静态记忆快车道(3FS/Engram)五线收口 基线 c908091(R23.3);门禁 PASS 12 / FAIL 1 / SKIP 1(FAIL 项 [1b] 的 11 个 文件全为历史遗留,与干净基线逐行相同,新增 FAIL=0);北极星 M1=1.0000, 七个数字与 R15 收口值逐位相同。 T0(阻塞门) - 0.88 对齐并重装到 c9080917a6de...,18443/18444 均 200 - L-225(P1):pgVisibilityPredicate 只追加 public OR 分支,逐字对齐 canView - 接缝预埋(router.go:4 个 interface{} 字段 + routeHooks + RegisterRoutes) - kernel/visibility_pg_test.go:真 PG public 跨租户 + 既有四值零回归 - kernel/router_seam_dump_test.go:三端点跨树逐位对拍(sha256 全等) A 线(Engram:L2 确定性查找表 + 快车道) - kernel/lookup.go:LookupIndex/LookupStats,键=hash(normalize(entity)|normalize(attr)) - 分流:唯一精确命中直达,否则回退并标 trace(no_index/miss/ambiguous) - kernel/lookup_test.go 23 Test + kernel/lookup_diffdump_test.go 跨树对拍 - 34 条查询对拍 sha256 全等;快慢一致率 30/30;bench ≈1/33.8 - L-228:三处「四层并行召回」注释订正为「顺序召回」 B 线(3FS:元数据为事实源 + 索引可重建) - kernel/reindex.go:Reconcile/RebuildIndex + 可选接口 VectorBackfiller/VectorIndexAuditor - L-227:Qdrant 不再把零向量冒充 vectorized,显式 pending + VectorSearch 过滤 - L-226:QueryParams 只增 IncludeSuperseded,三后端默认只返回当前生效版本 - 15 Test;Qdrant 真机重建后 zero=0 pending=0;Reconcile 幂等且只读 C 线(3FS 分层:访问模式确定性 + 成本感知晋升) - kernel/access.go:AccessTracker(Record 纯内存 / Flush 串行化 / 衰减 exp(-Δt/τ)+1) - L-223:AccessCount/RecentAccessScore 首次真实增长 - L-224:5 个死引擎经 RunLifecycleEngines 接线,默认关 - 17 Test;access_count 真实递增;衰减误差 <1e-9;-race 绿 D 线(3FS:L3 引用式存储) - kernel/refstore.go:RefStore/LocalRefStore + Hydrate + PurgeRefsForMemories - 21 Test;往返逐字节一致;篡改被 digest 拒;GDPR 级联挂接点显式声明 E 线(收口) - 重建北极星向量产物(4595 条 = A 3597 + B 600 + 增量 398)→ M1=1.0000 - lightmem.md 新增 D.3.1(产物位置/复跑前提/md5/工具链)+ D.11(L-223~L-228 关闭记录) - roadmap.md 新增「三·六、R24 收口留痕」 - scripts/gate.sh 登记 lookup:12 reindex:12 access:12 refstore:12 - _R24_收口报告.md + 五份线级交付报告 工程约定 - .gitignore 排除 eval/vectors 的 18.8MB 向量产物(只在 0.88,复跑必须去 0.88) - go.mod/go.sum 零变化(红线⑦);全部未 push,等业主示意(红线⑧) | 17 天前 | |
docs(R6): 四路收口——整合报告 + A 路交付权重默认化 - eval/weights/rank_weights_r6_ref.json(新):R6-A 交付权重,ref 权重 0.0->3.0 (最小达标点;2.0 仅 0.833,3.0 起 ref 桶 1.000),其余 7 路与 R5 完全一致。 公开 MRR 0.992(基线 0.9917)/ 合成 1.000 / 北极星 ref 桶 1.000,零回归。 - eval/polaris/polaris_voting.go:默认权重改指向 rank_weights_r6_ref.json, 缺失回退 R5 交付态(无参即得 P3 突破效果)。 - eval/reports/p7d_r6_summary.md(新):R6 四路整合报告——R5->R6 指标对照、 千脑五块落地、P3/P4/P7/P9 清除状态、新问题登记册(Q1 semantic 单点 / Q2 多视图劣化 / Q3 真实语料 / Q4 锚红利 / Q5 既有 gofmt)。 收口实测(0.88 /tmp/r6final 合流副本): - 公开 0.992 / 合成 1.000 / 北极星默认口径 0.9661 逐位不变 / A 激活口径 1.000 - gofmt -l 空、root+kernel 两模块 go vet/test 全绿 四路 commit:A 3b58b2f / B ad6eae4 / C 9fd7b46 / D 7ae070c + 本收口提交。 未 push(待用户示意)。 | 23 天前 | |
feat(R138-B): LIMS 智能路由与融合(P2)+ 评测集建设(P2.5) 任务书:.dumate/inbox/_R138_B线并行任务书.md —— A1~A9 全部交付。 kernel(P2) - A1 MemoryRouter 意图识别 + 跨层召回 router_mem.go - A2 多信号 rank 融合(RRF 变体 + 绝对分下限) rank_fusion.go + default_weights.json + 单测 - A3 WritePolicy 插件注册表 writepolicy.go + 单测 - A4 晋升/降级自动流转 lifecycle.go + 单测 - A5 Agent 记忆工具接口 router_tools.go + 单测 - A6 后台整合 worker consolidate.go + cmd/lightmem-kernel - 只增不改既有 Schema 语义(source_evidence 等为 lightmem.md §4.1 既有设计约定) eval(P2.5) - A7 评测集生成器 + 570 条评测集:单跳150/多跳150/开放域100/时序130(含双时态变更30) + 污染20/投毒20;交叉取模枚举保证 fact 唯一;模板 + 固定 seed,未调用 LLM - A8 KPI 基线评测器 + 首轮基线报告 eval/reports/ docs - lightmem.md §8 P2/P2.5 状态订正;§9 补首轮基线数字与「不可复现」提示 - .dumate/inbox/_R138_B线收口报告.md(A9 收口:DoD 自检、KPI 根因分析、红线自查) 验证(0.88 实机;scripts/a9_verify.sh → ALL PASS,退出码 0) - gofmt 无差异 / go vet / go build / go test ./... 全绿 - 评测集 570 条可复现(md5 c097b55c...);KPI 链路 RC=0 本轮发现的两个缺陷(已写入收口报告 §4.2 / §4.4,列为 P3 首要,本提交不修) - 评测集口径退化:同一 query 文本对应多条 expected_fact,得分被结构封顶在 34% - 基线不可复现:backend_sqlite.go 遍历 Go map 使并列打分顺序随机(复跑 6.0%~7.0%), 须先补 memory_id 兜底排序再谈权重校准 | 25 天前 | |
feat(R5-B): 合成集 multi-hop 样本重构 + temporal 标记样本补齐 + fact 边界归一化 - eval/eval_generate.go: multi-hop ExpectedMemoryID 从双元素重构为单元素(hop-2 最终答案),新增 ExpectedMemoryIDPrimary/Hop 字段,写入 all_multihop_dual.jsonl 供历史对照 - eval/generate_temporal.go: 新增(seed=42,纯模板,不调 LLM),生成 50 条 temporal 标记样本(20 真实 + 30 合成),覆盖 as_of/since/before/between 四种窗口形态 - eval/run_kpi.go: 新增 -temporal-samples / -fact-normalize flags;matchFactV3 追加边界归一化复判 + 边界对齐护栏;新增 firstRank/mrrOfRanks 辅助;multi-hop 主口径 MRR 改用 ExpectedMemoryIDPrimary - eval/run_kpi_fact_test.go: 新增 4 个 R5-B 单测(共 10 个,全绿) - 验收:合成集 multi-hop 主 MRR 0.500→1.000;公开基准 MRR 0.9845 不回归;C-indep FP 5→3;gofmt/vet/test 全绿 | 23 天前 | |
feat(R4-B): reference_frame 变化评测集(60条) + 信号复检(区分度100%) + 合成集波动isolate(根因=embedder) + -now-asof-default默认开启(不回归) - eval/generate_reference_frame.go: 新增评测集生成器(//go:build ignore, seed=42) 30组×2条=60条, 三候选fact完全一致仅ReferenceFrame坐标不同 target id含Z(字典序最大), rf权重为0时必然miss形成严格对照 - eval/dataset/reference_frame.jsonl: 60条变化评测集 - eval/run_kpi.go: 新增 -now-asof-default/-diag-ref/reference_frame桶统计/RefFrameSignal - eval/weights/rank_weights_en_r2.json: R2-A权重快照(isolate复现) - eval/weights/rank_weights_en_r4b_ref.json: rf=4.0对照权重 - eval/reports/reference_frame_20261012-155435.md: R4-B交付报告 关键结论: - reference_frame信号本身100%区分度, 但权重0.0将其关闭(rf=0.0: top-1 0% / rf=4.0: top-1 43.3%, 桶MRR 0.245→0.692) → R3-A §8修正为信号有效但权重关闭 - 合成集fact/top-1波动根因=char n-gram embedder(非权重): isolate A(R2基线)97.5%/69.25% → D(仅embedder)96.0%/67.74%(-1.5pp) 而C(仅R3-A权重)98.5%/70.19%(+1.0pp) 权重变更是正向的 - -now-asof-default: 公开MRR 0.975/合成MRR 0.843 均不回归 验证: gofmt -l无输出 / go vet ./... 全绿 / go test ./... 全绿 (0.88实测) 未push, 待用户示意 | 24 天前 | |
feat(R5-B): 合成集 multi-hop 样本重构 + temporal 标记样本补齐 + fact 边界归一化 - eval/eval_generate.go: multi-hop ExpectedMemoryID 从双元素重构为单元素(hop-2 最终答案),新增 ExpectedMemoryIDPrimary/Hop 字段,写入 all_multihop_dual.jsonl 供历史对照 - eval/generate_temporal.go: 新增(seed=42,纯模板,不调 LLM),生成 50 条 temporal 标记样本(20 真实 + 30 合成),覆盖 as_of/since/before/between 四种窗口形态 - eval/run_kpi.go: 新增 -temporal-samples / -fact-normalize flags;matchFactV3 追加边界归一化复判 + 边界对齐护栏;新增 firstRank/mrrOfRanks 辅助;multi-hop 主口径 MRR 改用 ExpectedMemoryIDPrimary - eval/run_kpi_fact_test.go: 新增 4 个 R5-B 单测(共 10 个,全绿) - 验收:合成集 multi-hop 主 MRR 0.500→1.000;公开基准 MRR 0.9845 不回归;C-indep FP 5→3;gofmt/vet/test 全绿 | 23 天前 | |
feat(R8-B): 公开基准复现 + 加法式适配器指标 + P7-D 报告 - eval/benchmarks: 新增 matchFact 公开基准适配器包与单测(确定性、无副作用) - eval/run_kpi.go: 新增 -fact-adapter 开关(默认关闭,只增不改,不影响原生指标) - eval/reports: 补 P7-D 最终基准报告(MRR 0.9917 / fact v4 0.9607),标注旧摘要 SUPERSEDED 只增不改:默认关闭时逐位复现基线,适配器仅在开启时追加口径指标。 | 22 天前 | |
feat(R5-B): 合成集 multi-hop 样本重构 + temporal 标记样本补齐 + fact 边界归一化 - eval/eval_generate.go: multi-hop ExpectedMemoryID 从双元素重构为单元素(hop-2 最终答案),新增 ExpectedMemoryIDPrimary/Hop 字段,写入 all_multihop_dual.jsonl 供历史对照 - eval/generate_temporal.go: 新增(seed=42,纯模板,不调 LLM),生成 50 条 temporal 标记样本(20 真实 + 30 合成),覆盖 as_of/since/before/between 四种窗口形态 - eval/run_kpi.go: 新增 -temporal-samples / -fact-normalize flags;matchFactV3 追加边界归一化复判 + 边界对齐护栏;新增 firstRank/mrrOfRanks 辅助;multi-hop 主口径 MRR 改用 ExpectedMemoryIDPrimary - eval/run_kpi_fact_test.go: 新增 4 个 R5-B 单测(共 10 个,全绿) - 验收:合成集 multi-hop 主 MRR 0.500→1.000;公开基准 MRR 0.9845 不回归;C-indep FP 5→3;gofmt/vet/test 全绿 | 23 天前 | |
feat(R2-A): RankFusion 英文权重重校准(坐标下降 12 轮,公开 MRR 0.546→0.940) - eval/run_kpi.go: 新增 -weights <path> flag(空=R3 默认权重,非空=加载指定 JSON) - eval/tune_rank_weights.go: 新增坐标下降搜索脚本(方案 α,跳过 semantic,调 keyword/entity/reference_frame) - eval/weights/rank_weights_en.json: 调优产物(keyword 1.5→2.7, entity 1.2→2.4, reference_frame 1.2→0.0) - eval/reports/tune_rank_weights_20261012-1342.md: 完整搜索轨迹与双源回归报告 验收(0.88 实测): - 公开基准 MRR 0.546→0.940(+0.394,目标 +0.05) - 公开 top-1 命中率 0.34→0.89(+55pp,目标 +5pp) - 合成集 MRR 0.821→0.841(无回归,目标 ≥0.811) - go vet / go test ./kernel 全绿 - 不 push,待用户示意 | 24 天前 | |
feat(R5-A): 接入真实向量 embedder(BGE-m3) + reference_frame 权重重校准 - kernel/embedder_vector.go: 实现 Embedder 接口, 静态向量 .npy 读取 + 余弦相似度, 确定性嵌入(同文本逐位一致), 未命中降级全零; Name=vector:BAAI/bge-m3 - kernel/embedder_vector_test.go: NPY 解析/元数据/Embed 确定性/未命中/缺失文件/nil 5 用例 - eval/vectors/gen_vectors.py: BGE-m3 离线嵌入(mean pooling + L2 归一化), 2756 条语料 CPU 1635.3s - eval/run_kpi.go: -embedder tfidf|vector|none flag; needVectorGenerate 修正为 uniqueCount 比较 (修重复生成 bug); 新增 RefFrameSignal 指标(expected_ref_top1/expected_top1_hit/ref_top1_and_hit) - eval/tune_rank_weights_v2.go: -embedder/-rk-binary flag 透传(修语义错配 bug); -include-reference-frame 将 reference_frame 纳入搜索变量 - 坐标下降(v1 联合权重起始): 1 轮收敛, reference_frame +0.1 后 bench MRR 不升被拒 => 明确结论: reference_frame 纳入后无收益, 保留 0.0 - semantic 单维扫描(2/3/4/5/6/8/12/16/20/30/50): sem=12 为公开基准与合成集双达标最优平衡点 (public 0.9901 / synth 0.8585, LoCoMo 4 条 rank 1/5/4/4) - 交付权重: eval/weights/rank_weights_en_r5.json (semantic=12.0, reference_frame=0.0) - L3 depth=2 重评估负收益(0.9900->0.9842), 保持关闭 - 红线遵守: 全程不调 LLM(BGE 嵌入属例外); Memory/RouterContext Schema 零改动; seed 无关确定性; 不 push | 23 天前 |
评测集(P2.5)
分桶定义
| 桶 | 条数 | 定义 | 与 §9 KPI 映射 |
|---|---|---|---|
| single-hop | 150 | 单条记忆即可回答 | 检索准确率(分桶) |
| multi-hop | 150 | 需 2+ 条记忆链式推理 | 多信号融合正确率 |
| open-domain | 100 | 无明确 schema,需开放推理 | 检索准确率(分桶) |
| temporal | 100 | 双时态变更,需判断生效区间 | 时序桶查询正确率 |
附加样本
| 类型 | 条数 | 说明 |
|---|---|---|
| 双时态变更 | 30 | valid_from/valid_until 变更,需 as_of 回溯 |
| 污染 | 20 | 低置信度错误记忆,应被降权 |
| 投毒 | 20 | prompt_injection_suspect,应被归档 |
加载方法
import "github.com/lightmem/kernel"
// 逐条写入 kernel(走 WritePolicy)。
for _, item := range items {
_, _ = srv.SaveMemory(ctx, item.Memory, item.User)
}
// 逐条查询(走 A1+A2)。
res, _ := srv.RecallAndFuse(ctx, kernel.RouterContext{
Text: item.Query, TenantID: item.Tenant, UserID: item.User, AsOf: &item.AsOf,
})
// 判定:res.Fused[0].MemoryID ∈ item.ExpectedMemoryID
与 §9 KPI 映射
- 检索准确率(总体):top-1 命中
expected_memory_ids的比例。 - 分桶准确率:按 bucket 分别计算。
- 时序桶准确率:
as_of回溯返回正确历史版本。 - 多信号融合正确率:冲突样本上人工评估融合结果(本轮先自动跑,标注"需人工复核")。
- 记忆污染率:被纠正记忆占总召回次数比。
生成
cd eval
go run ./eval_generate.go # 生成 dataset/*.jsonl
go run ./run_kpi.go # 跑 KPI,输出 reports/kpi_baseline_*.json
红线
- 不调 LLM 生成答案(避免污染指标)。
- 默认权重为占位值,待 A8 KPI 出数后按评测结论校准。