Commit Graph

275 Commits

Author SHA1 Message Date
小唯 b96cc2325f soul(v4.5): §7 组合技能铁律补『机械动作』第 0 步 —— 任何任务第一个动作 = skill-find.py 扫技能库
牧尘 09-11 批准写入。新增第 0 步:
  · 第一个动作 = python3 ~/.hermes/scripts/skill-find.py "<任务关键词/整句>"
  · 命中即 skill_view 加载,可组合多个;没扫就干 = 失职
  · 汇报时必须列出本次加载了哪些 skill(不写 = 无法自证执行过)
  · '搜不到 = 不存在':库里有但描述词对不上 = 白写 → 补自然表述
  · 写明背景(09-11 批评 + 根因:体系只防重复创建、从不防不去使用)

同时:hermes-self-improvement v4.7.1 triggers 补 meta 类词
(SOUL.md/AGENTS.md/MEMORY.md/身份文件/加铁律/牧尘纠正)
—— 实测此前问『改 SOUL.md 加铁律』时它进不了前三

SOUL.md 20164 → 21345 bytes(+5.9%,8 章结构完好)
2026-09-11 01:45:08 +08:00
小唯 66132bd4e6 fix(skill-find): 停用词按词切('怎么' 曾被切成单字导致误命中)+ 弱匹配阈值 12 与降级阶梯
- QSTOP 原为 set(字符串)=单字集合,'怎么/如何' 等双字疑问词不在其中 →
  「量子计算机怎么修」误命中 FRP 技能。改为 单字集 ∪ 显式双字疑问词表。
- 最高分 < 12 时提示『没有强匹配』并给三级阶梯(搜现成→装→自建),
  而不是硬塞一个低分候选。
- 回归:6 个正例仍 6/6 命中正确技能(obsidian/密钥清历史/vault整理/看板/验收/2B下沉)
2026-09-11 01:42:24 +08:00
小唯 03e8a1d7d7 skill(hermes-self-improvement): v4.7.0 补上「任务开始前先扫技能库」硬约束 0 + 新增检索器 skill-find.py
根因(牧尘 09-11 指出『技能本来都有,你却不去使用』):
  体系里有「创建前必查重」硬约束,但整条链路只防『重复创建』,
  没有任何一处防『不去使用』。实测:3 小时会话只主动加载了 2 个技能。

本次落地:
  1) scripts/skill-find.py —— 任务→技能 检索器(name/trigger/description 加权 + 中文滑窗切词)
     实测 6/6 命中正确技能(obsidian/密钥清历史/vault整理/看板/验收/2B下沉)
     无命中时给降级阶梯提示(web_search 找现成 → skill-library-porting → 自建)
  2) hermes-self-improvement 新增「硬约束 0」+『搜不到=不存在』可发现性纪律
     + 说明为何后台 curator 不能替代这一步(它写它的,我不回读=白写)
  3) description 补『任务开始前先扫技能库』语义

配套修正(可发现性):git-repo-hygiene / notes-vault-curation 的
description+triggers 补入任务的自然表述(原文搜『密钥泄露』命中不了)
2026-09-11 01:42:05 +08:00
小唯 5db634f42b skill(library): 固化 curcurator 本轮新增技能 + 修正可发现性
新增(此前未提交,随时可能丢):
  devops/credential-leak-response/  (含 3 个脚本 + 1 参考)
  devops/git-repo-hygiene/          (含 3 参考 + 1 脚本)
  devops/notes-vault-curation/  devops/knowledge-vault-curation/
  devops/obsidian-vault-sync/scripts/

可发现性修正(搜不到=白写):
  git-repo-hygiene      description+triggers 增「密钥/凭证泄露、清历史、filter-repo、强推、明文口令…」
                        (原描述只有「推送积压/.git 膨胀/忽略规则」→ 搜"密钥泄露怎么办"根本命中不了)
  notes-vault-curation  description+triggers 增「乱码文件名/项目混入/密钥扫描」等自然说法
  obsidian-vault-sync   v1.4.0(前一次提交)

