Commit Graph

180 Commits

Author SHA1 Message Date
xiaowei 1ef1747769 E3 完成:增量 embedding 验证
E3 已实现(代码早已存在,本次验证确认有效):
- Go Commit() 在 core.go:79 调用 Embedder.EncodeSingle() → BGE HTTP 8000
- vector 随文本通过 IPC lancedb_insert 发送到 Rust,直接存储不重编码
- 验证:commit 后立即 recall,测试记忆排第一得分 0.843 

更新:
- IMPLEMENTATION-FIVE.md: E3 现状修正(已实现)+ 验收标准打勾
- WORKLOG.md: E3 状态 + 下一步改为 E4 图谱推理
- 状态: E1/E2/E3 已完成,E4-E5 规划中
2026-05-31 15:17:35 +08:00
xiaowei f65dee6a3d E1/E2 完成:图谱导航激活 + 多 agent 命名空间验证
E1 — 图谱导航激活:
- 移除 ExpandFromResults 中 5 条残留 debug fmt.Printf 语句(graph_sqlite.go)
- Recall pipeline 已通过 server.go:112 SetGraphExpander 接入,无需额外代码

E2 — 多 agent 命名空间激活(验证完成,无需代码改动):
- Hermes: agent_id=hermes-a06 → namespace=hermes-main(deriveNamespace)
- OpenClaw: agent_id=openclaw, namespace=openclaw-main(zhiyi client 显式传递)
- Rust sidecar: search/scan_all 均有 namespace 过滤(only_if)
- 验证: hermes-main vs default-main 同一 query 返回不同 ID,隔离生效

更新:
- WORKLOG.md: E1/E2 状态 + 详细记录
- IMPLEMENTATION-FIVE.md: E2 现状修正(代码早已实现)+ 验收标准打勾
- 状态: 规划阶段 → E1/E2 已完成
2026-05-31 15:05:32 +08:00
xiaowei cbe4026834 E1: remove debug fmt.Printf from ExpandFromResults, update WORKLOG
- Remove 5 residual fmt.Printf("[E1] ...") debug statements from
  SQLiteGraphStore.ExpandFromResults (graph_sqlite.go)
- Recall pipeline already has graph expansion wired via server.go:112
  (SetGraphExpander(graphStore)) — feature was implemented previously
- ExpandFromResults trigger: len(results) < 5, BFS 1-hop, dedup by ID
- Update WORKLOG: E1 completed, G6.1 cluster_only mode explained,
  G6.2/G6.3 consolidated, add cd0f898/cc615c5 commits, update 下一步
2026-05-31 14:50:56 +08:00
xiaowei cd0f898829 fix: eps=1.0 (19 clusters from 1486 items), add col_vector() for FixedSizeListArray reading
- eps: 0.1 → 1.0 (p50=1.011, meaningful semantic clustering)
- col_vector(): parse FixedSizeListArray and Float32Array for LanceDB vector column
- search() and scan_all() now read actual vectors instead of vec![]
- client.go: remove duplicate Epsilon field, eps=1.0
2026-05-31 14:35:29 +08:00
xiaowei cc615c54d9 docs: add consolidate fix work log (2026-05-31) 2026-05-31 11:58:26 +08:00
xiaowei 1fa8349e48 fix: mode propagation, eps=0.1, BGE connectivity check, vector storage, WriteTimeout 60s
Key fixes:
- Go task mode now correctly propagates to Rust sidecar via IPC (RunWithMode)
- DBSCAN eps lowered from 1.5 to 0.1 (cosine threshold 0.995)
- Add BGE HTTP connectivity check (TcpStream 2s timeout) before Step 4 quality backtrace
- Fix LanceDB insert_batch: use Float32Array::from_iter_values + try_new with None validity
- Fix embed.rs: add .timeout(10s) on encode request
- Fix consolidation_pipe.go: nil guards on report
- Fix main.go: WriteTimeout 60s (was 10s, causing exit 52 on full mode)
- Add vector zero detection + debug logging (norms, sample distances)
- Log warning when BGE HTTP unreachable (skip quality backtrace instead of hanging)
2026-05-31 11:46:59 +08:00
xiaowei 7ac626e847 fix: useful_count type + revert resp.Result (use report_json)
1. Feedback端点  类型修复 (core.go)
   - 之前传 map[string]int,Update() 只处理 map[string]string/map[string]interface{}
   - int 被当作 string case 处理, 被丢弃
   - 修复: map[string]interface{}{"": 1}

