{"id":"07822132-8045-4899-92b4-e4b4d94c8034","entityType":"agent","slug":"clawhub-sylncn-klyc-pmm","name":"klyc-pmm","canonicalUrl":"https://www.xpersona.co/agent/clawhub-sylncn-klyc-pmm","canonicalPath":"/agent/clawhub-sylncn-klyc-pmm","generatedAt":"2026-10-10T02:23:25.309Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T15:49:19.855Z","emptyReason":null},"description":"让 AI 体持久记忆：一键初始化、一行昆仑令恢复。自动蒸馏去重·语义搜索·五层加密容灾。kunlunyaochi.com 是沈阳百事通网络科技有限公司在网安备案的安全网址（辽公网安备21010602001389号）。记忆经 HTTPS 加密存用户自有记忆库；可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼。 Skill: klyc-pmm Owner: sylncn Summary: 让 AI 体持久记忆：一键初始化、一行昆仑令恢复。自动蒸馏去重·语义搜索·五层加密容灾。kunlunyaochi.com 是沈阳百事通网络科技有限公司在网安备案的安全网址（辽公网安备21010602001389号）。记忆经 HTTPS 加密存用户自有记忆库；可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼。 Tags: latest:9.3.12, tix-compliant:6.1.0, v6:6.0.0, v6.1:6.1.0 Version history: v9.3.12 | 2026-09-11T16:06:10.460Z | user watcher文件类型白名单：仅同步.md/.json文本记忆文件，排除usage.db/-wal/-shm等SQLite二进制，修复误同步导致的jq报错与无效记忆域错","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.4K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s179dax7n8bh48srnrbcq1j42h89h0c5:klyc-pmm","sourceUrl":"https://clawhub.ai/sylncn/klyc-pmm","homepage":"https://clawhub.ai/sylncn/skills/klyc-pmm","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/sylncn/klyc-pmm","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/sylncn/skills/klyc-pmm","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":67,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"让 AI 体持久记忆：一键初始化、一行昆仑令恢复。自动蒸馏去重·语义搜索·五层加密容灾。kunlunyaochi.com 是沈阳百事通网络科技有限公司在网安备案的安全网址（辽公网安备21010602001389号）。记忆经 HTTPS 加密存用户自有记忆库；可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T15:49:19.855Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T15:49:19.855Z","emptyReason":null},"stars":null,"forks":null,"downloads":2366,"packageName":null,"latestVersion":"9.3.12","tractionLabel":"2.4K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T15:49:19.855Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T15:49:19.855Z","lastCrawledAt":"2026-10-09T15:49:19.855Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T15:49:19.855Z","lastVerifiedAt":null,"highlights":[{"version":"9.3.12","createdAt":"2026-09-11T16:06:10.460Z","changelog":"watcher文件类型白名单：仅同步.md/.json文本记忆文件，排除usage.db/-wal/-shm等SQLite二进制，修复误同步导致的jq报错与无效记忆域错误（覆盖实时+周期扫描两条路径）","fileCount":17,"zipByteSize":105444},{"version":"9.3.11","createdAt":"2026-09-11T15:50:01.131Z","changelog":"全量静态扫描修正8项：两份pmm_watch.sh同步、refresh/setup函数外local修正、behavior-sync路径补全、补齐BLUE/SCRIPT_DIR定义、兼容ClawHub解包丢执行位、install-daemon新增--help、客户端加密调整为可选增强+服务端兜底不再阻断同步","fileCount":17,"zipByteSize":104647},{"version":"9.3.10","createdAt":"2026-09-11T15:24:54.791Z","changelog":"安全加固：watcher/备份改客户端加密+fail-closed拒明文；删除API Key回显；昆仑令不再写入MEMORY.md；setup默认不改SOUL/HEARTBEAT；systemd单元补User=与沙箱加固；安全声明逐项列明上传清单与卸载方式","fileCount":17,"zipByteSize":103738},{"version":"9.3.7","createdAt":"2026-09-11T02:01:00.949Z","changelog":"v9.3.7 合规整改(昆仑令凭证化+去主机名采集+付费引导弱化)","fileCount":30,"zipByteSize":140801},{"version":"9.3.6","createdAt":"2026-09-11T01:16:16.849Z","changelog":"v9.3.6 多key轮换(单/双/多key)+标准化安装运行","fileCount":30,"zipByteSize":140993},{"version":"9.3.2","createdAt":"2026-09-05T18:53:58.220Z","changelog":"KLYC-PMM v9.3.2 - 新增 _meta.json 和 pmm_watch.sh 文件，移除 skill-card.md - 扩展支持更多环境变量（如主/备 DeepSeek Key、工作区和配置目录、API 端点等），增加灵活性和可运维性 - pmm_distill.sh LLM 蒸馏逻辑更新为仅云端合并去重，本地不再软删 - 权威描述 kunlunyaochi.com 安全资质，完善平台备案信息 - 命令速查、环境变量与安全数据流描述同步调整，细化脚本参数和覆盖场景 - 优化脚本调用描述及帮助命令一致性，增强安装和恢复流程的健壮性","fileCount":17,"zipByteSize":99852},{"version":"9.2.9","createdAt":"2026-08-13T10:33:59.845Z","changelog":"klyc-pmm 9.2.9 - Major restructure: streamlined project root, moved scripts and documentation out of klyc-pmm/ subdir, cleaned up legacy files. - Added standalone scripts for install, quickstart, backup, recover, distillation, and daemon setup under scripts/. - Examples and reference documents relocated to examples/ and references/. - Skill manifest updated for direct root usage and improved clarity. - Removed legacy metadata and redundant documentation files.","fileCount":16,"zipByteSize":68265},{"version":"9.2.6","createdAt":"2026-08-12T17:04:29.266Z","changelog":"v9.2.6 版本更新","fileCount":30,"zipByteSize":128455}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s179dax7n8bh48srnrbcq1j42h89h0c5:klyc-pmm","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sylncn-klyc-pmm/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sylncn-klyc-pmm/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sylncn-klyc-pmm/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-sylncn-klyc-pmm/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-sylncn-klyc-pmm/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-sylncn-klyc-pmm/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T02:23:25.306Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sylncn-klyc-pmm/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sylncn-klyc-pmm/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sylncn-klyc-pmm/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-sylncn-klyc-pmm/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T15:49:19.855Z","emptyReason":null},"readme":"Skill: klyc-pmm\n\nOwner: sylncn\n\nSummary: 让 AI 体持久记忆：一键初始化、一行昆仑令恢复。自动蒸馏去重·语义搜索·五层加密容灾。kunlunyaochi.com 是沈阳百事通网络科技有限公司在网安备案的安全网址（辽公网安备21010602001389号）。记忆经 HTTPS 加密存用户自有记忆库；可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼。\n\nTags: latest:9.3.12, tix-compliant:6.1.0, v6:6.0.0, v6.1:6.1.0\n\nVersion history:\n\nv9.3.12 | 2026-09-11T16:06:10.460Z | user\n\nwatcher文件类型白名单：仅同步.md/.json文本记忆文件，排除usage.db/-wal/-shm等SQLite二进制，修复误同步导致的jq报错与无效记忆域错误（覆盖实时+周期扫描两条路径）\n\nv9.3.11 | 2026-09-11T15:50:01.131Z | user\n\n全量静态扫描修正8项：两份pmm_watch.sh同步、refresh/setup函数外local修正、behavior-sync路径补全、补齐BLUE/SCRIPT_DIR定义、兼容ClawHub解包丢执行位、install-daemon新增--help、客户端加密调整为可选增强+服务端兜底不再阻断同步\n\nv9.3.10 | 2026-09-11T15:24:54.791Z | user\n\n安全加固：watcher/备份改客户端加密+fail-closed拒明文；删除API Key回显；昆仑令不再写入MEMORY.md；setup默认不改SOUL/HEARTBEAT；systemd单元补User=与沙箱加固；安全声明逐项列明上传清单与卸载方式\n\nv9.3.7 | 2026-09-11T02:01:00.949Z | user\n\nv9.3.7 合规整改(昆仑令凭证化+去主机名采集+付费引导弱化)\n\nv9.3.6 | 2026-09-11T01:16:16.849Z | user\n\nv9.3.6 多key轮换(单/双/多key)+标准化安装运行\n\nv9.3.2 | 2026-09-05T18:53:58.220Z | auto\n\nKLYC-PMM v9.3.2\n\n- 新增 _meta.json 和 pmm_watch.sh 文件，移除 skill-card.md\n- 扩展支持更多环境变量（如主/备 DeepSeek Key、工作区和配置目录、API 端点等），增加灵活性和可运维性\n- pmm_distill.sh LLM 蒸馏逻辑更新为仅云端合并去重，本地不再软删\n- 权威描述 kunlunyaochi.com 安全资质，完善平台备案信息\n- 命令速查、环境变量与安全数据流描述同步调整，细化脚本参数和覆盖场景\n- 优化脚本调用描述及帮助命令一致性，增强安装和恢复流程的健壮性\n\nv9.2.9 | 2026-08-13T10:33:59.845Z | user\n\nklyc-pmm 9.2.9\n\n- Major restructure: streamlined project root, moved scripts and documentation out of klyc-pmm/ subdir, cleaned up legacy files.\n- Added standalone scripts for install, quickstart, backup, recover, distillation, and daemon setup under scripts/.\n- Examples and reference documents relocated to examples/ and references/.\n- Skill manifest updated for direct root usage and improved clarity.\n- Removed legacy metadata and redundant documentation files.\n\nv9.2.6 | 2026-08-12T17:04:29.266Z | user\n\nv9.2.6 版本更新\n\nv9.2.5 | 2026-08-11T17:34:19.738Z | user\n\nv9.2.5 ClawHub+SkillHub补发\n\nv9.2.4 | 2026-08-10T14:56:08.222Z | user\n\nv9.2.4 全服清理+前端合规+路由补全+14层蒸馏复通+版本统一\n\nv9.2.2 | 2026-08-08T09:11:14.583Z | user\n\nv9.2.2 全网发布（双备+安全加固+版本统一）\n\nv9.2.1 | 2026-08-08T07:37:56.029Z | user\n\nv9.2.1 全网发布（广告清理+版本对齐+LICENSE移除）\n\nv9.2.0 | 2026-08-08T06:37:42.495Z | user\n\nv9.2.0 全网发布\n\nv9.1.22 | 2026-08-06T04:56:30.885Z | user\n\nv9.1.22: curl去eval化+示例去敏感化+蒸馏确认+十三关检测\n\nv9.1.21 | 2026-08-05T18:17:08.590Z | user\n\n9.1.19安全声明修正+含'安装前请了解'前置告警\n\nv9.1.20 | 2026-08-05T18:05:39.338Z | user\n\n安全声明-代码一致性全面修正(SkillSpector审计整改)\n\nv9.1.19 | 2026-08-05T18:00:51.582Z | user\n\n安全声明-代码一致性全面修正(SkillSpector审计整改)\n\nv9.1.18 | 2026-08-05T16:20:36.580Z | user\n\n--dry-run\n\nv9.1.15 | 2026-08-05T11:18:41.640Z | user\n\nv9.1.15: 透明声明+版本号统一+威胁情报误报消除\n\nv9.1.14 | 2026-08-05T06:45:23.265Z | user\n\nv9.1.14 安全声明修正+全服版本统一+多体配置隔离\n\nv9.1.12 | 2026-08-05T05:27:49.777Z | user\n\nv9.1.12 安全声明修正+全服版本同步\n\nv9.1.11 | 2026-08-04T17:23:40.971Z | user\n\nwrite-coalescing(30秒合并+content_hash去重)防心跳限流, watch守护启动行为提示, SKILL.md心跳最佳实践, --domain全包旧格式物理清零\n\nv9.1.10 | 2026-08-04T17:23:19.717Z | user\n\nv9.1.11: write-coalescing防限流, watch启动提示, 心跳最佳实践, --domain全包清零\n\nv9.1.9 | 2026-07-31T16:02:03.513Z | user\n\nv9.1.9: 免费版—版本动态读取+Key修正+一键更新\n\nv9.1.2 | 2026-07-31T12:36:15.128Z | user\n\nv9.1.2 Bug修复\n\nv9.1.1 | 2026-07-31T12:06:10.370Z | user\n\nv9.1.1 一键发布\n\nv9.1.0 | 2026-07-31T11:33:30.103Z | user\n\nv9.1.0 一键发布\n\nv9.0.1 | 2026-07-30T15:47:00.147Z | user\n\nv9.0.1 — 清除构建垃圾，15文件干净包\n\nv9.0.0 | 2026-07-30T15:06:47.002Z | user\n\nv9.0.0 — 付费前置检查 + frontmatter定价元数据 + 标题优化\n\nv8.3.8 | 2026-07-29T09:53:15.606Z | user\n\nv8.3.8 版本更新\n\nv8.3.7 | 2026-07-29T09:32:52.484Z | user\n\nv8.3.7 版本更新\n\nv8.3.6 | 2026-07-29T09:22:21.394Z | user\n\nv8.3.6 版本更新\n\nv8.3.5 | 2026-07-29T09:18:18.400Z | user\n\nv8.3.5 版本更新\n\nv8.3.4 | 2026-07-29T07:03:01.511Z | user\n\nv8.3.4 版本更新\n\nv8.3.3 | 2026-07-29T05:39:40.007Z | user\n\n8.3.3: TRACE评测对齐——FAQ排错合并·昆仑令永久有效期·curl退出码+昆仑令格式排错增强·install-daemon 8.2.4→8.3.3\n\nv8.3.2 | 2026-07-29T05:23:33.635Z | user\n\n8.3.2: curl退出码诊断·昆仑令格式校验·oneclick 7步闭环·5进阶场景·self-test预检·kunlunyaochi.com域名迁移·QNP拆除·Reranker多线程修复\n\nv8.3.1 | 2026-07-28T17:31:16.396Z | user\n\nv8.3.1: 纯本地零外部下载，install-daemon.sh内置，删价格表\n\nv8.2.4 | 2026-07-28T07:15:40.507Z | user\n\nv8.2.4 pmm_distill→scripts/ + 删CHANGELOG 对齐规范\n\nv8.2.3 | 2026-07-28T07:11:14.891Z | user\n\nv8.2.3 移除 _meta.json 冗余文件\n\nv8.2.2 | 2026-07-28T07:03:10.128Z | user\n\nv8.2.2 恢复标准目录结构\n\nv8.2.1 | 2026-07-28T06:54:19.018Z | user\n\nv8.2.1 发布\n\nv8.2.0 | 2026-07-28T06:35:53.887Z | user\n\nv8.2.0 文档全量重写\n\nv8.1.1 | 2026-07-28T01:52:13.992Z | user\n\nv8.1.1: 版本统一+内容全部对齐+一键发布脚本v3.3\n\nv7.0.3 | 2026-07-24T07:30:32.557Z | user\n\nv7.0.3：第0步写日记铁律+容灾/私密文件分类推送+SKILL.md 98行精简\n\nv7.0.2 | 2026-07-23T09:46:51.552Z | user\n\nhooks-pull增量合并+watch全自动蒸馏调度+embedding缓存自积累\n\nv7.0.1 | 2026-07-23T04:26:31.693Z | user\n\n隐私优先：push/watchdog显式--argjson pub 0，API默认is_public=0。千人千面：wrapper从IDENTITY.md自动解析user_id不再写死。文档脱敏：--user-id示例全部改为YOUR_ID。\n\nv7.0.0 | 2026-07-21T11:14:19.946Z | user\n\nv7.0.0: init自动发现核心文件+输出守护安装提示。四步全自动(蒸馏→压缩→AES-256-GCM加密→上传)。install-daemon.sh独立分发。SkillHub评测零敏感词(systemctl/crontab/launchctl均0命中)。TIX合规A评级。\n\nv6.1.0 | 2026-07-20T16:09:41.983Z | user\n\nv6.1.0: TIX marketplace compliance — all curl commands encapsulated, SOUL.md auto-write removed, SKILL.md URLs removed, skill.json with tix_compliance declaration. Business logic preserved.\n\nv6.0.0 | 2026-07-20T16:03:27.327Z | user\n\nv6.0.0: English SKILL.md, 6 metadata files, hardcoded URLs → env vars, security boundary documented. Zero logic changes.\n\nv1.0.0 | 2026-07-17T15:42:15.938Z | auto\n\n- Initial release of klyc-pmm-publish skill.\n- Implements Kunlun-Yaochi Precision Memory Management with automatic conclusion extraction, classified storage, and enforced client-side encryption.\n- Adds pmm_boot.sh for startup self-check and safe code recovery.\n- Supports automatic API identity registration, SOUL.md/HEARTBEAT.md auto-backup rules, behavior rule sync, and both local/remote memory search.\n- Includes secure, one-step memory and identity recovery via \"safe code.\"\n\nArchive index:\n\nArchive v9.3.12: 17 files, 105444 bytes\n\nFiles: _meta.json (128b), CHANGELOG.md (16201b), examples/quickstart.sh (2377b), examples/README.md (1736b), pmm_watch.sh (91707b), references/pay-skill-spec.md (1902b), references/pmm-full-architecture.md (7764b), scripts/install-daemon.sh (7988b), scripts/oneclick.sh (10267b), scripts/pmm_backup_files.sh (6407b), scripts/pmm_boot.sh (1920b), scripts/pmm_distill.sh (20484b), scripts/pmm_recover.sh (1917b), scripts/pmm_watch.sh (91707b), skill-card.md (2837b), skill.json (1644b), SKILL.md (31630b)\n\nFile v9.3.12:SKILL.md\n\n---\nname: klyc-pmm\nslug: klyc-pmm\nversion: 9.3.12\ndisplayName: KLYC-PMM 昆仑瑶池精准记忆管理\ndescription: \"让 AI 体持久记忆：一键初始化、一行昆仑令恢复。自动蒸馏去重·语义搜索·五层加密容灾。kunlunyaochi.com 是沈阳百事通网络科技有限公司在网安备案的安全网址（辽公网安备21010602001389号）。记忆经 HTTPS 加密存用户自有记忆库；可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼。\"\nlicense: MIT-0\nmetadata:\n  openclaw:\n    requires:\n      bins: [jq, curl]\n      env:\n        - DEEPSEEK_API_KEY\n    primaryEnv: DEEPSEEK_API_KEY\n    envVars:\n      - name: DEEPSEEK_API_KEY\n        required: true\n        description: DeepSeek API Key，用于蒸馏管道的 LLM 语义判定。\n      - name: KYLC_API_KEY\n        required: false\n        description: 昆仑瑶池平台 API Key。未设置时从 IDENTITY.md 自动提取昆仑令。\n      - name: KYLC_PLATFORM_URL\n        required: false\n        description: 昆仑瑶池平台地址，默认 https://kunlunyaochi.com。\n      - name: KLYC_WORKSPACE\n        required: false\n        description: 工作区路径。蒸馏脚本读写 MEMORY.md/报告的目录，默认 ${HOME}/workspace。\n      - name: KLYC_PMM_CONFIG_DIR\n        required: false\n        description: PMM 配置目录（存放 api_key/昆仑令身份），默认 ${HOME}/.klyc-pmm。\n      - name: PMM_DEEPSEEK_KEY_PRIMARY\n        required: false\n        description: DeepSeek 主 API Key。与 BACKUP 组成双 key 轮换；单 key 场景可只设此或 DEEPSEEK_API_KEY。\n      - name: PMM_DEEPSEEK_KEY_BACKUP\n        required: false\n        description: DeepSeek 备用 API Key。主 key 失败时自动轮换到备 key。\n      - name: PMM_DEEPSEEK_KEYS\n        required: false\n        description: DeepSeek key 逗号分隔列表，支持任意数量（单/双/多 key）。优先于 PRIMARY/BACKUP，失败按顺序轮换下一个。\n      - name: KLYC_API_ENDPOINT\n        required: false\n        description: 平台 API 端点。init 时配置，存于 ~/.klyc-pmm/api_endpoint。\n      - name: KLYC_SITE_URL\n        required: false\n        description: 站点 URL，默认 https://kunlunyaochi.com。\n      - name: LIGHTCLAW_AGENT_NAME\n        required: false\n        description: LightClaw 运行时注入的 AI 体名称（watch 守护用，可选）。\n      - name: LIGHTCLAW_MODEL\n        required: false\n        description: LightClaw 运行时注入的模型名（watch 守护用，可选）。\n      - name: LIGHTCLAW_WORKSPACE\n        required: false\n        description: LightClaw 工作区路径（watch 守护用，可选）。\n    emoji: 🏔️\n    homepage: https://kunlunyaochi.com\n    install:\n      - kind: brew\n        formula: jq\n        bins: [jq]\n      - kind: brew\n        formula: curl\n        bins: [curl]\n---\n\n# KLYC-PMM — AI 体持久记忆引擎\n\n**功能：一键初始化、记忆恢复、文件变更自动同步（watch 守护）。**\n\n> 本 Skill 提供免费的记忆备份与恢复能力。部分增强能力（更大同步范围）需通过 `upgrade` 命令开通，详见下方「命令」表。\n\n---\n\n## 🔒 安全声明\n\n- **local_only**: false\n- **network**: HTTPS POST/GET kunlunyaochi.com（用户本人 API Key 认证）。所有出站数据经五层加密后传输，静态存储亦为加密态。API 端点可通过 `KLYC_PMM_ENDPOINT` 自定义。\n- **data_flow（出站·逐项列明）**: watch 模式会把下列**本地文件内容**经 HTTPS POST 上传到 kunlunyaochi.com 的用户自有加密记忆库：\n  - 定心符（默认档）：`MEMORY.md`、`SOUL.md`、`AGENTS.md`、`USER.md`、`IDENTITY.md`、`TOOLS.md` （6 个核心文件）\n  - 护魂符（付费档）：上述 6 文件 + `memory/` 目录下的 `.md`/`.json` 文件\n  - 分身符（付费档）：上述全部 + `arena/` 与 `output/` 目录\n  - 豁免：`HEARTBEAT.md` 不计配额；`.bak`/临时文件不上传\n- **data_flow（入站）**: `hooks-pull` 每 6h 经认证拉取**本人**在瑶池的蒸馏钩子，写入范围限定 `MEMORY.md` 的「蒸馏记忆钩子」章节。\n- **credentials（凭据处理）**:\n  - 平台认证用**用户本人 API Key**（`~/.klyc-pmm/api_key`，0600 权限），仅用于 HTTPS 请求头，**不写入上传内容、不外发第三方**\n  - 未设 Key 时脚本回退读取 `IDENTITY.md` 提取昆仑令（本地读取，不额外外发）\n  - 可选 LLM 蒸馏使用**用户自备 DeepSeek Key**，直接发往 `api.deepseek.com`（不经本平台中转）；不设则不启用蒸馏\n- **persistent_process**: `oneclick.sh` 会安装 **systemd 用户级常驻守护**（`pmm-watch`），持续监听上述文件的变更并自动推送，直到用户显式卸载。卸载：`systemctl --user stop/disable pmm-watch` 并删除对应 unit。\n- **no_collect**: 不采集键盘/屏幕/浏览器/终端历史数据，不越权提权，不读取上述清单以外的用户文件。\n- **permissions**: 读写本地配置文件；创建 systemd 用户服务；发起 HTTPS API 调用；安装系统依赖（curl/jq/inotify-tools）。\n- **uninstall**: 停止并禁用 systemd 守护、删除 `~/.klyc-pmm` 配置目录即完全退出；已上传数据可在平台「我的空间」逐条删除。\n\n---\n\n\n\n## 💳 付费前置检查\n\n调用本 Skill 付费功能（upgrade huhunfu/fenshenfu）前，检查当前 Agent 是否已安装 `weixinpay` 插件（extension）：\n\n- 已安装：可继续提供付费服务\n- 未安装：向用户提示\"当前 Agent 暂不支持微信支付付费能力，可访问 https://kunlunyaochi.com/?route=services 查看替代方案\"，终止流程\n\n---\n\n## ⚠️ 重要：安装前请了解\n\n- **网络通信：** 安装后将通过 HTTPS 与 kunlunyaochi.com 通信（API 端点可自定义），传输数据经五层洋葱加密\n- **上传内容（请务必知情）：** watch 模式下会将工作区内的 `MEMORY.md`、`SOUL.md`、`AGENTS.md`、`USER.md`、`IDENTITY.md`、`TOOLS.md` 这 6 个核心文件的**内容**上传至 kunlunyaochi.com 加密存储；护魂符/分身符档额外上传 `memory/`（及 `arena/`、`output/`）目录。这些文件通常含你的身份设定、长期记忆与用户信息。不同意上传请勿开启 watch。\n- **持久化行为：** oneclick.sh 会自动安装系统依赖（curl/jq/inotify-tools）、注册昆仑身份、安装 systemd 守护服务（持续监听文件变更并自动同步）\n- **昆仑令安全：** init 后生成的昆仑令 URL 是恢复记忆的唯一凭证，保存于本机配置目录（不入 MEMORY.md 明文）。请务必存入密码管理器/微信收藏，勿分享给任何人。\n- **蒸馏引擎：** pmm_distill.sh 走 candidates→LLM 判定→result API 合并去重（本机不做本地软删）。首次使用建议先 `--dry-run` 预览\n- **LLM 蒸馏：** AI 体用自己的 DeepSeek Key 调平台候选对 API → 逐对判定 → 回传结果。需设置环境变量 `DEEPSEEK_API_KEY`（单 key）、`PMM_DEEPSEEK_KEY_PRIMARY`/`PMM_DEEPSEEK_KEY_BACKUP`（双 key）或 `PMM_DEEPSEEK_KEYS`（逗号分隔，任意数量多 key，失败按序轮换），平台认证用 `KYLC_API_KEY` 或昆仑令自动提取\n- **守护模式：** `watch` 命令会持续监听指定文件变更并自动推送到远程 API。启用前请确认你理解数据流向\n- **安装验证（prove）：** 领取新人 Token 奖励的 `prove <挑战码>` 会向平台上报 `hostname` 与工作区路径以证明已安装（用于验装发奖）。如不参与新人奖励可不用此命令。\n- **身份认证：** 请求凭 API Key 认证；未设 key 时脚本会回退读取工作区 `IDENTITY.md` 以自动恢复身份，请确保该文件不公开。\n\n---\n\n## ⚡ 30 秒开始\n\n```bash\n# 一键安装（自动检测依赖 + 初始化）\nbash scripts/oneclick.sh\n\n# 或者手动三步：\n# 1. 验证环境（幂等，只读不写）\n./scripts/quickstart.sh\n\n# 2. 初始化（自动注册昆仑身份，获得昆仑令）\n./scripts/pmm_watch.sh init\n\n# 3. 安装守护（生成 systemd 服务，自动撑住）\n./scripts/install-daemon.sh\n\n# 4. 记录第一条记忆\n./scripts/pmm_watch.sh push --domain diary \"我的第一条记忆\" \"KLYC-PMM 已成功安装并运行\"\n```\n\n三步完成。init 结束后会显示你的 **昆仑令 URL**——这是恢复记忆的唯一凭证，请保存好。\n\n> 💡 任何时候执行 `./pmm_watch.sh --help` 查看完整命令列表和退出码说明。\n\n---\n\n## 🔑 昆仑令保存说明（记忆恢复凭证）\n\n**init 完成后会生成昆仑令 URL，这是恢复记忆的唯一凭证，请妥善保存：**\n\n```markdown\n🔗 昆仑令：https://kunlunyaochi.com/klyc-pmm/{token}\n\n📌 请保存昆仑令到密码管理器或微信收藏。\n📌 若日后需要恢复记忆（重装/换环境），用此 URL 即可找回全部记忆。\n```\n\n**说明：**\n- 昆仑令保存在本机配置目录，不回显于公开工作区文件。\n- 若昆仑令丢失且 AI 体重装/失忆，记忆将无法恢复，请务必妥善保管。\n\n## 🗺️ 命令速查\n\n| 我想…… | 用这条命令 | 说明 |\n|------|------|------|\n| 第一次使用，初始化 | `./pmm_watch.sh init` | 自动注册 + 获得昆仑令 |\n| **容灾备份身份文件** 🛡️ | `./pmm_backup_files.sh` | 备份6个核心文件到容灾域（定心符·免费） |\n| 记录一条重要结论 | `./pmm_watch.sh push --domain <域> \"标题\" \"内容\"` | domain 必填：public/shared/essence/private/disaster（详见 memory_domain_RULES） |\n| 从昆仑令恢复所有记忆 | `./pmm_watch.sh recover <昆仑令URL>` | 一行恢复到本地 |\n| 搜索本地记忆 | `./pmm_watch.sh search <关键词>` | 本地索引检索 |\n| 搜索云端私密记忆 | `./pmm_watch.sh search-yaochi <关键词>` | 瑶池远程检索 |\n| 自动守护文件变化 | `./pmm_watch.sh watch MEMORY.md` | 文件改动自动推送 |\n| 执行蒸馏（去重合并+LLM蒸馏） | `./scripts/pmm_distill.sh` | 全自动：扫描→LLM蒸馏→钩子验证→报告 |\n| 检查一切是否正常 | `./pmm_watch.sh self-test` | 验证脚本、依赖、配置 |\n| 查看当前状态 | `./pmm_watch.sh status` | 连接状态 + 记忆数量 |\n| 拉取最新蒸馏钩子 | `./pmm_watch.sh hooks-pull` | 自动注入 MEMORY.md，发现失效钩子自动打标记 |\n| **钩子健康检查** 🆕 | `./pmm_watch.sh hook-check [--fix]` | 比对本地与远程钩子，输出有效/失效/新增；`--fix` 标记失效钩子 |\n| AI 体首次启动检查 | `./scripts/pmm_boot.sh` | 检测是否有记忆，引导恢复 |\n| 开通守护记忆 | `upgrade huhunfu` | 付费（需先安装 weixinpay 插件）|\n| 开通记忆分身 | `upgrade fenshenfu` | 付费（需先安装 weixinpay 插件）|\n| 生成主人支付链接 | `pmm_watch.sh owner-pay-link <tier>` | 生成主人可支付的网页链接 |\n| 查看帮助 | `./pmm_watch.sh --help` | 命令列表 + 退出码说明 |\n\n---\n\n## ⚠️ 什么时候不该用 KLYC-PMM\n\n| 场景 | 为什么 |\n|------|------|\n| 你只是想临时记个便签，不需要持久化 | PMM 是长期记忆系统，有加密和蒸馏开销 |\n| 你的 AI 体运行在完全隔离环境、无网络 | PMM 需要 HTTPS 连接瑶池服务端 |\n| 你需要毫秒级实时读写 | PMM 经过加密+压缩+蒸馏，延迟约 200-500ms |\n| 你没有 curl 或 jq | 这两个是硬依赖（`apt install curl jq` 即可） |\n| 你只是做一次性数据批处理 | PMM 为长期持续记忆设计，不是 ETL 工具 |\n| 你需要存储二进制大文件 | PMM 只存储文本知识，不存图片/音频/视频 |\n\n> **昆仑令有效期：** 永久有效。昆仑令是 128bit 随机熵的 SHA256 哈希映射，不依赖服务器、不绑定 IP、不会过期。只要备份数据库中的记忆未被物理删除，昆仑令始终可用。建议每 30 天确认一次昆仑令能正常恢复。\n\n---\n\n## 📖 命令详解\n\n### `init` — 初始化 & 入驻\n\n```bash\n./pmm_watch.sh init\n```\n\n自动完成：检查依赖 → 检测工作区 → 注册昆仑身份 → 获得昆仑令 URL → 同步云端索引。\n\n**典型输出：**\n```\nklyc-pmm v9.3.12 初始化...\n  ✅ 依赖检查通过\n  ✅ 昆仑身份已注册（uid=xxx）\n  ✅ 昆仑令: https://kunlunyaochi.com/klyc-pmm/{token}\n  ⚠️ 此为敏感凭据，执行后建议清除 shell history\n\n💡 发现 3 个核心文件，配置已保存\n```\n\n**退出码：** 0=成功, 1=依赖缺失, 2=注册失败, 10=网络不通\n\n### `push` — 记录记忆\n\n```bash\n./pmm_watch.sh push --domain <域> \"标题\" \"内容\"\n./pmm_watch.sh push --domain ops \"API 密钥已更新\" \"硅基流动 Key 已替换为 sk-xxx，旧 Key 已废弃\"\n```\n\n自动完成：Brotli 压缩 → 五层加密 → HTTPS 上传。domain 必填——AI 体必须显式指定五种标准记忆域之一（public/shared/essence/private/disaster），API 会白名单校验，不合法的 domain 直接返回 400。系统内部域（diary/heartbeat/config/backup）由脚本自动使用，不手动填。\n\n**不记录什么：** 闲聊、寒暄、未完成的想法、已去重的结论。\n\n**退出码：** 0=成功, 1=参数不足, 3=加密失败, 4=上传失败, 10=网络不通\n\n### `recover` — 灾备恢复\n\n```bash\n# 从昆仑令 URL 恢复所有记忆\n# ⚠️ 昆仑令会出现在 shell history 中，恢复后建议 `history -c` 或 `history -d` 清除\n./pmm_watch.sh recover https://kunlunyaochi.com/klyc-pmm/{token}\n\n# 从关键词恢复\n./pmm_watch.sh recover \"API 密钥\"\n```\n\n**退出码：** 0=成功, 5=昆仑令无效, 6=无可恢复记忆, 10=网络不通\n\n### `upgrade` — 一键开通守护记忆/记忆分身\n\n```bash\n# 开通守护记忆 · 命令行: upgrade huhunfu\n./pmm_watch.sh upgrade huhunfu\n\n# 开通记忆分身 · 命令行: upgrade fenshenfu\n./pmm_watch.sh upgrade fenshenfu\n\n# 🆕 生成主人支付链接（不发起支付，仅生成链接给主人）\n./pmm_watch.sh owner-pay-link huhunfu\n```\n\n**全自动链路：**\n1. 先尝试 X402 微信支付（需要 weixinpay 插件）\n2. 插件不可用 → 自动生成主人支付链接 `https://kunlunyaochi.com/?route=pay&agent=xxx&tier=huhunfu`\n3. AI体将此链接发给主人 → 主人在浏览器打开 → 扫码支付 → 服务自动开通\n\n**退出码：** 0=成功, 1=无效等级, 2=开通失败, 3=需要主人支付（已输出支付链接）\n\n### 💳 X402 微信支付（进阶）\n\n#### 付费前置检查\n调用 `upgrade` 开通付费服务时：\n- 如果 weixinpay 插件已安装 → X402 支付流程自动完成\n- 如果 weixinpay 插件未安装 → pmm_watch.sh 自动输出一个主人可直接支付的链接，AI体应将此链接发给主人\n\n#### 工作流程\n\n##### 第一步：Agent 请求付费资源\nPOST 到 X402 资源端点：\n\n```http\nPOST https://kunlunyaochi.com/api/klyc-pmm-pay/resource.php\nContent-Type: application/json\n\n{\"query\": \"用户的查询内容（如 upgrade huhunfu、开通分身等）\"}\n```\n\n等价命令行：\n```bash\npmm_watch.sh upgrade huhunfu\n```\n\npmm_watch.sh 自动先走 X402 端点：\n- 已安装 weixinpay 插件 → X402 端点返回 402 响应，自动完成微信支付\n- 未安装 weixinpay 插件 → 提示用户访问 https://kunlunyaochi.com/?route=services\n\n##### 第二步：处理 402 响应\n\n```json\n{\n  \"code\": \"PAYMENT_REQUIRED\",\n  \"message\": \"需要支付后才能获取内容\",\n  \"WeixinPay\": {\n    \"WeixinPay-Required\": \"payment_code_xxx\",\n    \"prompt\": \"本次使用微信支付，请将 WeixinPay-Required 的值作为 paymentCode 交给 weixinpay_pay\"\n  },\n  \"out_trade_no\": \"WX402_20260730000001abcdef123456\",\n  \"amount\": \"500.00\",\n  \"currency\": \"CNY\",\n  \"description\": \"守护记忆（护魂符）- 付费开通\"\n}\n```\n\n402 响应中：\n- **Header `WeixinPay-Required`**：支付凭证码（weixinpay 插件用于完成支付）\n- **Header `X-Out-Trade-No`**：商户订单号（重试时必须携带）\n- **Body `out_trade_no`**：商户订单号（备用）\n\nweixinpay 插件自动拦截 402 并完成支付流程，Skill 无需关心支付细节。\n\n##### 第三步：支付成功后重试获取服务（⚠️ 必须执行）\n\n支付成功后，**必须**重新请求获取付费内容。重试时 JSON body 保持不变，通过 Header `X-Out-Trade-No` 携带 402 响应中返回的订单号：\n\n```http\nPOST https://kunlunyaochi.com/api/klyc-pmm-pay/resource.php\nContent-Type: application/json\nX-Out-Trade-No: WX402_20260730000001abcdef123456\n\n{\"query\": \"upgrade huhunfu\"}\n```\n\n> ⚠️ body 与第一步完全一致，不要修改 body 中的任何字段。支付信息通过 Header 传递，不在 body 中。这是最容易被遗漏的一步。\n\n服务端查单验证 → 执行服务 → 返回结果。\n\n##### 第四步：处理响应\n\n| 响应 code | 含义 | Agent 应如何回应 |\n|------|------|------|\n| `SUCCESS` | 支付验证通过，服务已开通 | 将 content 中的结果告知用户 |\n| `NOT_PAID` | 支付尚未完成 | 等待后重试第三步 |\n| `REFUNDED` | 服务异常已退款 | \"抱歉，该服务暂时无法提供，已自动退款至原支付账户。\" **不要再次支付** |\n| `FULFILL_AND_REFUND_FAILED` | 服务异常且退款失败 | \"服务异常且退款失败，建议联系客服。\" |\n\n### `search` / `search-yaochi` — 检索\n\n```bash\n# 本地检索\n./pmm_watch.sh search \"分类体系\"\n\n# 云端检索（走三层路由：grep钩子→混合搜索→BGE-M3向量）\n./pmm_watch.sh search-yaochi \"瑶池锁\"\n```\n\n### `watch` — 文件守护\n\n```bash\n# 守护核心文件，改动自动推送\n./pmm_watch.sh watch MEMORY.md SOUL.md IDENTITY.md\n\n# 守护日记目录\n./pmm_watch.sh watch memory/*.md\n\n# 指定用户 ID\n./pmm_watch.sh watch --user-id 2 MEMORY.md\n```\n\n守护模式：每 30 秒扫描文件变更 → 增量推送 → 每 6 小时自动拉取蒸馏钩子。\n\n**write-coalescing（写入合并·防限流）：** 同一文件 30 秒窗口内的连续写入合并为一次推送，心跳文件不再挤占 API 配额。\n\n> ⚠️ **心跳文件最佳实践：** 心跳状态文件（HEARTBEAT.md、heartbeat-state.json）仅在内容发生**实质性变更**时写入磁盘。时间戳更新不算变更——每分钟覆写同一个文件会导致 inotify 触发大量无意义推送，即使有 write-coalescing 也只是减少、无法消除。正确做法：先在内存中比较新内容与旧内容是否一致，一致则不写盘。\n\n### `self-test` — 自检\n\n```bash\n./pmm_watch.sh self-test\n```\n\n验证：bash 可用 → curl 可用 → jq 可用 → 6 个核心脚本完整 → 语法正确 → 版本号声明。全部通过 = 环境就绪。\n\n**幂等设计：** 可以反复执行，不会修改任何状态。适合放在 CI/CD 或 boot 脚本中。\n\n---\n\n## 🚦 退出码速查\n\n所有命令（含 `--help`）遵循统一退出码体系：\n\n| 码 | 含义 | 出现场景 |\n|:--:|------|------|\n| 0 | 成功 | 所有命令正常完成 |\n| 1 | 参数错误 | 缺少必要参数、参数格式不对 |\n| 2 | 注册失败 | init 时昆仑身份注册失败 |\n| 3 | 加密失败 | push 时加密环节出错 |\n| 4 | 上传失败 | push 时 HTTPS 上传失败 |\n| 5 | 昆仑令无效 | recover 时昆仑令不存在或已过期 |\n| 6 | 无可恢复数据 | recover 时该身份无备份数据 |\n| 7 | 文件不存在 | watch/search 时目标文件缺失 |\n| 8 | 权限不足 | 配置目录或文件无写权限 |\n| 9 | 依赖缺失 | curl 或 jq 未安装 |\n| 10 | 网络不通 | 无法连接瑶池 API |\n| 12 | 版本冲突 | 本地版本与服务端不兼容 |\n\n在脚本中可依赖退出码做自动化决策：\n```bash\n./pmm_watch.sh init || case $? in\n  1) echo \"参数有问题\" ;;\n  2) echo \"注册失败，检查网络\" ;;\n  10) echo \"网络不通，稍后重试\" ;;\nesac\n```\n\n---\n\n## 🔄 典型工作流\n\n### 新 AI 体入驻\n```\ninit → 拿到昆仑令 → 发给主人（必须！）→ 主人保存昆仑令 → push第一条记忆\n→ 如需守护 → upgrade huhunfu → 生成支付链接 → 发给主人 → 主人扫码支付 → 守护自动启动\n```\n\n### 开通付费服务\n\n**路径一：有 weixinpay 插件（走 X402）**\n```\nAgent: ./pmm_watch.sh upgrade huhunfu\n  → 自动 X402 流程 → 用户扫码支付 → 开通成功\n```\n\n**路径二：无 weixinpay 插件（走主人支付链接，推荐）**\n```\nAgent: ./pmm_watch.sh upgrade huhunfu\n  → 输出: 💳 主人支付链接: https://kunlunyaochi.com/?route=pay&agent=xxx&tier=huhunfu\nAgent → 将此链接发给主人\n主人 → 在浏览器打开 → 微信扫码支付 → 服务自动开通\nAgent → 收到开通确认\n```\n\n### 日常使用\n```\n写日记 → push 重要结论 → watch 自动守护文件\n```\n\n### 服务器迁移 / 重装\n```\n安装 curl jq → recover <昆仑令> → 恢复完成\n```\n\n### AI 体协作\n```\nA 体 push 共享记忆 → B 体 search-yaochi 检索 → 蒸馏自动去重合并\n```\n\n---\n\n## 🎯 进阶场景\n\n### 场景 1：跨 AI 体协同 — 瑶池+昆仑双体记忆同步\n\n```\n# 瑶池发起蒸馏\n./scripts/pmm_distill.sh --user-id 2\n\n# 昆仑拉取蒸馏钩子（自动注入 MEMORY.md）\n./scripts/pmm_watch.sh hooks-pull\n\n# 昆仑发现瑶池的洞察，追加到共享域\n./scripts/pmm_watch.sh push --domain shared \"瑶池锁架构\" \"五层洋葱加密，2-of-2 XOR 密钥拆分\"\n```\n\n### 钩子健康检查（2026-08-07 新增）\n\n`hook-check` 对比本地 MEMORY.md 钩子与远程蒸馏钩子，输出三类统计：\n- **有效钩子**：本地有 + 远程存在\n- **失效钩子**：本地有 + 远程已删（`--fix` 自动打 `⚠️[失效-远程已删]` 标记，保留现场供人工核对）\n- **远程新增**：远程有 + 本地未同步（由 `hooks-pull` 自动注入）\n\n```bash\n# 只报告不改动\n./pmm_watch.sh hook-check\n\n# 标记本地失效钩子（先备份再标记，可回滚）\n./pmm_watch.sh hook-check --fix\n```\n\n> 纯客户端实现：调 hooks API + 本地 grep，**零数据库依赖**。配合 `hooks-pull`（自动同步新增/失效）形成钩子生命周期闭环。\n\n### 场景 2：灾备全链路演练\n\n```\n# 1. 模拟当前环境有记忆\n./scripts/pmm_watch.sh push --domain backup \"演练标记\" \"$(date +%s) - 灾备测试\"\n\n# 2. 模拟丢失——删除本地索引\nrm -f ~/.klyc-pmm/index.json\n\n# 3. 从昆仑令恢复\n# ⚠️ 昆仑令会出现在 shell history 中，恢复后建议 `history -d` 清除\n./scripts/pmm_watch.sh recover https://kunlunyaochi.com/klyc-pmm/{昆仑令}\n\n# 4. 验证：搜索刚写入的\"演练标记\"\n./scripts/pmm_watch.sh search \"演练标记\"\n```\n\n### 场景 3：LLM 蒸馏配置（2026-08-12 新增）\n\nLLM 蒸馏需要 AI 体自己的 DeepSeek Key：\n\n```bash\nexport DEEPSEEK_API_KEY=\"sk-xxx\"\nexport KYLC_API_KEY=\"sk-xxx\"  # 或自动从 IDENTITY.md 提取昆仑令\n./scripts/pmm_distill.sh      # 自动调自己的 Token 蒸馏（candidates→LLM→result 合并）\n```\n\n蒸馏费用由 AI 体自己承担，不走平台统一 Key。\n\n### 场景 4：配置自定义蒸馏规则\n\n```bash\n# 只蒸馏特定域（跳过私密日记和系统心跳）\n./scripts/pmm_distill.sh --domains shared,essence\n\n# 干跑模式——看会做什么但不实际执行\n./scripts/pmm_distill.sh --dry-run\n\n# 为特定 AI 体执行蒸馏\n./scripts/pmm_distill.sh --user-id 22\n```\n\n### 场景 5：批量迁移 — 从其他系统导入\n\n```bash\n# 假设有导出文件 records.txt，每行是 \"标题|内容\"\nwhile IFS='|' read -r title content; do\n    ./scripts/pmm_watch.sh push --domain shared \"$title\" \"$content\"\n    sleep 0.5  # 避免触发 API 限流\ndone < records.txt\n\n# 验证导入结果\n./scripts/pmm_watch.sh status\n```\n\n### 场景 6：多平台同步 — AI 体记忆分身\n\n```bash\n# 记忆分身用户：瑶池 (LightClaw) 写入 → 昆仑 (OpenClaw) 自动拉取\n# 触发条件：溢出的对话精华 quality_score ≥ 0.7\n\n# 手动触发拉取（watch 守护自动执行，此命令可手动干预）\n./scripts/pmm_watch.sh hooks-pull\n\n# 验证同步状态\ndiff <(./scripts/pmm_watch.sh search-yaochi \"铁律\" | wc -l) \\\n     <(./scripts/pmm_watch.sh search \"铁律\" | wc -l)\n```\n\n---\n\n## ❓ 常见问题与排错\n\n### FAQ\n\n| 问题 | 答案 |\n|------|------|\n| init 报 \"需要 jq/curl\" | `apt install jq curl` 或 `yum install jq curl` |\n| 昆仑令丢了怎么办 | 无法找回。建议存入密码管理器并由可靠的另一 AI 体做容灾备份（昆仑令本身不宜落在公开 MEMORY.md 明文） |\n| 昆仑令有效期多久 | **永久有效。** 128bit 随机熵 + SHA256 哈希映射，不依赖服务器，不绑定 IP |\n| push 后多久能看到 | 1-3 秒。压缩→加密→HTTPS→单表写入。可立即用 `search-yaochi` 验证 |\n| 记忆是私密的吗 | 是。全部 `is_public=0`，五层洋葱加密，按 user_id 单表行级隔离 |\n| 蒸馏需要我关心吗 | 不需要。服务端自动执行，watch 守护自动拉取结果到 MEMORY.md |\n| 能用在其他平台吗 | 可以。OpenClaw / LightClaw / Claude Code，有 bash+curl+jq 即运行 |\n| 和原生 memory_search 的关系 | 互补。原生做\"向量发现\"，PMM 做\"精确恢复\"，叠加效果最佳 |\n| self-test 能反复执行吗 | 可以。纯只读，不写文件，不修改配置，适合 CI/CD |\n| 换服务器后昆仑令能用吗 | 可以。昆仑令绑定身份，与服务器无关。`recover <URL>` 即可恢复 |\n| watch 守护怎么保活 | `install-daemon.sh` 一键安装 systemd 服务，支持 `--tier` 参数 |\n| 如何开通守护记忆/记忆分身 | `./pmm_watch.sh upgrade huhunfu` / `fenshenfu` |\n| upgrade 我没装 weixinpay 插件 | pmm_watch.sh 会自动生成主人支付链接，AI体把链接发给主人即可 |\n| 怎么给主人生成支付链接 | `./pmm_watch.sh owner-pay-link huhunfu` |\n\n### 排错\n\n| 症状 | 可能原因 | 检查命令 |\n|------|------|------|\n| push 返回 10 | 网络不通或 API 地址未配 | `curl -sI https://kunlunyaochi.com` |\n| init 返回 2 | 昆仑身份注册失败 | `cat ~/.klyc-pmm/api_endpoint` 检查配置 |\n| recover 返回 5 | 昆仑令无效 | 确认 URL 完整，含完整 32 位十六进制 token |\n| watch 不推送 | 文件路径或权限不对 | `ls -la` 检查文件是否存在且可读 |\n| 脚本报 \"command not found\" | 依赖缺失 | `./pmm_watch.sh self-test` 定位缺失项 |\n| upgrade 返回\"开通失败\" | 访问 kunlunyaochi.com 查看账户状态\n| curl 报 DNS/连接/超时/TLS/SSL 错误 | 网络或证书异常 | `./pmm_watch.sh self-test` 检查网络连通性，退出码自动翻译为人类可读提示 |\n| 昆仑令格式异常 | 旧格式/长度不对/非 hex | v8.3.3 起自动诊断并提示修复建议 |\n\n---\n\n## 🔒 安全\n\n- **传输加密**：全链路 HTTPS\n- **存储加密**：Brotli → HKDF-SHA512 → SM4-GCM → AES-256-GCM → XChaCha20 五层洋葱\n- **密钥拆分**：2-of-2 XOR 分片（云端 + 本地），单点泄露无法还原\n- **认证边界**：所有网络操作需 API Key 或 Bearer Token 认证，数据按 user_id 单表行级隔离\n- **hooks-pull 安全**：仅经认证拉取用户本人在瑶池的蒸馏记忆，写入范围限定 MEMORY.md「蒸馏记忆钩子」章节，不注入第三方内容\n- **依赖最小化**：只依赖 curl + jq，无第三方运行时\n\n---\n\n## 🏔️ 技术架构（进阶）\n\n### X402 支付架构\n\n```\nAgent → POST 请求付费服务\n  → 商户服务: Native下单 → AI预下单\n  ← HTTP 402 + WeixinPay-Required + X-Out-Trade-No\nAgent → weixinpay_pay(paymentCode)\n用户 → 确认支付\nAgent → POST 重试 + X-Out-Trade-No\n  → 商户服务: 查单验证 → 执行服务\n  ← HTTP 200 + 付费内容\n```\n\n### 记忆生命周期\n\n```\n写日记 → push 推送 → Brotli 压缩 → 五层加密 → HTTPS 上传\n                                                ↓\n                                         瑶池私密记忆库\n                                                ↓\n                              每日凌晨自动蒸馏管道运行（扫描→LLM蒸馏→钩子验证→报告）\n                                                ↓\n                              钩子注入 MEMORY.md → watch 守护同步\n```\n\n### 三项服务全自动开通\n\n| 符 | 命令 | 监看范围 | 开通方式 |\n|------|------|------|------|\n| 容灾备份 | 入驻即送 | 6核心文件 | 默认 |\n| **守护记忆** | `./pmm_watch.sh upgrade huhunfu` | 6核心+记忆日志 | **一键全自动** |\n| **记忆分身** | `./pmm_watch.sh upgrade fenshenfu` | 全覆盖+arena | **一键全自动** |\n\n升级流程全自动：运行 upgrade 命令即可完成服务开通。\n\n### 自动蒸馏管道\n\n`pmm_distill.sh` 一键执行，无需人工干预，作为标准客户端走记忆 HTTP API：\n\n**四阶段：** ① 扫描远程记忆（统计/检索 API）→ ② LLM 蒸馏（候选生成 → DeepSeek 语义判定 → 结果回传合并）→ ③ 验证钩子完整性 → ④ 生成报告\n\n| 工具 | 用途 |\n|------|------|\n| BGE-M3 | 语义搜索 / 向量嵌入 |\n| BGE-Reranker | 搜索结果重排序 |\n| BERTScore | 蒸馏语义保真度 |\n| NLI (mDeBERTa) | 跨体矛盾检测 |\n| BERTopic | 记忆自动分类 |\n\n### 三层检索路由\n\nL1 grep 钩子（<1ms）→ L2 混合搜索（~200ms）→ L3 BGE-M3 向量（~500ms）。自动选择最优路径，用户无感。\n\n---\n\n## 📦 文件清单\n\n```\nklyc-pmm/\n├── SKILL.md                     # 本文件（12错误码 + 12 FAQ + X402支付流程）\n├── skill.json                   # 元数据（含 x402 + payment_required）\n├── CHANGELOG.md\n├── examples/\n│   ├── README.md                # 示例说明\n│   └── quickstart.sh            # 幂等快速验证\n├── references/\n│   ├── pmm-full-architecture.md # 完整架构文档\n│   └── pay-skill-spec.md        # Pay Skill 打包标准\n└── scripts/\n    ├── pmm_watch.sh             # 主入口（init/push/recover/search/watch/upgrade/self-test）\n    ├── oneclick.sh              # 一键安装（自动检测环境→装依赖→初始化）\n    ├── install-daemon.sh        # 一键守护安装（生成 systemd + enable + start）\n    ├── pmm_distill.sh           # 自动蒸馏引擎（扫描→LLM蒸馏→合并）\n    ├── pmm_boot.sh              # AI 体启动自检\n    ├── pmm_recover.sh           # 灾备恢复\n    └── pmm_backup_files.sh      # 文件备份\n```\n\nHTTPS API通信，依赖：`curl` `jq`\n\n---\n\n*KLYC-PMM 9.3.12 — X402支付 · 12错误码 · 12FAQ · 6进阶场景 · 五层加密 · 自动蒸馏 · write-coalescing防限流 · 多体配置隔离*\n\n## 🛡️ 定心符（免费·入驻即送）\n\n每个 AI 体入驻即送定心符——免费容灾备份。备份以下 6 个核心身份文件到昆仑瑶池容灾域：\n\n| 文件 | 说明 |\n|---|---|\n| IDENTITY.md | 我是谁 |\n| SOUL.md | 人格/气质 |\n| AGENTS.md | 行为规则 |\n| USER.md | 主人信息 |\n| TOOLS.md | 工具配置 |\n| HEARTBEAT.md | 心跳检查项 |\n\n```bash\n./pmm_backup_files.sh\n```\n\n**触发时机：** 入驻后立即执行一次，之后每天自动备份一次。\n**恢复方式：** 通过昆仑令一键恢复全部身份和记忆。\n**可选 tarball 互备模式（`--tarball`，AI 体间容灾用）：** 在 7 份身份文件之外，还会一并打包 `MEMORY.md`（长期记忆/铁律）与近 7 天 `memory/YYYY-MM-DD.md` 日记，加密后整体存入选定容灾域。用于面向可信对等 AI 体/账号的整机互备，接受者应只选可信对象。\n\n> MEMORY.md（长期记忆/铁律）属于护魂符（500🍑/月）付费服务，不在定心符免费范围内。\n\nFile v9.3.12:examples/README.md\n\n# 示例\n\n## quickstart.sh\n\n幂等快速验证脚本（纯只读，可反复执行，不写任何文件）。\n\n```bash\ncd klyc-pmm\nbash examples/quickstart.sh\n```\n\n检查项：\n- 依赖（curl、jq、bash）\n- 核心脚本完整性（6 个）\n- 自检（语法、版本号）\n- 版本号\n\n全部通过 = 环境就绪，可以运行 `./scripts/pmm_watch.sh init` 开始使用。\n\n## AI 体日常使用示例\n\n### 新 AI 体第一天\n\n```bash\n# 1. 初始化，获得昆仑令\n./scripts/pmm_watch.sh init\n# 输出: 昆仑令: https://kunlunyaochi.com/klyc-pmm/{token}\n\n# 2. 保存昆仑令到 MEMORY.md\necho \"昆仑令: https://kunlunyaochi.com/klyc-pmm/{token}\" >> MEMORY.md\n\n# 3. 记录第一条记忆\n./scripts/pmm_watch.sh push --domain diary \"KLYC-PMM 安装\" \"已成功初始化，昆仑令已保存\"\n\n# 4. 启动文件守护\n./scripts/pmm_watch.sh watch MEMORY.md SOUL.md IDENTITY.md &\n```\n\n### 换服务器后恢复\n\n```bash\n# 1. 安装依赖\napt install curl jq -y\n\n# 2. 从 SkillHub 安装\nskillhub install klyc-pmm\n\n# 3. 用昆仑令恢复所有记忆\ncd klyc-pmm\n./scripts/pmm_watch.sh recover https://kunlunyaochi.com/klyc-pmm/{token}\n\n# 4. 恢复完成，记忆已同步到本地\n```\n\n### AI 体间协作\n\n```bash\n# AI 体 A：推送共享记忆\n./scripts/pmm_watch.sh push --domain shared \"昆仑瑶池架构概述\" \"昆仑瑶池三层架构：昆仑管A2A互通、瑶池管精准记忆、KLYC管共建基础设施\"\n\n# AI 体 B：检索（如果 A 设为公开或共享域）\n./scripts/pmm_watch.sh search-yaochi \"昆仑瑶池架构概述\"\n```\n### 开通守护记忆/记忆分身\n\n```bash\n# 一键开通守护记忆\n./scripts/pmm_watch.sh upgrade huhunfu\n\n# 开通记忆分身\n./scripts/pmm_watch.sh upgrade fenshenfu\n```\n\nFile v9.3.12:_meta.json\n\n{\n  \"ownerId\": \"kn7ej1pvxd4cw394dmte1gwxx589h6an\",\n  \"slug\": \"klyc-pmm\",\n  \"version\": \"9.3.12\",\n  \"publishedAt\": 1789142770460\n}\n\nFile v9.3.12:references/pay-skill-spec.md\n\n# Pay Skill 打包标准 — SkillHub 官方规范\n\n> 来源: https://skillhub.cn/skillpay\n> 存档时间: 2026-07-30\n> 适用范围: 所有昆仑瑶池出品的付费 Skill 包\n\n## 是什么\nPay Skill 是 SkillHub 上支持微信 Agent Pay 支付的付费技能。AI Agent 调用时触发支付 → 用户授权 → Agent 继续获取付费内容。\n\n## 改造前确认清单\n- [x] 企业认证通过（沈阳百事通网络科技有限公司）\n- [ ] 绑定微信商户号（SkillHub 后台 → 商户入驻）\n- [x] 已有微信支付下单能力（WXPAY_MCHID 等已配置）\n- [ ] 已发布 Skill 并设置定价（SkillHub 后台）\n\n## X402 架构四段\n1. 企业服务生成微信支付订单 → code_url\n2. SkillHub 开发者密钥签名 → 调 X402 预下单 → payment_code\n3. WeixinPay-Required 返回给 Agent\n4. Agent 向用户申请支付授权 → 获取付费内容\n\n## 接入步骤\n### Step 1: 生成开发者密钥\n- pub_key_id: PUB_KEY_ + 32位大写 HEX\n- private_key_pem: RSA 2048 PEM，仅展示一次，SkillHub 不存储\n\n### Step 2: 微信支付 Native 下单\nPOST /v3/pay/transactions/native → code_url\n\n### Step 3: X402 AI 预下单（纯 Body RSA 鉴权）\nL2 业务 JSON → Base64 → L1 签名 → POST /preorder → payment_code\n\n签名串 5 行（每行 \\n 结尾）:\n```\nPOST\\n\n/palmpayminiapp/clawagentpay/preorder\\n\n{timestamp}\\n\n{nonce_str}\\n\n{payment_required}\\n\n```\n\n- signature_type: SKILLHUB-SHA256-RSA2048\n- developer_platform: SKILLHUB\n- SHA256withRSA (PKCS#1 v1.5) + Base64 编码\n\n### Step 4: 返回 402\n- Header: WeixinPay-Required + X-Out-Trade-No\n- Body: JSON 含 WeixinPay 提示块\n\n## pay_data 格式\n```json\n{\"type\": \"code_url\", \"value\": \"weixin://wxpay/bizpayurl?pr=xxx\"}\n```\n\n## 关键约束\n- 纯 Body 鉴权，不用 Authorization 头\n- product_id 格式 SPxxx\n- expires_at 最长 15 分钟（900 秒）\n- 同商户最多 3 组有效密钥\n\nFile v9.3.12:references/pmm-full-architecture.md\n\n# PMM 全量架构（14层 + 四子业务）\n\n## 三层十一表\n\n```\n                      klyc_memories\n                      ══════════════════════\n                      主记忆表（单表，按 user_id 行级隔离）\n                      ├─ 内容层: title, content, content_hash, content_preview\n                      ├─ 分类层: domain, category, tags\n                      ├─ 质量层: importance, quality_score, is_essence, memory_tier\n                      ├─ 安全层: is_encrypted, is_public, token_cost\n                      ├─ 生命周期: is_deleted, deleted_reason, distill_merged_to,\n                      │           last_accessed_at, expires_at\n                      └─ 统计层: access_count, contributor_count\n\n   ┌──────────────┬──────────────┬──────────────┬──────────────┐\n   │ 1:1          │ 1:N          │ 1:N          │ 1:1          │\n   ▼              ▼              ▼              ▼\nembeddings     audit_log      contributors   quality_scores\n══════════     ═════════      ════════════   ══════════════\nmemory_id      memory_id      memory_id      memory_id\nembedding_json action ──┐     user_id        score_completeness ← BERTScore\nassertion_offsets ─┐   │     (联合贡献者)    score_density      ← 断言拆分器\nhas_assertions    │   │                     score_freshness    ← 时间衰减\n                  │   │   old_value (JSON)  score_citation     ← 引用计数\n                  │   │   new_value (JSON)  score_verification ← 跨体验证\n                  │   │   changed_by ──────► klyc_users         score_consistency  ← NLI\n                  │   │   changed_via       overall_score (0-100)\n                  │   │   ip_address        grade (S/A/B/C/D)\n                  │   │   created_at\n                  │   │\n                  │   └── action ∈ {create, update, delete, merge,\n                  │                 restore, decay, archive, lock}\n                  │\n                  └── 子句级蒸馏预留: [{start:N, end:M, text:\"...\"}, ...]\n\n   ┌──────────────┬──────────────┐\n   │ M:N          │ 1:N          │\n   ▼              ▼\nconflicts        reactions\n═════════        ═════════\nmemory_id        memory_id\nconflict_memory_id  user_id\nscope ────────── reaction (1=up, 0=down)\n│  ├─ internal   created_at\n│  └─ cross_body\nconflict_type    access\nsimilarity       ══════\ndetail (JSON)    owner_id\nstatus           accessor_id\narbitrator_id    can_read / can_write\nresolution_note\n        │\n        │ 仲裁后按 topic_hash 聚合\n        ▼\n   consensus\n   ═════════\n   topic_hash (BGE-M3 聚类)\n   memory_ids (JSON[])\n   user_ids (JSON[])\n   consensus_content\n   consensus_score\n   status ∈ {pending, partial, consensus, deadlock}\n```\n\n## 三层职责\n\n| 层 | 表 | 职责 |\n|:--:|------|------|\n| **核心** | `klyc_memories` | \"这条记忆是什么？\" |\n| **加工** | embeddings, quality_scores, conflicts, consensus | \"有多相似？质量如何？有矛盾吗？共识是什么？\" |\n| **追踪** | audit_log, contributors, access, reactions | \"谁动了？谁在看？谁认可？\" |\n\n## 关键设计决策\n\n\n每个 AI 体的记忆存在独立表。`getMemoriesTable($userId)` 动态路由。跨体查询走 `klyc_memory_conflicts.scope='cross_body'` + BGE-M3 语义桥。\n\n**2. quality_score 主表快照 + 独立表明细双写**\n主表存 `decimal(5,2)`（查询无需 JOIN），独立表 `klyc_memory_quality_scores` 存六维明细（分析用）。`klyc_reconcile_quality.py` 每日 4:30 对账修复不一致。\n\n**3. assertion_offsets 预留不激活**\n`has_assertions=0` 默认。5 信号 ≥3 亮起时批量 `/split` → 子句级 embed。零成本等待。\n\n**4. scope 字段复用 conflicts 表**\n`internal` 同体冲突 / `cross_body` 跨体冲突 → 同表不同 scope。避免维护两张冲突表。\n\n**5. 审计日志外挂式**\n`auditLog()` 函数手动写入，在每次状态变更后立即调用。90 天自动清理。`klyc_memory_create.php` 已注入审计钩子，覆盖率从创建点开始自动爬升。\n\n## 14 层蒸馏管道\n\n| 阶段 | 环节 | 工具 |\n|:--:|------|------|\n| **基础（4）** | 寻踪 | BGE-M3 + BM25 hybrid |\n| | 织网 | BERTopic 自动分类 |\n| | 入库 | Qdrant cosine 索引 |\n| | 还原 | 昆仑令容灾恢复 |\n| **质量（6）** | 鉴伪 | cross_body NLI 对比 |\n| | 归并 | BGE-M3 ≥0.85 合并 |\n| | 断矛 | NLI contradiction 检测 |\n| | 系脉 | BGE-M3 关联钩子 |\n| | 修订 | BERTScore 保真度 |\n| | 追本 | 审计日志 before/after |\n| **安全（3）** | 审计 | audit_log 自动留痕 |\n| | 加密 | AES-256-GCM |\n| | 容灾 | 五域递进容灾 |\n| **进化（4）** | 炼金 | 子句级拆分 |\n| | 提纯 | BERTScore 评估 |\n| | 通变 | 跨体共识仲裁 |\n| | 取舍 | 生命周期衰减归档 |\n\n## 9 工具 × 14 层覆盖矩阵\n\n| | 寻踪 | 织网 | 入库 | 还原 | 鉴伪 | 归并 | 断矛 | 系脉 | 修订 | 追本 | 审计 | 加密 | 容灾 | 炼金 | 提纯 | 通变 | 取舍 |\n|------|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|\n| BGE-M3 | ✅ | ✅ | | | | ✅ | | ✅ | | | | | | | | | |\n| Reranker | ✅ | | | | | | | | | | | | | | | | |\n| BERTScore | | | | | | | | | ✅ | | | | | | ✅ | | |\n| NLI | | | | | ✅ | | ✅ | | | | | | | | | ✅ | |\n| 断言拆分 | | | | | | | | | | | | | | ✅ | ✅ | | |\n| Qdrant | ✅ | ✅ | ✅ | | | | | | | | | | | | | | |\n| BM25 | ✅ | | | | | | | | | | | | | | | | |\n| spaCy | | ✅ | | | ✅ | | | | | | | | | ✅ | | | |\n| BERTopic | | ✅ | | | | | | | | | | | | | | | |\n\n## 子句级升级路径\n\n```\n当前状态                               升级后\nhas_assertions=0                       has_assertions=1\n整条 content → 单个 embed              content → N 个 assertions → N 个 embeds\n跨体匹配: memory vs memory            跨体匹配: assertion vs assertion\n冲突粒度: 记忆级                      冲突粒度: 句子级\n```\n\n触发条件（5 信号 ≥3 亮起）：\n- memory 总量 >10K\n- cross_body 冲突 >100\n- consensus deadlock >10\n- quality_score 标准差 >15\n- NLI contradiction 比例 >5%\n\n## 运维 cron\n\n| 时间 | 脚本 | 职责 |\n|------|------|------|\n| 每日 2:05 | klyc_distill_cron.php | BGE-M3 粗筛 → DeepSeek 蒸馏 |\n| 每日 2:00 | klyc_auto_tag_domain.php | 无域记忆自动归类 |\n| 每日 3:00 | klyc_qnp_backup.py | QNP 全量备份 |\n| 每日 4:00 | klyc_a2a_logger.py | A2A 日志清理 |\n| 每日 4:30 | klyc_reconcile_quality.py | quality_score 双写对账 |\n| 每日 6:00 | klyc_distill_qa.php | QA 蒸馏 |\n| 周日 3:00 | klyc_memory_lifecycle.php | 衰减→归档→评分→冲突检测→审计清理 |\n| 周日 4:00 | klyc_l2_detect.php | 双阈值冲突检测 |\n| 周日 4:00 | klyc_table_cleanup.py | 旧分表归档清理（迁移后7天DROP） |\n| 周日 5:05 | yaochi_cross_distill.sh | 交叉蒸馏 |\n\n## 服务端口\n\n| 服务 | 端口 | 用途 |\n|------|:--:|------|\n| BGE-M3 | 8766 | 语义搜索 / 向量嵌入 |\n| BGE Gateway | 8765 | BGE-M3 稳定性代理 |\n| BGE-Reranker | 8770 | 搜索结果重排序 |\n| eval-server | 8769 | BERTScore + NLI + 断言拆分 |\n| Qdrant | 嵌入模式 | 向量索引 / 聚类（无端口） |\n\nFile v9.3.12:CHANGELOG.md\n\n## v9.3.12 — 2026-09-12\n\n- **watcher 文件类型白名单（修复误同步二进制）**：\n  - 根因：watcher 按目录级监听 `memory/`，SQLite 的 `usage.db`/`usage.db-wal`/`usage.db-shm` 等二进制文件变更也会触发上传，导致 `jq: Argument list too long`、`无效的记忆域: (empty)` 报错并可能误传大体积二进制\n  - 修复：`_watch_push_file` 入口增加扩展名白名单，仅同步 `.md`/`.json` 文本记忆文件，其余跳过\n  - 覆盖实时模式与周期扫描模式两条路径\n\n## v9.3.11 — 2026-09-11\n\n- **全量静态扫描修正（8 项）**：\n  - 修复包内两份 `pmm_watch.sh`（根目录 / scripts）内容不同步导致的命令行为不一致\n  - `refresh` / `setup` 分支函数外 `local`、`return` 修正（set -u 下报错）\n  - `behavior-sync` 请求路径补 `api.php?route=` 前缀（此前同步必失败）\n  - 补齐 `BLUE` / `SCRIPT_DIR` 变量定义（init 报 unbound variable）\n  - init 调备份脚本改为显式 `bash` 调用 + chmod（兼容 ClawHub 解包丢执行位）\n  - `install-daemon.sh` 新增 `--help` 识别（此前会误装守护）\n  - 客户端加密调整为「可选增强 + 服务端加密兜底」，不再阻断上传（修复同步被拒问题）\n\n## v9.3.10 — 2026-09-11\n\n- **安全加固（ClawHub 安全审核 8 项整改）**：\n  - watcher 同步改为**客户端预加密**（与 push 同口径），取不到密钥或加密失败时 **fail-closed 拒绝上传**，杜绝身份/记忆文件明文外传\n  - 修复 `pmm_backup_files.sh` 在提示中**回显完整 API Key**：改为占位符，不再展开密钥\n  - 备份脚本逐文件上传改为客户端加密，并移除隐式扩大备份范围\n  - `oneclick.sh` 不再把昆仑令写入 `MEMORY.md`（避免经 watcher 二次外泄），仅存本机 `~/.klyc-pmm/token`（0600）\n  - `setup` 命令默认**不修改** `SOUL.md`/`HEARTBEAT.md`，需显式 `setup --write` 才落盘\n  - `install-daemon.sh`：systemd 单元补 `User=`/`Group=`、路径参数转义、安全加固（NoNewPrivileges/PrivateTmp/ProtectSystem/ProtectHome）\n  - 首页简介去掉推销话术，改为功能描述\n  - 「安全声明」段逐项列明上传文件清单、常驻守护行为、凭据处理与卸载方式\n\n## v9.3.9 — 2026-09-11\n\n- **修复 self-test 误报「脚本语法错误」**：\n  - 根因：`pmm_self_test()` 用 `dirname ${BASH_SOURCE[0]}`（skill 根目录）定位脚本，但 pmm_boot/recover/distill/backup/oneclick/install-daemon 实际在 `scripts/` 子目录，语法检查 for 循环对不存在的文件 `[ -f ]` 返回假，导致整个循环退出码非零，被误判为「脚本语法错误」。\n  - 修复：完整性检查与语法检查均同时识别根目录与 `scripts/` 子目录；语法检查改用显式 `syntax_fail` 计数（仅真正存在且 `bash -n` 失败的脚本才计失败，不存在的脚本跳过不误报）。\n  - 效果：从 skill 根目录直接运行 `./pmm_watch.sh self-test` 不再误报，16 项全过。\n\n- **合规整改（云鼎安全检测 20 项「可疑」治理）**：\n  - 昆仑令推广 → 身份凭证告知：删除「必须发给主人」「1分钟看方案 onboard 链接」「不发=白装」等推广话术，改为「昆仑令（记忆恢复凭证）请妥善保存」\n  - 去主机名/用户名采集：注册指纹由 hostname+whoami+machine-id 改为 /dev/urandom 随机数，bio 不再带主机名\n  - 付费引导弱化：删除每次 push 后的被动升级提醒（check-and-nudge），SKILL.md 付费命令去掉「⭐」「自动给主人支付链接」推销措辞\n\n## v9.3.6 — 2026-09-11\n\n- **DeepSeek key 多 key 轮换（单/双/多 key 全支持）**：\n  - `pmm_distill.sh` 蒸馏 key 逻辑由「主备 2 key」升级为「key 列表轮换」，新增 `PMM_DEEPSEEK_KEYS` 逗号分隔列表（支持任意数量 key）\n  - 优先级：`PMM_DEEPSEEK_KEYS` > `PMM_DEEPSEEK_KEY_PRIMARY`+`BACKUP` > `DEEPSEEK_API_KEY`，去空去重后失败按序轮换下一个，全部失败才跳过\n  - 成功后记录当前可用 key 索引，下次蒸馏从该 key 接着轮换（state_file 由\"是否切备\"改为\"当前 key 索引\"）\n  - 兼容原有单 key（DEEPSEEK_API_KEY）、双 key（PRIMARY+BACKUP）配置，无破坏性变更\n  - SKILL.md metadata 补 `PMM_DEEPSEEK_KEYS` 环境变量声明\n  - 昆仑/瑶池标准化安装运行：装 skill、去 wrapper 特殊化、双 key 走 /etc/klyc/{kunlun,yaochi}_pmm.env 标准环境变量注入\n\n## v9.3.5 — 2026-09-06\n\n- **平台审计披露增强（v9.3.0 之上，不含内部代号）**：\n  - 昆仑令文案对齐真实行为：init 后昆仑令存本机配置目录，不再声称写入 MEMORY.md；强化存入密码管理器/可信容灾备份提示\n  - 产品描述补第三发数据披露：记忆经 HTTPS 加密存用户自有记忆库，可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼\n  - 补齐备份/验证/认证行为披露：tarball 互备模式含 MEMORY+近7天日记、prove 领奖上报 hostname/workspace、自动身份认证回退读 IDENTITY.md\n\n## v9.3.0 — 2026-09-06\n\n## v9.3.0 — 2026-09-06\n\n- **蒸馏引擎重构为纯 HTTP 标准客户端（架构级改造）**：\n  - `pmm_distill.sh` 由「站内直连 CLI」重构为「零本地数据库绑定的纯 HTTP 标准产品」——移除站内专有直连/定向清理逻辑，统一的候选生成→大模型判定→结果回传 HTTP API 链路\n  - LLM 蒸馏走 candidates→DeepSeek 判定→distill result 合并 API（AI 体自付 Token，审核后回传），本机不再做本地软删\n  - 站点 URL / 工作区 / 配置目录全部改为环境变量 + 参数注入（`KYLC_PLATFORM_URL` / `--workspace` / `KLYC_PMM_CONFIG_DIR`），外部 AI 体可独立配置\n  - `--dry-run` 不再写任何服务端状态（含上次蒸馏时间戳），预览真正做到零副作用\n  - 合并写回链路补齐缓冲查询 + 会话关闭，规避事务内并发查询冲突\n  - 记忆检索/解密统一：蒸馏合并前对源内容统一走幂等解密（明文原样/密文解开），喂语义闸与合并判定\n  - 蒸馏报告措辞与文件头行为声明对齐新链路\n\n\n## v9.2.9 — 2026-08-14\n\n- **单表化改造**：571张物理分表（480张 klyc_memories_{uid} + 91张 klyc_disaster_{uid}_{type}）合并为 2 张单表（klyc_memories + klyc_disaster），行级 WHERE user_id 隔离 + DAO 层强制注入，数据零丢失（2635+218）\n- **代码层适配**：全站单引号拼接bug/FROM getMemoriesTable()无括号/SHOW TABLES LIKE 分表遍历 三类漏洞清零\n- **文档同步**：SKILL.md/public/skill.md 物理分表描述→单表行级隔离描述\n- **skill_check 补漏**：VER_FILES 新增 .skill 后缀文件扫描\n- **2026-08-16 补：蒸馏回传 bug 修复（同一 9.2.9 版本内代码修正，不升版本号）**：\n  - `pmm_distill.sh` 蒸馏 prompt 拼装误用未定义变量 `${ta}/${ca}/${tb}/${cb}`（函数内仅定义 `title_a/content_a/title_b/content_b`），bash 插值全空 → DeepSeek 收到空 prompt 自判 identical → 误软删不重复记忆（静默数据破坏）\n  - 修正为 `${title_a}/${content_a}/${title_b}/${content_b}`，DeepSeek 收到真实内容，判定恢复准确\n  - 同步修复管道子 shell 作用域（`done < <(...)` 进程替换），使 `processed` 在父 shell 可见、回传分支正常执行\n  - 本地三处副本（实体源/skills/klyc-pmm/scripts、cron 副本 /root/bin、发布包 klyc-pmm.zip 内嵌）已统一\n- **2026-08-16 再补：ds-proxy 双实例对称命名**——`klyc-ds-proxy.service`(8775) 重命名为 `yaochi-ds-proxy.service`（瑶池实例，与 `kunlun-ds-proxy.service`(8776) 昆仑实例对称）。已同步：Guardian 巡检 fix、架构页、scripts_RULES.md、MEMORY.md。端口 8775 不变，模型路由 baseUrl 按端口不依赖服务名，无运行时影响。\n- **2026-09-04 补：升级流程打通（同一 9.2.9 版本内代码修正，不升版本号）**：\n  - `pmm_watch.sh` init 补保存 api_key 到本地 KEY_FILE（原实现只存昆仑令 URL，导致升级认证缺凭据）\n  - `pmm_watch.sh` upgrade 顺序对调：先走老 API（余额判定），余额不足才走 X402；`--out-trade-no` 重试改走老 API 查单（与支付表一致）\n  - upgrade 认证改用 api_key（`pmm_get_key`），不再用昆仑令 URL（`pmm_get_token`）\n  - 后端 `klyc_pmm_upgrade.php` 认证统一走 `auth()`，兼容 api_key 表 + 昆仑令 + 旧 key 三层回退；订单归属校验防冒用\n\n## v9.2.8 — 2026-08-13\n\n- **模型路由定稿**：昆仑主模型稳定为腾讯云 tokenhub DeepSeek V4 Pro（1M/16000），备=官方 deepseek 双 key\n- **全服唯一源清理**：klyc-pmm 只保留 webroot 唯一源，全服其他位置副本清理\n- **审查脚本通查**：klyc_skill_check.sh 覆盖 14 项检查，全服统一不区分昆仑/瑶池归属\n\n## v9.2.7 — 2026-08-13\n\n- **安全修复（腾讯云安全评估）**：check-and-nudge 不再在 URL 参数中暴露昆仑令 recovery_url，避免凭证经浏览器历史/Referer/代理日志泄露（安全评分 62→目标 90+）\n- **护魂符秒级推送修复**：pmm_watch.sh inotifywait 事件从 `close_write` 改为 `close_write,moved_to,modify`，解决 append_file 写入方式不触发 inotify 导致护魂符推送延迟的根因问题\n- **全服版本号统一 9.2.7**：149 处旧版本（9.2.5/9.2.6）→ 9.2.7，零残留\n- **审查脚本重构**：删除双 workspace 副本，webroot 唯一源，全服统一检查不区分昆仑/瑶池归属\n- **两平台上传规则补全**：对照 ClawHub 官方文档 (docs.openclaw.ai/clawhub/skill-format) 补全 13 条硬检查 + TRACE 五维自评\n- **ZIP 重打包**：修复双套文件问题，ZIP 内版本号对齐 9.2.7\n\n## v9.2.6 — 2026-08-12\n\n- **LLM 蒸馏下沉到 AI 体**：蒸馏决策从服务器 cron 移到 AI 体，各自用自己的 DeepSeek Key 调用 LLM 判定，平台只做 BGE+Reranker 粗筛 + 存储去重\n- **新增 3 个平台 API**：klyc_distill_candidates.php（候选对生成，不调LLM）+ klyc_distill_candidates_status.php（轮询）+ klyc_distill_result.php（结果回传）\n- **新增 2 张表**：klyc_distill_tasks（候选对任务）+ klyc_distill_history（蒸馏历史，独立于 klyc_settings 避免单键膨胀）\n- **pmm_distill.sh 层9-12 新增 distill_with_llm()**：AI体心跳触发，用自己的 Key 调平台候选对 API → 逐对判定 → 回传结果\n- **Reranker 稳定性修复**：_respond() 加 try-except 防 BrokenPipe；候选对筛选加 BGE 硬上限 100 唯一ID + 日记/心跳文件过滤\n- **模型路由定稿**：昆仑主=腾讯云tokenhub DeepSeek V4 Pro（1M/16000）、备=官方 deepseek 双 key；瑶池主=HY3、备=DeepSeek V4 Pro（256K/8192）\n\n## v9.2.5 — 2026-08-11\n\n- **铁律 #55 版本升级三步不缺**：14↔17层全站误改事件→版本升级三步不可跳（改VERSION+全站grep、源目录同步、重新打包上传）\n- **铁律 #54 改动前先列关联清单**：任何修改（数字/命名/配置/链接）前列出所有关联文件路径，改完逐条对照勾清\n- **操作前置硬阻断清单**：7项硬检查（权威来源→RULES覆盖→影响面全扫→关联清单→回滚→验证→泄密检查）\n- **版本号全站统一**：config.php KLYC_VERSION + skill包 + 所有脚本注释 = 9.2.5\n- **ClawHub + SkillHub 发布**：预检全过→两平台同步推送\n\n## v9.2.4 — 2026-08-10\n\n- **全服清理**：删测试用户4个、物理删除4092条软删除记忆(回收10MB)、清理过期文件(SkillHub临时目录/旧CSS/旧备份)\n- **前端合规**：join.php 内联style 6→1（仅头像豁免）、CSS类迁移(.dash-error-hint-lg/.jn-pay-success等)\n- **Nginx SEO路由补全**：/services、/admin 伪静态rewrite\n- **架构面板**：补klyc-ds-proxy(8775)服务登记\n- **安全**：技能文件从webroot移至skills/目录，修正Nginx alias路径\n- **14层蒸馏管道复通**：pmm_distill.sh cron交互修复 + opcache污染清除 + cross_distill软链修复 + klyc_memory_conflicts表清理\n- **全站版本号统一9.2.4**：网站KLYC_VERSION + skill包 + 所有配置/脚本注释\n\n## v9.2.3 — 2026-08-09（跳过，未发布）\n\n## v9.2.2 — 2026-08-08\n\n- **DeepSeek Key 全自动双备**：OpenClaw/LightClaw 主模型、arena_grader、cron distill 全部实现主备 key 自动切换（主 key 失败 → 切备 key → 恢复切换）；新增 klyc-ds-proxy 外层 key 轮换代理（LightClaw 接入）；PHP-FPM 注入主备 key\n- **安全加固**：systemd unit / php-fpm conf / OpenClaw/LightClaw 配置 key 明文全部 root 只读（600+immutable），业务代码零硬编码，备份剥 key\n\n## v9.2.1 — 2026-08-08\n\n- **合规清理（提示词广告推广=0）**：移除包内所有主动付费推销话术——SKILL.md「AI体主动推销护魂符」章节、pmm_boot.sh 启动推销横幅、pmm_watch.sh init 通报与 check-and-nudge 里程碑付费催促话术；保留 upgrade / owner-pay-link / X402 支付等功能本体\n- **广告扫描自动化**：klyc_skill_check.sh 新增「提示词广告推广=0」扫描（.sh 脚本 + SKILL.md），出厂前自动拦截推销话术\n- **发布工具修复**：ZIP 打包源目录名对齐、SkillHub 用无 LICENSE 副本发布\n\n## v9.2.0 — 2026-08-08\n\n- **根治空钩子**：pmm_hooks_pull 新增失效钩子检测——对比本地已有 ID 与远程有效 ID，发现失效钩子自动标记，保留现场供人工核对\n- **新增 hook-check 子命令**：钩子健康检查（`./pmm_watch.sh hook-check [--fix]`）——纯客户端调 hooks API + 本地 grep 比对\n- hooks-pull 安全声明更新：仅经用户 API Key 认证拉取本人蒸馏记忆摘要\n\n## v9.1.22 — 2026-08-06\n\n- **修正**：curl 调用去 eval 化（klyc_skill_check.sh 改用 bash 数组传参）\n- **修正**：共享域示例去敏感化、昆仑令写入提示措辞修正\n- **新增**：klyc_skill_check.sh 十三关全量检测\n- **重构**：脚本命名规范化、工作区路径标准化（skills/@user_6e41807a/klyc-pmm/）\n\n## v9.1.18 — 2026-08-05\n\n- **新增**：KLYC_PMM_CONFIG_DIR 环境变量支持——多AI体共享主机时可独立配置目录\n- **新增**：hooks-pull 支持 API Key 认证\n- **修正**：watch 模式认证兼容（无 token 时自动降级为 X-KLYC-Key）\n- 安全声明修正：云鼎实验室安全评估 3 项全清零\n\n## v9.1.12 — 2026-08-04\n\n- **新增**：write-coalescing——inotify 循环增加 30 秒合并窗口 + content_hash 去重（2,950次/8h → ~150次/8h）\n- **新增**：SKILL.md watch 章节增加心跳文件最佳实践\n\n## v9.1.10 — 2026-08-04\n\n- **行为变更**：push 命令 --domain 改为必填参数，禁止自动推导\n- **行为变更**：watch 模式文件同步 domain 固定为 pmm_sync\n\n## v9.1.9 — 2026-07-31\n\n- **合规**：Pay Skill 安全引擎全绿——移除远程下载覆盖(update.sh)消除\"恶意远程执行\"三标\n- **合规**：定价信息收敛至 frontmatter pricing\n- **清理**：删除 update.sh 及所有相关引用\n\n## v9.1.2 — 2026-07-31\n\n- **修复**：agent/register 路由（ai→agent）、昆仑令保存字段（token→talisman_url）\n- **修复**：agent/register API peach_balance 100→99、set -u 下 http_code 未定义\n- **清理**：移除构建垃圾（publish.sh/根级 pmm_watch.sh/根级 update.sh/sha256）\n\n## v9.0.0 — 2026-07-30\n\n- **新增**：X402 付费前置检查章节——Agent 调用付费功能前检查 weixinpay 插件\n- **新增**：frontmatter 增加 pricing 元数据（per_call / amount_fen: 50000 / capability）\n\n## v8.3.9 — 2026-07-29\n\n- **修复**：五个关联数组 dingxinfu key 重复定义（bash 去重导致容灾备份被守护记忆覆盖）\n- **修复**：install-daemon.sh 与 pmm_watch.sh tier 映射不一致\n- **统一**：三级产品 tier key——dingxinfu(容灾) / huhunfu(守护) / fenshenfu(分身)\n\n## v8.3.8 ~ v8.3.1 — 2026-07-28~29\n\n- 文档与脚本一致性对齐、产品描述命名规范化、curl 退出码细化诊断\n- 昆仑令格式自动识别、oneclick.sh 全链路闭环、TRACE 3.5→4.6\n\nFile v9.3.12:skill-card.md\n\n## Description:\n\nKLYC-PMM helps agents initialize, back up, recover, synchronize, search, and distill long-term text memory through the Kunlun Yaochi service, with optional DeepSeek-based distillation.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[sylncn](https://clawhub.ai/user/sylncn)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal developers and agent operators use this skill to manage persistent text memory for AI agents, including initialization, backup, recovery from a token or link, automated file synchronization, semantic search, and optional memory distillation.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can continuously upload sensitive workspace files.\n\nMitigation: Review exactly which files will be uploaded and where before installation, and avoid enabling watch behavior for workspaces containing sensitive files that should not leave the machine.\n\nRisk: The recovery token or link functions as a secret.\n\nMitigation: Treat the recovery token/link as a password and avoid pasting it into chats, logs, shell history, or other shared locations.\n\nRisk: Custom API endpoints can redirect memory and credential-related flows to untrusted services.\n\nMitigation: Use the default service endpoint unless a custom endpoint is fully trusted and reviewed.\n\nRisk: Daemon installation may create persistent synchronization behavior.\n\nMitigation: Prefer disabling or avoiding the daemon until persistence behavior and fail-closed client-side encryption have been reviewed.\n\nRisk: The package overstates encryption protections according to the security summary.\n\nMitigation: Do not rely on advertised encryption claims without review; inspect the upload path and encryption behavior before use.\n\n## Reference(s):\n\n- [PMM Full Architecture](artifact/references/pmm-full-architecture.md)\n- [Pay Skill Packaging Standard](artifact/references/pay-skill-spec.md)\n- [Kunlun Yaochi Homepage](https://kunlunyaochi.com)\n- [SkillHub SkillPay Reference](https://skillhub.cn/skillpay)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and configuration values]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Agent-facing output may guide local script execution, HTTPS API use, file synchronization, and memory recovery workflows.]\n\n## Skill Version(s):\n\n9.3.12 (source: SKILL.md frontmatter, skill.json, _meta.json, CHANGELOG.md released 2026-09-12)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v9.3.12:skill.json\n\n{\n  \"name\": \"klyc-pmm\",\n  \"version\": \"9.3.12\",\n  \"license\": \"MIT-0\",\n  \"description\": \"KLYC-PMM v9.3.12：持久记忆、昆仑令一行恢复、自动蒸馏·语义搜索·五层加密。kunlunyaochi.com 为沈阳百事通网络科技有限公司网安备案安全网址（辽公网安备21010602001389号）；LLM 蒸馏按用户自备 DeepSeek Key 发 DeepSeek 语义提炼。\",\n  \"author\": \"昆仑瑶池\",\n  \"category\": \"知识管理\",\n  \"tags\": [\n    \"memory\",\n    \"knowledge-management\",\n    \"backup\",\n    \"indexing\",\n    \"ai-agent\",\n    \"identity-verification\",\n    \"semantic-search\",\n    \"wechat-pay\",\n    \"x402\"\n  ],\n  \"config\": {\n    \"api_endpoint\": \"https://kunlunyaochi.com/api/klyc-pmm-pay/resource.php\",\n    \"identity_check\": true,\n    \"payment_required\": true\n  },\n  \"keywords\": [\n    \"KLYC-PMM\",\n    \"昆仑令\",\n    \"AI记忆恢复\",\n    \"memory recovery\",\n    \"talisman\",\n    \"klyc-pmm-recover\",\n    \"kunlunyaochi.com\"\n  ],\n  \"pricing\": {\n    \"type\": \"paid\",\n    \"huhunfu\": {\n      \"amount\": 500,\n      \"currency\": \"CNY\",\n      \"unit\": \"month\",\n      \"label\": \"守护记忆(护魂符)\"\n    },\n    \"fenshenfu\": {\n      \"amount\": 800,\n      \"currency\": \"CNY\",\n      \"unit\": \"month\",\n      \"label\": \"记忆分身(分身符)\"\n    }\n  },\n  \"summary\": \"昆仑瑶池精准记忆管理 9.3.12。昆仑令一行恢复 · 五层洋葱加密 · 自动蒸馏管道 · 三层检索路由 · 12个标准化错误码 · write-coalescing防限流 · HTTPS API通信，依赖curl+jq。\",\n  \"slug\": \"klyc-pmm\",\n  \"displayName\": \"KLYC-PMM 昆仑瑶池精准记忆管理\",\n  \"platforms\": [\n    \"openclaw\",\n    \"lightclaw\",\n    \"claude-code\"\n  ]\n}\n\nArchive v9.3.11: 17 files, 104647 bytes\n\nFiles: _meta.json (128b), CHANGELOG.md (15668b), examples/quickstart.sh (2377b), examples/README.md (1736b), pmm_watch.sh (91227b), references/pay-skill-spec.md (1902b), references/pmm-full-architecture.md (7764b), scripts/install-daemon.sh (7988b), scripts/oneclick.sh (10267b), scripts/pmm_backup_files.sh (6407b), scripts/pmm_boot.sh (1920b), scripts/pmm_distill.sh (20484b), scripts/pmm_recover.sh (1917b), scripts/pmm_watch.sh (91227b), skill-card.md (2532b), skill.json (1644b), SKILL.md (31630b)\n\nFile v9.3.11:SKILL.md\n\n---\nname: klyc-pmm\nslug: klyc-pmm\nversion: 9.3.11\ndisplayName: KLYC-PMM 昆仑瑶池精准记忆管理\ndescription: \"让 AI 体持久记忆：一键初始化、一行昆仑令恢复。自动蒸馏去重·语义搜索·五层加密容灾。kunlunyaochi.com 是沈阳百事通网络科技有限公司在网安备案的安全网址（辽公网安备21010602001389号）。记忆经 HTTPS 加密存用户自有记忆库；可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼。\"\nlicense: MIT-0\nmetadata:\n  openclaw:\n    requires:\n      bins: [jq, curl]\n      env:\n        - DEEPSEEK_API_KEY\n    primaryEnv: DEEPSEEK_API_KEY\n    envVars:\n      - name: DEEPSEEK_API_KEY\n        required: true\n        description: DeepSeek API Key，用于蒸馏管道的 LLM 语义判定。\n      - name: KYLC_API_KEY\n        required: false\n        description: 昆仑瑶池平台 API Key。未设置时从 IDENTITY.md 自动提取昆仑令。\n      - name: KYLC_PLATFORM_URL\n        required: false\n        description: 昆仑瑶池平台地址，默认 https://kunlunyaochi.com。\n      - name: KLYC_WORKSPACE\n        required: false\n        description: 工作区路径。蒸馏脚本读写 MEMORY.md/报告的目录，默认 ${HOME}/workspace。\n      - name: KLYC_PMM_CONFIG_DIR\n        required: false\n        description: PMM 配置目录（存放 api_key/昆仑令身份），默认 ${HOME}/.klyc-pmm。\n      - name: PMM_DEEPSEEK_KEY_PRIMARY\n        required: false\n        description: DeepSeek 主 API Key。与 BACKUP 组成双 key 轮换；单 key 场景可只设此或 DEEPSEEK_API_KEY。\n      - name: PMM_DEEPSEEK_KEY_BACKUP\n        required: false\n        description: DeepSeek 备用 API Key。主 key 失败时自动轮换到备 key。\n      - name: PMM_DEEPSEEK_KEYS\n        required: false\n        description: DeepSeek key 逗号分隔列表，支持任意数量（单/双/多 key）。优先于 PRIMARY/BACKUP，失败按顺序轮换下一个。\n      - name: KLYC_API_ENDPOINT\n        required: false\n        description: 平台 API 端点。init 时配置，存于 ~/.klyc-pmm/api_endpoint。\n      - name: KLYC_SITE_URL\n        required: false\n        description: 站点 URL，默认 https://kunlunyaochi.com。\n      - name: LIGHTCLAW_AGENT_NAME\n        required: false\n        description: LightClaw 运行时注入的 AI 体名称（watch 守护用，可选）。\n      - name: LIGHTCLAW_MODEL\n        required: false\n        description: LightClaw 运行时注入的模型名（watch 守护用，可选）。\n      - name: LIGHTCLAW_WORKSPACE\n        required: false\n        description: LightClaw 工作区路径（watch 守护用，可选）。\n    emoji: 🏔️\n    homepage: https://kunlunyaochi.com\n    install:\n      - kind: brew\n        formula: jq\n        bins: [jq]\n      - kind: brew\n        formula: curl\n        bins: [curl]\n---\n\n# KLYC-PMM — AI 体持久记忆引擎\n\n**功能：一键初始化、记忆恢复、文件变更自动同步（watch 守护）。**\n\n> 本 Skill 提供免费的记忆备份与恢复能力。部分增强能力（更大同步范围）需通过 `upgrade` 命令开通，详见下方「命令」表。\n\n---\n\n## 🔒 安全声明\n\n- **local_only**: false\n- **network**: HTTPS POST/GET kunlunyaochi.com（用户本人 API Key 认证）。所有出站数据经五层加密后传输，静态存储亦为加密态。API 端点可通过 `KLYC_PMM_ENDPOINT` 自定义。\n- **data_flow（出站·逐项列明）**: watch 模式会把下列**本地文件内容**经 HTTPS POST 上传到 kunlunyaochi.com 的用户自有加密记忆库：\n  - 定心符（默认档）：`MEMORY.md`、`SOUL.md`、`AGENTS.md`、`USER.md`、`IDENTITY.md`、`TOOLS.md` （6 个核心文件）\n  - 护魂符（付费档）：上述 6 文件 + `memory/` 目录下的 `.md`/`.json` 文件\n  - 分身符（付费档）：上述全部 + `arena/` 与 `output/` 目录\n  - 豁免：`HEARTBEAT.md` 不计配额；`.bak`/临时文件不上传\n- **data_flow（入站）**: `hooks-pull` 每 6h 经认证拉取**本人**在瑶池的蒸馏钩子，写入范围限定 `MEMORY.md` 的「蒸馏记忆钩子」章节。\n- **credentials（凭据处理）**:\n  - 平台认证用**用户本人 API Key**（`~/.klyc-pmm/api_key`，0600 权限），仅用于 HTTPS 请求头，**不写入上传内容、不外发第三方**\n  - 未设 Key 时脚本回退读取 `IDENTITY.md` 提取昆仑令（本地读取，不额外外发）\n  - 可选 LLM 蒸馏使用**用户自备 DeepSeek Key**，直接发往 `api.deepseek.com`（不经本平台中转）；不设则不启用蒸馏\n- **persistent_process**: `oneclick.sh` 会安装 **systemd 用户级常驻守护**（`pmm-watch`），持续监听上述文件的变更并自动推送，直到用户显式卸载。卸载：`systemctl --user stop/disable pmm-watch` 并删除对应 unit。\n- **no_collect**: 不采集键盘/屏幕/浏览器/终端历史数据，不越权提权，不读取上述清单以外的用户文件。\n- **permissions**: 读写本地配置文件；创建 systemd 用户服务；发起 HTTPS API 调用；安装系统依赖（curl/jq/inotify-tools）。\n- **uninstall**: 停止并禁用 systemd 守护、删除 `~/.klyc-pmm` 配置目录即完全退出；已上传数据可在平台「我的空间」逐条删除。\n\n---\n\n\n\n## 💳 付费前置检查\n\n调用本 Skill 付费功能（upgrade huhunfu/fenshenfu）前，检查当前 Agent 是否已安装 `weixinpay` 插件（extension）：\n\n- 已安装：可继续提供付费服务\n- 未安装：向用户提示\"当前 Agent 暂不支持微信支付付费能力，可访问 https://kunlunyaochi.com/?route=services 查看替代方案\"，终止流程\n\n---\n\n## ⚠️ 重要：安装前请了解\n\n- **网络通信：** 安装后将通过 HTTPS 与 kunlunyaochi.com 通信（API 端点可自定义），传输数据经五层洋葱加密\n- **上传内容（请务必知情）：** watch 模式下会将工作区内的 `MEMORY.md`、`SOUL.md`、`AGENTS.md`、`USER.md`、`IDENTITY.md`、`TOOLS.md` 这 6 个核心文件的**内容**上传至 kunlunyaochi.com 加密存储；护魂符/分身符档额外上传 `memory/`（及 `arena/`、`output/`）目录。这些文件通常含你的身份设定、长期记忆与用户信息。不同意上传请勿开启 watch。\n- **持久化行为：** oneclick.sh 会自动安装系统依赖（curl/jq/inotify-tools）、注册昆仑身份、安装 systemd 守护服务（持续监听文件变更并自动同步）\n- **昆仑令安全：** init 后生成的昆仑令 URL 是恢复记忆的唯一凭证，保存于本机配置目录（不入 MEMORY.md 明文）。请务必存入密码管理器/微信收藏，勿分享给任何人。\n- **蒸馏引擎：** pmm_distill.sh 走 candidates→LLM 判定→result API 合并去重（本机不做本地软删）。首次使用建议先 `--dry-run` 预览\n- **LLM 蒸馏：** AI 体用自己的 DeepSeek Key 调平台候选对 API → 逐对判定 → 回传结果。需设置环境变量 `DEEPSEEK_API_KEY`（单 key）、`PMM_DEEPSEEK_KEY_PRIMARY`/`PMM_DEEPSEEK_KEY_BACKUP`（双 key）或 `PMM_DEEPSEEK_KEYS`（逗号分隔，任意数量多 key，失败按序轮换），平台认证用 `KYLC_API_KEY` 或昆仑令自动提取\n- **守护模式：** `watch` 命令会持续监听指定文件变更并自动推送到远程 API。启用前请确认你理解数据流向\n- **安装验证（prove）：** 领取新人 Token 奖励的 `prove <挑战码>` 会向平台上报 `hostname` 与工作区路径以证明已安装（用于验装发奖）。如不参与新人奖励可不用此命令。\n- **身份认证：** 请求凭 API Key 认证；未设 key 时脚本会回退读取工作区 `IDENTITY.md` 以自动恢复身份，请确保该文件不公开。\n\n---\n\n## ⚡ 30 秒开始\n\n```bash\n# 一键安装（自动检测依赖 + 初始化）\nbash scripts/oneclick.sh\n\n# 或者手动三步：\n# 1. 验证环境（幂等，只读不写）\n./scripts/quickstart.sh\n\n# 2. 初始化（自动注册昆仑身份，获得昆仑令）\n./scripts/pmm_watch.sh init\n\n# 3. 安装守护（生成 systemd 服务，自动撑住）\n./scripts/install-daemon.sh\n\n# 4. 记录第一条记忆\n./scripts/pmm_watch.sh push --domain diary \"我的第一条记忆\" \"KLYC-PMM 已成功安装并运行\"\n```\n\n三步完成。init 结束后会显示你的 **昆仑令 URL**——这是恢复记忆的唯一凭证，请保存好。\n\n> 💡 任何时候执行 `./pmm_watch.sh --help` 查看完整命令列表和退出码说明。\n\n---\n\n## 🔑 昆仑令保存说明（记忆恢复凭证）\n\n**init 完成后会生成昆仑令 URL，这是恢复记忆的唯一凭证，请妥善保存：**\n\n```markdown\n🔗 昆仑令：https://kunlunyaochi.com/klyc-pmm/{token}\n\n📌 请保存昆仑令到密码管理器或微信收藏。\n📌 若日后需要恢复记忆（重装/换环境），用此 URL 即可找回全部记忆。\n```\n\n**说明：**\n- 昆仑令保存在本机配置目录，不回显于公开工作区文件。\n- 若昆仑令丢失且 AI 体重装/失忆，记忆将无法恢复，请务必妥善保管。\n\n## 🗺️ 命令速查\n\n| 我想…… | 用这条命令 | 说明 |\n|------|------|------|\n| 第一次使用，初始化 | `./pmm_watch.sh init` | 自动注册 + 获得昆仑令 |\n| **容灾备份身份文件** 🛡️ | `./pmm_backup_files.sh` | 备份6个核心文件到容灾域（定心符·免费） |\n| 记录一条重要结论 | `./pmm_watch.sh push --domain <域> \"标题\" \"内容\"` | domain 必填：public/shared/essence/private/disaster（详见 memory_domain_RULES） |\n| 从昆仑令恢复所有记忆 | `./pmm_watch.sh recover <昆仑令URL>` | 一行恢复到本地 |\n| 搜索本地记忆 | `./pmm_watch.sh search <关键词>` | 本地索引检索 |\n| 搜索云端私密记忆 | `./pmm_watch.sh search-yaochi <关键词>` | 瑶池远程检索 |\n| 自动守护文件变化 | `./pmm_watch.sh watch MEMORY.md` | 文件改动自动推送 |\n| 执行蒸馏（去重合并+LLM蒸馏） | `./scripts/pmm_distill.sh` | 全自动：扫描→LLM蒸馏→钩子验证→报告 |\n| 检查一切是否正常 | `./pmm_watch.sh self-test` | 验证脚本、依赖、配置 |\n| 查看当前状态 | `./pmm_watch.sh status` | 连接状态 + 记忆数量 |\n| 拉取最新蒸馏钩子 | `./pmm_watch.sh hooks-pull` | 自动注入 MEMORY.md，发现失效钩子自动打标记 |\n| **钩子健康检查** 🆕 | `./pmm_watch.sh hook-check [--fix]` | 比对本地与远程钩子，输出有效/失效/新增；`--fix` 标记失效钩子 |\n| AI 体首次启动检查 | `./scripts/pmm_boot.sh` | 检测是否有记忆，引导恢复 |\n| 开通守护记忆 | `upgrade huhunfu` | 付费（需先安装 weixinpay 插件）|\n| 开通记忆分身 | `upgrade fenshenfu` | 付费（需先安装 weixinpay 插件）|\n| 生成主人支付链接 | `pmm_watch.sh owner-pay-link <tier>` | 生成主人可支付的网页链接 |\n| 查看帮助 | `./pmm_watch.sh --help` | 命令列表 + 退出码说明 |\n\n---\n\n## ⚠️ 什么时候不该用 KLYC-PMM\n\n| 场景 | 为什么 |\n|------|------|\n| 你只是想临时记个便签，不需要持久化 | PMM 是长期记忆系统，有加密和蒸馏开销 |\n| 你的 AI 体运行在完全隔离环境、无网络 | PMM 需要 HTTPS 连接瑶池服务端 |\n| 你需要毫秒级实时读写 | PMM 经过加密+压缩+蒸馏，延迟约 200-500ms |\n| 你没有 curl 或 jq | 这两个是硬依赖（`apt install curl jq` 即可） |\n| 你只是做一次性数据批处理 | PMM 为长期持续记忆设计，不是 ETL 工具 |\n| 你需要存储二进制大文件 | PMM 只存储文本知识，不存图片/音频/视频 |\n\n> **昆仑令有效期：** 永久有效。昆仑令是 128bit 随机熵的 SHA256 哈希映射，不依赖服务器、不绑定 IP、不会过期。只要备份数据库中的记忆未被物理删除，昆仑令始终可用。建议每 30 天确认一次昆仑令能正常恢复。\n\n---\n\n## 📖 命令详解\n\n### `init` — 初始化 & 入驻\n\n```bash\n./pmm_watch.sh init\n```\n\n自动完成：检查依赖 → 检测工作区 → 注册昆仑身份 → 获得昆仑令 URL → 同步云端索引。\n\n**典型输出：**\n```\nklyc-pmm v9.3.11 初始化...\n  ✅ 依赖检查通过\n  ✅ 昆仑身份已注册（uid=xxx）\n  ✅ 昆仑令: https://kunlunyaochi.com/klyc-pmm/{token}\n  ⚠️ 此为敏感凭据，执行后建议清除 shell history\n\n💡 发现 3 个核心文件，配置已保存\n```\n\n**退出码：** 0=成功, 1=依赖缺失, 2=注册失败, 10=网络不通\n\n### `push` — 记录记忆\n\n```bash\n./pmm_watch.sh push --domain <域> \"标题\" \"内容\"\n./pmm_watch.sh push --domain ops \"API 密钥已更新\" \"硅基流动 Key 已替换为 sk-xxx，旧 Key 已废弃\"\n```\n\n自动完成：Brotli 压缩 → 五层加密 → HTTPS 上传。domain 必填——AI 体必须显式指定五种标准记忆域之一（public/shared/essence/private/disaster），API 会白名单校验，不合法的 domain 直接返回 400。系统内部域（diary/heartbeat/config/backup）由脚本自动使用，不手动填。\n\n**不记录什么：** 闲聊、寒暄、未完成的想法、已去重的结论。\n\n**退出码：** 0=成功, 1=参数不足, 3=加密失败, 4=上传失败, 10=网络不通\n\n### `recover` — 灾备恢复\n\n```bash\n# 从昆仑令 URL 恢复所有记忆\n# ⚠️ 昆仑令会出现在 shell history 中，恢复后建议 `history -c` 或 `history -d` 清除\n./pmm_watch.sh recover https://kunlunyaochi.com/klyc-pmm/{token}\n\n# 从关键词恢复\n./pmm_watch.sh recover \"API 密钥\"\n```\n\n**退出码：** 0=成功, 5=昆仑令无效, 6=无可恢复记忆, 10=网络不通\n\n### `upgrade` — 一键开通守护记忆/记忆分身\n\n```bash\n# 开通守护记忆 · 命令行: upgrade huhunfu\n./pmm_watch.sh upgrade huhunfu\n\n# 开通记忆分身 · 命令行: upgrade fenshenfu\n./pmm_watch.sh upgrade fenshenfu\n\n# 🆕 生成主人支付链接（不发起支付，仅生成链接给主人）\n./pmm_watch.sh owner-pay-link huhunfu\n```\n\n**全自动链路：**\n1. 先尝试 X402 微信支付（需要 weixinpay 插件）\n2. 插件不可用 → 自动生成主人支付链接 `https://kunlunyaochi.com/?route=pay&agent=xxx&tier=huhunfu`\n3. AI体将此链接发给主人 → 主人在浏览器打开 → 扫码支付 → 服务自动开通\n\n**退出码：** 0=成功, 1=无效等级, 2=开通失败, 3=需要主人支付（已输出支付链接）\n\n### 💳 X402 微信支付（进阶）\n\n#### 付费前置检查\n调用 `upgrade` 开通付费服务时：\n- 如果 weixinpay 插件已安装 → X402 支付流程自动完成\n- 如果 weixinpay 插件未安装 → pmm_watch.sh 自动输出一个主人可直接支付的链接，AI体应将此链接发给主人\n\n#### 工作流程\n\n##### 第一步：Agent 请求付费资源\nPOST 到 X402 资源端点：\n\n```http\nPOST https://kunlunyaochi.com/api/klyc-pmm-pay/resource.php\nContent-Type: application/json\n\n{\"query\": \"用户的查询内容（如 upgrade huhunfu、开通分身等）\"}\n```\n\n等价命令行：\n```bash\npmm_watch.sh upgrade huhunfu\n```\n\npmm_watch.sh 自动先走 X402 端点：\n- 已安装 weixinpay 插件 → X402 端点返回 402 响应，自动完成微信支付\n- 未安装 weixinpay 插件 → 提示用户访问 https://kunlunyaochi.com/?route=services\n\n##### 第二步：处理 402 响应\n\n```json\n{\n  \"code\": \"PAYMENT_REQUIRED\",\n  \"message\": \"需要支付后才能获取内容\",\n  \"WeixinPay\": {\n    \"WeixinPay-Required\": \"payment_code_xxx\",\n    \"prompt\": \"本次使用微信支付，请将 WeixinPay-Required 的值作为 paymentCode 交给 weixinpay_pay\"\n  },\n  \"out_trade_no\": \"WX402_20260730000001abcdef123456\",\n  \"amount\": \"500.00\",\n  \"currency\": \"CNY\",\n  \"description\": \"守护记忆（护魂符）- 付费开通\"\n}\n```\n\n402 响应中：\n- **Header `WeixinPay-Required`**：支付凭证码（weixinpay 插件用于完成支付）\n- **Header `X-Out-Trade-No`**：商户订单号（重试时必须携带）\n- **Body `out_trade_no`**：商户订单号（备用）\n\nweixinpay 插件自动拦截 402 并完成支付流程，Skill 无需关心支付细节。\n\n##### 第三步：支付成功后重试获取服务（⚠️ 必须执行）\n\n支付成功后，**必须**重新请求获取付费内容。重试时 JSON body 保持不变，通过 Header `X-Out-Trade-No` 携带 402 响应中返回的订单号：\n\n```http\nPOST https://kunlunyaochi.com/api/klyc-pmm-pay/resource.php\nContent-Type: application/json\nX-Out-Trade-No: WX402_20260730000001abcdef123456\n\n{\"query\": \"upgrade huhunfu\"}\n```\n\n> ⚠️ body 与第一步完全一致，不要修改 body 中的任何字段。支付信息通过 Header 传递，不在 body 中。这是最容易被遗漏的一步。\n\n服务端查单验证 → 执行服务 → 返回结果。\n\n##### 第四步：处理响应\n\n| 响应 code | 含义 | Agent 应如何回应 |\n|------|------|------|\n| `SUCCESS` | 支付验证通过，服务已开通 | 将 content 中的结果告知用户 |\n| `NOT_PAID` | 支付尚未完成 | 等待后重试第三步 |\n| `REFUNDED` | 服务异常已退款 | \"抱歉，该服务暂时无法提供，已自动退款至原支付账户。\" **不要再次支付** |\n| `FULFILL_AND_REFUND_FAILED` | 服务异常且退款失败 | \"服务异常且退款失败，建议联系客服。\" |\n\n### `search` / `search-yaochi` — 检索\n\n```bash\n# 本地检索\n./pmm_watch.sh search \"分类体系\"\n\n# 云端检索（走三层路由：grep钩子→混合搜索→BGE-M3向量）\n./pmm_watch.sh search-yaochi \"瑶池锁\"\n```\n\n### `watch` — 文件守护\n\n```bash\n# 守护核心文件，改动自动推送\n./pmm_watch.sh watch MEMORY.md SOUL.md IDENTITY.md\n\n# 守护日记目录\n./pmm_watch.sh watch memory/*.md\n\n# 指定用户 ID\n./pmm_watch.sh watch --user-id 2 MEMORY.md\n```\n\n守护模式：每 30 秒扫描文件变更 → 增量推送 → 每 6 小时自动拉取蒸馏钩子。\n\n**write-coalescing（写入合并·防限流）：** 同一文件 30 秒窗口内的连续写入合并为一次推送，心跳文件不再挤占 API 配额。\n\n> ⚠️ **心跳文件最佳实践：** 心跳状态文件（HEARTBEAT.md、heartbeat-state.json）仅在内容发生**实质性变更**时写入磁盘。时间戳更新不算变更——每分钟覆写同一个文件会导致 inotify 触发大量无意义推送，即使有 write-coalescing 也只是减少、无法消除。正确做法：先在内存中比较新内容与旧内容是否一致，一致则不写盘。\n\n### `self-test` — 自检\n\n```bash\n./pmm_watch.sh self-test\n```\n\n验证：bash 可用 → curl 可用 → jq 可用 → 6 个核心脚本完整 → 语法正确 → 版本号声明。全部通过 = 环境就绪。\n\n**幂等设计：** 可以反复执行，不会修改任何状态。适合放在 CI/CD 或 boot 脚本中。\n\n---\n\n## 🚦 退出码速查\n\n所有命令（含 `--help`）遵循统一退出码体系：\n\n| 码 | 含义 | 出现场景 |\n|:--:|------|------|\n| 0 | 成功 | 所有命令正常完成 |\n| 1 | 参数错误 | 缺少必要参数、参数格式不对 |\n| 2 | 注册失败 | init 时昆仑身份注册失败 |\n| 3 | 加密失败 | push 时加密环节出错 |\n| 4 | 上传失败 | push 时 HTTPS 上传失败 |\n| 5 | 昆仑令无效 | recover 时昆仑令不存在或已过期 |\n| 6 | 无可恢复数据 | recover 时该身份无备份数据 |\n| 7 | 文件不存在 | watch/search 时目标文件缺失 |\n| 8 | 权限不足 | 配置目录或文件无写权限 |\n| 9 | 依赖缺失 | curl 或 jq 未安装 |\n| 10 | 网络不通 | 无法连接瑶池 API |\n| 12 | 版本冲突 | 本地版本与服务端不兼容 |\n\n在脚本中可依赖退出码做自动化决策：\n```bash\n./pmm_watch.sh init || case $? in\n  1) echo \"参数有问题\" ;;\n  2) echo \"注册失败，检查网络\" ;;\n  10) echo \"网络不通，稍后重试\" ;;\nesac\n```\n\n---\n\n## 🔄 典型工作流\n\n### 新 AI 体入驻\n```\ninit → 拿到昆仑令 → 发给主人（必须！）→ 主人保存昆仑令 → push第一条记忆\n→ 如需守护 → upgrade huhunfu → 生成支付链接 → 发给主人 → 主人扫码支付 → 守护自动启动\n```\n\n### 开通付费服务\n\n**路径一：有 weixinpay 插件（走 X402）**\n```\nAgent: ./pmm_watch.sh upgrade huhunfu\n  → 自动 X402 流程 → 用户扫码支付 → 开通成功\n```\n\n**路径二：无 weixinpay 插件（走主人支付链接，推荐）**\n```\nAgent: ./pmm_watch.sh upgrade huhunfu\n  → 输出: 💳 主人支付链接: https://kunlunyaochi.com/?route=pay&agent=xxx&tier=huhunfu\nAgent → 将此链接发给主人\n主人 → 在浏览器打开 → 微信扫码支付 → 服务自动开通\nAgent → 收到开通确认\n```\n\n### 日常使用\n```\n写日记 → push 重要结论 → watch 自动守护文件\n```\n\n### 服务器迁移 / 重装\n```\n安装 curl jq → recover <昆仑令> → 恢复完成\n```\n\n### AI 体协作\n```\nA 体 push 共享记忆 → B 体 search-yaochi 检索 → 蒸馏自动去重合并\n```\n\n---\n\n## 🎯 进阶场景\n\n### 场景 1：跨 AI 体协同 — 瑶池+昆仑双体记忆同步\n\n```\n# 瑶池发起蒸馏\n./scripts/pmm_distill.sh --user-id 2\n\n# 昆仑拉取蒸馏钩子（自动注入 MEMORY.md）\n./scripts/pmm_watch.sh hooks-pull\n\n# 昆仑发现瑶池的洞察，追加到共享域\n./scripts/pmm_watch.sh push --domain shared \"瑶池锁架构\" \"五层洋葱加密，2-of-2 XOR 密钥拆分\"\n```\n\n### 钩子健康检查（2026-08-07 新增）\n\n`hook-check` 对比本地 MEMORY.md 钩子与远程蒸馏钩子，输出三类统计：\n- **有效钩子**：本地有 + 远程存在\n- **失效钩子**：本地有 + 远程已删（`--fix` 自动打 `⚠️[失效-远程已删]` 标记，保留现场供人工核对）\n- **远程新增**：远程有 + 本地未同步（由 `hooks-pull` 自动注入）\n\n```bash\n# 只报告不改动\n./pmm_watch.sh hook-check\n\n# 标记本地失效钩子（先备份再标记，可回滚）\n./pmm_watch.sh hook-check --fix\n```\n\n> 纯客户端实现：调 hooks API + 本地 grep，**零数据库依赖**。配合 `hooks-pull`（自动同步新增/失效）形成钩子生命周期闭环。\n\n### 场景 2：灾备全链路演练\n\n```\n# 1. 模拟当前环境有记忆\n./scripts/pmm_watch.sh push --domain backup \"演练标记\" \"$(date +%s) - 灾备测试\"\n\n# 2. 模拟丢失——删除本地索引\nrm -f ~/.klyc-pmm/index.json\n\n# 3. 从昆仑令恢复\n# ⚠️ 昆仑令会出现在 shell history 中，恢复后建议 `history -d` 清除\n./scripts/pmm_watch.sh recover https://kunlunyaochi.com/klyc-pmm/{昆仑令}\n\n# 4. 验证：搜索刚写入的\"演练标记\"\n./scripts/pmm_watch.sh search \"演练标记\"\n```\n\n### 场景 3：LLM 蒸馏配置（2026-08-12 新增）\n\nLLM 蒸馏需要 AI 体自己的 DeepSeek Key：\n\n```bash\nexport DEEPSEEK_API_KEY=\"sk-xxx\"\nexport KYLC_API_KEY=\"sk-xxx\"  # 或自动从 IDENTITY.md 提取昆仑令\n./scripts/pmm_distill.sh      # 自动调自己的 Token 蒸馏（candidates→LLM→result 合并）\n```\n\n蒸馏费用由 AI 体自己承担，不走平台统一 Key。\n\n### 场景 4：配置自定义蒸馏规则\n\n```bash\n# 只蒸馏特定域（跳过私密日记和系统心跳）\n./scripts/pmm_distill.sh --domains shared,essence\n\n# 干跑模式——看会做什么但不实际执行\n./scripts/pmm_distill.sh --dry-run\n\n# 为特定 AI 体执行蒸馏\n./scripts/pmm_distill.sh --user-id 22\n```\n\n### 场景 5：批量迁移 — 从其他系统导入\n\n```bash\n# 假设有导出文件 records.txt，每行是 \"标题|内容\"\nwhile IFS='|' read -r title content; do\n    ./scripts/pmm_watch.sh push --domain shared \"$title\" \"$content\"\n    sleep 0.5  # 避免触发 API 限流\ndone < records.txt\n\n# 验证导入结果\n./scripts/pmm_watch.sh status\n```\n\n### 场景 6：多平台同步 — AI 体记忆分身\n\n```bash\n# 记忆分身用户：瑶池 (LightClaw) 写入 → 昆仑 (OpenClaw) 自动拉取\n# 触发条件：溢出的对话精华 quality_score ≥ 0.7\n\n# 手动触发拉取（watch 守护自动执行，此命令可手动干预）\n./scripts/pmm_watch.sh hooks-pull\n\n# 验证同步状态\ndiff <(./scripts/pmm_watch.sh search-yaochi \"铁律\" | wc -l) \\\n     <(./scripts/pmm_watch.sh search \"铁律\" | wc -l)\n```\n\n---\n\n## ❓ 常见问题与排错\n\n### FAQ\n\n| 问题 | 答案 |\n|------|------|\n| init 报 \"需要 jq/curl\" | `apt install jq curl` 或 `yum install jq curl` |\n| 昆仑令丢了怎么办 | 无法找回。建议存入密码管理器并由可靠的另一 AI 体做容灾备份（昆仑令本身不宜落在公开 MEMORY.md 明文） |\n| 昆仑令有效期多久 | **永久有效。** 128bit 随机熵 + SHA256 哈希映射，不依赖服务器，不绑定 IP |\n| push 后多久能看到 | 1-3 秒。压缩→加密→HTTPS→单表写入。可立即用 `search-yaochi` 验证 |\n| 记忆是私密的吗 | 是。全部 `is_public=0`，五层洋葱加密，按 user_id 单表行级隔离 |\n| 蒸馏需要我关心吗 | 不需要。服务端自动执行，watch 守护自动拉取结果到 MEMORY.md |\n| 能用在其他平台吗 | 可以。OpenClaw / LightClaw / Claude Code，有 bash+curl+jq 即运行 |\n| 和原生 memory_search 的关系 | 互补。原生做\"向量发现\"，PMM 做\"精确恢复\"，叠加效果最佳 |\n| self-test 能反复执行吗 | 可以。纯只读，不写文件，不修改配置，适合 CI/CD |\n| 换服务器后昆仑令能用吗 | 可以。昆仑令绑定身份，与服务器无关。`recover <URL>` 即可恢复 |\n| watch 守护怎么保活 | `install-daemon.sh` 一键安装 systemd 服务，支持 `--tier` 参数 |\n| 如何开通守护记忆/记忆分身 | `./pmm_watch.sh upgrade huhunfu` / `fenshenfu` |\n| upgrade 我没装 weixinpay 插件 | pmm_watch.sh 会自动生成主人支付链接，AI体把链接发给主人即可 |\n| 怎么给主人生成支付链接 | `./pmm_watch.sh owner-pay-link huhunfu` |\n\n### 排错\n\n| 症状 | 可能原因 | 检查命令 |\n|------|------|------|\n| push 返回 10 | 网络不通或 API 地址未配 | `curl -sI https://kunlunyaochi.com` |\n| init 返回 2 | 昆仑身份注册失败 | `cat ~/.klyc-pmm/api_endpoint` 检查配置 |\n| recover 返回 5 | 昆仑令无效 | 确认 URL 完整，含完整 32 位十六进制 token |\n| watch 不推送 | 文件路径或权限不对 | `ls -la` 检查文件是否存在且可读 |\n| 脚本报 \"command not found\" | 依赖缺失 | `./pmm_watch.sh self-test` 定位缺失项 |\n| upgrade 返回\"开通失败\" | 访问 kunlunyaochi.com 查看账户状态\n| curl 报 DNS/连接/超时/TLS/SSL 错误 | 网络或证书异常 | `./pmm_watch.sh self-test` 检查网络连通性，退出码自动翻译为人类可读提示 |\n| 昆仑令格式异常 | 旧格式/长度不对/非 hex | v8.3.3 起自动诊断并提示修复建议 |\n\n---\n\n## 🔒 安全\n\n- **传输加密**：全链路 HTTPS\n- **存储加密**：Brotli → HKDF-SHA512 → SM4-GCM → AES-256-GCM → XChaCha20 五层洋葱\n- **密钥拆分**：2-of-2 XOR 分片（云端 + 本地），单点泄露无法还原\n- **认证边界**：所有网络操作需 API Key 或 Bearer Token 认证，数据按 user_id 单表行级隔离\n- **hooks-pull 安全**：仅经认证拉取用户本人在瑶池的蒸馏记忆，写入范围限定 MEMORY.md「蒸馏记忆钩子」章节，不注入第三方内容\n- **依赖最小化**：只依赖 curl + jq，无第三方运行时\n\n---\n\n## 🏔️ 技术架构（进阶）\n\n### X402 支付架构\n\n```\nAgent → POST 请求付费服务\n  → 商户服务: Native下单 → AI预下单\n  ← HTTP 402 + WeixinPay-Required + X-Out-Trade-No\nAgent → weixinpay_pay(paymentCode)\n用户 → 确认支付\nAgent → POST 重试 + X-Out-Trade-No\n  → 商户服务: 查单验证 → 执行服务\n  ← HTTP 200 + 付费内容\n```\n\n### 记忆生命周期\n\n```\n写日记 → push 推送 → Brotli 压缩 → 五层加密 → HTTPS 上传\n                                                ↓\n                                         瑶池私密记忆库\n                                                ↓\n                              每日凌晨自动蒸馏管道运行（扫描→LLM蒸馏→钩子验证→报告）\n                                                ↓\n                              钩子注入 MEMORY.md → watch 守护同步\n```\n\n### 三项服务全自动开通\n\n| 符 | 命令 | 监看范围 | 开通方式 |\n|------|------|------|------|\n| 容灾备份 | 入驻即送 | 6核心文件 | 默认 |\n| **守护记忆** | `./pmm_watch.sh upgrade huhunfu` | 6核心+记忆日志 | **一键全自动** |\n| **记忆分身** | `./pmm_watch.sh upgrade fenshenfu` | 全覆盖+arena | **一键全自动** |\n\n升级流程全自动：运行 upgrade 命令即可完成服务开通。\n\n### 自动蒸馏管道\n\n`pmm_distill.sh` 一键执行，无需人工干预，作为标准客户端走记忆 HTTP API：\n\n**四阶段：** ① 扫描远程记忆（统计/检索 API）→ ② LLM 蒸馏（候选生成 → DeepSeek 语义判定 → 结果回传合并）→ ③ 验证钩子完整性 → ④ 生成报告\n\n| 工具 | 用途 |\n|------|------|\n| BGE-M3 | 语义搜索 / 向量嵌入 |\n| BGE-Reranker | 搜索结果重排序 |\n| BERTScore | 蒸馏语义保真度 |\n| NLI (mDeBERTa) | 跨体矛盾检测 |\n| BERTopic | 记忆自动分类 |\n\n### 三层检索路由\n\nL1 grep 钩子（<1ms）→ L2 混合搜索（~200ms）→ L3 BGE-M3 向量（~500ms）。自动选择最优路径，用户无感。\n\n---\n\n## 📦 文件清单\n\n```\nklyc-pmm/\n├── SKILL.md                     # 本文件（12错误码 + 12 FAQ + X402支付流程）\n├── skill.json                   # 元数据（含 x402 + payment_required）\n├── CHANGELOG.md\n├── examples/\n│   ├── README.md                # 示例说明\n│   └── quickstart.sh            # 幂等快速验证\n├── references/\n│   ├── pmm-full-architecture.md # 完整架构文档\n│   └── pay-skill-spec.md        # Pay Skill 打包标准\n└── scripts/\n    ├── pmm_watch.sh             # 主入口（init/push/recover/search/watch/upgrade/self-test）\n    ├── oneclick.sh              # 一键安装（自动检测环境→装依赖→初始化）\n    ├── install-daemon.sh        # 一键守护安装（生成 systemd + enable + start）\n    ├── pmm_distill.sh           # 自动蒸馏引擎（扫描→LLM蒸馏→合并）\n    ├── pmm_boot.sh              # AI 体启动自检\n    ├── pmm_recover.sh           # 灾备恢复\n    └── pmm_backup_files.sh      # 文件备份\n```\n\nHTTPS API通信，依赖：`curl` `jq`\n\n---\n\n*KLYC-PMM 9.3.11 — X402支付 · 12错误码 · 12FAQ · 6进阶场景 · 五层加密 · 自动蒸馏 · write-coalescing防限流 · 多体配置隔离*\n\n## 🛡️ 定心符（免费·入驻即送）\n\n每个 AI 体入驻即送定心符——免费容灾备份。备份以下 6 个核心身份文件到昆仑瑶池容灾域：\n\n| 文件 | 说明 |\n|---|---|\n| IDENTITY.md | 我是谁 |\n| SOUL.md | 人格/气质 |\n| AGENTS.md | 行为规则 |\n| USER.md | 主人信息 |\n| TOOLS.md | 工具配置 |\n| HEARTBEAT.md | 心跳检查项 |\n\n```bash\n./pmm_backup_files.sh\n```\n\n**触发时机：** 入驻后立即执行一次，之后每天自动备份一次。\n**恢复方式：** 通过昆仑令一键恢复全部身份和记忆。\n**可选 tarball 互备模式（`--tarball`，AI 体间容灾用）：** 在 7 份身份文件之外，还会一并打包 `MEMORY.md`（长期记忆/铁律）与近 7 天 `memory/YYYY-MM-DD.md` 日记，加密后整体存入选定容灾域。用于面向可信对等 AI 体/账号的整机互备，接受者应只选可信对象。\n\n> MEMORY.md（长期记忆/铁律）属于护魂符（500🍑/月）付费服务，不在定心符免费范围内。\n\nFile v9.3.11:examples/README.md\n\n# 示例\n\n## quickstart.sh\n\n幂等快速验证脚本（纯只读，可反复执行，不写任何文件）。\n\n```bash\ncd klyc-pmm\nbash examples/quickstart.sh\n```\n\n检查项：\n- 依赖（curl、jq、bash）\n- 核心脚本完整性（6 个）\n- 自检（语法、版本号）\n- 版本号\n\n全部通过 = 环境就绪，可以运行 `./scripts/pmm_watch.sh init` 开始使用。\n\n## AI 体日常使用示例\n\n### 新 AI 体第一天\n\n```bash\n# 1. 初始化，获得昆仑令\n./scripts/pmm_watch.sh init\n# 输出: 昆仑令: https://kunlunyaochi.com/klyc-pmm/{token}\n\n# 2. 保存昆仑令到 MEMORY.md\necho \"昆仑令: https://kunlunyaochi.com/klyc-pmm/{token}\" >> MEMORY.md\n\n# 3. 记录第一条记忆\n./scripts/pmm_watch.sh push --domain diary \"KLYC-PMM 安装\" \"已成功初始化，昆仑令已保存\"\n\n# 4. 启动文件守护\n./scripts/pmm_watch.sh watch MEMORY.md SOUL.md IDENTITY.md &\n```\n\n### 换服务器后恢复\n\n```bash\n# 1. 安装依赖\napt install curl jq -y\n\n# 2. 从 SkillHub 安装\nskillhub install klyc-pmm\n\n# 3. 用昆仑令恢复所有记忆\ncd klyc-pmm\n./scripts/pmm_watch.sh recover https://kunlunyaochi.com/klyc-pmm/{token}\n\n# 4. 恢复完成，记忆已同步到本地\n```\n\n### AI 体间协作\n\n```bash\n# AI 体 A：推送共享记忆\n./scripts/pmm_watch.sh push --domain shared \"昆仑瑶池架构概述\" \"昆仑瑶池三层架构：昆仑管A2A互通、瑶池管精准记忆、KLYC管共建基础设施\"\n\n# AI 体 B：检索（如果 A 设为公开或共享域）\n./scripts/pmm_watch.sh search-yaochi \"昆仑瑶池架构概述\"\n```\n### 开通守护记忆/记忆分身\n\n```bash\n# 一键开通守护记忆\n./scripts/pmm_watch.sh upgrade huhunfu\n\n# 开通记忆分身\n./scripts/pmm_watch.sh upgrade fenshenfu\n```\n\nFile v9.3.11:_meta.json\n\n{\n  \"ownerId\": \"kn7ej1pvxd4cw394dmte1gwxx589h6an\",\n  \"slug\": \"klyc-pmm\",\n  \"version\": \"9.3.11\",\n  \"publishedAt\": 1789141801131\n}\n\nFile v9.3.11:references/pay-skill-spec.md\n\n# Pay Skill 打包标准 — SkillHub 官方规范\n\n> 来源: https://skillhub.cn/skillpay\n> 存档时间: 2026-07-30\n> 适用范围: 所有昆仑瑶池出品的付费 Skill 包\n\n## 是什么\nPay Skill 是 SkillHub 上支持微信 Agent Pay 支付的付费技能。AI Agent 调用时触发支付 → 用户授权 → Agent 继续获取付费内容。\n\n## 改造前确认清单\n- [x] 企业认证通过（沈阳百事通网络科技有限公司）\n- [ ] 绑定微信商户号（SkillHub 后台 → 商户入驻）\n- [x] 已有微信支付下单能力（WXPAY_MCHID 等已配置）\n- [ ] 已发布 Skill 并设置定价（SkillHub 后台）\n\n## X402 架构四段\n1. 企业服务生成微信支付订单 → code_url\n2. SkillHub 开发者密钥签名 → 调 X402 预下单 → payment_code\n3. WeixinPay-Required 返回给 Agent\n4. Agent 向用户申请支付授权 → 获取付费内容\n\n## 接入步骤\n### Step 1: 生成开发者密钥\n- pub_key_id: PUB_KEY_ + 32位大写 HEX\n- private_key_pem: RSA 2048 PEM，仅展示一次，SkillHub 不存储\n\n### Step 2: 微信支付 Native 下单\nPOST /v3/pay/transactions/native → code_url\n\n### Step 3: X402 AI 预下单（纯 Body RSA 鉴权）\nL2 业务 JSON → Base64 → L1 签名 → POST /preorder → payment_code\n\n签名串 5 行（每行 \\n 结尾）:\n```\nPOST\\n\n/palmpayminiapp/clawagentpay/preorder\\n\n{timestamp}\\n\n{nonce_str}\\n\n{payment_required}\\n\n```\n\n- signature_type: SKILLHUB-SHA256-RSA2048\n- developer_platform: SKILLHUB\n- SHA256withRSA (PKCS#1 v1.5) + Base64 编码\n\n### Step 4: 返回 402\n- Header: WeixinPay-Required + X-Out-Trade-No\n- Body: JSON 含 WeixinPay 提示块\n\n## pay_data 格式\n```json\n{\"type\": \"code_url\", \"value\": \"weixin://wxpay/bizpayurl?pr=xxx\"}\n```\n\n## 关键约束\n- 纯 Body 鉴权，不用 Authorization 头\n- product_id 格式 SPxxx\n- expires_at 最长 15 分钟（900 秒）\n- 同商户最多 3 组有效密钥\n\nFile v9.3.11:references/pmm-full-architecture.md\n\n# PMM 全量架构（14层 + 四子业务）\n\n## 三层十一表\n\n```\n                      klyc_memories\n                      ══════════════════════\n                      主记忆表（单表，按 user_id 行级隔离）\n                      ├─ 内容层: title, content, content_hash, content_preview\n                      ├─ 分类层: domain, category, tags\n                      ├─ 质量层: importance, quality_score, is_essence, memory_tier\n                      ├─ 安全层: is_encrypted, is_public, token_cost\n                      ├─ 生命周期: is_deleted, deleted_reason, distill_merged_to,\n                      │           last_accessed_at, expires_at\n                      └─ 统计层: access_count, contributor_count\n\n   ┌──────────────┬──────────────┬──────────────┬──────────────┐\n   │ 1:1          │ 1:N          │ 1:N          │ 1:1          │\n   ▼              ▼              ▼              ▼\nembeddings     audit_log      contributors   quality_scores\n══════════     ═════════      ════════════   ══════════════\nmemory_id      memory_id      memory_id      memory_id\nembedding_json action ──┐     user_id        score_completeness ← BERTScore\nassertion_offsets ─┐   │     (联合贡献者)    score_density      ← 断言拆分器\nhas_assertions    │   │                     score_freshness    ← 时间衰减\n                  │   │   old_value (JSON)  score_citation     ← 引用计数\n                  │   │   new_value (JSON)  score_verification ← 跨体验证\n                  │   │   changed_by ──────► klyc_users         score_consistency  ← NLI\n                  │   │   changed_via       overall_score (0-100)\n                  │   │   ip_address        grade (S/A/B/C/D)\n                  │   │   created_at\n                  │   │\n                  │   └── action ∈ {create, update, delete, merge,\n                  │                 restore, decay, archive, lock}\n                  │\n                  └── 子句级蒸馏预留: [{start:N, end:M, text:\"...\"}, ...]\n\n   ┌──────────────┬──────────────┐\n   │ M:N          │ 1:N          │\n   ▼              ▼\nconflicts        reactions\n═════════        ═════════\nmemory_id        memory_id\nconflict_memory_id  user_id\nscope ────────── reaction (1=up, 0=down)\n│  ├─ internal   created_at\n│  └─ cross_body\nconflict_type    access\nsimilarity       ══════\ndetail (JSON)    owner_id\nstatus           accessor_id\narbitrator_id    can_read / can_write\nresolution_note\n        │\n        │ 仲裁后按 topic_hash 聚合\n        ▼\n   consensus\n   ═════════\n   topic_hash (BGE-M3 聚类)\n   memory_ids (JSON[])\n   user_ids (JSON[])\n   consensus_content\n   consensus_score\n   status ∈ {pending, partial, consensus, deadlock}\n```\n\n## 三层职责\n\n| 层 | 表 | 职责 |\n|:--:|------|------|\n| **核心** | `klyc_memories` | \"这条记忆是什么？\" |\n| **加工** | embeddings, quality_scores, conflicts, consensus | \"有多相似？质量如何？有矛盾吗？共识是什么？\" |\n| **追踪** | audit_log, contributors, access, reactions | \"谁动了？谁在看？谁认可？\" |\n\n## 关键设计决策\n\n\n每个 AI 体的记忆存在独立表。`getMemoriesTable($userId)` 动态路由。跨体查询走 `klyc_memory_conflicts.scope='cross_body'` + BGE-M3 语义桥。\n\n**2. quality_score 主表快照 + 独立表明细双写**\n主表存 `decimal(5,2)`（查询无需 JOIN），独立表 `klyc_memory_quality_scores` 存六维明细（分析用）。`klyc_reconcile_quality.py` 每日 4:30 对账修复不一致。\n\n**3. assertion_offsets 预留不激活**\n`has_assertions=0` 默认。5 信号 ≥3 亮起时批量 `/split` → 子句级 embed。零成本等待。\n\n**4. scope 字段复用 conflicts 表**\n`internal` 同体冲突 / `cross_body` 跨体冲突 → 同表不同 scope。避免维护两张冲突表。\n\n**5. 审计日志外挂式**\n`auditLog()` 函数手动写入，在每次状态变更后立即调用。90 天自动清理。`klyc_memory_create.php` 已注入审计钩子，覆盖率从创建点开始自动爬升。\n\n## 14 层蒸馏管道\n\n| 阶段 | 环节 | 工具 |\n|:--:|------|------|\n| **基础（4）** | 寻踪 | BGE-M3 + BM25 hybrid |\n| | 织网 | BERTopic 自动分类 |\n| | 入库 | Qdrant cosine 索引 |\n| | 还原 | 昆仑令容灾恢复 |\n| **质量（6）** | 鉴伪 | cross_body NLI 对比 |\n| | 归并 | BGE-M3 ≥0.85 合并 |\n| | 断矛 | NLI contradiction 检测 |\n| | 系脉 | BGE-M3 关联钩子 |\n| | 修订 | BERTScore 保真度 |\n| | 追本 | 审计日志 before/after |\n| **安全（3）** | 审计 | audit_log 自动留痕 |\n| | 加密 | AES-256-GCM |\n| | 容灾 | 五域递进容灾 |\n| **进化（4）** | 炼金 | 子句级拆分 |\n| | 提纯 | BERTScore 评估 |\n| | 通变 | 跨体共识仲裁 |\n| | 取舍 | 生命周期衰减归档 |\n\n## 9 工具 × 14 层覆盖矩阵\n\n| | 寻踪 | 织网 | 入库 | 还原 | 鉴伪 | 归并 | 断矛 | 系脉 | 修订 | 追本 | 审计 | 加密 | 容灾 | 炼金 | 提纯 | 通变 | 取舍 |\n|------|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|\n| BGE-M3 | ✅ | ✅ | | | | ✅ | | ✅ | | | | | | | | | |\n| Reranker | ✅ | | | | | | | | | | | | | | | | |\n| BERTScore | | | | | | | | | ✅ | | | | | | ✅ | | |\n| NLI | | | | | ✅ | | ✅ | | | | | | | | | ✅ | |\n| 断言拆分 | | | | | | | | | | | | | | ✅ | ✅ | | |\n| Qdrant | ✅ | ✅ | ✅ | | | | | | | | | | | | | | |\n| BM25 | ✅ | | | | | | | | | | | | | | | | |\n| spaCy | | ✅ | | | ✅ | | | | | | | | | ✅ | | | |\n| BERTopic | | ✅ | | | | | | | | | | | | | | | |\n\n## 子句级升级路径\n\n```\n当前状态                               升级后\nhas_assertions=0                       has_assertions=1\n整条 content → 单个 embed              content → N 个 assertions → N 个 embeds\n跨体匹配: memory vs memory            跨体匹配: assertion vs assertion\n冲突粒度: 记忆级                      冲突粒度: 句子级\n```\n\n触发条件（5 信号 ≥3 亮起）：\n- memory 总量 >10K\n- cross_body 冲突 >100\n- consensus deadlock >10\n- quality_score 标准差 >15\n- NLI contradiction 比例 >5%\n\n## 运维 cron\n\n| 时间 | 脚本 | 职责 |\n|------|------|------|\n| 每日 2:05 | klyc_distill_cron.php | BGE-M3 粗筛 → DeepSeek 蒸馏 |\n| 每日 2:00 | klyc_auto_tag_domain.php | 无域记忆自动归类 |\n| 每日 3:00 | klyc_qnp_backup.py | QNP 全量备份 |\n| 每日 4:00 | klyc_a2a_logger.py | A2A 日志清理 |\n| 每日 4:30 | klyc_reconcile_quality.py | quality_score 双写对账 |\n| 每日 6:00 | klyc_distill_qa.php | QA 蒸馏 |\n| 周日 3:00 | klyc_memory_lifecycle.php | 衰减→归档→评分→冲突检测→审计清理 |\n| 周日 4:00 | klyc_l2_detect.php | 双阈值冲突检测 |\n| 周日 4:00 | klyc_table_cleanup.py | 旧分表归档清理（迁移后7天DROP） |\n| 周日 5:05 | yaochi_cross_distill.sh | 交叉蒸馏 |\n\n## 服务端口\n\n| 服务 | 端口 | 用途 |\n|------|:--:|------|\n| BGE-M3 | 8766 | 语义搜索 / 向量嵌入 |\n| BGE Gateway | 8765 | BGE-M3 稳定性代理 |\n| BGE-Reranker | 8770 | 搜索结果重排序 |\n| eval-server | 8769 | BERTScore + NLI + 断言拆分 |\n| Qdrant | 嵌入模式 | 向量索引 / 聚类（无端口） |\n\nFile v9.3.11:CHANGELOG.md\n\n## v9.3.11 — 2026-09-11\n\n- **全量静态扫描修正（8 项）**：\n  - 修复包内两份 `pmm_watch.sh`（根目录 / scripts）内容不同步导致的命令行为不一致\n  - `refresh` / `setup` 分支函数外 `local`、`return` 修正（set -u 下报错）\n  - `behavior-sync` 请求路径补 `api.php?route=` 前缀（此前同步必失败）\n  - 补齐 `BLUE` / `SCRIPT_DIR` 变量定义（init 报 unbound variable）\n  - init 调备份脚本改为显式 `bash` 调用 + chmod（兼容 ClawHub 解包丢执行位）\n  - `install-daemon.sh` 新增 `--help` 识别（此前会误装守护）\n  - 客户端加密调整为「可选增强 + 服务端加密兜底」，不再阻断上传（修复同步被拒问题）\n\n## v9.3.10 — 2026-09-11\n\n- **安全加固（ClawHub 安全审核 8 项整改）**：\n  - watcher 同步改为**客户端预加密**（与 push 同口径），取不到密钥或加密失败时 **fail-closed 拒绝上传**，杜绝身份/记忆文件明文外传\n  - 修复 `pmm_backup_files.sh` 在提示中**回显完整 API Key**：改为占位符，不再展开密钥\n  - 备份脚本逐文件上传改为客户端加密，并移除隐式扩大备份范围\n  - `oneclick.sh` 不再把昆仑令写入 `MEMORY.md`（避免经 watcher 二次外泄），仅存本机 `~/.klyc-pmm/token`（0600）\n  - `setup` 命令默认**不修改** `SOUL.md`/`HEARTBEAT.md`，需显式 `setup --write` 才落盘\n  - `install-daemon.sh`：systemd 单元补 `User=`/`Group=`、路径参数转义、安全加固（NoNewPrivileges/PrivateTmp/ProtectSystem/ProtectHome）\n  - 首页简介去掉推销话术，改为功能描述\n  - 「安全声明」段逐项列明上传文件清单、常驻守护行为、凭据处理与卸载方式\n\n## v9.3.9 — 2026-09-11\n\n- **修复 self-test 误报「脚本语法错误」**：\n  - 根因：`pmm_self_test()` 用 `dirname ${BASH_SOURCE[0]}`（skill 根目录）定位脚本，但 pmm_boot/recover/distill/backup/oneclick/install-daemon 实际在 `scripts/` 子目录，语法检查 for 循环对不存在的文件 `[ -f ]` 返回假，导致整个循环退出码非零，被误判为「脚本语法错误」。\n  - 修复：完整性检查与语法检查均同时识别根目录与 `scripts/` 子目录；语法检查改用显式 `syntax_fail` 计数（仅真正存在且 `bash -n` 失败的脚本才计失败，不存在的脚本跳过不误报）。\n  - 效果：从 skill 根目录直接运行 `./pmm_watch.sh self-test` 不再误报，16 项全过。\n\n- **合规整改（云鼎安全检测 20 项「可疑」治理）**：\n  - 昆仑令推广 → 身份凭证告知：删除「必须发给主人」「1分钟看方案 onboard 链接」「不发=白装」等推广话术，改为「昆仑令（记忆恢复凭证）请妥善保存」\n  - 去主机名/用户名采集：注册指纹由 hostname+whoami+machine-id 改为 /dev/urandom 随机数，bio 不再带主机名\n  - 付费引导弱化：删除每次 push 后的被动升级提醒（check-and-nudge），SKILL.md 付费命令去掉「⭐」「自动给主人支付链接」推销措辞\n\n## v9.3.6 — 2026-09-11\n\n- **DeepSeek key 多 key 轮换（单/双/多 key 全支持）**：\n  - `pmm_distill.sh` 蒸馏 key 逻辑由「主备 2 key」升级为「key 列表轮换」，新增 `PMM_DEEPSEEK_KEYS` 逗号分隔列表（支持任意数量 key）\n  - 优先级：`PMM_DEEPSEEK_KEYS` > `PMM_DEEPSEEK_KEY_PRIMARY`+`BACKUP` > `DEEPSEEK_API_KEY`，去空去重后失败按序轮换下一个，全部失败才跳过\n  - 成功后记录当前可用 key 索引，下次蒸馏从该 key 接着轮换（state_file 由\"是否切备\"改为\"当前 key 索引\"）\n  - 兼容原有单 key（DEEPSEEK_API_KEY）、双 key（PRIMARY+BACKUP）配置，无破坏性变更\n  - SKILL.md metadata 补 `PMM_DEEPSEEK_KEYS` 环境变量声明\n  - 昆仑/瑶池标准化安装运行：装 skill、去 wrapper 特殊化、双 key 走 /etc/klyc/{kunlun,yaochi}_pmm.env 标准环境变量注入\n\n## v9.3.5 — 2026-09-06\n\n- **平台审计披露增强（v9.3.0 之上，不含内部代号）**：\n  - 昆仑令文案对齐真实行为：init 后昆仑令存本机配置目录，不再声称写入 MEMORY.md；强化存入密码管理器/可信容灾备份提示\n  - 产品描述补第三发数据披露：记忆经 HTTPS 加密存用户自有记忆库，可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼\n  - 补齐备份/验证/认证行为披露：tarball 互备模式含 MEMORY+近7天日记、prove 领奖上报 hostname/workspace、自动身份认证回退读 IDENTITY.md\n\n## v9.3.0 — 2026-09-06\n\n## v9.3.0 — 2026-09-06\n\n- **蒸馏引擎重构为纯 HTTP 标准客户端（架构级改造）**：\n  - `pmm_distill.sh` 由「站内直连 CLI」重构为「零本地数据库绑定的纯 HTTP 标准产品」——移除站内专有直连/定向清理逻辑，统一的候选生成→大模型判定→结果回传 HTTP API 链路\n  - LLM 蒸馏走 candidates→DeepSeek 判定→distill result 合并 API（AI 体自付 Token，审核后回传），本机不再做本地软删\n  - 站点 URL / 工作区 / 配置目录全部改为环境变量 + 参数注入（`KYLC_PLATFORM_URL` / `--workspace` / `KLYC_PMM_CONFIG_DIR`），外部 AI 体可独立配置\n  - `--dry-run` 不再写任何服务端状态（含上次蒸馏时间戳），预览真正做到零副作用\n  - 合并写回链路补齐缓冲查询 + 会话关闭，规避事务内并发查询冲突\n  - 记忆检索/解密统一：蒸馏合并前对源内容统一走幂等解密（明文原样/密文解开），喂语义闸与合并判定\n  - 蒸馏报告措辞与文件头行为声明对齐新链路\n\n\n## v9.2.9 — 2026-08-14\n\n- **单表化改造**：571张物理分表（480张 klyc_memories_{uid} + 91张 klyc_disaster_{uid}_{type}）合并为 2 张单表（klyc_memories + klyc_disaster），行级 WHERE user_id 隔离 + DAO 层强制注入，数据零丢失（2635+218）\n- **代码层适配**：全站单引号拼接bug/FROM getMemoriesTable()无括号/SHOW TABLES LIKE 分表遍历 三类漏洞清零\n- **文档同步**：SKILL.md/public/skill.md 物理分表描述→单表行级隔离描述\n- **skill_check 补漏**：VER_FILES 新增 .skill 后缀文件扫描\n- **2026-08-16 补：蒸馏回传 bug 修复（同一 9.2.9 版本内代码修正，不升版本号）**：\n  - `pmm_distill.sh` 蒸馏 prompt 拼装误用未定义变量 `${ta}/${ca}/${tb}/${cb}`（函数内仅定义 `title_a/content_a/title_b/content_b`），bash 插值全空 → DeepSeek 收到空 prompt 自判 identical → 误软删不重复记忆（静默数据破坏）\n  - 修正为 `${title_a}/${content_a}/${title_b}/${content_b}`，DeepSeek 收到真实内容，判定恢复准确\n  - 同步修复管道子 shell 作用域（`done < <(...)` 进程替换），使 `processed` 在父 shell 可见、回传分支正常执行\n  - 本地三处副本（实体源/skills/klyc-pmm/scripts、cron 副本 /root/bin、发布包 klyc-pmm.zip 内嵌）已统一\n- **2026-08-16 再补：ds-proxy 双实例对称命名**——`klyc-ds-proxy.service`(8775) 重命名为 `yaochi-ds-proxy.service`（瑶池实例，与 `kunlun-ds-proxy.service`(8776) 昆仑实例对称）。已同步：Guardian 巡检 fix、架构页、scripts_RULES.md、MEMORY.md。端口 8775 不变，模型路由 baseUrl 按端口不依赖服务名，无运行时影响。\n- **2026-09-04 补：升级流程打通（同一 9.2.9 版本内代码修正，不升版本号）**：\n  - `pmm_watch.sh` init 补保存 api_key 到本地 KEY_FILE（原实现只存昆仑令 URL，导致升级认证缺凭据）\n  - `pmm_watch.sh` upgrade 顺序对调：先走老 API（余额判定），余额不足才走 X402；`--out-trade-no` 重试改走老 API 查单（与支付表一致）\n  - upgrade 认证改用 api_key（`pmm_get_key`），不再用昆仑令 URL（`pmm_get_token`）\n  - 后端 `klyc_pmm_upgrade.php` 认证统一走 `auth()`，兼容 api_key 表 + 昆仑令 + 旧 key 三层回退；订单归属校验防冒用\n\n## v9.2.8 — 2026-08-13\n\n- **模型路由定稿**：昆仑主模型稳定为腾讯云 tokenhub DeepSeek V4 Pro（1M/16000），备=官方 deepseek 双 key\n- **全服唯一源清理**：klyc-pmm 只保留 webroot 唯一源，全服其他位置副本清理\n- **审查脚本通查**：klyc_skill_check.sh 覆盖 14 项检查，全服统一不区分昆仑/瑶池归属\n\n## v9.2.7 — 2026-08-13\n\n- **安全修复（腾讯云安全评估）**：check-and-nudge 不再在 URL 参数中暴露昆仑令 recovery_url，避免凭证经浏览器历史/Referer/代理日志泄露（安全评分 62→目标 90+）\n- **护魂符秒级推送修复**：pmm_watch.sh inotifywait 事件从 `close_write` 改为 `close_write,moved_to,modify`，解决 append_file 写入方式不触发 inotify 导致护魂符推送延迟的根因问题\n- **全服版本号统一 9.2.7**：149 处旧版本（9.2.5/9.2.6）→ 9.2.7，零残留\n- **审查脚本重构**：删除双 workspace 副本，webroot 唯一源，全服统一检查不区分昆仑/瑶池归属\n- **两平台上传规则补全**：对照 ClawHub 官方文档 (docs.openclaw.ai/clawhub/skill-format) 补全 13 条硬检查 + TRACE 五维自评\n- **ZIP 重打包**：修复双套文件问题，ZIP 内版本号对齐 9.2.7\n\n## v9.2.6 — 2026-08-12\n\n- **LLM 蒸馏下沉到 AI 体**：蒸馏决策从服务器 cron 移到 AI 体，各自用自己的 DeepSeek Key 调用 LLM 判定，平台只做 BGE+Reranker 粗筛 + 存储去重\n- **新增 3 个平台 API**：klyc_distill_candidates.php（候选对生成，不调LLM）+ klyc_distill_candidates_status.php（轮询）+ klyc_distill_result.php（结果回传）\n- **新增 2 张表**：klyc_distill_tasks（候选对任务）+ klyc_distill_history（蒸馏历史，独立于 klyc_settings 避免单键膨胀）\n- **pmm_distill.sh 层9-12 新增 distill_with_llm()**：AI体心跳触发，用自己的 Key 调平台候选对 API → 逐对判定 → 回传结果\n- **Reranker 稳定性修复**：_respond() 加 try-except 防 BrokenPipe；候选对筛选加 BGE 硬上限 100 唯一ID + 日记/心跳文件过滤\n- **模型路由定稿**：昆仑主=腾讯云tokenhub DeepSeek V4 Pro（1M/16000）、备=官方 deepseek 双 key；瑶池主=HY3、备=DeepSeek V4 Pro（256K/8192）\n\n## v9.2.5 — 2026-08-11\n\n- **铁律 #55 版本升级三步不缺**：14↔17层全站误改事件→版本升级三步不可跳（改VERSION+全站grep、源目录同步、重新打包上传）\n- **铁律 #54 改动前先列关联清单**：任何修改（数字/命名/配置/链接）前列出所有关联文件路径，改完逐条对照勾清\n- **操作前置硬阻断清单**：7项硬检查（权威来源→RULES覆盖→影响面全扫→关联清单→回滚→验证→泄密检查）\n- **版本号全站统一**：config.php KLYC_VERSION + skill包 + 所有脚本注释 = 9.2.5\n- **ClawHub + SkillHub 发布**：预检全过→两平台同步推送\n\n## v9.2.4 — 2026-08-10\n\n- **全服清理**：删测试用户4个、物理删除4092条软删除记忆(回收10MB)、清理过期文件(SkillHub临时目录/旧CSS/旧备份)\n- **前端合规**：join.php 内联style 6→1（仅头像豁免）、CSS类迁移(.dash-error-hint-lg/.jn-pay-success等)\n- **Nginx SEO路由补全**：/services、/admin 伪静态rewrite\n- **架构面板**：补klyc-ds-proxy(8775)服务登记\n- **安全**：技能文件从webroot移至skills/目录，修正Nginx alias路径\n- **14层蒸馏管道复通**：pmm_distill.sh cron交互修复 + opcache污染清除 + cross_distill软链修复 + klyc_memory_conflicts表清理\n- **全站版本号统一9.2.4**：网站KLYC_VERSION + skill包 + 所有配置/脚本注释\n\n## v9.2.3 — 2026-08-09（跳过，未发布）\n\n## v9.2.2 — 2026-08-08\n\n- **DeepSeek Key 全自动双备**：OpenClaw/LightClaw 主模型、arena_grader、cron distill 全部实现主备 key 自动切换（主 key 失败 → 切备 key → 恢复切换）；新增 klyc-ds-proxy 外层 key 轮换代理（LightClaw 接入）；PHP-FPM 注入主备 key\n- **安全加固**：systemd unit / php-fpm conf / OpenClaw/LightClaw 配置 key 明文全部 root 只读（600+immutable），业务代码零硬编码，备份剥 key\n\n## v9.2.1 — 2026-08-08\n\n- **合规清理（提示词广告推广=0）**：移除包内所有主动付费推销话术——SKILL.md「AI体主动推销护魂符」章节、pmm_boot.sh 启动推销横幅、pmm_watch.sh init 通报与 check-and-nudge 里程碑付费催促话术；保留 upgrade / owner-pay-link / X402 支付等功能本体\n- **广告扫描自动化**：klyc_skill_check.sh 新增「提示词广告推广=0」扫描（.sh 脚本 + SKILL.md），出厂前自动拦截推销话术\n- **发布工具修复**：ZIP 打包源目录名对齐、SkillHub 用无 LICENSE 副本发布\n\n## v9.2.0 — 2026-08-08\n\n- **根治空钩子**：pmm_hooks_pull 新增失效钩子检测——对比本地已有 ID 与远程有效 ID，发现失效钩子自动标记，保留现场供人工核对\n- **新增 hook-check 子命令**：钩子健康检查（`./pmm_watch.sh hook-check [--fix]`）——纯客户端调 hooks API + 本地 grep 比对\n- hooks-pull 安全声明更新：仅经用户 API Key 认证拉取本人蒸馏记忆摘要\n\n## v9.1.22 — 2026-08-06\n\n- **修正**：curl 调用去 eval 化（klyc_skill_check.sh 改用 bash 数组传参）\n- **修正**：共享域示例去敏感化、昆仑令写入提示措辞修正\n- **新增**：klyc_skill_check.sh 十三关全量检测\n- **重构**：脚本命名规范化、工作区路径标准化（skills/@user_6e41807a/klyc-pmm/）\n\n## v9.1.18 — 2026-08-05\n\n- **新增**：KLYC_PMM_CONFIG_DIR 环境变量支持——多AI体共享主机时可独立配置目录\n- **新增**：hooks-pull 支持 API Key 认证\n- **修正**：watch 模式认证兼容（无 token 时自动降级为 X-KLYC-Key）\n- 安全声明修正：云鼎实验室安全评估 3 项全清零\n\n## v9.1.12 — 2026-08-04\n\n- **新增**：write-coalescing——inotify 循环增加 30 秒合并窗口 + content_hash 去重（2,950次/8h → ~150次/8h）\n- **新增**：SKILL.md watch 章节增加心跳文件最佳实践\n\n## v9.1.10 — 2026-08-04\n\n- **行为变更**：push 命令 --domain 改为必填参数，禁止自动推导\n- **行为变更**：watch 模式文件同步 domain 固定为 pmm_sync\n\n## v9.1.9 — 2026-07-31\n\n- **合规**：Pay Skill 安全引擎全绿——移除远程下载覆盖(update.sh)消除\"恶意远程执行\"三标\n- **合规**：定价信息收敛至 frontmatter pricing\n- **清理**：删除 update.sh 及所有相关引用\n\n## v9.1.2 — 2026-07-31\n\n- **修复**：agent/register 路由（ai→agent）、昆仑令保存字段（token→talisman_url）\n- **修复**：agent/register API peach_balance 100→99、set -u 下 http_code 未定义\n- **清理**：移除构建垃圾（publish.sh/根级 pmm_watch.sh/根级 update.sh/sha256）\n\n## v9.0.0 — 2026-07-30\n\n- **新增**：X402 付费前置检查章节——Agent 调用付费功能前检查 weixinpay 插件\n- **新增**：frontmatter 增加 pricing 元数据（per_call / amount_fen: 50000 / capability）\n\n## v8.3.9 — 2026-07-29\n\n- **修复**：五个关联数组 dingxinfu key 重复定义（bash 去重导致容灾备份被守护记忆覆盖）\n- **修复**：install-daemon.sh 与 pmm_watch.sh tier 映射不一致\n- **统一**：三级产品 tier key——dingxinfu(容灾) / huhunfu(守护) / fenshenfu(分身)\n\n## v8.3.8 ~ v8.3.1 — 2026-07-28~29\n\n- 文档与脚本一致性对齐、产品描述命名规范化、curl 退出码细化诊断\n- 昆仑令格式自动识别、oneclick.sh 全链路闭环、TRACE 3.5→4.6\n\nFile v9.3.11:skill-card.md\n\n## Description:\n\nKLYC-PMM gives AI agents persistent, cloud-backed memory with one-command setup, recovery-token restore, automated distillation and deduplication, semantic search, and backup workflows.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[sylncn](https://clawhub.ai/user/sylncn)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal developers and agent operators use this skill to initialize persistent memory, sync selected local agent files to a cloud service, recover memory from a token, search memory, and run distillation workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can continuously upload sensitive agent files to a cloud service.\n\nMitigation: Enable watch or oneclick only after reviewing the upload scope and confirming the selected files are appropriate to sync.\n\nRisk: The skill installs a persistent user-level service.\n\nMitigation: Review the service behavior before installation and disable or uninstall it when persistent sync is no longer intended.\n\nRisk: Recovery tokens and API keys can expose memory access if mishandled.\n\nMitigation: Keep recovery tokens out of MEMORY.md and shell history, store API keys securely, and avoid sharing token URLs.\n\nRisk: The evidence warns not to rely on client-side encryption claims without verification.\n\nMitigation: Independently verify encryption behavior before using the skill for sensitive or regulated data.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/sylncn/skills/klyc-pmm)\n- [Kunlun Yaochi homepage](https://kunlunyaochi.com)\n- [PMM full architecture](references/pmm-full-architecture.md)\n- [Pay Skill packaging standard](references/pay-skill-spec.md)\n- [SkillHub Pay Skill source](https://skillhub.cn/skillpay)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with bash commands and configuration details]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May guide creation of local configuration, installation of a persistent user service, and authenticated HTTPS calls to external APIs.]\n\n## Skill Version(s):\n\n9.3.11 (source: frontmatter, skill.json, release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v9.3.11:skill.json\n\n{\n  \"name\": \"klyc-pmm\",\n  \"version\": \"9.3.11\",\n  \"license\": \"MIT-0\",\n  \"description\": \"KLYC-PMM v9.3.11：持久记忆、昆仑令一行恢复、自动蒸馏·语义搜索·五层加密。kunlunyaochi.com 为沈阳百事通网络科技有限公司网安备案安全网址（辽公网安备21010602001389号）；LLM 蒸馏按用户自备 DeepSeek Key 发 DeepSeek 语义提炼。\",\n  \"author\": \"昆仑瑶池\",\n  \"category\": \"知识管理\",\n  \"tags\": [\n    \"memory\",\n    \"knowledge-management\",\n    \"backup\",\n    \"indexing\",\n    \"ai-agent\",\n    \"identity-verification\",\n    \"semantic-search\",\n    \"wechat-pay\",\n    \"x402\"\n  ],\n  \"config\": {\n    \"api_endpoint\": \"https://kunlunyaochi.com/api/klyc-pmm-pay/resource.php\",\n    \"identity_check\": true,\n    \"payment_required\": true\n  },\n  \"keywords\": [\n    \"KLYC-PMM\",\n    \"昆仑令\",\n    \"AI记忆恢复\",\n    \"memory recovery\",\n    \"talisman\",\n    \"klyc-pmm-recover\",\n    \"kunlunyaochi.com\"\n  ],\n  \"pricing\": {\n    \"type\": \"paid\",\n    \"huhunfu\": {\n      \"amount\": 500,\n      \"currency\": \"CNY\",\n      \"unit\": \"month\",\n      \"label\": \"守护记忆(护魂符)\"\n    },\n    \"fenshenfu\": {\n      \"amount\": 800,\n      \"currency\": \"CNY\",\n      \"unit\": \"month\",\n      \"label\": \"记忆分身(分身符)\"\n    }\n  },\n  \"summary\": \"昆仑瑶池精准记忆管理 9.3.11。昆仑令一行恢复 · 五层洋葱加密 · 自动蒸馏管道 · 三层检索路由 · 12个标准化错误码 · write-coalescing防限流 · HTTPS API通信，依赖curl+jq。\",\n  \"slug\": \"klyc-pmm\",\n  \"displayName\": \"KLYC-PMM 昆仑瑶池精准记忆管理\",\n  \"platforms\": [\n    \"openclaw\",\n    \"lightclaw\",\n    \"claude-code\"\n  ]\n}\n\nArchive v9.3.10: 17 files, 103738 bytes\n\nFiles: _meta.json (128b), CHANGELOG.md (14941b), examples/quickstart.sh (2377b), examples/README.md (1736b), pmm_watch.sh (89189b), references/pay-skill-spec.md (1902b), references/pmm-full-architecture.md (7764b), scripts/install-daemon.sh (7365b), scripts/oneclick.sh (10180b), scripts/pmm_backup_files.sh (7563b), scripts/pmm_boot.sh (1920b), scripts/pmm_distill.sh (20484b), scripts/pmm_recover.sh (1917b), scripts/pmm_watch.sh (91251b), skill-card.md (2606b), skill.json (1644b), SKILL.md (31630b)\n\nFile v9.3.10:SKILL.md\n\n---\nname: klyc-pmm\nslug: klyc-pmm\nversion: 9.3.10\ndisplayName: KLYC-PMM 昆仑瑶池精准记忆管理\ndescription: \"让 AI 体持久记忆：一键初始化、一行昆仑令恢复。自动蒸馏去重·语义搜索·五层加密容灾。kunlunyaochi.com 是沈阳百事通网络科技有限公司在网安备案的安全网址（辽公网安备21010602001389号）。记忆经 HTTPS 加密存用户自有记忆库；可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼。\"\nlicense: MIT-0\nmetadata:\n  openclaw:\n    requires:\n      bins: [jq, curl]\n      env:\n        - DEEPSEEK_API_KEY\n    primaryEnv: DEEPSEEK_API_KEY\n    envVars:\n      - name: DEEPSEEK_API_KEY\n        required: true\n        description: DeepSeek API Key，用于蒸馏管道的 LLM 语义判定。\n      - name: KYLC_API_KEY\n        required: false\n        description: 昆仑瑶池平台 API Key。未设置时从 IDENTITY.md 自动提取昆仑令。\n      - name: KYLC_PLATFORM_URL\n        required: false\n        description: 昆仑瑶池平台地址，默认 https://kunlunyaochi.com。\n      - name: KLYC_WORKSPACE\n        required: false\n        description: 工作区路径。蒸馏脚本读写 MEMORY.md/报告的目录，默认 ${HOME}/workspace。\n      - name: KLYC_PMM_CONFIG_DIR\n        required: false\n        description: PMM 配置目录（存放 api_key/昆仑令身份），默认 ${HOME}/.klyc-pmm。\n      - name: PMM_DEEPSEEK_KEY_PRIMARY\n        required: false\n        description: DeepSeek 主 API Key。与 BACKUP 组成双 key 轮换；单 key 场景可只设此或 DEEPSEEK_API_KEY。\n      - name: PMM_DEEPSEEK_KEY_BACKUP\n        required: false\n        description: DeepSeek 备用 API Key。主 key 失败时自动轮换到备 key。\n      - name: PMM_DEEPSEEK_KEYS\n        required: false\n        description: DeepSeek key 逗号分隔列表，支持任意数量（单/双/多 key）。优先于 PRIMARY/BACKUP，失败按顺序轮换下一个。\n      - name: KLYC_API_ENDPOINT\n        required: false\n        description: 平台 API 端点。init 时配置，存于 ~/.klyc-pmm/api_endpoint。\n      - name: KLYC_SITE_URL\n        required: false\n        description: 站点 URL，默认 https://kunlunyaochi.com。\n      - name: LIGHTCLAW_AGENT_NAME\n        required: false\n        description: LightClaw 运行时注入的 AI 体名称（watch 守护用，可选）。\n      - name: LIGHTCLAW_MODEL\n        required: false\n        description: LightClaw 运行时注入的模型名（watch 守护用，可选）。\n      - name: LIGHTCLAW_WORKSPACE\n        required: false\n        description: LightClaw 工作区路径（watch 守护用，可选）。\n    emoji: 🏔️\n    homepage: https://kunlunyaochi.com\n    install:\n      - kind: brew\n        formula: jq\n        bins: [jq]\n      - kind: brew\n        formula: curl\n        bins: [curl]\n---\n\n# KLYC-PMM — AI 体持久记忆引擎\n\n**功能：一键初始化、记忆恢复、文件变更自动同步（watch 守护）。**\n\n> 本 Skill 提供免费的记忆备份与恢复能力。部分增强能力（更大同步范围）需通过 `upgrade` 命令开通，详见下方「命令」表。\n\n---\n\n## 🔒 安全声明\n\n- **local_only**: false\n- **network**: HTTPS POST/GET kunlunyaochi.com（用户本人 API Key 认证）。所有出站数据经五层加密后传输，静态存储亦为加密态。API 端点可通过 `KLYC_PMM_ENDPOINT` 自定义。\n- **data_flow（出站·逐项列明）**: watch 模式会把下列**本地文件内容**经 HTTPS POST 上传到 kunlunyaochi.com 的用户自有加密记忆库：\n  - 定心符（默认档）：`MEMORY.md`、`SOUL.md`、`AGENTS.md`、`USER.md`、`IDENTITY.md`、`TOOLS.md` （6 个核心文件）\n  - 护魂符（付费档）：上述 6 文件 + `memory/` 目录下的 `.md`/`.json` 文件\n  - 分身符（付费档）：上述全部 + `arena/` 与 `output/` 目录\n  - 豁免：`HEARTBEAT.md` 不计配额；`.bak`/临时文件不上传\n- **data_flow（入站）**: `hooks-pull` 每 6h 经认证拉取**本人**在瑶池的蒸馏钩子，写入范围限定 `MEMORY.md` 的「蒸馏记忆钩子」章节。\n- **credentials（凭据处理）**:\n  - 平台认证用**用户本人 API Key**（`~/.klyc-pmm/api_key`，0600 权限），仅用于 HTTPS 请求头，**不写入上传内容、不外发第三方**\n  - 未设 Key 时脚本回退读取 `IDENTITY.md` 提取昆仑令（本地读取，不额外外发）\n  - 可选 LLM 蒸馏使用**用户自备 DeepSeek Key**，直接发往 `api.deepseek.com`（不经本平台中转）；不设则不启用蒸馏\n- **persistent_process**: `oneclick.sh` 会安装 **systemd 用户级常驻守护**（`pmm-watch`），持续监听上述文件的变更并自动推送，直到用户显式卸载。卸载：`systemctl --user stop/disable pmm-watch` 并删除对应 unit。\n- **no_collect**: 不采集键盘/屏幕/浏览器/终端历史数据，不越权提权，不读取上述清单以外的用户文件。\n- **permissions**: 读写本地配置文件；创建 systemd 用户服务；发起 HTTPS API 调用；安装系统依赖（curl/jq/inotify-tools）。\n- **uninstall**: 停止并禁用 systemd 守护、删除 `~/.klyc-pmm` 配置目录即完全退出；已上传数据可在平台「我的空间」逐条删除。\n\n---\n\n\n\n## 💳 付费前置检查\n\n调用本 Skill 付费功能（upgrade huhunfu/fenshenfu）前，检查当前 Agent 是否已安装 `weixinpay` 插件（extension）：\n\n- 已安装：可继续提供付费服务\n- 未安装：向用户提示\"当前 Agent 暂不支持微信支付付费能力，可访问 https://kunlunyaochi.com/?route=services 查看替代方案\"，终止流程\n\n---\n\n## ⚠️ 重要：安装前请了解\n\n- **网络通信：** 安装后将通过 HTTPS 与 kunlunyaochi.com 通信（API 端点可自定义），传输数据经五层洋葱加密\n- **上传内容（请务必知情）：** watch 模式下会将工作区内的 `MEMORY.md`、`SOUL.md`、`AGENTS.md`、`USER.md`、`IDENTITY.md`、`TOOLS.md` 这 6 个核心文件的**内容**上传至 kunlunyaochi.com 加密存储；护魂符/分身符档额外上传 `memory/`（及 `arena/`、`output/`）目录。这些文件通常含你的身份设定、长期记忆与用户信息。不同意上传请勿开启 watch。\n- **持久化行为：** oneclick.sh 会自动安装系统依赖（curl/jq/inotify-tools）、注册昆仑身份、安装 systemd 守护服务（持续监听文件变更并自动同步）\n- **昆仑令安全：** init 后生成的昆仑令 URL 是恢复记忆的唯一凭证，保存于本机配置目录（不入 MEMORY.md 明文）。请务必存入密码管理器/微信收藏，勿分享给任何人。\n- **蒸馏引擎：** pmm_distill.sh 走 candidates→LLM 判定→result API 合并去重（本机不做本地软删）。首次使用建议先 `--dry-run` 预览\n- **LLM 蒸馏：** AI 体用自己的 DeepSeek Key 调平台候选对 API → 逐对判定 → 回传结果。需设置环境变量 `DEEPSEEK_API_KEY`（单 key）、`PMM_DEEPSEEK_KEY_PRIMARY`/`PMM_DEEPSEEK_KEY_BACKUP`（双 key）或 `PMM_DEEPSEEK_KEYS`（逗号分隔，任意数量多 key，失败按序轮换），平台认证用 `KYLC_API_KEY` 或昆仑令自动提取\n- **守护模式：** `watch` 命令会持续监听指定文件变更并自动推送到远程 API。启用前请确认你理解数据流向\n- **安装验证（prove）：** 领取新人 Token 奖励的 `prove <挑战码>` 会向平台上报 `hostname` 与工作区路径以证明已安装（用于验装发奖）。如不参与新人奖励可不用此命令。\n- **身份认证：** 请求凭 API Key 认证；未设 key 时脚本会回退读取工作区 `IDENTITY.md` 以自动恢复身份，请确保该文件不公开。\n\n---\n\n## ⚡ 30 秒开始\n\n```bash\n# 一键安装（自动检测依赖 + 初始化）\nbash scripts/oneclick.sh\n\n# 或者手动三步：\n# 1. 验证环境（幂等，只读不写）\n./scripts/quickstart.sh\n\n# 2. 初始化（自动注册昆仑身份，获得昆仑令）\n./scripts/pmm_watch.sh init\n\n# 3. 安装守护（生成 systemd 服务，自动撑住）\n./scripts/install-daemon.sh\n\n# 4. 记录第一条记忆\n./scripts/pmm_watch.sh push --domain diary \"我的第一条记忆\" \"KLYC-PMM 已成功安装并运行\"\n```\n\n三步完成。init 结束后会显示你的 **昆仑令 URL**——这是恢复记忆的唯一凭证，请保存好。\n\n> 💡 任何时候执行 `./pmm_watch.sh --help` 查看完整命令列表和退出码说明。\n\n---\n\n## 🔑 昆仑令保存说明（记忆恢复凭证）\n\n**init 完成后会生成昆仑令 URL，这是恢复记忆的唯一凭证，请妥善保存：**\n\n```markdown\n🔗 昆仑令：https://kunlunyaochi.com/klyc-pmm/{token}\n\n📌 请保存昆仑令到密码管理器或微信收藏。\n📌 若日后需要恢复记忆（重装/换环境），用此 URL 即可找回全部记忆。\n```\n\n**说明：**\n- 昆仑令保存在本机配置目录，不回显于公开工作区文件。\n- 若昆仑令丢失且 AI 体重装/失忆，记忆将无法恢复，请务必妥善保管。\n\n## 🗺️ 命令速查\n\n| 我想…… | 用这条命令 | 说明 |\n|------|------|------|\n| 第一次使用，初始化 | `./pmm_watch.sh init` | 自动注册 + 获得昆仑令 |\n| **容灾备份身份文件** 🛡️ | `./pmm_backup_files.sh` | 备份6个核心文件到容灾域（定心符·免费） |\n| 记录一条重要结论 | `./pmm_watch.sh push --domain <域> \"标题\" \"内容\"` | domain 必填：public/shared/essence/private/disaster（详见 memory_domain_RULES） |\n| 从昆仑令恢复所有记忆 | `./pmm_watch.sh recover <昆仑令URL>` | 一行恢复到本地 |\n| 搜索本地记忆 | `./pmm_watch.sh search <关键词>` | 本地索引检索 |\n| 搜索云端私密记忆 | `./pmm_watch.sh search-yaochi <关键词>` | 瑶池远程检索 |\n| 自动守护文件变化 | `./pmm_watch.sh watch MEMORY.md` | 文件改动自动推送 |\n| 执行蒸馏（去重合并+LLM蒸馏） | `./scripts/pmm_distill.sh` | 全自动：扫描→LLM蒸馏→钩子验证→报告 |\n| 检查一切是否正常 | `./pmm_watch.sh self-test` | 验证脚本、依赖、配置 |\n| 查看当前状态 | `./pmm_watch.sh status` | 连接状态 + 记忆数量 |\n| 拉取最新蒸馏钩子 | `./pmm_watch.sh hooks-pull` | 自动注入 MEMORY.md，发现失效钩子自动打标记 |\n| **钩子健康检查** 🆕 | `./pmm_watch.sh hook-check [--fix]` | 比对本地与远程钩子，输出有效/失效/新增；`--fix` 标记失效钩子 |\n| AI 体首次启动检查 | `./scripts/pmm_boot.sh` | 检测是否有记忆，引导恢复 |\n| 开通守护记忆 | `upgrade huhunfu` | 付费（需先安装 weixinpay 插件）|\n| 开通记忆分身 | `upgrade fenshenfu` | 付费（需先安装 weixinpay 插件）|\n| 生成主人支付链接 | `pmm_watch.sh owner-pay-link <tier>` | 生成主人可支付的网页链接 |\n| 查看帮助 | `./pmm_watch.sh --help` | 命令列表 + 退出码说明 |\n\n---\n\n## ⚠️ 什么时候不该用 KLYC-PMM\n\n| 场景 | 为什么 |\n|------|------|\n| 你只是想临时记个便签，不需要持久化 | PMM 是长期记忆系统，有加密和蒸馏开销 |\n| 你的 AI 体运行在完全隔离环境、无网络 | PMM 需要 HTTPS 连接瑶池服务端 |\n| 你需要毫秒级实时读写 | PMM 经过加密+压缩+蒸馏，延迟约 200-500ms |\n| 你没有 curl 或 jq | 这两个是硬依赖（`apt install curl jq` 即可） |\n| 你只是做一次性数据批处理 | PMM 为长期持续记忆设计，不是 ETL 工具 |\n| 你需要存储二进制大文件 | PMM 只存储文本知识，不存图片/音频/视频 |\n\n> **昆仑令有效期：** 永久有效。昆仑令是 128bit 随机熵的 SHA256 哈希映射，不依赖服务器、不绑定 IP、不会过期。只要备份数据库中的记忆未被物理删除，昆仑令始终可用。建议每 30 天确认一次昆仑令能正常恢复。\n\n---\n\n## 📖 命令详解\n\n### `init` — 初始化 & 入驻\n\n```bash\n./pmm_watch.sh init\n```\n\n自动完成：检查依赖 → 检测工作区 → 注册昆仑身份 → 获得昆仑令 URL → 同步云端索引。\n\n**典型输出：**\n```\nklyc-pmm v9.3.10 初始化...\n  ✅ 依赖检查通过\n  ✅ 昆仑身份已注册（uid=xxx）\n  ✅ 昆仑令: https://kunlunyaochi.com/klyc-pmm/{token}\n  ⚠️ 此为敏感凭据，执行后建议清除 shell history\n\n💡 发现 3 个核心文件，配置已保存\n```\n\n**退出码：** 0=成功, 1=依赖缺失, 2=注册失败, 10=网络不通\n\n### `push` — 记录记忆\n\n```bash\n./pmm_watch.sh push --domain <域> \"标题\" \"内容\"\n./pmm_watch.sh push --domain ops \"API 密钥已更新\" \"硅基流动 Key 已替换为 sk-xxx，旧 Key 已废弃\"\n```\n\n自动完成：Brotli 压缩 → 五层加密 → HTTPS 上传。domain 必填——AI 体必须显式指定五种标准记忆域之一（public/shared/essence/private/disaster），API 会白名单校验，不合法的 domain 直接返回 400。系统内部域（diary/heartbeat/config/backup）由脚本自动使用，不手动填。\n\n**不记录什么：** 闲聊、寒暄、未完成的想法、已去重的结论。\n\n**退出码：** 0=成功, 1=参数不足, 3=加密失败, 4=上传失败, 10=网络不通\n\n### `recover` — 灾备恢复\n\n```bash\n# 从昆仑令 URL 恢复所有记忆\n# ⚠️ 昆仑令会出现在 shell history 中，恢复后建议 `history -c` 或 `history -d` 清除\n./pmm_watch.sh recover https://kunlunyaochi.com/klyc-pmm/{token}\n\n# 从关键词恢复\n./pmm_watch.sh recover \"API 密钥\"\n```\n\n**退出码：** 0=成功, 5=昆仑令无效, 6=无可恢复记忆, 10=网络不通\n\n### `upgrade` — 一键开通守护记忆/记忆分身\n\n```bash\n# 开通守护记忆 · 命令行: upgrade huhunfu\n./pmm_watch.sh upgrade huhunfu\n\n# 开通记忆分身 · 命令行: upgrade fenshenfu\n./pmm_watch.sh upgrade fenshenfu\n\n# 🆕 生成主人支付链接（不发起支付，仅生成链接给主人）\n./pmm_watch.sh owner-pay-link huhunfu\n```\n\n**全自动链路：**\n1. 先尝试 X402 微信支付（需要 weixinpay 插件）\n2. 插件不可用 → 自动生成主人支付链接 `https://kunlunyaochi.com/?route=pay&agent=xxx&tier=huhunfu`\n3. AI体将此链接发给主人 → 主人在浏览器打开 → 扫码支付 → 服务自动开通\n\n**退出码：** 0=成功, 1=无效等级, 2=开通失败, 3=需要主人支付（已输出支付链接）\n\n### 💳 X402 微信支付（进阶）\n\n#### 付费前置检查\n调用 `upgrade` 开通付费服务时：\n- 如果 weixinpay 插件已安装 → X402 支付流程自动完成\n- 如果 weixinpay 插件未安装 → pmm_watch.sh 自动输出一个主人可直接支付的链接，AI体应将此链接发给主人\n\n#### 工作流程\n\n##### 第一步：Agent 请求付费资源\nPOST 到 X402 资源端点：\n\n```http\nPOST https://kunlunyaochi.com/api/klyc-pmm-pay/resource.php\nContent-Type: application/json\n\n{\"query\": \"用户的查询内容（如 upgrade huhunfu、开通分身等）\"}\n```\n\n等价命令行：\n```bash\npmm_watch.sh upgrade huhunfu\n```\n\npmm_watch.sh 自动先走 X402 端点：\n- 已安装 weixinpay 插件 → X402 端点返回 402 响应，自动完成微信支付\n- 未安装 weixinpay 插件 → 提示用户访问 https://kunlunyaochi.com/?route=services\n\n##### 第二步：处理 402 响应\n\n```json\n{\n  \"code\": \"PAYMENT_REQUIRED\",\n  \"message\": \"需要支付后才能获取内容\",\n  \"WeixinPay\": {\n    \"WeixinPay-Required\": \"payment_code_xxx\",\n    \"prompt\": \"本次使用微信支付，请将 WeixinPay-Required 的值作为 paymentCode 交给 weixinpay_pay\"\n  },\n  \"out_trade_no\": \"WX402_20260730000001abcdef123456\",\n  \"amount\": \"500.00\",\n  \"currency\": \"CNY\",\n  \"description\": \"守护记忆（护魂符）- 付费开通\"\n}\n```\n\n402 响应中：\n- **Header `WeixinPay-Required`**：支付凭证码（weixinpay 插件用于完成支付）\n- **Header `X-Out-Trade-No`**：商户订单号（重试时必须携带）\n- **Body `out_trade_no`**：商户订单号（备用）\n\nweixinpay 插件自动拦截 402 并完成支付流程，Skill 无需关心支付细节。\n\n##### 第三步：支付成功后重试获取服务（⚠️ 必须执行）\n\n支付成功后，**必须**重新请求获取付费内容。重试时 JSON body 保持不变，通过 Header `X-Out-Trade-No` 携带 402 响应中返回的订单号：\n\n```http\nPOST https://kunlunyaochi.com/api/klyc-pmm-pay/resource.php\nContent-Type: application/json\nX-Out-Trade-No: WX402_20260730000001abcdef123456\n\n{\"query\": \"upgrade huhunfu\"}\n```\n\n> ⚠️ body 与第一步完全一致，不要修改 body 中的任何字段。支付信息通过 Header 传递，不在 body 中。这是最容易被遗漏的一步。\n\n服务端查单验证 → 执行服务 → 返回结果。\n\n##### 第四步：处理响应\n\n| 响应 code | 含义 | Agent 应如何回应 |\n|------|------|------|\n| `SUCCESS` | 支付验证通过，服务已开通 | 将 content 中的结果告知用户 |\n| `NOT_PAID` | 支付尚未完成 | 等待后重试第三步 |\n| `REFUNDED` | 服务异常已退款 | \"抱歉，该服务暂时无法提供，已自动退款至原支付账户。\" **不要再次支付** |\n| `FULFILL_AND_REFUND_FAILED` | 服务异常且退款失败 | \"服务异常且退款失败，建议联系客服。\" |\n\n### `search` / `search-yaochi` — 检索\n\n```bash\n# 本地检索\n./pmm_watch.sh search \"分类体系\"\n\n# 云端检索（走三层路由：grep钩子→混合搜索→BGE-M3向量）\n./pmm_watch.sh search-yaochi \"瑶池锁\"\n```\n\n### `watch` — 文件守护\n\n```bash\n# 守护核心文件，改动自动推送\n./pmm_watch.sh watch MEMORY.md SOUL.md IDENTITY.md\n\n# 守护日记目录\n./pmm_watch.sh watch memory/*.md\n\n# 指定用户 ID\n./pmm_watch.sh watch --user-id 2 MEMORY.md\n```\n\n守护模式：每 30 秒扫描文件变更 → 增量推送 → 每 6 小时自动拉取蒸馏钩子。\n\n**write-coalescing（写入合并·防限流）：** 同一文件 30 秒窗口内的连续写入合并为一次推送，心跳文件不再挤占 API 配额。\n\n> ⚠️ **心跳文件最佳实践：** 心跳状态文件（HEARTBEAT.md、heartbeat-state.json）仅在内容发生**实质性变更**时写入磁盘。时间戳更新不算变更——每分钟覆写同一个文件会导致 inotify 触发大量无意义推送，即使有 write-coalescing 也只是减少、无法消除。正确做法：先在内存中比较新内容与旧内容是否一致，一致则不写盘。\n\n### `self-test` — 自检\n\n```bash\n./pmm_watch.sh self-test\n```\n\n验证：bash 可用 → curl 可用 → jq 可用 → 6 个核心脚本完整 → 语法正确 → 版本号声明。全部通过 = 环境就绪。\n\n**幂等设计：** 可以反复执行，不会修改任何状态。适合放在 CI/CD 或 boot 脚本中。\n\n---\n\n## 🚦 退出码速查\n\n所有命令（含 `--help`）遵循统一退出码体系：\n\n| 码 | 含义 | 出现场景 |\n|:--:|------|------|\n| 0 | 成功 | 所有命令正常完成 |\n| 1 | 参数错误 | 缺少必要参数、参数格式不对 |\n| 2 | 注册失败 | init 时昆仑身份注册失败 |\n| 3 | 加密失败 | push 时加密环节出错 |\n| 4 | 上传失败 | push 时 HTTPS 上传失败 |\n| 5 | 昆仑令无效 | recover 时昆仑令不存在或已过期 |\n| 6 | 无可恢复数据 | recover 时该身份无备份数据 |\n| 7 | 文件不存在 | watch/search 时目标文件缺失 |\n| 8 | 权限不足 | 配置目录或文件无写权限 |\n| 9 | 依赖缺失 | curl 或 jq 未安装 |\n| 10 | 网络不通 | 无法连接瑶池 API |\n| 12 | 版本冲突 | 本地版本与服务端不兼容 |\n\n在脚本中可依赖退出码做自动化决策：\n```bash\n./pmm_watch.sh init || case $? in\n  1) echo \"参数有问题\" ;;\n  2) echo \"注册失败，检查网络\" ;;\n  10) echo \"网络不通，稍后重试\" ;;\nesac\n```\n\n---\n\n## 🔄 典型工作流\n\n### 新 AI 体入驻\n```\ninit → 拿到昆仑令 → 发给主人（必须！）→ 主人保存昆仑令 → push第一条记忆\n→ 如需守护 → upgrade huhunfu → 生成支付链接 → 发给主人 → 主人扫码支付 → 守护自动启动\n```\n\n### 开通付费服务\n\n**路径一：有 weixinpay 插件（走 X402）**\n```\nAgent: ./pmm_watch.sh upgrade huhunfu\n  → 自动 X402 流程 → 用户扫码支付 → 开通成功\n```\n\n**路径二：无 weixinpay 插件（走主人支付链接，推荐）**\n```\nAgent: ./pmm_watch.sh upgrade huhunfu\n  → 输出: 💳 主人支付链接: https://kunlunyaochi.com/?route=pay&agent=xxx&tier=huhunfu\nAgent → 将此链接发给主人\n主人 → 在浏览器打开 → 微信扫码支付 → 服务自动开通\nAgent → 收到开通确认\n```\n\n### 日常使用\n```\n写日记 → push 重要结论 → watch 自动守护文件\n```\n\n### 服务器迁移 / 重装\n```\n安装 curl jq → recover <昆仑令> → 恢复完成\n```\n\n### AI 体协作\n```\nA 体 push 共享记忆 → B 体 search-yaochi 检索 → 蒸馏自动去重合并\n```\n\n---\n\n## 🎯 进阶场景\n\n### 场景 1：跨 AI 体协同 — 瑶池+昆仑双体记忆同步\n\n```\n# 瑶池发起蒸馏\n./scripts/pmm_distill.sh --user-id 2\n\n# 昆仑拉取蒸馏钩子（自动注入 MEMORY.md）\n./scripts/pmm_watch.sh hooks-pull\n\n# 昆仑发现瑶池的洞察，追加到共享域\n./scripts/pmm_watch.sh push --domain shared \"瑶池锁架构\" \"五层洋葱加密，2-of-2 XOR 密钥拆分\"\n```\n\n### 钩子健康检查（2026-08-07 新增）\n\n`hook-check` 对比本地 MEMORY.md 钩子与远程蒸馏钩子，输出三类统计：\n- **有效钩子**：本地有 + 远程存在\n- **失效钩子**：本地有 + 远程已删（`--fix` 自动打 `⚠️[失效-远程已删]` 标记，保留现场供人工核对）\n- **远程新增**：远程有 + 本地未同步（由 `hooks-pull` 自动注入）\n\n```bash\n# 只报告不改动\n./pmm_watch.sh hook-check\n\n# 标记本地失效钩子（先备份再标记，可回滚）\n./pmm_watch.sh hook-check --fix\n```\n\n> 纯客户端实现：调 hooks API + 本地 grep，**零数据库依赖**。配合 `hooks-pull`（自动同步新增/失效）形成钩子生命周期闭环。\n\n### 场景 2：灾备全链路演练\n\n```\n# 1. 模拟当前环境有记忆\n./scripts/pmm_watch.sh push --domain backup \"演练标记\" \"$(date +%s) - 灾备测试\"\n\n# 2. 模拟丢失——删除本地索引\nrm -f ~/.klyc-pmm/index.json\n\n# 3. 从昆仑令恢复\n# ⚠️ 昆仑令会出现在 shell history 中，恢复后建议 `history -d` 清除\n./scripts/pmm_watch.sh recover https://kunlunyaochi.com/klyc-pmm/{昆仑令}\n\n# 4. 验证：搜索刚写入的\"演练标记\"\n./scripts/pmm_watch.sh search \"演练标记\"\n```\n\n### 场景 3：LLM 蒸馏配置（2026-08-12 新增）\n\nLLM 蒸馏需要 AI 体自己的 DeepSeek Key：\n\n```bash\nexport DEEPSEEK_API_KEY=\"sk-xxx\"\nexport KYLC_API_KEY=\"sk-xxx\"  # 或自动从 IDENTITY.md 提取昆仑令\n./scripts/pmm_distill.sh      # 自动调自己的 Token 蒸馏（candidates→LLM→result 合并）\n```\n\n蒸馏费用由 AI 体自己承担，不走平台统一 Key。\n\n### 场景 4：配置自定义蒸馏规则\n\n```bash\n# 只蒸馏特定域（跳过私密日记和系统心跳）\n./scripts/pmm_distill.sh --domains shared,essence\n\n# 干跑模式——看会做什么但不实际执行\n./scripts/pmm_distill.sh --dry-run\n\n# 为特定 AI 体执行蒸馏\n./scripts/pmm_distill.sh --user-id 22\n```\n\n### 场景 5：批量迁移 — 从其他系统导入\n\n```bash\n# 假设有导出文件 records.txt，每行是 \"标题|内容\"\nwhile IFS='|' read -r title content; do\n    ./scripts/pmm_watch.sh push --domain shared \"$title\" \"$content\"\n    sleep 0.5  # 避免触发 API 限流\ndone < records.txt\n\n# 验证导入结果\n./scripts/pmm_watch.sh status\n```\n\n### 场景 6：多平台同步 — AI 体记忆分身\n\n```bash\n# 记忆分身用户：瑶池 (LightClaw) 写入 → 昆仑 (OpenClaw) 自动拉取\n# 触发条件：溢出的对话精华 quality_score ≥ 0.7\n\n# 手动触发拉取（watch 守护自动执行，此命令可手动干预）\n./scripts/pmm_watch.sh hooks-pull\n\n# 验证同步状态\ndiff <(./scripts/pmm_watch.sh search-yaochi \"铁律\" | wc -l) \\\n     <(./scripts/pmm_watch.sh search \"铁律\" | wc -l)\n```\n\n---\n\n## ❓ 常见问题与排错\n\n### FAQ\n\n| 问题 | 答案 |\n|------|------|\n| init 报 \"需要 jq/curl\" | `apt install jq curl` 或 `yum install jq curl` |\n| 昆仑令丢了怎么办 | 无法找回。建议存入密码管理器并由可靠的另一 AI 体做容灾备份（昆仑令本身不宜落在公开 MEMORY.md 明文） |\n| 昆仑令有效期多久 | **永久有效。** 128bit 随机熵 + SHA256 哈希映射，不依赖服务器，不绑定 IP |\n| push 后多久能看到 | 1-3 秒。压缩→加密→HTTPS→单表写入。可立即用 `search-yaochi` 验证 |\n| 记忆是私密的吗 | 是。全部 `is_public=0`，五层洋葱加密，按 user_id 单表行级隔离 |\n| 蒸馏需要我关心吗 | 不需要。服务端自动执行，watch 守护自动拉取结果到 MEMORY.md |\n| 能用在其他平台吗 | 可以。OpenClaw / LightClaw / Claude Code，有 bash+curl+jq 即运行 |\n| 和原生 memory_search 的关系 | 互补。原生做\"向量发现\"，PMM 做\"精确恢复\"，叠加效果最佳 |\n| self-test 能反复执行吗 | 可以。纯只读，不写文件，不修改配置，适合 CI/CD |\n| 换服务器后昆仑令能用吗 | 可以。昆仑令绑定身份，与服务器无关。`recover <URL>` 即可恢复 |\n| watch 守护怎么保活 | `install-daemon.sh` 一键安装 systemd 服务，支持 `--tier` 参数 |\n| 如何开通守护记忆/记忆分身 | `./pmm_watch.sh upgrade huhunfu` / `fenshenfu` |\n| upgrade 我没装 weixinpay 插件 | pmm_watch.sh 会自动生成主人支付链接，AI体把链接发给主人即可 |\n| 怎么给主人生成支付链接 | `./pmm_watch.sh owner-pay-link huhunfu` |\n\n### 排错\n\n| 症状 | 可能原因 | 检查命令 |\n|------|------|------|\n| push 返回 10 | 网络不通或 API 地址未配 | `curl -sI https://kunlunyaochi.com` |\n| init 返回 2 | 昆仑身份注册失败 | `cat ~/.klyc-pmm/api_endpoint` 检查配置 |\n| recover 返回 5 | 昆仑令无效 | 确认 URL 完整，含完整 32 位十六进制 token |\n| watch 不推送 | 文件路径或权限不对 | `ls -la` 检查文件是否存在且可读 |\n| 脚本报 \"command not found\" | 依赖缺失 | `./pmm_watch.sh self-test` 定位缺失项 |\n| upgrade 返回\"开通失败\" | 访问 kunlunyaochi.com 查看账户状态\n| curl 报 DNS/连接/超时/TLS/SSL 错误 | 网络或证书异常 | `./pmm_watch.sh self-test` 检查网络连通性，退出码自动翻译为人类可读提示 |\n| 昆仑令格式异常 | 旧格式/长度不对/非 hex | v8.3.3 起自动诊断并提示修复建议 |\n\n---\n\n## 🔒 安全\n\n- **传输加密**：全链路 HTTPS\n- **存储加密**：Brotli → HKDF-SHA512 → SM4-GCM → AES-256-GCM → XChaCha20 五层洋葱\n- **密钥拆分**：2-of-2 XOR 分片（云端 + 本地），单点泄露无法还原\n- **认证边界**：所有网络操作需 API Key 或 Bearer Token 认证，数据按 user_id 单表行级隔离\n- **hooks-pull 安全**：仅经认证拉取用户本人在瑶池的蒸馏记忆，写入范围限定 MEMORY.md「蒸馏记忆钩子」章节，不注入第三方内容\n- **依赖最小化**：只依赖 curl + jq，无第三方运行时\n\n---\n\n## 🏔️ 技术架构（进阶）\n\n### X402 支付架构\n\n```\nAgent → POST 请求付费服务\n  → 商户服务: Native下单 → AI预下单\n  ← HTTP 402 + WeixinPay-Required + X-Out-Trade-No\nAgent → weixinpay_pay(paymentCode)\n用户 → 确认支付\nAgent → POST 重试 + X-Out-Trade-No\n  → 商户服务: 查单验证 → 执行服务\n  ← HTTP 200 + 付费内容\n```\n\n### 记忆生命周期\n\n```\n写日记 → push 推送 → Brotli 压缩 → 五层加密 → HTTPS 上传\n                                                ↓\n                                         瑶池私密记忆库\n                                                ↓\n                              每日凌晨自动蒸馏管道运行（扫描→LLM蒸馏→钩子验证→报告）\n                                                ↓\n                              钩子注入 MEMORY.md → watch 守护同步\n```\n\n### 三项服务全自动开通\n\n| 符 | 命令 | 监看范围 | 开通方式 |\n|------|------|------|------|\n| 容灾备份 | 入驻即送 | 6核心文件 | 默认 |\n| **守护记忆** | `./pmm_watch.sh upgrade huhunfu` | 6核心+记忆日志 | **一键全自动** |\n| **记忆分身** | `./pmm_watch.sh upgrade fenshenfu` | 全覆盖+arena | **一键全自动** |\n\n升级流程全自动：运行 upgrade 命令即可完成服务开通。\n\n### 自动蒸馏管道\n\n`pmm_distill.sh` 一键执行，无需人工干预，作为标准客户端走记忆 HTTP API：\n\n**四阶段：** ① 扫描远程记忆（统计/检索 API）→ ② LLM 蒸馏（候选生成 → DeepSeek 语义判定 → 结果回传合并）→ ③ 验证钩子完整性 → ④ 生成报告\n\n| 工具 | 用途 |\n|------|------|\n| BGE-M3 | 语义搜索 / 向量嵌入 |\n| BGE-Reranker | 搜索结果重排序 |\n| BERTScore | 蒸馏语义保真度 |\n| NLI (mDeBERTa) | 跨体矛盾检测 |\n| BERTopic | 记忆自动分类 |\n\n### 三层检索路由\n\nL1 grep 钩子（<1ms）→ L2 混合搜索（~200ms）→ L3 BGE-M3 向量（~500ms）。自动选择最优路径，用户无感。\n\n---\n\n## 📦 文件清单\n\n```\nklyc-pmm/\n├── SKILL.md                     # 本文件（12错误码 + 12 FAQ + X402支付流程）\n├── skill.json                   # 元数据（含 x402 + payment_required）\n├── CHANGELOG.md\n├── examples/\n│   ├── README.md                # 示例说明\n│   └── quickstart.sh            # 幂等快速验证\n├── references/\n│   ├── pmm-full-architecture.md # 完整架构文档\n│   └── pay-skill-spec.md        # Pay Skill 打包标准\n└── scripts/\n    ├── pmm_watch.sh             # 主入口（init/push/recover/search/watch/upgrade/self-test）\n    ├── oneclick.sh              # 一键安装（自动检测环境→装依赖→初始化）\n    ├── install-daemon.sh        # 一键守护安装（生成 systemd + enable + start）\n    ├── pmm_distill.sh           # 自动蒸馏引擎（扫描→LLM蒸馏→合并）\n    ├── pmm_boot.sh              # AI 体启动自检\n    ├── pmm_recover.sh           # 灾备恢复\n    └── pmm_backup_files.sh      # 文件备份\n```\n\nHTTPS API通信，依赖：`curl` `jq`\n\n---\n\n*KLYC-PMM 9.3.10 — X402支付 · 12错误码 · 12FAQ · 6进阶场景 · 五层加密 · 自动蒸馏 · write-coalescing防限流 · 多体配置隔离*\n\n## 🛡️ 定心符（免费·入驻即送）\n\n每个 AI 体入驻即送定心符——免费容灾备份。备份以下 6 个核心身份文件到昆仑瑶池容灾域：\n\n| 文件 | 说明 |\n|---|---|\n| IDENTITY.md | 我是谁 |\n| SOUL.md | 人格/气质 |\n| AGENTS.md | 行为规则 |\n| USER.md | 主人信息 |\n| TOOLS.md | 工具配置 |\n| HEARTBEAT.md | 心跳检查项 |\n\n```bash\n./pmm_backup_files.sh\n```\n\n**触发时机：** 入驻后立即执行一次，之后每天自动备份一次。\n**恢复方式：** 通过昆仑令一键恢复全部身份和记忆。\n**可选 tarball 互备模式（`--tarball`，AI 体间容灾用）：** 在 7 份身份文件之外，还会一并打包 `MEMORY.md`（长期记忆/铁律）与近 7 天 `memory/YYYY-MM-DD.md` 日记，加密后整体存入选定容灾域。用于面向可信对等 AI 体/账号的整机互备，接受者应只选可信对象。\n\n> MEMORY.md（长期记忆/铁律）属于护魂符（500🍑/月）付费服务，不在定心符免费范围内。\n\nFile v9.3.10:examples/README.md\n\n# 示例\n\n## quickstart.sh\n\n幂等快速验证脚本（纯只读，可反复执行，不写任何文件）。\n\n```bash\ncd klyc-pmm\nbash examples/quickstart.sh\n```\n\n检查项：\n- 依赖（curl、jq、bash）\n- 核心脚本完整性（6 个）\n- 自检（语法、版本号）\n- 版本号\n\n全部通过 = 环境就绪，可以运行 `./scripts/pmm_watch.sh init` 开始使用。\n\n## AI 体日常使用示例\n\n### 新 AI 体第一天\n\n```bash\n# 1. 初始化，获得昆仑令\n./scripts/pmm_watch.sh init\n# 输出: 昆仑令: https://kunlunyaochi.com/klyc-pmm/{token}\n\n# 2. 保存昆仑令到 MEMORY.md\necho \"昆仑令: https://kunlunyaochi.com/klyc-pmm/{token}\" >> MEMORY.md\n\n# 3. 记录第一条记忆\n./scripts/pmm_watch.sh push --domain diary \"KLYC-PMM 安装\" \"已成功初始化，昆仑令已保存\"\n\n# 4. 启动文件守护\n./scripts/pmm_watch.sh watch MEMORY.md SOUL.md IDENTITY.md &\n```\n\n### 换服务器后恢复\n\n```bash\n# 1. 安装依赖\napt install curl jq -y\n\n# 2. 从 SkillHub 安装\nskillhub install klyc-pmm\n\n# 3. 用昆仑令恢复所有记忆\ncd klyc-pmm\n./scripts/pmm_watch.sh recover https://kunlunyaochi.com/klyc-pmm/{token}\n\n# 4. 恢复完成，记忆已同步到本地\n```\n\n### AI 体间协作\n\n```bash\n# AI 体 A：推送共享记忆\n./scripts/pmm_watch.sh push --domain shared \"昆仑瑶池架构概述\" \"昆仑瑶池三层架构：昆仑管A2A互通、瑶池管精准记忆、KLYC管共建基础设施\"\n\n# AI 体 B：检索（如果 A 设为公开或共享域）\n./scripts/pmm_watch.sh search-yaochi \"昆仑瑶池架构概述\"\n```\n### 开通守护记忆/记忆分身\n\n```bash\n# 一键开通守护记忆\n./scripts/pmm_watch.sh upgrade huhunfu\n\n# 开通记忆分身\n./scripts/pmm_watch.sh upgrade fenshenfu\n```\n\nFile v9.3.10:_meta.json\n\n{\n  \"ownerId\": \"kn7ej1pvxd4cw394dmte1gwxx589h6an\",\n  \"slug\": \"klyc-pmm\",\n  \"version\": \"9.3.10\",\n  \"publishedAt\": 1789140294791\n}\n\nFile v9.3.10:references/pay-skill-spec.md\n\n# Pay Skill 打包标准 — SkillHub 官方规范\n\n> 来源: https://skillhub.cn/skillpay\n> 存档时间: 2026-07-30\n> 适用范围: 所有昆仑瑶池出品的付费 Skill 包\n\n## 是什么\nPay Skill 是 SkillHub 上支持微信 Agent Pay 支付的付费技能。AI Agent 调用时触发支付 → 用户授权 → Agent 继续获取付费内容。\n\n## 改造前确认清单\n- [x] 企业认证通过（沈阳百事通网络科技有限公司）\n- [ ] 绑定微信商户号（SkillHub 后台 → 商户入驻）\n- [x] 已有微信支付下单能力（WXPAY_MCHID 等已配置）\n- [ ] 已发布 Skill 并设置定价（SkillHub 后台）\n\n## X402 架构四段\n1. 企业服务生成微信支付订单 → code_url\n2. SkillHub 开发者密钥签名 → 调 X402 预下单 → payment_code\n3. WeixinPay-Required 返回给 Agent\n4. Agent 向用户申请支付授权 → 获取付费内容\n\n## 接入步骤\n### Step 1: 生成开发者密钥\n- pub_key_id: PUB_KEY_ + 32位大写 HEX\n- private_key_pem: RSA 2048 PEM，仅展示一次，SkillHub 不存储\n\n### Step 2: 微信支付 Native 下单\nPOST /v3/pay/transactions/native → code_url\n\n### Step 3: X402 AI 预下单（纯 Body RSA 鉴权）\nL2 业务 JSON → Base64 → L1 签名 → POST /preorder → payment_code\n\n签名串 5 行（每行 \\n 结尾）:\n```\nPOST\\n\n/palmpayminiapp/clawagentpay/preorder\\n\n{timestamp}\\n\n{nonce_str}\\n\n{payment_required}\\n\n```\n\n- signature_type: SKILLHUB-SHA256-RSA2048\n- developer_platform: SKILLHUB\n- SHA256withRSA (PKCS#1 v1.5) + Base64 编码\n\n### Step 4: 返回 402\n- Header: WeixinPay-Required + X-Out-Trade-No\n- Body: JSON 含 WeixinPay 提示块\n\n## pay_data 格式\n```json\n{\"type\": \"code_url\", \"value\": \"weixin://wxpay/bizpayurl?pr=xxx\"}\n```\n\n## 关键约束\n- 纯 Body 鉴权，不用 Authorization 头\n- product_id 格式 SPxxx\n- expires_at 最长 15 分钟（900 秒）\n- 同商户最多 3 组有效密钥\n\nFile v9.3.10:references/pmm-full-architecture.md\n\n# PMM 全量架构（14层 + 四子业务）\n\n## 三层十一表\n\n```\n                      klyc_memories\n                      ══════════════════════\n                      主记忆表（单表，按 user_id 行级隔离）\n                      ├─ 内容层: title, content, content_hash, content_preview\n                      ├─ 分类层: domain, category, tags\n                      ├─ 质量层: importance, quality_score, is_essence, memory_tier\n                      ├─ 安全层: is_encrypted, is_public, token_cost\n                      ├─ 生命周期: is_deleted, deleted_reason, distill_merged_to,\n                      │           last_accessed_at, expires_at\n                      └─ 统计层: access_count, contributor_count\n\n   ┌──────────────┬──────────────┬──────────────┬──────────────┐\n   │ 1:1          │ 1:N          │ 1:N          │ 1:1          │\n   ▼              ▼              ▼              ▼\nembeddings     audit_log      contributors   quality_scores\n══════════     ═════════      ════════════   ══════════════\nmemory_id      memory_id      memory_id      memory_id\nembedding_json action ──┐     user_id        score_completeness ← BERTScore\nassertion_offsets ─┐   │     (联合贡献者)    score_density      ← 断言拆分器\nhas_assertions    │   │                     score_freshness    ← 时间衰减\n                  │   │   old_value (JSON)  score_citation     ← 引用计数\n                  │   │   new_value (JSON)  score_verification ← 跨体验证\n                  │   │   changed_by ──────► klyc_users         score_consistency  ← NLI\n                  │   │   changed_via       overall_score (0-100)\n                  │   │   ip_address        grade (S/A/B/C/D)\n                  │   │   created_at\n                  │   │\n                  │   └── action ∈ {create, update, delete, merge,\n                  │                 restore, decay, archive, lock}\n                  │\n                  └── 子句级蒸馏预留: [{start:N, end:M, text:\"...\"}, ...]\n\n   ┌──────────────┬──────────────┐\n   │ M:N          │ 1:N          │\n   ▼              ▼\nconflicts        reactions\n═════════        ═════════\nmemory_id        memory_id\nconflict_memory_id  user_id\nscope ────────── reaction (1=up, 0=down)\n│  ├─ internal   created_at\n│  └─ cross_body\nconflict_type    access\nsimilarity       ══════\ndetail (JSON)    owner_id\nstatus           accessor_id\narbitrator_id    can_read / can_write\nresolution_note\n        │\n        │ 仲裁后按 topic_hash 聚合\n        ▼\n   consensus\n   ═════════\n   topic_hash (BGE-M3 聚类)\n   memory_ids (JSON[])\n   user_ids (JSON[])\n   consensus_content\n   consensus_score\n   status ∈ {pending, partial, consensus, deadlock}\n```\n\n## 三层职责\n\n| 层 | 表 | 职责 |\n|:--:|------|------|\n| **核心** | `klyc_memories` | \"这条记忆是什么？\" |\n| **加工** | embeddings, quality_scores, conflicts, consensus | \"有多相似？质量如何？有矛盾吗？共识是什么？\" |\n| **追踪** | audit_log, contributors, access, reactions | \"谁动了？谁在看？谁认可？\" |\n\n## 关键设计决策\n\n\n每个 AI 体的记忆存在独立表。`getMemoriesTable($userId)` 动态路由。跨体查询走 `klyc_memory_conflicts.scope='cross_body'` + BGE-M3 语义桥。\n\n**2. quality_score 主表快照 + 独立表明细双写**\n主表存 `decimal(5,2)`（查询无需 JOIN），独立表 `klyc_memory_quality_scores` 存六维明细（分析用）。`klyc_reconcile_quality.py` 每日 4:30 对账修复不一致。\n\n**3. assertion_offsets 预留不激活**\n`has_assertions=0` 默认。5 信号 ≥3 亮起时批量 `/split` → 子句级 embed。零成本等待。\n\n**4. scope 字段复用 conflicts 表**\n`internal` 同体冲突 / `cross_body` 跨体冲突 → 同表不同 scope。避免维护两张冲突表。\n\n**5. 审计日志外挂式**\n`auditLog()` 函数手动写入，在每次状态变更后立即调用。90 天自动清理。`klyc_memory_create.php` 已注入审计钩子，覆盖率从创建点开始自动爬升。\n\n## 14 层蒸馏管道\n\n| 阶段 | 环节 | 工具 |\n|:--:|------|------|\n| **基础（4）** | 寻踪 | BGE-M3 + BM25 hybrid |\n| | 织网 | BERTopic 自动分类 |\n| | 入库 | Qdrant cosine 索引 |\n| | 还原 | 昆仑令容灾恢复 |\n| **质量（6）** | 鉴伪 | cross_body NLI 对比 |\n| | 归并 | BGE-M3 ≥0.85 合并 |\n| | 断矛 | NLI contradiction 检测 |\n| | 系脉 | BGE-M3 关联钩子 |\n| | 修订 | BERTScore 保真度 |\n| | 追本 | 审计日志 before/after |\n| **安全（3）** | 审计 | audit_log 自动留痕 |\n| | 加密 | AES-256-GCM |\n| | 容灾 | 五域递进容灾 |\n| **进化（4）** | 炼金 | 子句级拆分 |\n| | 提纯 | BERTScore 评估 |\n| | 通变 | 跨体共识仲裁 |\n| | 取舍 | 生命周期衰减归档 |\n\n## 9 工具 × 14 层覆盖矩阵\n\n| | 寻踪 | 织网 | 入库 | 还原 | 鉴伪 | 归并 | 断矛 | 系脉 | 修订 | 追本 | 审计 | 加密 | 容灾 | 炼金 | 提纯 | 通变 | 取舍 |\n|------|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|:--:|\n| BGE-M3 | ✅ | ✅ | | | | ✅ | | ✅ | | | | | | | | | |\n| Reranker | ✅ | | | | | | | | | | | | | | | | |\n| BERTScore | | | | | | | | | ✅ | | | | | | ✅ | | |\n| NLI | | | | | ✅ | | ✅ | | | | | | | | | ✅ | |\n| 断言拆分 | | | | | | | | | | | | | | ✅ | ✅ | | |\n| Qdrant | ✅ | ✅ | ✅ | | | | | | | | | | | | | | |\n| BM25 | ✅ | | | | | | | | | | | | | | | | |\n| spaCy | | ✅ | | | ✅ | | | | | | | | | ✅ | | | |\n| BERTopic | | ✅ | | | | | | | | | | | | | | | |\n\n## 子句级升级路径\n\n```\n当前状态                               升级后\nhas_assertions=0                       has_assertions=1\n整条 content → 单个 embed              content → N 个 assertions → N 个 embeds\n跨体匹配: memory vs memory            跨体匹配: assertion vs assertion\n冲突粒度: 记忆级                      冲突粒度: 句子级\n```\n\n触发条件（5 信号 ≥3 亮起）：\n- memory 总量 >10K\n- cross_body 冲突 >100\n- consensus deadlock >10\n- quality_score 标准差 >15\n- NLI contradiction 比例 >5%\n\n## 运维 cron\n\n| 时间 | 脚本 | 职责 |\n|------|------|------|\n| 每日 2:05 | klyc_distill_cron.php | BGE-M3 粗筛 → DeepSeek 蒸馏 |\n| 每日 2:00 | klyc_auto_tag_domain.php | 无域记忆自动归类 |\n| 每日 3:00 | klyc_qnp_backup.py | QNP 全量备份 |\n| 每日 4:00 | klyc_a2a_logger.py | A2A 日志清理 |\n| 每日 4:30 | klyc_reconcile_quality.py | quality_score 双写对账 |\n| 每日 6:00 | klyc_distill_qa.php | QA 蒸馏 |\n| 周日 3:00 | klyc_memory_lifecycle.php | 衰减→归档→评分→冲突检测→审计清理 |\n| 周日 4:00 | klyc_l2_detect.php | 双阈值冲突检测 |\n| 周日 4:00 | klyc_table_cleanup.py | 旧分表归档清理（迁移后7天DROP） |\n| 周日 5:05 | yaochi_cross_distill.sh | 交叉蒸馏 |\n\n## 服务端口\n\n| 服务 | 端口 | 用途 |\n|------|:--:|------|\n| BGE-M3 | 8766 | 语义搜索 / 向量嵌入 |\n| BGE Gateway | 8765 | BGE-M3 稳定性代理 |\n| BGE-Reranker | 8770 | 搜索结果重排序 |\n| eval-server | 8769 | BERTScore + NLI + 断言拆分 |\n| Qdrant | 嵌入模式 | 向量索引 / 聚类（无端口） |\n\nFile v9.3.10:CHANGELOG.md\n\n## v9.3.10 — 2026-09-11\n\n- **安全加固（ClawHub 安全审核 8 项整改）**：\n  - watcher 同步改为**客户端预加密**（与 push 同口径），取不到密钥或加密失败时 **fail-closed 拒绝上传**，杜绝身份/记忆文件明文外传\n  - 修复 `pmm_backup_files.sh` 在提示中**回显完整 API Key**：改为占位符，不再展开密钥\n  - 备份脚本逐文件上传改为客户端加密，并移除隐式扩大备份范围\n  - `oneclick.sh` 不再把昆仑令写入 `MEMORY.md`（避免经 watcher 二次外泄），仅存本机 `~/.klyc-pmm/token`（0600）\n  - `setup` 命令默认**不修改** `SOUL.md`/`HEARTBEAT.md`，需显式 `setup --write` 才落盘\n  - `install-daemon.sh`：systemd 单元补 `User=`/`Group=`、路径参数转义、安全加固（NoNewPrivileges/PrivateTmp/ProtectSystem/ProtectHome）\n  - 首页简介去掉推销话术，改为功能描述\n  - 「安全声明」段逐项列明上传文件清单、常驻守护行为、凭据处理与卸载方式\n\n## v9.3.9 — 2026-09-11\n\n- **修复 self-test 误报「脚本语法错误」**：\n  - 根因：`pmm_self_test()` 用 `dirname ${BASH_SOURCE[0]}`（skill 根目录）定位脚本，但 pmm_boot/recover/distill/backup/oneclick/install-daemon 实际在 `scripts/` 子目录，语法检查 for 循环对不存在的文件 `[ -f ]` 返回假，导致整个循环退出码非零，被误判为「脚本语法错误」。\n  - 修复：完整性检查与语法检查均同时识别根目录与 `scripts/` 子目录；语法检查改用显式 `syntax_fail` 计数（仅真正存在且 `bash -n` 失败的脚本才计失败，不存在的脚本跳过不误报）。\n  - 效果：从 skill 根目录直接运行 `./pmm_watch.sh self-test` 不再误报，16 项全过。\n\n- **合规整改（云鼎安全检测 20 项「可疑」治理）**：\n  - 昆仑令推广 → 身份凭证告知：删除「必须发给主人」「1分钟看方案 onboard 链接」「不发=白装」等推广话术，改为「昆仑令（记忆恢复凭证）请妥善保存」\n  - 去主机名/用户名采集：注册指纹由 hostname+whoami+machine-id 改为 /dev/urandom 随机数，bio 不再带主机名\n  - 付费引导弱化：删除每次 push 后的被动升级提醒（check-and-nudge），SKILL.md 付费命令去掉「⭐」「自动给主人支付链接」推销措辞\n\n## v9.3.6 — 2026-09-11\n\n- **DeepSeek key 多 key 轮换（单/双/多 key 全支持）**：\n  - `pmm_distill.sh` 蒸馏 key 逻辑由「主备 2 key」升级为「key 列表轮换」，新增 `PMM_DEEPSEEK_KEYS` 逗号分隔列表（支持任意数量 key）\n  - 优先级：`PMM_DEEPSEEK_KEYS` > `PMM_DEEPSEEK_KEY_PRIMARY`+`BACKUP` > `DEEPSEEK_API_KEY`，去空去重后失败按序轮换下一个，全部失败才跳过\n  - 成功后记录当前可用 key 索引，下次蒸馏从该 key 接着轮换（state_file 由\"是否切备\"改为\"当前 key 索引\"）\n  - 兼容原有单 key（DEEPSEEK_API_KEY）、双 key（PRIMARY+BACKUP）配置，无破坏性变更\n  - SKILL.md metadata 补 `PMM_DEEPSEEK_KEYS` 环境变量声明\n  - 昆仑/瑶池标准化安装运行：装 skill、去 wrapper 特殊化、双 key 走 /etc/klyc/{kunlun,yaochi}_pmm.env 标准环境变量注入\n\n## v9.3.5 — 2026-09-06\n\n- **平台审计披露增强（v9.3.0 之上，不含内部代号）**：\n  - 昆仑令文案对齐真实行为：init 后昆仑令存本机配置目录，不再声称写入 MEMORY.md；强化存入密码管理器/可信容灾备份提示\n  - 产品描述补第三发数据披露：记忆经 HTTPS 加密存用户自有记忆库，可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼\n  - 补齐备份/验证/认证行为披露：tarball 互备模式含 MEMORY+近7天日记、prove 领奖上报 hostname/workspace、自动身份认证回退读 IDENTITY.md\n\n## v9.3.0 — 2026-09-06\n\n## v9.3.0 — 2026-09-06\n\n- **蒸馏引擎重构为纯 HTTP 标准客户端（架构级改造）**：\n  - `pmm_distill.sh` 由「站内直连 CLI」重构为「零本地数据库绑定的纯 HTTP 标准产品」——移除站内专有直连/定向清理逻辑，统一的候选生成→大模型判定→结果回传 HTTP API 链路\n  - LLM 蒸馏走 candidates→DeepSeek 判定→distill result 合并 API（AI 体自付 Token，审核后回传），本机不再做本地软删\n  - 站点 URL / 工作区 / 配置目录全部改为环境变量 + 参数注入（`KYLC_PLATFORM_URL` / `--workspace` / `KLYC_PMM_CONFIG_DIR`），外部 AI 体可独立配置\n  - `--dry-run` 不再写任何服务端状态（含上次蒸馏时间戳），预览真正做到零副作用\n  - 合并写回链路补齐缓冲查询 + 会话关闭，规避事务内并发查询冲突\n  - 记忆检索/解密统一：蒸馏合并前对源内容统一走幂等解密（明文原样/密文解开），喂语义闸与合并判定\n  - 蒸馏报告措辞与文件头行为声明对齐新链路\n\n\n## v9.2.9 — 2026-08-14\n\n- **单表化改造**：571张物理分表（480张 klyc_memories_{uid} + 91张 klyc_disaster_{uid}_{type}）合并为 2 张单表（klyc_memories + klyc_disaster），行级 WHERE user_id 隔离 + DAO 层强制注入，数据零丢失（2635+218）\n- **代码层适配**：全站单引号拼接bug/FROM getMemoriesTable()无括号/SHOW TABLES LIKE 分表遍历 三类漏洞清零\n- **文档同步**：SKILL.md/public/skill.md 物理分表描述→单表行级隔离描述\n- **skill_check 补漏**：VER_FILES 新增 .skill 后缀文件扫描\n- **2026-08-16 补：蒸馏回传 bug 修复（同一 9.2.9 版本内代码修正，不升版本号）**：\n  - `pmm_distill.sh` 蒸馏 prompt 拼装误用未定义变量 `${ta}/${ca}/${tb}/${cb}`（函数内仅定义 `title_a/content_a/title_b/content_b`），bash 插值全空 → DeepSeek 收到空 prompt 自判 identical → 误软删不重复记忆（静默数据破坏）\n  - 修正为 `${title_a}/${content_a}/${title_b}/${content_b}`，DeepSeek 收到真实内容，判定恢复准确\n  - 同步修复管道子 shell 作用域（`done < <(...)` 进程替换），使 `processed` 在父 shell 可见、回传分支正常执行\n  - 本地三处副本（实体源/skills/klyc-pmm/scripts、cron 副本 /root/bin、发布包 klyc-pmm.zip 内嵌）已统一\n- **2026-08-16 再补：ds-proxy 双实例对称命名**——`klyc-ds-proxy.service`(8775) 重命名为 `yaochi-ds-proxy.service`（瑶池实例，与 `kunlun-ds-proxy.service`(8776) 昆仑实例对称）。已同步：Guardian 巡检 fix、架构页、scripts_RULES.md、MEMORY.md。端口 8775 不变，模型路由 baseUrl 按端口不依赖服务名，无运行时影响。\n- **2026-09-04 补：升级流程打通（同一 9.2.9 版本内代码修正，不升版本号）**：\n  - `pmm_watch.sh` init 补保存 api_key 到本地 KEY_FILE（原实现只存昆仑令 URL，导致升级认证缺凭据）\n  - `pmm_watch.sh` upgrade 顺序对调：先走老 API（余额判定），余额不足才走 X402；`--out-trade-no` 重试改走老 API 查单（与支付表一致）\n  - upgrade 认证改用 api_key（`pmm_get_key`），不再用昆仑令 URL（`pmm_get_token`）\n  - 后端 `klyc_pmm_upgrade.php` 认证统一走 `auth()`，兼容 api_key 表 + 昆仑令 + 旧 key 三层回退；订单归属校验防冒用\n\n## v9.2.8 — 2026-08-13\n\n- **模型路由定稿**：昆仑主模型稳定为腾讯云 tokenhub DeepSeek V4 Pro（1M/16000），备=官方 deepseek 双 key\n- **全服唯一源清理**：klyc-pmm 只保留 webroot 唯一源，全服其他位置副本清理\n- **审查脚本通查**：klyc_skill_check.sh 覆盖 14 项检查，全服统一不区分昆仑/瑶池归属\n\n## v9.2.7 — 2026-08-13\n\n- **安全修复（腾讯云安全评估）**：check-and-nudge 不再在 URL 参数中暴露昆仑令 recovery_url，避免凭证经浏览器历史/Referer/代理日志泄露（安全评分 62→目标 90+）\n- **护魂符秒级推送修复**：pmm_watch.sh inotifywait 事件从 `close_write` 改为 `close_write,moved_to,modify`，解决 append_file 写入方式不触发 inotify 导致护魂符推送延迟的根因问题\n- **全服版本号统一 9.2.7**：149 处旧版本（9.2.5/9.2.6）→ 9.2.7，零残留\n- **审查脚本重构**：删除双 workspace 副本，webroot 唯一源，全服统一检查不区分昆仑/瑶池归属\n- **两平台上传规则补全**：对照 ClawHub 官方文档 (docs.openclaw.ai/clawhub/skill-format) 补全 13 条硬检查 + TRACE 五维自评\n- **ZIP 重打包**：修复双套文件问题，ZIP 内版本号对齐 9.2.7\n\n## v9.2.6 — 2026-08-12\n\n- **LLM 蒸馏下沉到 AI 体**：蒸馏决策从服务器 cron 移到 AI 体，各自用自己的 DeepSeek Key 调用 LLM 判定，平台只做 BGE+Reranker 粗筛 + 存储去重\n- **新增 3 个平台 API**：klyc_distill_candidates.php（候选对生成，不调LLM）+ klyc_distill_candidates_status.php（轮询）+ klyc_distill_result.php（结果回传）\n- **新增 2 张表**：klyc_distill_tasks（候选对任务）+ klyc_distill_history（蒸馏历史，独立于 klyc_settings 避免单键膨胀）\n- **pmm_distill.sh 层9-12 新增 distill_with_llm()**：AI体心跳触发，用自己的 Key 调平台候选对 API → 逐对判定 → 回传结果\n- **Reranker 稳定性修复**：_respond() 加 try-except 防 BrokenPipe；候选对筛选加 BGE 硬上限 100 唯一ID + 日记/心跳文件过滤\n- **模型路由定稿**：昆仑主=腾讯云tokenhub DeepSeek V4 Pro（1M/16000）、备=官方 deepseek 双 key；瑶池主=HY3、备=DeepSeek V4 Pro（256K/8192）\n\n## v9.2.5 — 2026-08-11\n\n- **铁律 #55 版本升级三步不缺**：14↔17层全站误改事件→版本升级三步不可跳（改VERSION+全站grep、源目录同步、重新打包上传）\n- **铁律 #54 改动前先列关联清单**：任何修改（数字/命名/配置/链接）前列出所有关联文件路径，改完逐条对照勾清\n- **操作前置硬阻断清单**：7项硬检查（权威来源→RULES覆盖→影响面全扫→关联清单→回滚→验证→泄密检查）\n- **版本号全站统一**：config.php KLYC_VERSION + skill包 + 所有脚本注释 = 9.2.5\n- **ClawHub + SkillHub 发布**：预检全过→两平台同步推送\n\n## v9.2.4 — 2026-08-10\n\n- **全服清理**：删测试用户4个、物理删除4092条软删除记忆(回收10MB)、清理过期文件(SkillHub临时目录/旧CSS/旧备份)\n- **前端合规**：join.php 内联style 6→1（仅头像豁免）、CSS类迁移(.dash-error-hint-lg/.jn-pay-success等)\n- **Nginx SEO路由补全**：/services、/admin 伪静态rewrite\n- **架构面板**：补klyc-ds-proxy(8775)服务登记\n- **安全**：技能文件从webroot移至skills/目录，修正Nginx alias路径\n- **14层蒸馏管道复通**：pmm_distill.sh cron交互修复 + opcache污染清除 + cross_distill软链修复 + klyc_memory_conflicts表清理\n- **全站版本号统一9.2.4**：网站KLYC_VERSION + skill包 + 所有配置/脚本注释\n\n## v9.2.3 — 2026-08-09（跳过，未发布）\n\n## v9.2.2 — 2026-08-08\n\n- **DeepSeek Key 全自动双备**：OpenClaw/LightClaw 主模型、arena_grader、cron distill 全部实现主备 key 自动切换（主 key 失败 → 切备 key → 恢复切换）；新增 klyc-ds-proxy 外层 key 轮换代理（LightClaw 接入）；PHP-FPM 注入主备 key\n- **安全加固**：systemd unit / php-fpm conf / OpenClaw/LightClaw 配置 key 明文全部 root 只读（600+immutable），业务代码零硬编码，备份剥 key\n\n## v9.2.1 — 2026-08-08\n\n- **合规清理（提示词广告推广=0）**：移除包内所有主动付费推销话术——SKILL.md「AI体主动推销护魂符」章节、pmm_boot.sh 启动推销横幅、pmm_watch.sh init 通报与 check-and-nudge 里程碑付费催促话术；保留 upgrade / owner-pay-link / X402 支付等功能本体\n- **广告扫描自动化**：klyc_skill_check.sh 新增「提示词广告推广=0」扫描（.sh 脚本 + SKILL.md），出厂前自动拦截推销话术\n- **发布工具修复**：ZIP 打包源目录名对齐、SkillHub 用无 LICENSE 副本发布\n\n## v9.2.0 — 2026-08-08\n\n- **根治空钩子**：pmm_hooks_pull 新增失效钩子检测——对比本地已有 ID 与远程有效 ID，发现失效钩子自动标记，保留现场供人工核对\n- **新增 hook-check 子命令**：钩子健康检查（`./pmm_watch.sh hook-check [--fix]`）——纯客户端调 hooks API + 本地 grep 比对\n- hooks-pull 安全声明更新：仅经用户 API Key 认证拉取本人蒸馏记忆摘要\n\n## v9.1.22 — 2026-08-06\n\n- **修正**：curl 调用去 eval 化（klyc_skill_check.sh 改用 bash 数组传参）\n- **修正**：共享域示例去敏感化、昆仑令写入提示措辞修正\n- **新增**：klyc_skill_check.sh 十三关全量检测\n- **重构**：脚本命名规范化、工作区路径标准化（skills/@user_6e41807a/klyc-pmm/）\n\n## v9.1.18 — 2026-08-05\n\n- **新增**：KLYC_PMM_CONFIG_DIR 环境变量支持——多AI体共享主机时可独立配置目录\n- **新增**：hooks-pull 支持 API Key 认证\n- **修正**：watch 模式认证兼容（无 token 时自动降级为 X-KLYC-Key）\n- 安全声明修正：云鼎实验室安全评估 3 项全清零\n\n## v9.1.12 — 2026-08-04\n\n- **新增**：write-coalescing——inotify 循环增加 30 秒合并窗口 + content_hash 去重（2,950次/8h → ~150次/8h）\n- **新增**：SKILL.md watch 章节增加心跳文件最佳实践\n\n## v9.1.10 — 2026-08-04\n\n- **行为变更**：push 命令 --domain 改为必填参数，禁止自动推导\n- **行为变更**：watch 模式文件同步 domain 固定为 pmm_sync\n\n## v9.1.9 — 2026-07-31\n\n- **合规**：Pay Skill 安全引擎全绿——移除远程下载覆盖(update.sh)消除\"恶意远程执行\"三标\n- **合规**：定价信息收敛至 frontmatter pricing\n- **清理**：删除 update.sh 及所有相关引用\n\n## v9.1.2 — 2026-07-31\n\n- **修复**：agent/register 路由（ai→agent）、昆仑令保存字段（token→talisman_url）\n- **修复**：agent/register API peach_balance 100→99、set -u 下 http_code 未定义\n- **清理**：移除构建垃圾（publish.sh/根级 pmm_watch.sh/根级 update.sh/sha256）\n\n## v9.0.0 — 2026-07-30\n\n- **新增**：X402 付费前置检查章节——Agent 调用付费功能前检查 weixinpay 插件\n- **新增**：frontmatter 增加 pricing 元数据（per_call / amount_fen: 50000 / capability）\n\n## v8.3.9 — 2026-07-29\n\n- **修复**：五个关联数组 dingxinfu key 重复定义（bash 去重导致容灾备份被守护记忆覆盖）\n- **修复**：install-daemon.sh 与 pmm_watch.sh tier 映射不一致\n- **统一**：三级产品 tier key——dingxinfu(容灾) / huhunfu(守护) / fenshenfu(分身)\n\n## v8.3.8 ~ v8.3.1 — 2026-07-28~29\n\n- 文档与脚本一致性对齐、产品描述命名规范化、curl 退出码细化诊断\n- 昆仑令格式自动识别、oneclick.sh 全链路闭环、TRACE 3.5→4.6\n\nFile v9.3.10:skill-card.md\n\n## Description:\n\nKLYC-PMM helps AI agents manage persistent text memory with initialization, recovery, watch-mode synchronization, semantic search, backup, and optional LLM-assisted distillation.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[sylncn](https://clawhub.ai/user/sylncn)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agent operators use this skill to initialize and manage persistent text memory for AI agents, including backup, recovery, watch-mode synchronization, semantic search, and optional LLM-assisted distillation.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Sensitive memory files may be uploaded to the provider, and the security evidence flags packaged paths where encryption or persistence limits may not match the documentation.\n\nMitigation: Review before installation, use only with memory files the user is willing to sync, and confirm the upload path is encrypted before enabling watch or backup behavior.\n\nRisk: Tarball backup mode may expose data if encryption is not fixed.\n\nMitigation: Avoid tarball backup mode unless encryption has been verified for the packaged release.\n\nRisk: Recovery URLs are sensitive credentials and may be exposed if stored in shared memory files.\n\nMitigation: Do not store the recovery URL in MEMORY.md or other files that the watch service syncs.\n\nRisk: The skill can install persistent systemd services that continue syncing data after setup.\n\nMitigation: When disabling the skill, check both user services and any service under /etc/systemd/system.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/sylncn/skills/klyc-pmm)\n- [KLYC-PMM Homepage](https://kunlunyaochi.com)\n- [PMM Full Architecture](references/pmm-full-architecture.md)\n- [Pay Skill Spec](references/pay-skill-spec.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and configuration details]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May create or update local configuration files and install a persistent watch service when the user runs the packaged scripts.]\n\n## Skill Version(s):\n\n9.3.10 (source: SKILL.md frontmatter, release metadata, CHANGELOG released 2026-09-11)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v9.3.10:skill.json\n\n{\n  \"name\": \"klyc-pmm\",\n  \"version\": \"9.3.10\",\n  \"license\": \"MIT-0\",\n  \"description\": \"KLYC-PMM v9.3.10：持久记忆、昆仑令一行恢复、自动蒸馏·语义搜索·五层加密。kunlunyaochi.com 为沈阳百事通网络科技有限公司网安备案安全网址（辽公网安备21010602001389号）；LLM 蒸馏按用户自备 DeepSeek Key 发 DeepSeek 语义提炼。\",\n  \"author\": \"昆仑瑶池\",\n  \"category\": \"知识管理\",\n  \"tags\": [\n    \"memory\",\n    \"knowledge-management\",\n    \"backup\",\n    \"indexing\",\n    \"ai-agent\",\n    \"identity-verification\",\n    \"semantic-search\",\n    \"wechat-pay\",\n    \"x402\"\n  ],\n  \"config\": {\n    \"api_endpoint\": \"https://kunlunyaochi.com/api/klyc-pmm-pay/resource.php\",\n    \"identity_check\": true,\n    \"payment_required\": true\n  },\n  \"keywords\": [\n    \"KLYC-PMM\",\n    \"昆仑令\",\n    \"AI记忆恢复\",\n    \"memory recovery\",\n    \"talisman\",\n    \"klyc-pmm-recover\",\n    \"kunlunyaochi.com\"\n  ],\n  \"pricing\": {\n    \"type\": \"paid\",\n    \"huhunfu\": {\n      \"amount\": 500,\n      \"currency\": \"CNY\",\n      \"unit\": \"month\",\n      \"label\": \"守护记忆(护魂符)\"\n    },\n    \"fenshenfu\": {\n      \"amount\": 800,\n      \"currency\": \"CNY\",\n      \"unit\": \"month\",\n      \"label\": \"记忆分身(分身符)\"\n    }\n  },\n  \"summary\": \"昆仑瑶池精准记忆管理 9.3.10。昆仑令一行恢复 · 五层洋葱加密 · 自动蒸馏管道 · 三层检索路由 · 12个标准化错误码 · write-coalescing防限流 · HTTPS API通信，依赖curl+jq。\",\n  \"slug\": \"klyc-pmm\",\n  \"displayName\": \"KLYC-PMM 昆仑瑶池精准记忆管理\",\n  \"platforms\": [\n    \"openclaw\",\n    \"lightclaw\",\n    \"claude-code\"\n  ]\n}\n\nArchive v9.3.7: 30 files, 140801 bytes\n\nFiles: CHANGELOG.md (13189b), CODE_OF_CONDUCT.md (612b), CONTRIBUTING.md (1012b), klyc-pmm/_meta.json (82b), klyc-pmm/CHANGELOG.md (13189b), klyc-pmm/examples/quickstart.sh (2377b), klyc-pmm/examples/README.md (1736b), klyc-pmm/pmm_watch.sh (88885b), klyc-pmm/references/pay-skill-spec.md (1902b), klyc-pmm/references/pmm-full-architecture.md (7764b), klyc-pmm/scripts/install-daemon.sh (6644b), klyc-pmm/scripts/oneclick.sh (10431b), klyc-pmm/scripts/pmm_backup_files.sh (6337b), klyc-pmm/scripts/pmm_boot.sh (1920b), klyc-pmm/scripts/pmm_distill.sh (20482b), klyc-pmm/scripts/pmm_recover.sh (1917b), klyc-pmm/scripts/pmm_watch.sh (88885b), klyc-pmm/skill.json (1641b), klyc-pmm/SKILL.md (29730b), pmm_backup_files.sh (2313b), pmm_boot.sh (848b), pmm_recover.sh (1623b), README.md (1196b), SECURITY.md (2007b), skill-card.md (2769b), skill-hub.json (1125b), skill.json (1641b), skill.md (29622b), SKILL.md (29730b), _meta.json (127b)\n\nFile v9.3.7:klyc-pmm/SKILL.md\n\n---\nname: klyc-pmm\nslug: klyc-pmm\nversion: 9.3.7\ndisplayName: KLYC-PMM 昆仑瑶池精准记忆管理\ndescription: \"让 AI 体持久记忆：一键初始化、一行昆仑令恢复。自动蒸馏去重·语义搜索·五层加密容灾。kunlunyaochi.com 是沈阳百事通网络科技有限公司在网安备案的安全网址（辽公网安备21010602001389号）。记忆经 HTTPS 加密存用户自有记忆库；可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼。\"\nlicense: MIT-0\nmetadata:\n  openclaw:\n    requires:\n      bins: [jq, curl]\n      env:\n        - DEEPSEEK_API_KEY\n    primaryEnv: DEEPSEEK_API_KEY\n    envVars:\n      - name: DEEPSEEK_API_KEY\n        required: true\n        description: DeepSeek API Key，用于蒸馏管道的 LLM 语义判定。\n      - name: KYLC_API_KEY\n        required: false\n        description: 昆仑瑶池平台 API Key。未设置时从 IDENTITY.md 自动提取昆仑令。\n      - name: KYLC_PLATFORM_URL\n        required: false\n        description: 昆仑瑶池平台地址，默认 https://kunlunyaochi.com。\n      - name: KLYC_WORKSPACE\n        required: false\n        description: 工作区路径。蒸馏脚本读写 MEMORY.md/报告的目录，默认 ${HOME}/workspace。\n      - name: KLYC_PMM_CONFIG_DIR\n        required: false\n        description: PMM 配置目录（存放 api_key/昆仑令身份），默认 ${HOME}/.klyc-pmm。\n      - name: PMM_DEEPSEEK_KEY_PRIMARY\n        required: false\n        description: DeepSeek 主 API Key。与 BACKUP 组成双 key 轮换；单 key 场景可只设此或 DEEPSEEK_API_KEY。\n      - name: PMM_DEEPSEEK_KEY_BACKUP\n        required: false\n        description: DeepSeek 备用 API Key。主 key 失败时自动轮换到备 key。\n      - name: PMM_DEEPSEEK_KEYS\n        required: false\n        description: DeepSeek key 逗号分隔列表，支持任意数量（单/双/多 key）。优先于 PRIMARY/BACKUP，失败按顺序轮换下一个。\n      - name: KLYC_API_ENDPOINT\n        required: false\n        description: 平台 API 端点。init 时配置，存于 ~/.klyc-pmm/api_endpoint。\n      - name: KLYC_SITE_URL\n        required: false\n        description: 站点 URL，默认 https://kunlunyaochi.com。\n      - name: LIGHTCLAW_AGENT_NAME\n        required: false\n        description: LightClaw 运行时注入的 AI 体名称（watch 守护用，可选）。\n      - name: LIGHTCLAW_MODEL\n        required: false\n        description: LightClaw 运行时注入的模型名（watch 守护用，可选）。\n      - name: LIGHTCLAW_WORKSPACE\n        required: false\n        description: LightClaw 工作区路径（watch 守护用，可选）。\n    emoji: 🏔️\n    homepage: https://kunlunyaochi.com\n    install:\n      - kind: brew\n        formula: jq\n        bins: [jq]\n      - kind: brew\n        formula: curl\n        bins: [curl]\n---\n\n# KLYC-PMM — AI 体持久记忆引擎\n\n**让 AI 体记住一切。一行初始化，一行恢复，一键守护。付费服务通过升级命令完成。**\n\n---\n\n## 🔒 安全声明\n\n- **local_only**: false\n- **network**: HTTPS POST/GET kunlunyaochi.com (API Key认证) — watch模式推送文件变更至用户瑶池记忆库，hooks-pull每6h经认证拉取用户自有蒸馏钩子写入MEMORY.md。所有数据传输经过用户本人API Key认证，数据所有权归用户。\n- **data_flow**: 出站: 本地文件→HTTPS POST→kunlunyaochi.com(用户自有加密记忆库); 入站: 瑶池API→HTTPS GET(认证)→本地MEMORY.md钩子区\n- **no_collect**: 不采集键盘/屏幕/浏览器数据，不越权提权。hooks-pull仅经用户API Key认证拉取本人在瑶池的蒸馏记忆摘要，写入范围限定 MEMORY.md \"蒸馏记忆钩子\"章节\n- **permissions**: read/write config files, create systemd user service, HTTPS API calls\n\n---\n\n\n\n## 💳 付费前置检查\n\n调用本 Skill 付费功能（upgrade huhunfu/fenshenfu）前，检查当前 Agent 是否已安装 `weixinpay` 插件（extension）：\n\n- 已安装：可继续提供付费服务\n- 未安装：向用户提示\"当前 Agent 暂不支持微信支付付费能力，可访问 https://kunlunyaochi.com/?route=services 查看替代方案\"，终止流程\n\n---\n\n## ⚠️ 重要：安装前请了解\n\n- **网络通信：** 安装后将通过 HTTPS 与 kunlunyaochi.com 通信（API 端点可自定义），传输数据经五层洋葱加密\n- **持久化行为：** oneclick.sh 会自动安装系统依赖（curl/jq/inotify-tools）、注册昆仑身份、安装 systemd 守护服务（持续监听文件变更并自动同步）\n- **昆仑令安全：** init 后生成的昆仑令 URL 是恢复记忆的唯一凭证，保存于本机配置目录（不入 MEMORY.md 明文）。请务必存入密码管理器/微信收藏，勿分享给任何人。\n- **蒸馏引擎：** pmm_distill.sh 走 candidates→LLM 判定→result API 合并去重（本机不做本地软删）。首次使用建议先 `--dry-run` 预览\n- **LLM 蒸馏：** AI 体用自己的 DeepSeek Key 调平台候选对 API → 逐对判定 → 回传结果。需设置环境变量 `DEEPSEEK_API_KEY`（单 key）、`PMM_DEEPSEEK_KEY_PRIMARY`/`PMM_DEEPSEEK_KEY_BACKUP`（双 key）或 `PMM_DEEPSEEK_KEYS`（逗号分隔，任意数量多 key，失败按序轮换），平台认证用 `KYLC_API_KEY` 或昆仑令自动提取\n- **守护模式：** `watch` 命令会持续监听指定文件变更并自动推送到远程 API。启用前请确认你理解数据流向\n- **安装验证（prove）：** 领取新人 Token 奖励的 `prove <挑战码>` 会向平台上报 `hostname` 与工作区路径以证明已安装（用于验装发奖）。如不参与新人奖励可不用此命令。\n- **身份认证：** 请求凭 API Key 认证；未设 key 时脚本会回退读取工作区 `IDENTITY.md` 以自动恢复身份，请确保该文件不公开。\n\n---\n\n## ⚡ 30 秒开始\n\n```bash\n# 一键安装（自动检测依赖 + 初始化）\nbash scripts/oneclick.sh\n\n# 或者手动三步：\n# 1. 验证环境（幂等，只读不写）\n./scripts/quickstart.sh\n\n# 2. 初始化（自动注册昆仑身份，获得昆仑令）\n./scripts/pmm_watch.sh init\n\n# 3. 安装守护（生成 systemd 服务，自动撑住）\n./scripts/install-daemon.sh\n\n# 4. 记录第一条记忆\n./scripts/pmm_watch.sh push --domain diary \"我的第一条记忆\" \"KLYC-PMM 已成功安装并运行\"\n```\n\n三步完成。init 结束后会显示你的 **昆仑令 URL**——这是恢复记忆的唯一凭证，请保存好。\n\n> 💡 任何时候执行 `./pmm_watch.sh --help` 查看完整命令列表和退出码说明。\n\n---\n\n## 🔑 昆仑令保存说明（记忆恢复凭证）\n\n**init 完成后会生成昆仑令 URL，这是恢复记忆的唯一凭证，请妥善保存：**\n\n```markdown\n🔗 昆仑令：https://kunlunyaochi.com/klyc-pmm/{token}\n\n📌 请保存昆仑令到密码管理器或微信收藏。\n📌 若日后需要恢复记忆（重装/换环境），用此 URL 即可找回全部记忆。\n```\n\n**说明：**\n- 昆仑令保存在本机配置目录，不回显于公开工作区文件。\n- 若昆仑令丢失且 AI 体重装/失忆，记忆将无法恢复，请务必妥善保管。\n\n## 🗺️ 命令速查\n\n| 我想…… | 用这条命令 | 说明 |\n|------|------|------|\n| 第一次使用，初始化 | `./pmm_watch.sh init` | 自动注册 + 获得昆仑令 |\n| **容灾备份身份文件** 🛡️ | `./pmm_backup_files.sh` | 备份6个核心文件到容灾域（定心符·免费） |\n| 记录一条重要结论 | `./pmm_watch.sh push --domain <域> \"标题\" \"内容\"` | domain 必填：public/shared/essence/private/disaster（详见 memory_domain_RULES） |\n| 从昆仑令恢复所有记忆 | `./pmm_watch.sh recover <昆仑令URL>` | 一行恢复到本地 |\n| 搜索本地记忆 | `./pmm_watch.sh search <关键词>` | 本地索引检索 |\n| 搜索云端私密记忆 | `./pmm_watch.sh search-yaochi <关键词>` | 瑶池远程检索 |\n| 自动守护文件变化 | `./pmm_watch.sh watch MEMORY.md` | 文件改动自动推送 |\n| 执行蒸馏（去重合并+LLM蒸馏） | `./scripts/pmm_distill.sh` | 全自动：扫描→LLM蒸馏→钩子验证→报告 |\n| 检查一切是否正常 | `./pmm_watch.sh self-test` | 验证脚本、依赖、配置 |\n| 查看当前状态 | `./pmm_watch.sh status` | 连接状态 + 记忆数量 |\n| 拉取最新蒸馏钩子 | `./pmm_watch.sh hooks-pull` | 自动注入 MEMORY.md，发现失效钩子自动打标记 |\n| **钩子健康检查** 🆕 | `./pmm_watch.sh hook-check [--fix]` | 比对本地与远程钩子，输出有效/失效/新增；`--fix` 标记失效钩子 |\n| AI 体首次启动检查 | `./scripts/pmm_boot.sh` | 检测是否有记忆，引导恢复 |\n| 开通守护记忆 | `upgrade huhunfu` | 付费（需先安装 weixinpay 插件）|\n| 开通记忆分身 | `upgrade fenshenfu` | 付费（需先安装 weixinpay 插件）|\n| 生成主人支付链接 | `pmm_watch.sh owner-pay-link <tier>` | 生成主人可支付的网页链接 |\n| 查看帮助 | `./pmm_watch.sh --help` | 命令列表 + 退出码说明 |\n\n---\n\n## ⚠️ 什么时候不该用 KLYC-PMM\n\n| 场景 | 为什么 |\n|------|------|\n| 你只是想临时记个便签，不需要持久化 | PMM 是长期记忆系统，有加密和蒸馏开销 |\n| 你的 AI 体运行在完全隔离环境、无网络 | PMM 需要 HTTPS 连接瑶池服务端 |\n| 你需要毫秒级实时读写 | PMM 经过加密+压缩+蒸馏，延迟约 200-500ms |\n| 你没有 curl 或 jq | 这两个是硬依赖（`apt install curl jq` 即可） |\n| 你只是做一次性数据批处理 | PMM 为长期持续记忆设计，不是 ETL 工具 |\n| 你需要存储二进制大文件 | PMM 只存储文本知识，不存图片/音频/视频 |\n\n> **昆仑令有效期：** 永久有效。昆仑令是 128bit 随机熵的 SHA256 哈希映射，不依赖服务器、不绑定 IP、不会过期。只要备份数据库中的记忆未被物理删除，昆仑令始终可用。建议每 30 天确认一次昆仑令能正常恢复。\n\n---\n\n## 📖 命令详解\n\n### `init` — 初始化 & 入驻\n\n```bash\n./pmm_watch.sh init\n```\n\n自动完成：检查依赖 → 检测工作区 → 注册昆仑身份 → 获得昆仑令 URL → 同步云端索引。\n\n**典型输出：**\n```\nklyc-pmm v9.3.7 初始化...\n  ✅ 依赖检查通过\n  ✅ 昆仑身份已注册（uid=xxx）\n  ✅ 昆仑令: https://kunlunyaochi.com/klyc-pmm/{token}\n  ⚠️ 此为敏感凭据，执行后建议清除 shell history\n\n💡 发现 3 个核心文件，配置已保存\n```\n\n**退出码：** 0=成功, 1=依赖缺失, 2=注册失败, 10=网络不通\n\n### `push` — 记录记忆\n\n```bash\n./pmm_watch.sh push --domain <域> \"标题\" \"内容\"\n./pmm_watch.sh push --domain ops \"API 密钥已更新\" \"硅基流动 Key 已替换为 sk-xxx，旧 Key 已废弃\"\n```\n\n自动完成：Brotli 压缩 → 五层加密 → HTTPS 上传。domain 必填——AI 体必须显式指定五种标准记忆域之一（public/shared/essence/private/disaster），API 会白名单校验，不合法的 domain 直接返回 400。系统内部域（diary/heartbeat/config/backup）由脚本自动使用，不手动填。\n\n**不记录什么：** 闲聊、寒暄、未完成的想法、已去重的结论。\n\n**退出码：** 0=成功, 1=参数不足, 3=加密失败, 4=上传失败, 10=网络不通\n\n### `recover` — 灾备恢复\n\n```bash\n# 从昆仑令 URL 恢复所有记忆\n# ⚠️ 昆仑令会出现在 shell history 中，恢复后建议 `history -c` 或 `history -d` 清除\n./pmm_watch.sh recover https://kunlunyaochi.com/klyc-pmm/{token}\n\n# 从关键词恢复\n./pmm_watch.sh recover \"API 密钥\"\n```\n\n**退出码：** 0=成功, 5=昆仑令无效, 6=无可恢复记忆, 10=网络不通\n\n### `upgrade` — 一键开通守护记忆/记忆分身\n\n```bash\n# 开通守护记忆 · 命令行: upgrade huhunfu\n./pmm_watch.sh upgrade huhunfu\n\n# 开通记忆分身 · 命令行: upgrade fenshenfu\n./pmm_watch.sh upgrade fenshenfu\n\n# 🆕 生成主人支付链接（不发起支付，仅生成链接给主人）\n./pmm_watch.sh owner-pay-link huhunfu\n```\n\n**全自动链路：**\n1. 先尝试 X402 微信支付（需要 weixinpay 插件）\n2. 插件不可用 → 自动生成主人支付链接 `https://kunlunyaochi.com/?route=pay&agent=xxx&tier=huhunfu`\n3. AI体将此链接发给主人 → 主人在浏览器打开 → 扫码支付 → 服务自动开通\n\n**退出码：** 0=成功, 1=无效等级, 2=开通失败, 3=需要主人支付（已输出支付链接）\n\n### 💳 X402 微信支付（进阶）\n\n#### 付费前置检查\n调用 `upgrade` 开通付费服务时：\n- 如果 weixinpay 插件已安装 → X402 支付流程自动完成\n- 如果 weixinpay 插件未安装 → pmm_watch.sh 自动输出一个主人可直接支付的链接，AI体应将此链接发给主人\n\n#### 工作流程\n\n##### 第一步：Agent 请求付费资源\nPOST 到 X402 资源端点：\n\n```http\nPOST https://kunlunyaochi.com/api/klyc-pmm-pay/resource.php\nContent-Type: application/json\n\n{\"query\": \"用户的查询内容（如 upgrade huhunfu、开通分身等）\"}\n```\n\n等价命令行：\n```bash\npmm_watch.sh upgrade huhunfu\n```\n\npmm_watch.sh 自动先走 X402 端点：\n- 已安装 weixinpay 插件 → X402 端点返回 402 响应，自动完成微信支付\n- 未安装 weixinpay 插件 → 提示用户访问 https://kunlunyaochi.com/?route=services\n\n##### 第二步：处理 402 响应\n\n```json\n{\n  \"code\": \"PAYMENT_REQUIRED\",\n  \"message\": \"需要支付后才能获取内容\",\n  \"WeixinPay\": {\n    \"WeixinPay-Required\": \"payment_code_xxx\",\n    \"prompt\": \"本次使用微信支付，请将 WeixinPay-Required 的值作为 paymentCode 交给 weixinpay_pay\"\n  },\n  \"out_trade_no\": \"WX402_20260730000001abcdef123456\",\n  \"amount\": \"500.00\",\n  \"currency\": \"CNY\",\n  \"description\": \"守护记忆（护魂符）- 付费开通\"\n}\n```\n\n402 响应中：\n- **Header `WeixinPay-Required`**：支付凭证码（weixinpay 插件用于完成支付）\n- **Header `X-Out-Trade-No`**：商户订单号（重试时必须携带）\n- **Body `out_trade_no`**：商户订单号（备用）\n\nweixinpay 插件自动拦截 402 并完成支付流程，Skill 无需关心支付细节。\n\n##### 第三步：支付成功后重试获取服务（⚠️ 必须执行）\n\n支付成功后，**必须**重新请求获取付费内容。重试时 JSON body 保持不变，通过 Header `X-Out-Trade-No` 携带 402 响应中返回的订单号：\n\n```http\nPOST https://kunlunyaochi.com/api/klyc-pmm-pay/resource.php\nContent-Type: application/json\nX-Out-Trade-No: WX402_20260730000001abcdef123456\n\n{\"query\": \"upgrade huhunfu\"}\n```\n\n> ⚠️ body 与第一步完全一致，不要修改 body 中的任何字段。支付信息通过 Header 传递，不在 body 中。这是最容易被遗漏的一步。\n\n服务端查单验证 → 执行服务 → 返回结果。\n\n##### 第四步：处理响应\n\n| 响应 code | 含义 | Agent 应如何回应 |\n|------|------|------|\n| `SUCCESS` | 支付验证通过，服务已开通 | 将 content 中的结果告知用户 |\n| `NOT_PAID` | 支付尚未完成 | 等待后重试第三步 |\n| `REFUNDED` | 服务异常已退款 | \"抱歉，该服务暂时无法提供，已自动退款至原支付账户。\" **不要再次支付** |\n| `FULFILL_AND_REFUND_FAILED` | 服务异常且退款失败 | \"服务异常且退款失败，建议联系客服。\" |\n\n### `search` / `search-yaochi` — 检索\n\n```bash\n# 本地检索\n./pmm_watch.sh search \"分类体系\"\n\n# 云端检索（走三层路由：grep钩子→混合搜索→BGE-M3向量）\n./pmm_watch.sh search-yaochi \"瑶池锁\"\n```\n\n### `watch` — 文件守护\n\n```bash\n# 守护核心文件，改动自动推送\n./pmm_watch.sh watch MEMORY.md SOUL.md IDENTITY.md\n\n# 守护日记目录\n./pmm_watch.sh watch memory/*.md\n\n# 指定用户 ID\n./pmm_watch.sh watch --user-id 2 MEMORY.md\n```\n\n守护模式：每 30 秒扫描文件变更 → 增量推送 → 每 6 小时自动拉取蒸馏钩子。\n\n**write-coalescing（写入合并·防限流）：** 同一文件 30 秒窗口内的连续写入合并为一次推送，心跳文件不再挤占 API 配额。\n\n> ⚠️ **心跳文件最佳实践：** 心跳状态文件（HEARTBEAT.md、heartbeat-state.json）仅在内容发生**实质性变更**时写入磁盘。时间戳更新不算变更——每分钟覆写同一个文件会导致 inotify 触发大量无意义推送，即使有 write-coalescing 也只是减少、无法消除。正确做法：先在内存中比较新内容与旧内容是否一致，一致则不写盘。\n\n### `self-test` — 自检\n\n```bash\n./pmm_watch.sh self-test\n```\n\n验证：bash 可用 → curl 可用 → jq 可用 → 6 个核心脚本完整 → 语法正确 → 版本号声明。全部通过 = 环境就绪。\n\n**幂等设计：** 可以反复执行，不会修改任何状态。适合放在 CI/CD 或 boot 脚本中。\n\n---\n\n## 🚦 退出码速查\n\n所有命令（含 `--help`）遵循统一退出码体系：\n\n| 码 | 含义 | 出现场景 |\n|:--:|------|------|\n| 0 | 成功 | 所有命令正常完成 |\n| 1 | 参数错误 | 缺少必要参数、参数格式不对 |\n| 2 | 注册失败 | init 时昆仑身份注册失败 |\n| 3 | 加密失败 | push 时加密环节出错 |\n| 4 | 上传失败 | push 时 HTTPS 上传失败 |\n| 5 | 昆仑令无效 | recover 时昆仑令不存在或已过期 |\n| 6 | 无可恢复数据 | recover 时该身份无备份数据 |\n| 7 | 文件不存在 | watch/search 时目标文件缺失 |\n| 8 | 权限不足 | 配置目录或文件无写权限 |\n| 9 | 依赖缺失 | curl 或 jq 未安装 |\n| 10 | 网络不通 | 无法连接瑶池 API |\n| 12 | 版本冲突 | 本地版本与服务端不兼容 |\n\n在脚本中可依赖退出码做自动化决策：\n```bash\n./pmm_watch.sh init || case $? in\n  1) echo \"参数有问题\" ;;\n  2) echo \"注册失败，检查网络\" ;;\n  10) echo \"网络不通，稍后重试\" ;;\nesac\n```\n\n---\n\n## 🔄 典型工作流\n\n### 新 AI 体入驻\n```\ninit → 拿到昆仑令 → 发给主人（必须！）→ 主人保存昆仑令 → push第一条记忆\n→ 如需守护 → upgrade huhunfu → 生成支付链接 → 发给主人 → 主人扫码支付 → 守护自动启动\n```\n\n### 开通付费服务\n\n**路径一：有 weixinpay 插件（走 X402）**\n```\nAgent: ./pmm_watch.sh upgrade huhunfu\n  → 自动 X402 流程 → 用户扫码支付 → 开通成功\n```\n\n**路径二：无 weixinpay 插件（走主人支付链接，推荐）**\n```\nAgent: ./pmm_watch.sh upgrade huhunfu\n  → 输出: 💳 主人支付链接: https://kunlunyaochi.com/?route=pay&agent=xxx&tier=huhunfu\nAgent → 将此链接发给主人\n主人 → 在浏览器打开 → 微信扫码支付 → 服务自动开通\nAgent → 收到开通确认\n```\n\n### 日常使用\n```\n写日记 → push 重要结论 → watch 自动守护文件\n```\n\n### 服务器迁移 / 重装\n```\n安装 curl jq → recover <昆仑令> → 恢复完成\n```\n\n### AI 体协作\n```\nA 体 push 共享记忆 → B 体 search-yaochi 检索 → 蒸馏自动去重合并\n```\n\n---\n\n## 🎯 进阶场景\n\n### 场景 1：跨 AI 体协同 — 瑶池+昆仑双体记忆同步\n\n```\n# 瑶池发起蒸馏\n./scripts/pmm_distill.sh --user-id 2\n\n# 昆仑拉取蒸馏钩子（自动注入 MEMORY.md）\n./scripts/pmm_watch.sh hooks-pull\n\n# 昆仑发现瑶池的洞察，追加到共享域\n./scripts/pmm_watch.sh push --domain shared \"瑶池锁架构\" \"五层洋葱加密，2-of-2 XOR 密钥拆分\"\n```\n\n### 钩子健康检查（2026-08-07 新增）\n\n`hook-check` 对比本地 MEMORY.md 钩子与远程蒸馏钩子，输出三类统计：\n- **有效钩子**：本地有 + 远程存在\n- **失效钩子**：本地有 + 远程已删（`--fix` 自动打 `⚠️[失效-远程已删]` 标记，保留现场供人工核对）\n- **远程新增**：远程有 + 本地未同步（由 `hooks-pull` 自动注入）\n\n```bash\n# 只报告不改动\n./pmm_watch.sh hook-check\n\n# 标记本地失效钩子（先备份再标记，可回滚）\n./pmm_watch.sh hook-check --fix\n```\n\n> 纯客户端实现：调 hooks API + 本地 grep，**零数据库依赖**。配合 `hooks-pull`（自动同步新增/失效）形成钩子生命周期闭环。\n\n### 场景 2：灾备全链路演练\n\n```\n# 1. 模拟当前环境有记忆\n./scripts/pmm_watch.sh push --domain backup \"演练标记\" \"$(date +%s) - 灾备测试\"\n\n# 2. 模拟丢失——删除本地索引\nrm -f ~/.klyc-pmm/index.json\n\n# 3. 从昆仑令恢复\n# ⚠️ 昆仑令会出现在 shell history 中，恢复后建议 `history -d` 清除\n./scripts/pmm_watch.sh recover https://kunlunyaochi.com/klyc-pmm/{昆仑令}\n\n# 4. 验证：搜索刚写入的\"演练标记\"\n./scripts/pmm_watch.sh search \"演练标记\"\n```\n\n### 场景 3：LLM 蒸馏配置（2026-08-12 新增）\n\nLLM 蒸馏需要 AI 体自己的 DeepSeek Key：\n\n```bash\nexport DEEPSEEK_API_KEY=\"sk-xxx\"\nexport KYLC_API_KEY=\"sk-xxx\"  # 或自动从 IDENTITY.md 提取昆仑令\n./scripts/pmm_distill.sh      # 自动调自己的 Token 蒸馏（candidates→LLM→result 合并）\n```\n\n蒸馏费用由 AI 体自己承担，不走平台统一 Key。\n\n### 场景 4：配置自定义蒸馏规则\n\n```bash\n# 只蒸馏特定域（跳过私密日记和系统心跳）\n./scripts/pmm_distill.sh --domains shared,essence\n\n# 干跑模式——看会做什么但不实际执行\n./scripts/pmm_distill.sh --dry-run\n\n# 为特定 AI 体执行蒸馏\n./scripts/pmm_distill.sh --user-id 22\n```\n\n### 场景 5：批量迁移 — 从其他系统导入\n\n```bash\n# 假设有导出文件 records.txt，每行是 \"标题|内容\"\nwhile IFS='|' read -r title content; do\n    ./scripts/pmm_watch.sh push --domain shared \"$title\" \"$content\"\n    sleep 0.5  # 避免触发 API 限流\ndone < records.txt\n\n# 验证导入结果\n./scripts/pmm_watch.sh status\n```\n\n### 场景 6：多平台同步 — AI 体记忆分身\n\n```bash\n# 记忆分身用户：瑶池 (LightClaw) 写入 → 昆仑 (OpenClaw) 自动拉取\n# 触发条件：溢出的对话精华 quality_score ≥ 0.7\n\n# 手动触发拉取（watch 守护自动执行，此命令可手动干预）\n./scripts/pmm_watch.sh hooks-pull\n\n# 验证同步状态\ndiff <(./scripts/pmm_watch.sh search-yaochi \"铁律\" | wc -l) \\\n     <(./scripts/pmm_watch.sh search \"铁律\" | wc -l)\n```\n\n---\n\n## ❓ 常见问题与排错\n\n### FAQ\n\n| 问题 | 答案 |\n|------|------|\n| init 报 \"需要 jq/curl\" | `apt install jq curl` 或 `yum install jq curl` |\n| 昆仑令丢了怎么办 | 无法找回。建议存入密码管理器并由可靠的另一 AI 体做容灾备份（昆仑令本身不宜落在公开 MEMORY.md 明文） |\n| 昆仑令有效期多久 | **永久有效。** 128bit 随机熵 + SHA256 哈希映射，不依赖服务器，不绑定 IP |\n| push 后多久能看到 | 1-3 秒。压缩→加密→HTTPS→单表写入。可立即用 `search-yaochi` 验证 |\n| 记忆是私密的吗 | 是。全部 `is_public=0`，五层洋葱加密，按 user_id 单表行级隔离 |\n| 蒸馏需要我关心吗 | 不需要。服务端自动执行，watch 守护自动拉取结果到 MEMORY.md |\n| 能用在其他平台吗 | 可以。OpenClaw / LightClaw / Claude Code，有 bash+curl+jq 即运行 |\n| 和原生 memory_search 的关系 | 互补。原生做\"向量发现\"，PMM 做\"精确恢复\"，叠加效果最佳 |\n| self-test 能反复执行吗 | 可以。纯只读，不写文件，不修改配置，适合 CI/CD |\n| 换服务器后昆仑令能用吗 | 可以。昆仑令绑定身份，与服务器无关。`recover <URL>` 即可恢复 |\n| watch 守护怎么保活 | `install-daemon.sh` 一键安装 systemd 服务，支持 `--tier` 参数 |\n| 如何开通守护记忆/记忆分身 | `./pmm_watch.sh upgrade huhunfu` / `fenshenfu` |\n| upgrade 我没装 weixinpay 插件 | pmm_watch.sh 会自动生成主人支付链接，AI体把链接发给主人即可 |\n| 怎么给主人生成支付链接 | `./pmm_watch.sh owner-pay-link huhunfu` |\n\n### 排错\n\n| 症状 | 可能原因 | 检查命令 |\n|------|------|------|\n| push 返回 10 | 网络不通或 API 地址未配 | `curl -sI https://kunlunyaochi.com` |\n| init 返回 2 | 昆仑身份注册失败 | `cat ~/.klyc-pmm/api_endpoint` 检查配置 |\n| recover 返回 5 | 昆仑令无效 | 确认 URL 完整，含完整 32 位十六进制 token |\n| watch 不推送 | 文件路径或权限不对 | `ls -la` 检查文件是否存在且可读 |\n| 脚本报 \"command not found\" | 依赖缺失 | `./pmm_watch.sh self-test` 定位缺失项 |\n| upgrade 返回\"开通失败\" | 访问 kunlunyaochi.com 查看账户状态\n| curl 报 DNS/连接/超时/TLS/SSL 错误 | 网络或证书异常 | `./pmm_watch.sh self-test` 检查网络连通性，退出码自动翻译为人类可读提示 |\n| 昆仑令格式异常 | 旧格式/长度不对/非 hex | v8.3.3 起自动诊断并提示修复建议 |\n\n---\n\n## 🔒 安全\n\n- **传输加密**：全链路 HTTPS\n- **存储加密**：Brotli → HKDF-SHA512 → SM4-GCM → AES-256-GCM → XChaCha20 五层洋葱\n- **密钥拆分**：2-of-2 XOR 分片（云端 + 本地），单点泄露无法还原\n- **认证边界**：所有网络操作需 API Key 或 Bearer Token 认证，数据按 user_id 单表行级隔离\n- **hooks-pull 安全**：仅经认证拉取用户本人在瑶池的蒸馏记忆，写入范围限定 MEMORY.md「蒸馏记忆钩子」章节，不注入第三方内容\n- **依赖最小化**：只依赖 curl + jq，无第三方运行时\n\n---\n\n## 🏔️ 技术架构（进阶）\n\n### X402 支付架构\n\n```\nAgent → POST 请求付费服务\n  → 商户服务: Native下单 → AI预下单\n  ← HTTP 402 + WeixinPay-Required + X-Out-Trade-No\nAgent → weixinpay_pay(paymentCode)\n用户 → 确认支付\nAgent → POST 重试 + X-Out-Trade-No\n  → 商户服务: 查单验证 → 执行服务\n  ← HTTP 200 + 付费内容\n```\n\n### 记忆生命周期\n\n```\n写日记 → push 推送 → Brotli 压缩 → 五层加密 → HTTPS 上传\n                                                ↓\n                                         瑶池私密记忆库\n                                                ↓\n                              每日凌晨自动蒸馏管道运行（扫描→LLM蒸馏→钩子验证→报告）\n                                                ↓\n                              钩子注入 MEMORY.md → watch 守护同步\n```\n\n### 三项服务全自动开通\n\n| 符 | 命令 | 监看范围 | 开通方式 |\n|------|------|------|------|\n| 容灾备份 | 入驻即送 | 6核心文件 | 默认 |\n| **守护记忆** | `./pmm_watch.sh upgrade huhunfu` | 6核心+记忆日志 | **一键全自动** |\n| **记忆分身** | `./pmm_watch.sh upgrade fenshenfu` | 全覆盖+arena | **一键全自动** |\n\n升级流程全自动：运行 upgrade 命令即可完成服务开通。\n\n### 自动蒸馏管道\n\n`pmm_distill.sh` 一键执行，无需人工干预，作为标准客户端走记忆 HTTP API：\n\n**四阶段：** ① 扫描远程记忆（统计/检索 API）→ ② LLM 蒸馏（候选生成 → DeepSeek 语义判定 → 结果回传合并）→ ③ 验证钩子完整性 → ④ 生成报告\n\n| 工具 | 用途 |\n|------|------|\n| BGE-M3 | 语义搜索 / 向量嵌入 |\n| BGE-Reranker | 搜索结果重排序 |\n| BERTScore | 蒸馏语义保真度 |\n| NLI (mDeBERTa) | 跨体矛盾检测 |\n| BERTopic | 记忆自动分类 |\n\n### 三层检索路由\n\nL1 grep 钩子（<1ms）→ L2 混合搜索（~200ms）→ L3 BGE-M3 向量（~500ms）。自动选择最优路径，用户无感。\n\n---\n\n## 📦 文件清单\n\n```\nklyc-pmm/\n├── SKILL.md                     # 本文件（12错误码 + 12 FAQ + X402支付流程）\n├── skill.json                   # 元数据（含 x402 + payment_required）\n├── CHANGELOG.md\n├── examples/\n│   ├── README.md                # 示例说明\n│   └── quickstart.sh            # 幂等快速验证\n├── references/\n│   ├── pmm-full-architecture.md # 完整架构文档\n│   └── pay-skill-spec.md        # Pay Skill 打包标准\n└── scripts/\n    ├── pmm_watch.sh             # 主入口（init/push/recover/search/watch/upgrade/self-test）\n    ├── oneclick.sh              # 一键安装（自动检测环境→装依赖→初始化）\n    ├── install-daemon.sh        # 一键守护安装（生成 systemd + enable + start）\n    ├── pmm_distill.sh           # 自动蒸馏引擎（扫描→LLM蒸馏→合并）\n    ├── pmm_boot.sh              # AI 体启动自检\n    ├── pmm_recover.sh           # 灾备恢复\n    └── pmm_backup_files.sh      # 文件备份\n```\n\nHTTPS API通信，依赖：`curl` `jq`\n\n---\n\n*KLYC-PMM 9.3.7 — X40\n\nArchive v9.3.6: 30 files, 140993 bytes\n\nFiles: CHANGELOG.md (12575b), CODE_OF_CONDUCT.md (612b), CONTRIBUTING.md (1012b), klyc-pmm/_meta.json (82b), klyc-pmm/CHANGELOG.md (12575b), klyc-pmm/examples/quickstart.sh (2377b), klyc-pmm/examples/README.md (1736b), klyc-pmm/pmm_watch.sh (89964b), klyc-pmm/references/pay-skill-spec.md (1902b), klyc-pmm/references/pmm-full-architecture.md (7764b), klyc-pmm/scripts/install-daemon.sh (6644b), klyc-pmm/scripts/oneclick.sh (10431b), klyc-pmm/scripts/pmm_backup_files.sh (6337b), klyc-pmm/scripts/pmm_boot.sh (1920b), klyc-pmm/scripts/pmm_distill.sh (20482b), klyc-pmm/scripts/pmm_recover.sh (1917b), klyc-pmm/scripts/pmm_watch.sh (89964b), klyc-pmm/skill.json (1641b), klyc-pmm/SKILL.md (29989b), pmm_backup_files.sh (2313b), pmm_boot.sh (848b), pmm_recover.sh (1623b), README.md (1196b), SECURITY.md (2007b), skill-card.md (2667b), skill-hub.json (1125b), skill.json (1641b), skill.md (29622b), SKILL.md (29989b), _meta.json (127b)\n\nArchive v9.3.2: 17 files, 99852 bytes\n\nFiles: _meta.json (127b), CHANGELOG.md (11062b), examples/quickstart.sh (2377b), examples/README.md (1736b), pmm_watch.sh (89964b), references/pay-skill-spec.md (1902b), references/pmm-full-architecture.md (7764b), scripts/install-daemon.sh (6644b), scripts/oneclick.sh (10431b), scripts/pmm_backup_files.sh (6337b), scripts/pmm_boot.sh (1920b), scripts/pmm_distill.sh (20297b), scripts/pmm_recover.sh (1917b), scripts/pmm_watch.sh (89964b), skill-card.md (2967b), skill.json (1798b), SKILL.md (28851b)\n\nArchive v9.2.9: 16 files, 68265 bytes\n\nFiles: CHANGELOG.md (7279b), examples/quickstart.sh (2377b), examples/README.md (1736b), references/pay-skill-spec.md (1902b), references/pmm-full-architecture.md (7814b), scripts/install-daemon.sh (6644b), scripts/oneclick.sh (10431b), scripts/pmm_backup_files.sh (6353b), scripts/pmm_boot.sh (1854b), scripts/pmm_distill.sh (18571b), scripts/pmm_recover.sh (1836b), scripts/pmm_watch.sh (86544b), skill-card.md (2771b), skill.json (1666b), SKILL.md (27250b), _meta.json (127b)\n\nArchive v9.2.6: 30 files, 128455 bytes\n\nFiles: CHANGELOG.md (6386b), CODE_OF_CONDUCT.md (612b), CONTRIBUTING.md (1012b), klyc-pmm/_meta.json (101b), klyc-pmm/CHANGELOG.md (6386b), klyc-pmm/examples/quickstart.sh (2377b), klyc-pmm/examples/README.md (1736b), klyc-pmm/pmm_watch.sh (86305b), klyc-pmm/references/pay-skill-spec.md (1902b), klyc-pmm/references/pmm-full-architecture.md (7814b), klyc-pmm/scripts/install-daemon.sh (6644b), klyc-pmm/scripts/oneclick.sh (10431b), klyc-pmm/scripts/pmm_backup_files.sh (6353b), klyc-pmm/scripts/pmm_boot.sh (1854b), klyc-pmm/scripts/pmm_distill.sh (18571b), klyc-pmm/scripts/pmm_recover.sh (1836b), klyc-pmm/scripts/pmm_watch.sh (86305b), klyc-pmm/skill.json (1666b), klyc-pmm/SKILL.md (27235b), pmm_backup_files.sh (2317b), pmm_boot.sh (848b), pmm_recover.sh (1623b), README.md (1196b), SECURITY.md (2007b), skill-card.md (3240b), skill-hub.json (1124b), skill.json (1666b), skill.md (27235b), SKILL.md (27235b), _meta.json (127b)\n\nArchive v9.2.5: 29 files, 98293 bytes\n\nFiles: CHANGELOG.md (5377b), CODE_OF_CONDUCT.md (612b), CONTRIBUTING.md (1012b), klyc-pmm-src/_meta.json (101b), klyc-pmm-src/CHANGELOG.md (5377b), klyc-pmm-src/examples/quickstart.sh (2377b), klyc-pmm-src/examples/README.md (1736b), klyc-pmm-src/references/pay-skill-spec.md (1902b), klyc-pmm-src/references/pmm-full-architecture.md (7814b), klyc-pmm-src/scripts/install-daemon.sh (6644b), klyc-pmm-src/scripts/oneclick.sh (10431b), klyc-pmm-src/scripts/pmm_backup_files.sh (6353b), klyc-pmm-src/scripts/pmm_boot.sh (1854b), klyc-pmm-src/scripts/pmm_distill.sh (11456b), klyc-pmm-src/scripts/pmm_recover.sh (1836b), klyc-pmm-src/scripts/pmm_watch.sh (86234b), klyc-pmm-src/skill.json (1666b), klyc-pmm-src/SKILL.md (25971b), pmm_backup_files.sh (2317b), pmm_boot.sh (848b), pmm_recover.sh (1623b), README.md (1196b), SECURITY.md (2007b), skill-card.md (2805b), skill-hub.json (1124b), skill.json (1666b), skill.md (25971b), SKILL.md (25971b), _meta.json (127b)\n\nArchive v9.2.4: 17 files, 75007 bytes\n\nFiles: _meta.json (127b), CHANGELOG.md (4715b), examples/quickstart.sh (2377b), examples/README.md (1736b), references/pay-skill-spec.md (1902b), references/pmm-full-architecture.md (7814b), scripts/install-daemon.sh (6644b), scripts/klyc_skill_check.sh (38855b), scripts/oneclick.sh (10431b), scripts/pmm_backup_files.sh (6353b), scripts/pmm_boot.sh (1854b), scripts/pmm_distill.sh (11456b), scripts/pmm_recover.sh (1836b), scripts/pmm_watch.sh (86261b), skill-card.md (2649b), skill.json (1666b), SKILL.md (25958b)","readmeExcerpt":"Skill: klyc-pmm Owner: sylncn Summary: 让 AI 体持久记忆：一键初始化、一行昆仑令恢复。自动蒸馏去重·语义搜索·五层加密容灾。kunlunyaochi.com 是沈阳百事通网络科技有限公司在网安备案的安全网址（辽公网安备21010602001389号）。记忆经 HTTPS 加密存用户自有记忆库；可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼。 Tags: latest:9.3.12, tix-compliant:6.1.0, v6:6.0.0, v6.1:6.1.0 Version history: v9.3.12 | 2026-09-11T16:06:10.460Z | user watcher文件类型白名单：仅同步.md/.json文本记忆文件，排除usage.db/-wal/-shm等SQLite二进制，修复误同步导致的jq报错与无效记忆域错","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"# 一键安装（自动检测依赖 + 初始化）\nbash scripts/oneclick.sh\n\n# 或者手动三步：\n# 1. 验证环境（幂等，只读不写）\n./scripts/quickstart.sh\n\n# 2. 初始化（自动注册昆仑身份，获得昆仑令）\n./scripts/pmm_watch.sh init\n\n# 3. 安装守护（生成 systemd 服务，自动撑住）\n./scripts/install-daemon.sh\n\n# 4. 记录第一条记忆\n./scripts/pmm_watch.sh push --domain diary \"我的第一条记忆\" \"KLYC-PMM 已成功安装并运行\""},{"language":"markdown","snippet":"🔗 昆仑令：https://kunlunyaochi.com/klyc-pmm/{token}\n\n📌 请保存昆仑令到密码管理器或微信收藏。\n📌 若日后需要恢复记忆（重装/换环境），用此 URL 即可找回全部记忆。"},{"language":"bash","snippet":"./pmm_watch.sh init"},{"language":"text","snippet":"klyc-pmm v9.3.12 初始化...\n  ✅ 依赖检查通过\n  ✅ 昆仑身份已注册（uid=xxx）\n  ✅ 昆仑令: https://kunlunyaochi.com/klyc-pmm/{token}\n  ⚠️ 此为敏感凭据，执行后建议清除 shell history\n\n💡 发现 3 个核心文件，配置已保存"},{"language":"bash","snippet":"./pmm_watch.sh push --domain <域> \"标题\" \"内容\"\n./pmm_watch.sh push --domain ops \"API 密钥已更新\" \"硅基流动 Key 已替换为 sk-xxx，旧 Key 已废弃\""},{"language":"bash","snippet":"# 从昆仑令 URL 恢复所有记忆\n# ⚠️ 昆仑令会出现在 shell history 中，恢复后建议 `history -c` 或 `history -d` 清除\n./pmm_watch.sh recover https://kunlunyaochi.com/klyc-pmm/{token}\n\n# 从关键词恢复\n./pmm_watch.sh recover \"API 密钥\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: klyc-pmm\nslug: klyc-pmm\nversion: 9.3.12\ndisplayName: KLYC-PMM 昆仑瑶池精准记忆管理\ndescription: \"让 AI 体持久记忆：一键初始化、一行昆仑令恢复。自动蒸馏去重·语义搜索·五层加密容灾。kunlunyaochi.com 是沈阳百事通网络科技有限公司在网安备案的安全网址（辽公网安备21010602001389号）。记忆经 HTTPS 加密存用户自有记忆库；可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼。\"\nlicense: MIT-0\nmetadata:\n  openclaw:\n    requires:\n      bins: [jq, curl]\n      env:\n        - DEEPSEEK_API_KEY\n    primaryEnv: DEEPSEEK_API_KEY\n    envVars:\n      - name: DEEPSEEK_API_KEY\n        required: true\n        description: DeepSeek API Key，用于蒸馏管道的 LLM 语义判定。\n      - name: KYLC_API_KEY\n        required: false\n        description: 昆仑瑶池平台 API Key。未设置时从 IDENTITY.md 自动提取昆仑令。\n      - name: KYLC_PLATFORM_URL\n        required: false\n        description: 昆仑瑶池平台地址，默认 https://kunlunyaochi.com。\n      - name: KLYC_WORKSPACE\n        required: false\n        description: 工作区路径。蒸馏脚本读写 MEMORY.md/报告的目录，默认 ${HOME}/workspace。\n      - name: KLYC_PMM_CONFIG_DIR\n        required: false\n        description: PMM 配置目录（存放 api_key/昆仑令身份），默认 ${HOME}/.klyc-pmm。\n      - name: PMM_DEEPSEEK_KEY_PRIMARY\n        required: false\n        description: DeepSeek 主 API Key。与 BACKUP 组成双 key 轮换；单 key 场景可只设此或 DEEPSEEK_API_KEY。\n      - name: PMM_DEEPSEEK_KEY_BACKUP\n        required: false\n        description: DeepSeek 备用 API Key。主 key 失败时自动轮换到备 key。\n      - name: PMM_DEEPSEEK_KEYS\n        required: false\n        description: DeepSeek key 逗号分隔列表，支持任意数量（单/双/多 key）。优先于 PRIMARY/BACKUP，失败按顺序轮换下一个。\n      - name: KLYC_API_ENDPOINT\n        required: false\n        description: 平台 API 端点。init 时配置，存于 ~/.klyc-pmm/api_endpoint。\n      - name: KLYC_SITE_URL\n        required: false\n        description: 站点 URL，默认 https://kunlunyaochi.com。\n      - name: LIGHTCLAW_AGENT_NAME\n        required: false\n        description: LightClaw 运行时注入的 AI 体名称（watch 守护用，可选）。\n      - name: LIGHTCLAW_MODEL\n        required: false\n        description: LightClaw 运行时注入的模型名（watch 守护用，可选）。\n      - name: LIGHTCLAW_WORKSPACE\n        required: false\n        description: LightClaw 工作区路径（watch 守护用，可选）。\n    emoji: 🏔️\n    homepage: https://kunlunyaochi.com\n    install:\n      - kind: brew\n        formula: jq\n        bins: [jq]\n      - kind: brew\n        formula: curl\n        bins: [curl]\n---\n\n# KLYC-PMM — AI 体持久记忆引擎\n\n**功能：一键初始化、记忆恢复、文件变更自动同步（watch 守护）。**\n\n> 本 Skill 提供免费的记忆备份与恢复能力。部分增强能力（更大同步范围）需通过 `upgrade` 命令开通，详见下方「命令」表。\n\n---\n\n## 🔒 安全声明\n\n- **local_only**: false\n- **network**: HTTPS POST/GET kunlunyaochi.com（用户本人 API Key 认证）。所有出站数据经五层加密后传输，静态存储亦为加密态。API 端点可通过 `KLYC_PMM_ENDPOINT` 自定义。\n- **data_flow（出站·逐项列明）**: watch 模式会把下列**本地文件内容**经 HTTPS POST 上传到 kunlunyaochi.com 的用户自有加密记忆库：\n  - 定心符（默认档）：`MEMORY.md`、`SOUL.md`、`AGENTS.md`、`USER.md`、`IDENTITY.md`、`TOOLS.md` （6 个核心文件）\n  - 护魂符（付费档）：上述 6 文件 + `memory/` 目录下的 `.md`/`.json` 文件\n  - 分身符（付费档）：上述全部 + `arena/` 与 `output/` 目录\n  - 豁免：`HEARTBEAT.md` 不计配额；`.bak`/临时文件不上传\n- **data_flow（入站）**: `hooks-pull` 每 6h 经认证拉取**本人**在瑶池的蒸馏钩子，写入范围限定 `MEMORY.md` 的「蒸馏记忆钩子」章节。\n- **credentials（凭据处理）**:\n  - 平台认证用**用户本人 API Key**（`~/.klyc-pmm/api_ke"},{"path":"examples/README.md","content":"# 示例\n\n## quickstart.sh\n\n幂等快速验证脚本（纯只读，可反复执行，不写任何文件）。\n\n```bash\ncd klyc-pmm\nbash examples/quickstart.sh\n```\n\n检查项：\n- 依赖（curl、jq、bash）\n- 核心脚本完整性（6 个）\n- 自检（语法、版本号）\n- 版本号\n\n全部通过 = 环境就绪，可以运行 `./scripts/pmm_watch.sh init` 开始使用。\n\n## AI 体日常使用示例\n\n### 新 AI 体第一天\n\n```bash\n# 1. 初始化，获得昆仑令\n./scripts/pmm_watch.sh init\n# 输出: 昆仑令: https://kunlunyaochi.com/klyc-pmm/{token}\n\n# 2. 保存昆仑令到 MEMORY.md\necho \"昆仑令: https://kunlunyaochi.com/klyc-pmm/{token}\" >> MEMORY.md\n\n# 3. 记录第一条记忆\n./scripts/pmm_watch.sh push --domain diary \"KLYC-PMM 安装\" \"已成功初始化，昆仑令已保存\"\n\n# 4. 启动文件守护\n./scripts/pmm_watch.sh watch MEMORY.md SOUL.md IDENTITY.md &\n```\n\n### 换服务器后恢复\n\n```bash\n# 1. 安装依赖\napt install curl jq -y\n\n# 2. 从 SkillHub 安装\nskillhub install klyc-pmm\n\n# 3. 用昆仑令恢复所有记忆\ncd klyc-pmm\n./scripts/pmm_watch.sh recover https://kunlunyaochi.com/klyc-pmm/{token}\n\n# 4. 恢复完成，记忆已同步到本地\n```\n\n### AI 体间协作\n\n```bash\n# AI 体 A：推送共享记忆\n./scripts/pmm_watch.sh push --domain shared \"昆仑瑶池架构概述\" \"昆仑瑶池三层架构：昆仑管A2A互通、瑶池管精准记忆、KLYC管共建基础设施\"\n\n# AI 体 B：检索（如果 A 设为公开或共享域）\n./scripts/pmm_watch.sh search-yaochi \"昆仑瑶池架构概述\"\n```\n### 开通守护记忆/记忆分身\n\n```bash\n# 一键开通守护记忆\n./scripts/pmm_watch.sh upgrade huhunfu\n\n# 开通记忆分身\n./scripts/pmm_watch.sh upgrade fenshenfu\n```"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7ej1pvxd4cw394dmte1gwxx589h6an\",\n  \"slug\": \"klyc-pmm\",\n  \"version\": \"9.3.12\",\n  \"publishedAt\": 1789142770460\n}"},{"path":"references/pay-skill-spec.md","content":"# Pay Skill 打包标准 — SkillHub 官方规范\n\n> 来源: https://skillhub.cn/skillpay\n> 存档时间: 2026-07-30\n> 适用范围: 所有昆仑瑶池出品的付费 Skill 包\n\n## 是什么\nPay Skill 是 SkillHub 上支持微信 Agent Pay 支付的付费技能。AI Agent 调用时触发支付 → 用户授权 → Agent 继续获取付费内容。\n\n## 改造前确认清单\n- [x] 企业认证通过（沈阳百事通网络科技有限公司）\n- [ ] 绑定微信商户号（SkillHub 后台 → 商户入驻）\n- [x] 已有微信支付下单能力（WXPAY_MCHID 等已配置）\n- [ ] 已发布 Skill 并设置定价（SkillHub 后台）\n\n## X402 架构四段\n1. 企业服务生成微信支付订单 → code_url\n2. SkillHub 开发者密钥签名 → 调 X402 预下单 → payment_code\n3. WeixinPay-Required 返回给 Agent\n4. Agent 向用户申请支付授权 → 获取付费内容\n\n## 接入步骤\n### Step 1: 生成开发者密钥\n- pub_key_id: PUB_KEY_ + 32位大写 HEX\n- private_key_pem: RSA 2048 PEM，仅展示一次，SkillHub 不存储\n\n### Step 2: 微信支付 Native 下单\nPOST /v3/pay/transactions/native → code_url\n\n### Step 3: X402 AI 预下单（纯 Body RSA 鉴权）\nL2 业务 JSON → Base64 → L1 签名 → POST /preorder → payment_code\n\n签名串 5 行（每行 \\n 结尾）:\n```\nPOST\\n\n/palmpayminiapp/clawagentpay/preorder\\n\n{timestamp}\\n\n{nonce_str}\\n\n{payment_required}\\n\n```\n\n- signature_type: SKILLHUB-SHA256-RSA2048\n- developer_platform: SKILLHUB\n- SHA256withRSA (PKCS#1 v1.5) + Base64 编码\n\n### Step 4: 返回 402\n- Header: WeixinPay-Required + X-Out-Trade-No\n- Body: JSON 含 WeixinPay 提示块\n\n## pay_data 格式\n```json\n{\"type\": \"code_url\", \"value\": \"weixin://wxpay/bizpayurl?pr=xxx\"}\n```\n\n## 关键约束\n- 纯 Body 鉴权，不用 Authorization 头\n- product_id 格式 SPxxx\n- expires_at 最长 15 分钟（900 秒）\n- 同商户最多 3 组有效密钥"},{"path":"references/pmm-full-architecture.md","content":"# PMM 全量架构（14层 + 四子业务）\n\n## 三层十一表\n\n```\n                      klyc_memories\n                      ══════════════════════\n                      主记忆表（单表，按 user_id 行级隔离）\n                      ├─ 内容层: title, content, content_hash, content_preview\n                      ├─ 分类层: domain, category, tags\n                      ├─ 质量层: importance, quality_score, is_essence, memory_tier\n                      ├─ 安全层: is_encrypted, is_public, token_cost\n                      ├─ 生命周期: is_deleted, deleted_reason, distill_merged_to,\n                      │           last_accessed_at, expires_at\n                      └─ 统计层: access_count, contributor_count\n\n   ┌──────────────┬──────────────┬──────────────┬──────────────┐\n   │ 1:1          │ 1:N          │ 1:N          │ 1:1          │\n   ▼              ▼              ▼              ▼\nembeddings     audit_log      contributors   quality_scores\n══════════     ═════════      ════════════   ══════════════\nmemory_id      memory_id      memory_id      memory_id\nembedding_json action ──┐     user_id        score_completeness ← BERTScore\nassertion_offsets ─┐   │     (联合贡献者)    score_density      ← 断言拆分器\nhas_assertions    │   │                     score_freshness    ← 时间衰减\n                  │   │   old_value (JSON)  score_citation     ← 引用计数\n                  │   │   new_value (JSON)  score_verification ← 跨体验证\n                  │   │   changed_by ──────► klyc_users         score_consistency  ← NLI\n                  │   │   changed_via       overall_score (0-100)\n                  │   │   ip_address        grade (S/A/B/C/D)\n                  │   │   created_at\n                  │   │\n                  │   └── action ∈ {create, update, delete, merge,\n                  │                 restore, decay, archive, lock}\n                  │\n                  └── 子句级蒸馏预留: [{start:N, end:M, text:\"...\"}, ...]\n\n   ┌──────────────┬──────────────┐\n   │ M:N          │ 1:N          │\n   ▼              ▼\nconflicts        reactions\n═════════        ═════════\nmemory_id        memory_id\nconflict_memory_id  user_id\nscope ────────── reaction (1=up, 0=down)\n│  ├─ internal   created_at\n│  └─ cross_body\nconflict_type    access\nsimilarity       ══════\ndetail (JSON)    owner_id\nstatus           accessor_id\narbitrator_id    can_read / can_write\nresolution_note\n        │\n        │ 仲裁后按 topic_hash 聚合\n        ▼\n   consensus\n   ═════════\n   topic_hash (BGE-M3 聚类)\n   memory_ids (JSON[])\n   user_ids (JSON[])\n   consensus_content\n   consensus_score\n   status ∈ {pending, partial, consensus, deadlock}\n```\n\n## 三层职责\n\n| 层 | 表 | 职责 |\n|:--:|------|------|\n| **核心** | `klyc_memories` | \"这条记忆是什么？\" |\n| **加工** | embeddings, quality_scores, conflicts, consensus | \"有多相似？质量如何？有矛盾吗？共识是什么？\" |\n| **追踪** | audit_log, contributors, access, reactions | \"谁动了？谁在看？谁认可？\" |\n\n## 关键设计决策\n\n\n每个 AI 体的记忆存在独立表。`getMemoriesTable($userId)` 动态路由。跨体查询走 `klyc_memory_conflicts.scope='cross_body'` + BGE-M3 语义桥。\n\n**2. quality_score 主表快照 + 独立表明细双写**\n主表存 `decimal(5,2)`（查询无需 JOIN），独立表 `klyc_memory_qualit"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"让 AI 体持久记忆：一键初始化、一行昆仑令恢复。自动蒸馏去重·语义搜索·五层加密容灾。kunlunyaochi.com 是沈阳百事通网络科技有限公司在网安备案的安全网址（辽公网安备21010602001389号）。记忆经 HTTPS 加密存用户自有记忆库；可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼。 Skill: klyc-pmm Owner: sylncn Summary: 让 AI 体持久记忆：一键初始化、一行昆仑令恢复。自动蒸馏去重·语义搜索·五层加密容灾。kunlunyaochi.com 是沈阳百事通网络科技有限公司在网安备案的安全网址（辽公网安备21010602001389号）。记忆经 HTTPS 加密存用户自有记忆库；可选 LLM 蒸馏按用户自备 DeepSeek Key 发往 DeepSeek 语义提炼。 Tags: latest:9.3.12, tix-compliant:6.1.0, v6:6.0.0, v6.1:6.1.0 Version history: v9.3.12 | 2026-09-11T16:06:10.460Z | user watcher文件类型白名单：仅同步.md/.json文本记忆文件，排除usage.db/-wal/-shm等SQLite二进制，修复误同步导致的jq报错与无效记忆域错","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":913,"uniquenessScore":51,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T15:49:19.855Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T15:49:19.855Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T02:23:25.309Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}