动机:牧尘指出『技能本来都有,你却不去使用』。根因不只是没查,还包括
库里的描述词与任务的自然表述对不上——搜不到等于不存在。
2026-09-11 01:41:15 +08:00
小唯 b1824d13fa skill(obsidian-vault-sync): v1.4.0 — 纠正'配置无法验证'的错判 + 补解码基线与运维地图
1. §1 自相矛盾修正:data.json 是 reverse+base64 混淆【可解】,
   解码读值 = 最强验证(实测 syncConfigDir=true 直接读出);
   远端 PROPFIND 降为交叉验证;mtime 只作"被重写过"的线索(不能定性覆盖成了什么)
2. 补 ignorePaths 字段 + 2026-09-11 解码基线(address/username/方向/冲突策略/间隔)
3. 新增「运维地图」:cross-ref notes-vault-curation / credential-leak-response /
   git-repo-hygiene / obsidian-plugin + 本 vault 三个常驻 cron + 说明书路径
4. description 扩到「Obsidian 管理」语义 + triggers 增 5 项(原先只匹配"同步",
   问"obsidian 怎么管"不会被加载)
2026-09-11 01:35:55 +08:00
小唯 A06 1462301816 chore(scripts): 从 mc vault 迁入 ai_gen.py (AI 图片/视频生成 CLI, 原 mc/小唯/配置/scripts/) 2026-09-10 23:13:45 +08:00
小唯 A06 7f04e7476b feat(mc-structure-check): 笔记库结构检查脚本 + cron 每周一 9:00
5 类检测: 编码变体/非笔记混入/凭证泄露/散落/空目录
watchdog 语义: 干净静默(--verbose 才输出)
2026-09-10 22:05:03 +08:00
小唯 A06 8d4220abb9 refactor(paths): KOCR/gaokao-site 项目迁出 mc → ~/projects/
- mc/会计工具 → projects/kocr (KOCR 生产项目, 12G)
- mc/gaokao-site → projects/gaokao-site
- 23 活动文件引用更新; 会话历史(sessions/logs)保持不动
- 6 skill bump: zhiyi/accounting-voucher-ocr/ocr-and-documents/gitea-repo-mirroring/devops-umbrella/ao-orchestrator
2026-09-10 18:40:45 +08:00
小唯 A06 5e727dacd2 feat(config-protector): auto-snapshot 加自动 push Gitea — 根治 commit 积压(原先只 commit 不 push 积了18个) 2026-09-10 18:30:27 +08:00
小唯 A06 6bb8befbd5 chore: 移出 kanban/.dispatcher.lock(运行时锁,2026-07-09 初始提交遗留) 2026-09-10 18:17:25 +08:00
小唯 A06 d54cf38265 fix(gitignore): kanban* 收窄 — 放行 kanban 代码/技能
原 'kanban*' 无路径限定,误伤:
- scripts/kanban-*.py (kanban-hub, kanban-2b-worker, kanban-opencode-dispatch,
  kanban-route, kanban-watch) — 生产脚本从未纳入版本管理
- skills/kanban-router|kanban-routing|kanban-agent-roster|kanban-dispatcher-ops|
  kanban-review-gate — 5 个技能从未纳入