2. IPC 搜索字段名 (lancedb_ipc.go)
   - Rust send_ok 用 report_json,不是 result
   - 错误改用 resp.Result 导致 IPC 结果永远为空
   - 回退到 resp.ReportJSON (这是正确的)
   - 加 Result 字段只是为了日志可见性(不被 Rust 填充)

验证: recall_count=6, useful_count=1 确认写入 LanceDB
2026-05-31 07:43:42 +08:00
xiaowei 8d3582046c fix: IPC 字段名 + recall_count 持久化 + feedback 端点
1. IPC 字段名修复 (lancedb_ipc.go)
   - Rust lancedb_search 返回 'result' 字段,Go ipcResp 用 'report_json'
   - 两边字段名不匹配导致 ReportJSON 永远为空,Search() 降级到 localSearch
   - 后果:recall_count 只写 Go 缓存,不写 LanceDB,重启后丢失
   - 修复:ipcResp 加 'Result' 字段 (json:"result"),Search() 改用 resp.Result

2. Update 扩展  支持 (lancedb_ipc.go)
   - 原来只有 recall_count 支持 ,useful_count/not_useful_count 被丢弃
   - 新增 getIncCachedValue() 统一处理所有 counter 字段
   - 加日志:Update OK / Update FAILED 可见
   - 修复 Feedback 端点  传递问题(map[string]int 而非 map[string]string)

3. /api/v1/feedback 端点 (core.go + server.go)
   - POST memory_id + useful/not_useful,通过 LanceDB.Update() 持久化
   - 之前返回 404

破坏性:无(Search 降级是隐式行为,原代码已有 fallback)
2026-05-31 07:36:31 +08:00
xiaowei 190e700876 docs: 更新 DESIGN.md — 同步 v3.8 实施状态
- Appendix E(统一记忆规划)→ 改为「v3.8 实施完成」状态
- 新增「原始会话 vs 语义记忆」澄清(Section 1.3)
- 版本日志标记 v3.8/v3.9 已实施
- 状态改为「v3.8 部分实施」
- 原始会话各自存储路径(Hermes: ~/.hermes/sessions/,
  OpenClaw: ~/.openclaw/workspace/sessions/)
2026-05-31 06:46:10 +08:00
xiaowei 7684bc4075 docs: 紧急修复 - service 文件路径冲突,数据完好 2026-05-31 04:41:23 +08:00
xiaowei 09c2319d7e fix(G6): recall_count 并发递增 + cache population
问题:
1. recall goroutine 通过 id 查 _local.memories 总是 cache miss(cache key 格式不匹配)
2. Update() 用 defer unlock,IPC 调用在锁外,并发时丢失递增
3. 缓存命中时跳过 incrementRecallCount

修复:
1. recall.go: 结果写入 _local.memories(cache key=id)
2. lancedb_ipc.go: 移除 defer unlock,整个 IPC 调用在锁内
3. lancedb_ipc.go: Update 发送 cache 当前值(不是硬编码 "1")
4. lancedb_ipc.go: 支持 map[string]string 和 map[string]interface{} 两类
2026-05-31 02:14:56 +08:00
xiaowei eac0dfc889 docs: 更新服务拓扑信息,WORKLOG.md补全进程/存储/API/环境变量 2026-05-31 01:56:35 +08:00
xiaowei 9900b30acc docs: 更新 WORKLOG.md — G6.2 LLM修复 + Qwen3.5-122B切换 + G7-G9补全 2026-05-31 01:39:40 +08:00
xiaowei 0ef3f2f0ba fix(G6.2): LLM model换qwen3.5-122b,deploy service同步更新 2026-05-31 01:25:51 +08:00
xiaowei b175b82b01 fix(G6.2): MiniMax M2.7 reasoning_content fallback + LLM API key 修复 2026-05-31 00:51:12 +08:00
xiaowei 3b031ed2e7 fix(G7): skill trial路由 + LLM API key 传递到 Rust sidecar + Authorization header 2026-05-30 23:55:43 +08:00
xiaowei e95ae36236 G7.1 skill修复: trial路由{name} capture + Beta-Bernoulli后端统一
- Fix /api/v1/skills/{name}/trial route: was '/skills/' (no capture) → '/skills/{name}/trial'
- Skills.Trial now delegates to BayesianSkills.RecordTrial (was broken simple ETA)
- Skills.List now reads from BayesianSkills (was reading from wrong store)
- 3 successful trials → η=0.8, status=active (Beta-Bernoulli verified)
2026-05-30 23:21:34 +08:00
xiaowei dbb43ce9b1 docs: G6 完成状态 + 新增 G7/G8 2026-05-30 23:00:54 +08:00
xiaowei 51a0747324 fix(G6): 修复 Rust IPC 字段名映射 + cluster_only 模式 + consolidation timeout
- client.go: Result 字段名从 clusters/noise 改为 clusters_found/noise_points(匹配 Rust)
- consolidation_pipe.go: 使用 cluster_only 避免 LLM 阻塞;GraphPruned 改为 0(cluster_only 不做 pruning)
- server.go: consolidation handler 加 30s timeout,避免 HTTP 挂起
2026-05-30 22:58:27 +08:00
xiaowei ad831b4e7f docs: 更新 G5 完成状态 + G6 待做 2026-05-30 22:28:33 +08:00
xiaowei d4c13e7377 feat(G5): eval 评估框架完整实现
G5.1 - eval/run namespace 支持 + 完整 IR 指标
G5.2 - eval/generate 生成 12 条金标(4类×3级),recall 自动获取 expected_ids
G5.3 - vprop 反向传播端点 + V 值查询接口(/trace/vprop, /vvalue/memory/)
2026-05-30 22:26:20 +08:00
xiaowei a629afd4cb docs: 工作记录更新 G1-G4 2026-05-30 22:00:53 +08:00
xiaowei 93671dc1d6 feat: 接入 WSPrefetchAdapter 到 recall 管线
- 新增 WSPrefetchAdapter 实现 storage.PrefetchPusher 接口
- 当 agentID 为空时使用 WSBus.Broadcast(支持多 Agent)
- 在 NewAPI 中通过 SetPrefetchPusher 注入
- WebSocket prefetch.push 事件在 CO_OCCURS 权重 > 0.6 时触发
2026-05-30 21:58:26 +08:00
xiaowei 928468042f fix: MMRSelect 使用字符 bigram Jaccard 相似度替代空向量 cosineSimilarity
原问题:Rust LanceDB IPC search 不返回 vector,导致 cosineSimilarity 永远为 0,
MMR 退化为纯相关性排序(无多样性去重效果)。

修复:改用 Content 字段的字符 bigram Jaccard 相似度,并修正 MMR 公式
(从 (1-λ)*rel - λ*maxSim 改为 (1-λ)*rel + λ*(1-maxSim),
  使 maxSim 高时 MMR 降低,符合设计文档 §2.6)
2026-05-30 20:57:16 +08:00
xiaowei 69d41c3087 fix: E1 extractPotentialEntities 使用 utf8.RuneCountInString 而非 len() 计算中文字符数
- len(string) 返回字节数而非字符数,导致所有 2-8 字中文词被错误过滤
- 原始代码用 continue,现已恢复正确迭代逻辑
- 添加 unicode/utf8 导入
2026-05-30 20:33:22 +08:00
xiaowei 31712986de fix(graph_sqlite): fix ExpandFromResults - wrong field access + Chinese entity extraction
Root causes fixed:
1. ExpandFromResults accessed p["to"] but SQLiteGraphStore.Navigate
   returns {"source","target","relation","weight"} - field name mismatch
   caused graph expansion to always return empty
2. Original logic checked seen[r.ID] (memory ID) against entity name
   (neighbor string), which never matched - removed stale logic

Also improved extractPotentialEntities:
- Now handles Chinese continuous character sequences (2-8 chars)
- Chinese entities extracted as whole words, not split by spaces
- English capitalized words preserved with original casing

Changes:
- ExpandFromResults: correct field access (source/target/relation),
  bidirectional neighbor detection (forward + reverse edges),
  separate seenEntities map for entity dedup
- extractPotentialEntities: full rewrite for Chinese + better English
  word tokenization without space-based splitting
2026-05-30 19:17:12 +08:00
xiaowei 04057637e0 docs: add 织忆五步实施计划 E1-E5,附测试验证方案
E1: 图谱导航激活
E2: 多agent命名空间
E3: 增量embedding
E4: 图谱推理
E5: 产品UI(长期)
每个阶段含阻塞记录+进度追踪
2026-05-30 18:58:16 +08:00
xiaowei 5927f7d740 fix(selfoptimize): repair 3 dashboard metrics that were stuck at 0
1. gap_closure_rate: RecordMiss now increments Dash.TotalGaps; Close
   calls Dash.RecordGapClosed(). Previously denominator was never written.
2. auto_resolve_rate: scanConflicts now calls Dash.RecordConflictResolved
   after each AutoResolve. Previously consolidation path bypassed Dashboard.