收窄为 /kanban/ /kanban.db /kanban.db.*.lock /backups/kanban/ /profiles/*/kanban*
(只忽略运行时数据,已验证无数据泄漏)
2026-09-10 18:16:02 +08:00
小唯 A06 4e03c1b106 skill+config: agnes 2.0→2.5 清理 + 2B 44K×2 双槽同步
- config.yaml: llama-local context_length 90112→45056 (44K槽); 9处 agnes-2.0-flash→2.5
- 11 skill bump version: 现行引用(配置/路由/代码默认值)改 2.5; 历史审计记录保留
- SOUL: 路由表修正 (npc=网上免费deepseek·sensenova, dsh=本地llama-local)
- session-to-zhiyi.py: MAX_INPUT_CHARS 70000→32000 (44K槽适配)
- 注: skills/kanban-router|kanban-routing 被 .gitignore 'kanban*' 误伤未纳入追踪(既有问题)
2026-09-10 18:14:39 +08:00
小唯 A06 35ab722a7a auto-snapshot 2026-09-10 03:00:57 2026-09-10 03:00:57 +08:00
小唯 A06 be803d1180 fix(db-monitor): 健康路径显式 exit 0
[ -f x ] && rm x 当文件不存在时左侧短路 → AND-list 退出码 1 → set -e 下
脚本健康也 exit 1,会被 cron 判失败。改 rm -f + 末尾 exit 0。
2026-09-09 23:03:09 +08:00
小唯 A06 0d80d93576 fix(db-monitor): 弃用系统 CLI sqlite3 3.45.1 → python3 3.53.1 mode=ro + 修 db 计数空显示 1 的 bug
2026-09-09: /usr/bin/sqlite3 3.45.1 有 WAL-reset bug(#69784, vuln 3.7~3.51.2),
两代 SQLite 交替操作是 state.db 反复损坏元凶 → db-monitor 巡检也改 python3
mode=ro 与 gateway 同版本。实跑验证 4 库全 ok。顺修: DB_ALERT 空时 echo|wc -l
计 1 的历史显示 bug → grep -c 正确计 0。
2026-09-09 23:02:52 +08:00
小唯 A06 f0e8222ee5 skill(recurring-failure-root-cause): 第十层真凶终版 — CLI sqlite3 3.45.1 WAL-reset bug
2026-09-09 定案: snapshot-state-db.sh 每6h用 /usr/bin/sqlite3 3.45.1(vuln 3.7~3.51.2)
对 live WAL 库 .backup → 两代 SQLite(3.45.1 vs python 3.53.1)交替操作 → 周期性
撕裂 delivery_obligations。修复=snapshot/restart/restore 全改 python3 3.53.1 + 拒<3.51.3。
铁律: 反复损坏先审计所有碰库脚本的 SQLite 版本。
2026-09-09 23:00:38 +08:00
小唯 A06 3709287d28 health-watchdog 加 openclaw-gateway 监控: 停了自动拉起(09-09 实测 openclaw 9-6 被停后3天无人拉起, 现 30m 自愈) 2026-09-09 07:41:00 +08:00
小唯 A06 8a13319914 auto-snapshot 2026-09-09 03:00:34 2026-09-09 03:00:34 +08:00
小唯 A06 431ea47da1 default config: zhipu provider + fallback(llama-local 后) 2026-09-09 01:10:53 +08:00
小唯 A06 82e230986f cron fallback 链补智谱 glm-4-flash + 商汤 deepseek-v4-flash(实测1.0/1.3s可用): 本地MiniCPM→agnes→智谱→商汤 四层免费 2026-09-09 01:06:55 +08:00
小唯 A06 ff51317e2d bge GPU化(CUDA优先+OOM降级CPU,实测606MiB共存安全); gpu看门狗显存阈值92→85%防llama+bge撞车 2026-09-09 01:01:03 +08:00
小唯 A06 23cf5d80bf cron+蒸馏全切本地 MiniCPM5-2B: zhiyid.service→local/minicpm5-2b; daily_recap/stock/rsshub/github-digest 本地优先+agnes fallback; max_tokens≥800(reasoning 吃token致 content 空) 2026-09-09 00:53:46 +08:00
小唯 A06 2e0663b101 auto-snapshot 2026-09-08 03:00:10 2026-09-08 03:00:10 +08:00
小唯 A06 391cac8a9e skill(sqlite-db-corruption-recovery): 补模式16 根页/空闲页双重所有权 + 压缩关联结论 (v1.2.0→1.3.0, 15→16种模式)
t_1f88944e 02:17 丢失写入补上 — delivery_obligations 第4次单表损坏根因定案:
- 坏页58原始字节=合法旧代freelist trunk, sqlite_master声称是delivery根页 → 双重所有权
- auto-compress turn-hold失败与损坏相关非因果(代码证据: 单写连接+fence栅栏+不写delivery表)
- 禁用模式12 DROP+CREATE(实测扩大损伤), 须 .recover/VACUUM INTO/快照恢复
2026-09-07 19:49:44 +08:00
小唯 A06 23ba1cd590 auto-snapshot 2026-09-07 03:00:30 2026-09-07 03:00:30 +08:00
小唯 A06 ac03fad53b fix(模型根治): 移除本地4B+多平台防限流 — llama disable(gpu-watchdog不再拉起), 蒸馏/画像/全部cron切云(agnes主+glm-4-flash智谱替补+deepseek商汤末位), daemon.py call_llm真fallback链+按model路由, glm-4路由修正(智谱非商汤), 看门狗候选池扩充+ZHIPU key加载; skill固化: sqlite-db-corruption-recovery模式13(OOM根因定案)+provider-tiering防限流策略 2026-09-06 12:32:03 +08:00
小唯 A06 cbe560ce98 curator(2026-09-06): 技能库治理全部执行 — 补34个version/修8处name对齐/排除node_modules假技能/归档blocked-page-recovery+plan重复 2026-09-06 11:32:11 +08:00
小唯 A06 5ce7390c2c fix(optimizer+daemon): 统计口径与日志刷屏 — cron读jobs键(57任务)、daemon逐行分类(error 60295→~50)、compaction空转刷10万行停刷、深度思考日志改单行 2026-09-06 10:26:33 +08:00
小唯 A06 1b21f556f3 auto-snapshot 2026-09-06 03:00:26 2026-09-06 03:00:26 +08:00
小唯 A06 0bb65db27c chore(scripts): 腾讯db彻底退役 — MEMORY_RECALL_SPEC.md 归档 .archive/,移除 memory-system-check/self-upgrade/distill-watchdog/model-health 全部腾讯db检测残留 2026-09-05 11:07:42 +08:00
小唯 A06 0d6cecac62 chore: TencentDB 退役残留清理 + 资源看门狗修复 — distill-model-watchdog/model-health 短路 tddb 更新, resource-watchdog 改 wrapper(script不支持参数), 新增 post-optimize-observe 周观察采集 2026-09-05 06:25:53 +08:00
小唯 A06 edb74ab22d chore: TencentDB 退役后清理 — memory-system-check.sh 跳过 check_tddb(防每小时假告警), memory_recall.py parallel_query 短路 L1/L0, 新增 lance-vacuum.sh 周VACUUM 2026-09-05 05:02:29 +08:00
小唯 A06 458bae0baa fix(bge-proxy): local_started_by_proxy 状态丢失导致 8001 永不自动停 — 加标记文件恢复状态 2026-09-05 04:51:24 +08:00
小唯 A06 e58549425b memoryweave 35G→185M VACUUM + bge 按需化 + CBM 周更 (2026-09-05)
- memoryweave LanceDB VACUUM (lancedb 0.38+pylance 11, t.optimize(cleanup_older_than=0)):
  memories 16.46G→49M (5.9万版本残留), episodes 17.18G→83M (1.8万版本), 总 35G→185M
  数据完整: memories=11246, memory_search/memory_write 全链路验证通过
  快照: /home/muc/.memoryweave.snapshot-20260905 (cp -al 硬链接, 稳定后删)
- bge-embed 按需化: disable 常驻 + bge-proxy 拉起逻辑 (_ensure_local)
  - bge-proxy.service 去 Wants bge-embed; zhiyid.service Wants 改 bge-proxy
  - proxy 新增实发失败降级: health OK 但 embedding 500 → 标故障 + 300s 冷却 + 切 local
    (实测 104 embedding 500 → 自动拉起 bge-embed → 5s 返回 200)
- CBM 索引 cron 94b65de5e843: 每日 3:40 → 每周日 3:00 (避免每日 5G 内存峰值)
2026-09-05 04:12:16 +08:00
小唯 A06 55a37e2097 退役 TencentDB(TDAI): 双写停用 + TDDB_ENABLED开关 + 污染点切断 (2026-09-05)
- 架构结论: TencentDB L1 2677条系循环污染源(重复+幻觉人名), 源头即织忆/Soulful, 无独立价值
- daemon.py: 11处patch, TDDB_ENABLED=False 短路全部TencentDB读写
  - 写方向: soulful_profile_to_tdb_scene/tddb_capture/zhiyi_to_tdb/_distill_l2_to_l3/_distill_l3_to_l4
  - 读方向: _distill_l4_to_l5(回写画像污染点)/save_llm_context L3 scenes/check_scene_aware_cares
  - 主循环 tddb_capture 调用 + 误导日志移除
- memory-system-self-upgrade.py: upgrade_tddb 短路
- memory_recall.py: 标记退役
- 服务: tdai-gateway stop+disable, 数据归档 ~/.memory-tencentdb.archive-20260905 (1.9G)
- 验证: llm_context scenes=[], 重启后日志 TencentDB 匹配=0, zhiyid OK
- 备份: .archive/daemon.py.before-tddb-retire-20260905.py
2026-09-05 03:50:49 +08:00
小唯 A06 91ef7d9e4a auto-snapshot 2026-09-05 03:00:52 2026-09-05 03:00:54 +08:00
小唯 A06 38a5c1543f auto-snapshot 2026-09-04 03:00:36 2026-09-04 03:00:36 +08:00
小唯 A06 9b2f4c23d0 fix(stabilize): 安全默认反转 + immutable 体检
2026-09-04 全面排查后加固(state.db 误判循环教训):
1. 默认 dry-run:无参数跑 = 只体检,--apply 才执行修改/自动恢复
   (防 0x57 bad-auto 类:无参数触发自动恢复覆盖活动库)
2. 体检连接 mode=ro → mode=ro&immutable=1:gateway 运行中零风险
   (02:03 教训:普通只读连接也会触发 wal 访问与 gateway 并发)
3. 保留既有 lsof/gateway 运行保护(写操作前自动跳过)
2026-09-04 02:52:08 +08:00
小唯 A06 bd2914bb49 soul(记忆治理): v4.2 写入分级铁律 [已验证]/[推断]/[偏好]
- [已验证]→MEMORY/USER/distilled;[推断]→仅织忆episodes+标注;[偏好]→可写
- 推断禁覆盖已验证旧记录;方向相反先 memory-verify --check
- 冲突不静默:memory_write 返回 conflicts/warning 必须处理
- 配套插件修复:commit 解析 zhiyid conflicts 字段并返回 warning(原忽略)
2026-09-04 01:17:47 +08:00
小唯 A06 8bb259d8b9 feat(soul): v4.1 §5 记忆调用主动触发铁律 + 路由总纲指针
- §5 图谱导航扩为记忆调用:memory_search/session_search/graph/write 硬触发词表
- 命中'过去/记得/我们做过/上次'必须先调记忆再答,不凭上下文裸答
- 写记忆主动触发(纠正/决策/工作流→memory_write/skill)
- 记忆规范段加 memory-routing-contract skill 指针(路由总纲)
- 配套新 skill: memory-routing-contract(路由矩阵+自纠/自进化/错误识别闭环)
2026-09-03 23:48:17 +08:00
小唯 A06 06adc31bc9 fix(sensor/backup): sensor只查active cron(删已删cron误报) + 双备份mount前探活防挂起
- sensor-verify.py: check_exit_codes 只检查 jobs.json 中存在的 cron id,
  忽略已删 cron(fdf92db462df/774986811686等)历史输出目录 → 消除误报链
- dual-backup.sh: mount cifs 前先 ping 探测(2s),不可达直接离线跳过;
  cifs 加 timeout=15 → 防 19:00 cron 超时 3600s 重演
- 清理传感器历史失败输出(fail链条归零)
2026-09-03 23:35:55 +08:00
小唯 A06 7439c5806b chore(watchdog): 清理过时检测与误报源
- health-watchdog.sh: 移除已下线的 omniroute/new-api 检测(避免误报+尝试启不存在服务)
- anti-suicide-check.sh: 主模型白名单加入 deepseek-v4-flash(9/3 牧尘批准切换,原硬编码 mimo 导致误报)
- db-monitor.sh: 不再检查 cron.db(0字节孤儿非真存储,真存储 jobs.json)
- git rm cron/jobs.json.bak-agnes(运行时噪音解除跟踪)

配合: state.db 修复完成 + 44 重复 cron 删除 + state-db-watchdog(删WAL危险)归档
2026-09-03 23:11:19 +08:00
小唯 A06 7846b4c536 auto-snapshot 2026-09-03 16:03:05 2026-09-03 16:03:06 +08:00
小唯 A06 83ad0bcb1a feat(state-db): 看门狗 + 止血脚本
- state-db-watchdog.py: 30min 自动检查,清理 WAL 残留,飞书告警
- state-db-stabilize.py: 启动前覆盖 busy_timeout=30000
- cron 774986811686: 每 30min no-agent 跑 watchdog
- 根因+根治方案见 mc/小唯/07-Wiki/concepts/state-db-corruption-fix-plan.md
2026-09-03 10:20:56 +08:00
小唯 A06 a25489e105 slim(SOUL): v3.9→v4.0 瘦身 36966B→14092B,修复 context_file_max_chars=20000 超限
- 抽出'自治能力'章节到 ~/.hermes/docs/SOUL-autonomy.md
- 仓颉/CBM/能力池/工具表全部压成索引式
- 遵循索引/详情分离原则:SOUL 只放身份+铁律,详情进独立文件
- '我们一起做过的事'保留精选+指针到织忆
- '已部署的关键 cron jobs'搬进 SOUL-autonomy.md
2026-09-03 09:17:48 +08:00
小唯 A06 76855ee03a auto-snapshot 2026-09-03 03:00:22 2026-09-03 03:00:22 +08:00
小唯 A06 165c75c2fc auto-snapshot 2026-09-02 03:00:29 2026-09-02 03:00:29 +08:00
小唯 A06 5d3b64de0c auto-snapshot 2026-09-01 23:22:39 2026-09-01 23:22:40 +08:00
小唯 A06 7709fe1c56 fix(bge): 修复 bge-embed 用错 onnxruntime(CPU版)→换 onnxruntime-gpu + 复用 CUDA 13 库
- 根因:之前装了 CPU 版 onnxruntime,bge fallback 到 CPU
- 牧尘纠正: '之前都是 gpu' → 查备份 + ComfyUI venv 发现设计是 GPU
- 修复: 独立 venv /venvs/bge-embed 装 onnxruntime-gpu 1.29 + CUDA 13 + cuDNN 9
- LD_LIBRARY_PATH 复用 ComfyUI venv 的 nvidia/cu13 + cudnn
- 看门狗恢复 '必须 CUDAExecutionProvider' 判断
- SOUL.md 新增触发方式D '拉现状铁律' (从反面教材提取)
- AGENTS.md 同步 bge 正常态
- skill bge-embed-crash-loop-fix 新增根因 C 完整说明

教训: 记忆告诉我'曾经是什么', terminal 告诉我'现在是什么'。现在比过去重要。
2026-09-01 20:46:45 +08:00
小唯 A06 949abe6c5c feat(skills): 配置 holographic memory plugin + 测试脚本
- config.yaml 启用 holographic plugin
- plugins.hermes-memory-store 节(独立 db,不接管 zhiyi)
- 备份 config.yaml.bak-pre-holographic
- scripts/test_holographic.py 9 actions + feedback 测试通过

Holographic 是 v0.21.0 新增的本地 SQLite memory provider
作为织忆的极简备用方案(trust scoring + HRR + FTS5)
2026-09-01 19:07:43 +08:00