3. avg_distill_loss: merge-count heuristic scaled from 0.01 to 0.002
   with 0.05 cap. Previously 50 merges = 0.50 loss (same weight as 50 LLM
   distillations), corrupting the average.
2026-05-30 18:03:49 +08:00
xiaowei 35f78ed14b chore: fix gitignore, remove stale graph.json, add MemoryMax limits
- Fix broken .gitignore (literal \n chars removed)
- Add go/build.sh to .gitignore
- Remove empty stale graph.json (SQLite graph.db is real store)
- Set MemoryMax=2G for zhiyid + zhiyi-sidecar services
- Switch VLLM_ENDPOINT to local bge-m3 (port 8000)
2026-05-30 17:58:27 +08:00
xiaowei 05c4a2d32e fix(metrics): sync Prometheus zhiyi_total_memories from LanceDB stats
- Stats handler now updates TotalMemories/TotalEpisodes gauges on each call
- Startup goroutine initializes metrics 1s after boot (waits for Rust sidecar)
- Fixes zhiyi_total_memories showing 0 instead of actual count
2026-05-30 17:39:38 +08:00
xiaowei daabd54649 fix(graph_sqlite): add busy_timeout + stale WAL/SHM cleanup on startup
Root cause: No busy_timeout set → immediate 'database is locked' on restart
when stale WAL/SHM/journal files remain from crashed previous instance.

Fix:
- On open(): clean stale -wal/-shm/-journal files (only if main db exists)
- After sqlite3_open(): set busy_timeout=10000ms (10s wait for locks)
- This eliminates the InMemoryGraph fallback on restart
2026-05-30 17:35:29 +08:00
xiaowei cd49a2801a fix(ws): add per-conn mutex to prevent concurrent WriteJSON panic
Root cause: Broadcast() and Push() launched multiple goroutines
writing to the same websocket.Conn simultaneously. Gorilla websocket
does not support concurrent WriteMessage/WriteJSON.

Fix: add connMu sync.Map (*websocket.Conn → *sync.Mutex) to WSManager.
Each WriteJSON now goes through writeWithLock() which acquires the
per-conn mutex. Unregister() also acquires the lock before Close()
to prevent write/close races.

No functional changes to API surface.
2026-05-30 17:15:19 +08:00
xiaowei c5835def8f feat: 双插件推送 — Hermes + OpenClaw zhiyi 插件同步
Hermes 插件 (~/.hermes/plugins/memory/zhiyi/__init__.py):
  - 新增 memory_feedback 工具(useful/not-useful → VProp + Dashboard)
  - 新增 memory_metrics 工具(7项自优化指标)
  - recall 结果含 quality_score/v_value 字段
  - system_prompt 新增 feedback/metrics 使用引导

OpenClaw 插件 (openclaw-zhiyi-plugin/):
  - v0.5.0 — 3项修改由小雪完成
  - types.ts: RecallResult 加 quality_score/v_value
  - client.ts: navigate 改 GET+params; 加 metrics()/gaps()
  - index.ts: 注册 memory_feedback/memory_metrics/memory_gaps 工具
2026-05-30 15:00:33 +08:00
xiaowei 1337f2e21a feat: 自优化第二轮 — 待办5项全部补齐
1.  PassiveValidator: 已在 commit path 实现 (写入 ← 验证 前已存在)
2.  Consolidate报告→Dashboard: 合并数/冲突数/quality解析注入Dashboard
3.  VProp自动记录recall: 命中→success V决策, 空结果→failure
4.  DBSCAN eps调优: 0.5→0.3, 更适应1024d高维向量
5.  Gap repair证据: repair时写evidence日志, 注入LanceDB引用

总计: +120/-15行, 4个Go文件, 已部署重启
2026-05-30 12:44:50 +08:00
xiaowei 9d2bae3324 feat: 自优化7项全部补齐
P0: avg_distill_loss 接入 Dashboard
- RecordDistillLoss(loss) 在蒸馏回调中写入 Dash
- loss = 1 - Overall, 归一化 0-1

P1: V 值反哺召回排序
- storage.VValueProvider 注入(server.go → VProp.GetMemVValue)
- lancedb_ipc.go Search() 排序公式:30%V值+30%importance+40%QL

P1: PassiveValidator 写回 quality_score
- 蒸馏回调中 GetRecords() 遍历并 ldb.Update quality_score

P2: CausalTracker Redis 持久化 + 自动触发
- EnableCausalRedisPersistence() 启动加载
- persistCausal() 每次 RecordVersion/AddDependency 后同步
- commit 路径自动 RecordVersion(memID, content, agent, 'commit')

P2: GapDetector 自动 repair
- t_gap 触发器除关闭过期缺口外,对开放缺口调用 AutoRepair
- 修复成功后 RecordGapClosed

P3: Skill 结晶接入
- RecordTrial(name, success) 程序化接口
- 蒸馏/合并触发器中 RecordTrial('auto_distill', true)

P3: 指标采集 6h → 30min

测试: 全部重启持久化验证通过
2026-05-30 12:08:16 +08:00
xiaowei 945e5dfc66 feat: 自优化5项全链路补齐
P1: GapDetector Redis 持久化
- 13个缺口字段序列化为 JSON 写入 zhiyi:gaps HASH
- misses 计数器写入 zhiyi:gap_misses
- RecordMiss/Close 后自动 persist + 启动时 loadFromRedis
- 重启不丢缺口记录

P2: VPropagator Redis 持久化 + useful/not-useful 接入
- 决策记录写入 zhiyi:vprop_decisions HASH
- V 值写入 zhiyi:vprop_values HASH
- RecordDecision 后自动 persist
- feedback/useful → success, feedback/not-useful → failure

P3: 中文分类改进
- classifyGap 降级时检测中文同义词标记(又称/别名/aka)
- 含标记的 query 归为 GapSynonym(B) 而非 GapUnknown(A)

P4: QualityDropMonitor 阈值 5→2 + 蒸馏质量分
- minFeedbacks 从 5 降至 2,更早触发质量监控

P5: CoOccurTracker Redis 持久化
- RedisCoOccurPersist() 写入 zhiyi:cooccur HASH
- RecordRecall 中调用 ct.persist() 持久化每条边
- recall pipeline 中独立 goroutine 触发共访追踪
- LoadCoOccurFromRedis() 启动时加载

测试: 全部 5 项重启验证通过
2026-05-30 12:01:37 +08:00
xiaowei c861171031 fix: PassiveValidator GetRecords 返回 [] 而非 null 2026-05-30 11:53:42 +08:00
xiaowei bceb5fb059 feat: 自优化4大链路补齐
1. GapDetector 自动接入 recall 路径
   - MissRecorder callback → RecallPipeline
   - 0 结果时自动 RecordMiss(query)
   - server.go 中 gapDetector 初始化后挂载

2. Dashboard 持久化到 Redis
   - EnableRedisPersistence() 启动时加载
   - persist() 每次 mutate 后同步 13 个计数器到 Redis HASH
   - 重启不丢指标

3. PassiveValidator 接入 commit 路径
   - 新记忆提交后自动 P1/P2/P3 匹配验证
   - 复用 Validator.Validate 逻辑

4. VPropagator 接入 feedback/correct
   - 用户修正时记录决策 V 值
   - 使用 user_correct 来源 + success 结果

Closes: 10% 缺失代码 + 40% 缺失链路
2026-05-30 11:27:27 +08:00
xiaowei 064046f6da fix: 7维置信度评分打通 — IPC持久化 + 时间衰减 + QualityScore融合
Rust sidecar:
- 新增 lancedb_update IPC 处理器 + update() 函数
- 使用 LanceDB 0.15 table.update() + SQL 表达式实现字段级更新

Go service:
- Update() 方法双写:本地内存缓存 + Rust IPC 持久化
- RecallCount 和 LastRecalledAt 通过 IPC 写入 LanceDB(不再重启归零)
- Dash.RecordRecall 加入 recall 回调 → recall_hit_rate 正常采集
- Search 返回时实时计算重要性得分(7维融合):
  1. RecallCount → log(1+count) 对数缩放
  2. LastRecalledAt → recency_factor(<7d=1, 7-30d=0.5, >30d=0.2)
  3. QualityScore → 蒸馏 LLM 5维评分
  4. VolatileFlag → true 时降权 50%
  5. Tier 分层(core 永不衰减,预留)
  6. PageRank(SQLite 图谱端,暂未连通)
  7. CoOccur(内存追踪器,暂未持久化)
- 召回排序权重: rerank_score×0.7 + quality_score×0.3

待处理(需跨库协调):
- PageRank → Importance 联通(consolidation 周期写入)
- CoOccur 持久化(SQLite 存储)
2026-05-30 11:06:28 +08:00
xiaowei 36af93055f fix: 蒸馏产物不回写记忆库,OnDistillComplete缺InsertMemory
蒸馏引擎跑完后结果只进了图谱(SQLite)没有写回LanceDB记忆库。
OnDistillComplete回调中有graphUpdater.UpdateFromDistill()
和冲突检测,但没有将extracted facts作为distilled类别记忆
写入memories表。

修复:在server.go的OnDistillComplete回调中添加
ldb.InsertMemory循环,将result.Facts逐条写入LanceDB。
同时添加models import。

验证:
- force distill -> 5条distilled记忆写入,评分0.828-0.987
- 时间戳正确,category=distilled
- recall可通过category过滤获取蒸馏产物
2026-05-30 10:41:42 +08:00
xiaowei ff935587bd fix: Search IPC 捕获 created_at/updated_at,recall 时间戳不再为零值
lancedb_ipc.go Search() 反序列化 Rust 侧车返回结果时,
匿名 struct 缺少 created_at/updated_at 字段,导致所有
recall 结果 timestamp 为 time.Time{}(0001-01-01T00:00:00Z)。

修复:添加 CreatedAt/UpdatedAt string 字段 + 解析 RFC3339。
同时清理测试记忆。
2026-05-30 10:31:25 +08:00
xiaowei af14d7aa5f fix: 恢复LLM_API_KEY + 添加OBSIDIAN_VAULT配置
- 修复 systemd service 中损坏的 API key
- 添加 OBSIDIAN_VAULT 环境变量
- 添加 systemd override 机制
2026-05-30 09:25:52 +08:00
xiaowei d876b963c8 v3.8-graph: P0-P6 图谱增强
- P1: LLM prompt 升级 — 同时提取实体+事实+5D评分
- P2: NavigateBiDir 重写 — 真双向BFS路径查找+权重打分
- P3: CO_OCCURS/DERIVED_FROM/CONFLICTS_WITH 边创建
- P4: 图谱定期修剪 接入 consolidate 流水线
- P5: PageRank 自动更新 + 节点写回
- P6: ExpandFromResults 修复 — 实体提取+节点ID规整
2026-05-30 05:23:15 +08:00
xiaowei 9a6befed85 fix: distill callLLM5D JSON 解析加错误检查 + 日志
- 之前 Unmarshal 错误被忽略,静默返回零分
- 加错误日志和 fallback,方便调试
2026-05-30 05:08:53 +08:00
xiaowei f8e6d27342 feat: distill 支持 reasoning 模型 + LLM_ENDPOINT 配置
- engine.go: 解析 LLM 响应时 content 为空则用 reasoning_content
- engine.go: Message 结构体加 ReasoningContent 字段
- service: LLM_ENDPOINT/LLM_MODEL/LLM_API_KEY 环境变量
- 模型: glm-4.7-flash (localhost:3000 v1 proxy)
2026-05-30 04:57:54 +08:00
xiaowei 2731e111dd feat: dailyLimit 50→5000 + VPropagator 激活 + 竞争性架构连接
- distill: dailyLimit 提升到 5000(原 50),允许大量 LLM 蒸馏
- cost_control: DefaultCostConfig.DailyLimit 同步改为 5000
- server: 添加 VPropagator 实例化,蒸馏完成时记录 V 值决策
- server: OnDistillComplete 回调中连接 Dash.RecordUseful() 仪表盘
- plugins: Hermes+OpenClaw 插件源码纳入仓库
2026-05-30 04:48:51 +08:00
xiaowei 2464689c32 feat: 集成 Hermes + OpenClaw 记忆插件到仓库
- plugins/hermes-zhiyi: 530行 Python 插件, 含 key 自检/重试/调试日志
- plugins/openclaw-zhiyi: v0.2.0 CJS, 修复 agent_id/namespace/register 同步
- Hermes 插件改动: commit 失败自动重试, key_prefix 调试日志, health 自检
- OpenClaw 插件改动: register 改为同步, 使用 registerService 做异步初始化
2026-05-30 04:46:42 +08:00
xiaowei da917f7eb8 feat: openclaw memory-zhiyi plugin v0.2.0 — 修复agent_id, 增加feedback/prefetch/forget/stats, 增强错误处理 2026-05-30 04:20:24 +08:00
xiaowei dbb9a032aa 新增: 本地 bge-m3 嵌入服务器 (embed-server.py) + 重索引脚本 2026-05-30 03:18:43 +08:00
xiaowei c52f07a892 进度更新: G1-G9 全部完成, Hermes 插件添加 WebSocket 2026-05-30 02:16:47 +08:00