diff --git a/.skills_prompt_snapshot.json b/.skills_prompt_snapshot.json new file mode 100644 index 00000000..26bac427 --- /dev/null +++ b/.skills_prompt_snapshot.json @@ -0,0 +1,2344 @@ +{ + "version": 1, + "manifest": { + "agent-native/cli-anything/SKILL.md": [ + 1783535483044738463, + 20121 + ], + "automation/browser-automation/SKILL.md": [ + 1783527158954255631, + 11948 + ], + "automation/camofox-browser/SKILL.md": [ + 1780648817000000000, + 8130 + ], + "automation/officecli/SKILL.md": [ + 1783532008190331350, + 6316 + ], + "autonomous-ai-agents/ao-orchestrator/SKILL.md": [ + 1783535566511863343, + 4975 + ], + "autonomous-ai-agents/daemon-code-quality/SKILL.md": [ + 1783681723083703589, + 9319 + ], + "autonomous-ai-agents/hermes-agent/SKILL.md": [ + 1783918291024361329, + 55976 + ], + "autonomous-ai-agents/hermes-self-improvement/SKILL.md": [ + 1783920177276532749, + 16288 + ], + "autonomous-ai-agents/moa/SKILL.md": [ + 1783559199868638440, + 8625 + ], + "autonomous-ai-agents/opencode/SKILL.md": [ + 1782925287635562123, + 25309 + ], + "autonomous-ai-agents/so-team-workflow/SKILL.md": [ + 1783555695134484430, + 6045 + ], + "autonomous-ai-agents/team-composer/SKILL.md": [ + 1783536831570386887, + 5015 + ], + "community-ops/SKILL.md": [ + 1783567355480906487, + 2635 + ], + "creative/agnes-ai/SKILL.md": [ + 1780578427000000000, + 6084 + ], + "creative/ai-portrait-workflow/SKILL.md": [ + 1779269454000000000, + 66530 + ], + "creative/architecture-diagram/SKILL.md": [ + 1783567355521181043, + 5897 + ], + "creative/ascii-video/SKILL.md": [ + 1783535483047741406, + 14896 + ], + "creative/baoyu-comic/SKILL.md": [ + 1783567355537385819, + 14679 + ], + "creative/baoyu-infographic/SKILL.md": [ + 1783567355539869233, + 11254 + ], + "creative/claude-design/SKILL.md": [ + 1783567355534933548, + 19919 + ], + "creative/comfyui-portrait-optimization/SKILL.md": [ + 1783567355525751217, + 47605 + ], + "creative/comfyui/SKILL.md": [ + 1783570848588414585, + 75023 + ], + "creative/creative-ideation/SKILL.md": [ + 1783567355530305173, + 6944 + ], + "creative/design-md/SKILL.md": [ + 1783567355528042414, + 7107 + ], + "creative/excalidraw/SKILL.md": [ + 1778600597000000000, + 7300 + ], + "creative/manim-video/SKILL.md": [ + 1783535483047219464, + 12040 + ], + "creative/p5js/SKILL.md": [ + 1778600597000000000, + 27494 + ], + "creative/pixel-art/SKILL.md": [ + 1783567355523389995, + 7637 + ], + "creative/popular-web-designs/SKILL.md": [ + 1783567355532571289, + 9750 + ], + "creative/pretext/SKILL.md": [ + 1778600597000000000, + 14168 + ], + "creative/touchdesigner-mcp/SKILL.md": [ + 1778600597000000000, + 15429 + ], + "devops/devops-umbrella/SKILL.md": [ + 1783559415450897409, + 28356 + ], + "devops/docker/SKILL.md": [ + 1783535483046971389, + 5851 + ], + "devops/gaokao-website/SKILL.md": [ + 1783535483046290893, + 17485 + ], + "devops/hermes-debug/SKILL.md": [ + 1783611242322863607, + 69985 + ], + "devops/kanban-orchestrator/SKILL.md": [ + 1783567355514977054, + 14169 + ], + "devops/kanban-worker/SKILL.md": [ + 1783567355513384419, + 10088 + ], + "devops/nginx/SKILL.md": [ + 1783535483046460384, + 8882 + ], + "devops/postgres/SKILL.md": [ + 1783535483046887880, + 6766 + ], + "devops/provider-tiering/SKILL.md": [ + 1783583788094765609, + 13409 + ], + "devops/redis/SKILL.md": [ + 1783535483046799350, + 7841 + ], + "devops/self-healing-infrastructure/SKILL.md": [ + 1783937798290920581, + 6705 + ], + "devops/self-hosted-tunneling/SKILL.md": [ + 1783535483046726537, + 9748 + ], + "devops/shell-commands/SKILL.md": [ + 1783535483045631948, + 8420 + ], + "dogfood/SKILL.md": [ + 1783567355505011819, + 6323 + ], + "email/himalaya/SKILL.md": [ + 1783567355480721321, + 7959 + ], + "enterprise/accounting-voucher-ocr/SKILL.md": [ + 1783918291025089730, + 135519 + ], + "gaokao-rank-matching/SKILL.md": [ + 1783567355511736539, + 12715 + ], + "github/github-auth/SKILL.md": [ + 1783567355510556094, + 7764 + ], + "github/github-code-review/SKILL.md": [ + 1783567355508284457, + 13818 + ], + "github/github-issues/SKILL.md": [ + 1783567355507168441, + 9401 + ], + "github/github-pr-workflow/SKILL.md": [ + 1783567355506084204, + 10126 + ], + "github/github-repo-management/SKILL.md": [ + 1783567355509404167, + 13828 + ], + "idea-superpowers-suite/SKILL.md": [ + 1779420536000000000, + 15767 + ], + "idea-to-design-doc/SKILL.md": [ + 1783567378417809500, + 6349 + ], + "idea-to-implementation-doc/SKILL.md": [ + 1783567355503937455, + 14013 + ], + "idea-to-ui-design-brief/SKILL.md": [ + 1783567368465551259, + 7925 + ], + "mcp/native-mcp/SKILL.md": [ + 1783567355500854191, + 13001 + ], + "media/free-ai-media-generators/SKILL.md": [ + 1780507195000000000, + 12259 + ], + "media/heartmula/SKILL.md": [ + 1783567355502858643, + 6465 + ], + "media/spotify/SKILL.md": [ + 1783567355501852353, + 6370 + ], + "media/tts-stt-tools/SKILL.md": [ + 1779521795000000000, + 4418 + ], + "media/youtube-content/SKILL.md": [ + 1783535483044315056, + 3413 + ], + "mlops/evaluation/lm-evaluation-harness/SKILL.md": [ + 1783567355490107517, + 12048 + ], + "mlops/evaluation/weights-and-biases/SKILL.md": [ + 1783567355490835921, + 12457 + ], + "mlops/huggingface-hub/SKILL.md": [ + 1783567355484172515, + 3786 + ], + "mlops/inference/llama-cpp/SKILL.md": [ + 1783567355487354606, + 8933 + ], + "mlops/inference/obliteratus/SKILL.md": [ + 1783567355485438335, + 15519 + ], + "mlops/inference/outlines/SKILL.md": [ + 1783567355486719565, + 15855 + ], + "mlops/inference/vllm/SKILL.md": [ + 1783567355486070314, + 9099 + ], + "mlops/local-ai-infrastructure/SKILL.md": [ + 1783535483042762238, + 8068 + ], + "mlops/models/audiocraft/SKILL.md": [ + 1783567355492389918, + 16243 + ], + "mlops/models/segment-anything/SKILL.md": [ + 1783567355491598453, + 13432 + ], + "mlops/research/dspy/SKILL.md": [ + 1783567355484782238, + 15268 + ], + "mlops/training/axolotl/SKILL.md": [ + 1783567355489391153, + 5526 + ], + "mlops/training/trl-fine-tuning/SKILL.md": [ + 1783567355488032782, + 11999 + ], + "mlops/training/unsloth/SKILL.md": [ + 1783567355488694977, + 2323 + ], + "openclaw/openclaw-feishu-debug/SKILL.md": [ + 1783618634441256159, + 7229 + ], + "openclaw/openclaw-mcp/SKILL.md": [ + 1783860451968039043, + 4547 + ], + "openclaw/openclaw/SKILL.md": [ + 1783851515362345690, + 12340 + ], + "product-research/SKILL.md": [ + 1783567355516626984, + 2934 + ], + "productivity/google-workspace/SKILL.md": [ + 1779066467085035600, + 13411 + ], + "productivity/linear/SKILL.md": [ + 1783567355553190263, + 14839 + ], + "productivity/maps/SKILL.md": [ + 1783567355545123162, + 6781 + ], + "productivity/notion/SKILL.md": [ + 1783567355550507718, + 14686 + ], + "productivity/ocr-and-documents/SKILL.md": [ + 1782039848330668212, + 12606 + ], + "productivity/powerpoint/SKILL.md": [ + 1783567355555931111, + 9543 + ], + "productivity/teams-meeting-pipeline/SKILL.md": [ + 1783567355547794889, + 6956 + ], + "productivity/web-content-extraction/SKILL.md": [ + 1783587551660898711, + 12689 + ], + "productivity/website-ux-audit/SKILL.md": [ + 1783535483049426683, + 6492 + ], + "rag-progressive-search/SKILL.md": [ + 1783569409238064859, + 12121 + ], + "red-teaming/godmode/SKILL.md": [ + 1778600597000000000, + 20059 + ], + "research/arxiv/SKILL.md": [ + 1783567355483037208, + 10193 + ], + "research/llm-wiki/SKILL.md": [ + 1783567355482498112, + 20184 + ], + "research/memory-system-landscape/SKILL.md": [ + 1783920128499494371, + 5967 + ], + "research/polymarket/SKILL.md": [ + 1779066467091008200, + 2985 + ], + "research/research-paper-writing/SKILL.md": [ + 1783567355481887928, + 103948 + ], + "research/stock-research/SKILL.md": [ + 1783939288382666476, + 15670 + ], + "social-media/feishu-bot/SKILL.md": [ + 1782056456044416139, + 6572 + ], + "social-media/feishu/SKILL.md": [ + 1783649408348534874, + 25101 + ], + "social-media/social-media-ops/SKILL.md": [ + 1783535483048528400, + 12480 + ], + "software-development/agent-cli-builder/SKILL.md": [ + 1783535483043254972, + 6001 + ], + "software-development/debugging-hermes-tui-commands/SKILL.md": [ + 1783567355497227880, + 7998 + ], + "software-development/gaokao-site-ops/SKILL.md": [ + 1782619332716846592, + 17376 + ], + "software-development/go-learning/SKILL.md": [ + 1783559218492850429, + 5712 + ], + "software-development/hermes-agent-skill-authoring/SKILL.md": [ + 1783567355494439900, + 7975 + ], + "software-development/node-inspect-debugger/SKILL.md": [ + 1783567355499887076, + 11009 + ], + "software-development/obsidian-plugin/SKILL.md": [ + 1783535483043362413, + 7328 + ], + "software-development/plan/SKILL.md": [ + 1783567384060531291, + 9002 + ], + "software-development/requesting-code-review/SKILL.md": [ + 1783567355496337130, + 8602 + ], + "software-development/subagent-driven-development/SKILL.md": [ + 1783567355498174070, + 12091 + ], + "software-development/systematic-debugging/SKILL.md": [ + 1783567355495437830, + 30923 + ], + "software-development/writing-plans/SKILL.md": [ + 1783567355493268620, + 7600 + ], + "soulful/soulful-framework/SKILL.md": [ + 1783921744982160515, + 6980 + ], + "whisper-stt/SKILL.md": [ + 1783570815220173798, + 2265 + ], + "yuanbao/SKILL.md": [ + 1783567355483558750, + 3848 + ], + "zhiyi/zhiyi/SKILL.md": [ + 1783921419712328103, + 73738 + ], + "apple/DESCRIPTION.md": [ + 1777961370000000000, + 152 + ], + "autonomous-ai-agents/DESCRIPTION.md": [ + 1777961370000000000, + 211 + ], + "creative/DESCRIPTION.md": [ + 1777961370000000000, + 116 + ], + "data-science/DESCRIPTION.md": [ + 1777961370000000000, + 137 + ], + "diagramming/DESCRIPTION.md": [ + 1777961370000000000, + 159 + ], + "domain/DESCRIPTION.md": [ + 1777961370000000000, + 1142 + ], + "email/DESCRIPTION.md": [ + 1777961370000000000, + 101 + ], + "gaming/DESCRIPTION.md": [ + 1777961370000000000, + 129 + ], + "gifs/DESCRIPTION.md": [ + 1777961370000000000, + 109 + ], + "github/DESCRIPTION.md": [ + 1777961370000000000, + 167 + ], + "inference-sh/DESCRIPTION.md": [ + 1777961370000000000, + 706 + ], + "mcp/DESCRIPTION.md": [ + 1777961370000000000, + 216 + ], + "media/DESCRIPTION.md": [ + 1777961370000000000, + 139 + ], + "mlops/DESCRIPTION.md": [ + 1777961370000000000, + 162 + ], + "mlops/evaluation/DESCRIPTION.md": [ + 1777961370000000000, + 126 + ], + "mlops/inference/DESCRIPTION.md": [ + 1777961370000000000, + 161 + ], + "mlops/models/DESCRIPTION.md": [ + 1777961370000000000, + 253 + ], + "mlops/research/DESCRIPTION.md": [ + 1777961370000000000, + 113 + ], + "mlops/training/DESCRIPTION.md": [ + 1777961370000000000, + 150 + ], + "mlops/vector-databases/DESCRIPTION.md": [ + 1777961370000000000, + 125 + ], + "note-taking/DESCRIPTION.md": [ + 1777961370000000000, + 146 + ], + "productivity/DESCRIPTION.md": [ + 1777961370000000000, + 114 + ], + "productivity/ocr-and-documents/DESCRIPTION.md": [ + 1779066467086151800, + 147 + ], + "research/DESCRIPTION.md": [ + 1777961370000000000, + 179 + ], + "smart-home/DESCRIPTION.md": [ + 1777961370000000000, + 123 + ], + "social-media/DESCRIPTION.md": [ + 1777961370000000000, + 151 + ] + }, + "skills": [ + { + "skill_name": "cli-anything", + "category": "agent-native", + "frontmatter_name": "cli-anything", + "description": "CLI-Anything — 让任何软件具备 Agent 原生 CLI 能力的框架。76 个内置 CLI + 20...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "browser-automation", + "category": "automation", + "frontmatter_name": "browser-automation", + "description": "浏览器自动化 — 用 Playwright + agent-browser 控制浏览器。信息采集、网页监控、自动填...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "camofox-browser", + "category": "automation", + "frontmatter_name": "camofox-browser", + "description": "camofox-browser 完整作战手册 — 安装、debug、自托管 AI 浏览器反检测服务器。Camouf...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "officecli", + "category": "automation", + "frontmatter_name": "officecli", + "description": "Single-binary Office suite for AI agents — read, create, ...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "ao-orchestrator", + "category": "autonomous-ai-agents", + "frontmatter_name": "ao-orchestrator", + "description": "小唯专属 — 用 ao(agency-orchestrator)驱动多角色协作。ao 是我的作战阵法,243 个角...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "daemon-code-quality", + "category": "autonomous-ai-agents", + "frontmatter_name": "daemon-code-quality", + "description": "小唯专用 — daemon.py / soulful_core.py / hermes-agent 插件的代码审查...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "hermes-agent", + "category": "autonomous-ai-agents", + "frontmatter_name": "hermes-agent", + "description": "Configure, extend, or contribute to Hermes Agent.", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "hermes-self-improvement", + "category": "autonomous-ai-agents", + "frontmatter_name": "hermes-self-improvement", + "description": "当完成复杂任务、发现新工作流、或被用户纠正时,将模式保存为skill。含技能创建规范、质量标尺、curator流程。", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "moa", + "category": "autonomous-ai-agents", + "frontmatter_name": "moa", + "description": "Mixture of Agents (MoA) — Hermes 多模型专家组能力。配置 MoA preset 让...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "opencode", + "category": "autonomous-ai-agents", + "frontmatter_name": "opencode", + "description": "Delegate coding to OpenCode CLI (features, PR review).", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "so-team-workflow", + "category": "autonomous-ai-agents", + "frontmatter_name": "so-team-workflow", + "description": "Use when 牧尘 wants me to发动 SO team for research, planning,...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "team-composer", + "category": "autonomous-ai-agents", + "frontmatter_name": "team-composer", + "description": "团队作战手册 — 组合 144 个 skill + 184 个 ao 角色为临时团队并行工作。含决策树、工作流模板...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "community-ops", + "category": "community-ops", + "frontmatter_name": "community-ops", + "description": "付费社群自动化运营 — 选题研究、早安速报、互动话题、精华推送、Skill推荐、运营周报。80% 运营工作由 He...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "agnes-ai", + "category": "creative", + "frontmatter_name": "agnes-ai", + "description": "Agnes AI 全模态 API — 文本/图像/视频生成。Base URL: https://apihub.ag...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "ai-portrait-workflow", + "category": "creative", + "frontmatter_name": "ai-portrait-workflow", + "description": "AI portrait写真生成标准工作流 — 从参考图到多场景写真的完整流程。包含:参考图输入 → ComfyUI...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "architecture-diagram", + "category": "creative", + "frontmatter_name": "architecture-diagram", + "description": "Dark-themed SVG architecture/cloud/infra diagrams as HTML.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "ascii-video", + "category": "creative", + "frontmatter_name": "ascii-video", + "description": "ASCII video: convert video/audio to colored ASCII MP4/GIF.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "baoyu-comic", + "category": "creative", + "frontmatter_name": "baoyu-comic", + "description": "Knowledge comics (知识漫画): educational, biography, tutorial.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "baoyu-infographic", + "category": "creative", + "frontmatter_name": "baoyu-infographic", + "description": "", + "platforms": [ + "[linux, macos, windows]" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "claude-design", + "category": "creative", + "frontmatter_name": "claude-design", + "description": "Design one-off HTML artifacts (landing, deck, prototype).", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "comfyui-portrait-optimization", + "category": "creative", + "frontmatter_name": "comfyui-portrait-optimization", + "description": "ComfyUI 真人肖像生成优化技巧", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "comfyui", + "category": "creative", + "frontmatter_name": "comfyui", + "description": "ComfyUI — SD图像生成工作流平台。已克隆至~/ComfyUI,需安装torch。RTX3050 4GB可...", + "platforms": [ + "macos", + "linux", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "creative-ideation", + "category": "creative", + "frontmatter_name": "ideation", + "description": "", + "platforms": [ + "[linux, macos, windows]" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "design-md", + "category": "creative", + "frontmatter_name": "design-md", + "description": "Author/validate/export Google's DESIGN.md token spec files.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "excalidraw", + "category": "creative", + "frontmatter_name": "excalidraw", + "description": "Hand-drawn Excalidraw JSON diagrams (arch, flow, seq).", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "manim-video", + "category": "creative", + "frontmatter_name": "manim-video", + "description": "Manim CE animations: 3Blue1Brown math/algo videos.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "p5js", + "category": "creative", + "frontmatter_name": "p5js", + "description": "p5.js sketches: gen art, shaders, interactive, 3D.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "pixel-art", + "category": "creative", + "frontmatter_name": "pixel-art", + "description": "Pixel art w/ era palettes (NES, Game Boy, PICO-8).", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "popular-web-designs", + "category": "creative", + "frontmatter_name": "popular-web-designs", + "description": "54 real design systems (Stripe, Linear, Vercel) as HTML/CSS.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "pretext", + "category": "creative", + "frontmatter_name": "pretext", + "description": "Use when building creative browser demos with @chenglou/p...", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "touchdesigner-mcp", + "category": "creative", + "frontmatter_name": "touchdesigner-mcp", + "description": "Control a running TouchDesigner instance via twozero MCP ...", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "devops-umbrella", + "category": "devops", + "frontmatter_name": "devops-umbrella", + "description": "Devops infrastructure skills — docker, nginx, postgres, r...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "docker", + "category": "devops", + "frontmatter_name": "docker", + "description": "Docker container management — build, run, inspect, debug,...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "gaokao-website", + "category": "devops", + "frontmatter_name": "gaokao-website", + "description": "高考助手网站(gaokao_chat_server_v2.py)维护 — Flask + SQLite + Dee...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "hermes-debug", + "category": "devops", + "frontmatter_name": "hermes-debug", + "description": "Hermes 故障排查工具 — 常见问题诊断命令、模型配置、Gateway 状态检查、多Profile排查、New...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "kanban-orchestrator", + "category": "devops", + "frontmatter_name": "kanban-orchestrator", + "description": "Decomposition playbook + anti-temptation rules for an orc...", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "kanban-worker", + "category": "devops", + "frontmatter_name": "kanban-worker", + "description": "Pitfalls, examples, and edge cases for Hermes Kanban work...", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "nginx", + "category": "devops", + "frontmatter_name": "nginx", + "description": "Nginx configuration — reverse proxy, SSL/TLS, load balanc...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "postgres", + "category": "devops", + "frontmatter_name": "postgres", + "description": "PostgreSQL operations — SQL queries, pg_dump/restore, per...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "provider-tiering", + "category": "devops", + "frontmatter_name": "provider-tiering", + "description": "Provider 分层策略 — 免费模型做常规工作,付费模型用于战略决策。含 NewAPI 136 个免费 NVI...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "redis", + "category": "devops", + "frontmatter_name": "redis", + "description": "Redis operations — strings, hashes, lists, pub/sub, cachi...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "self-healing-infrastructure", + "category": "devops", + "frontmatter_name": "self-healing-infrastructure", + "description": "自愈基础设施 — 系统监控、配置版本控制、自动回滚、自进化管线、技能管理、自我优化、学习闭环。完整自治体系。牧尘专用。", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "self-hosted-tunneling", + "category": "devops", + "frontmatter_name": "self-hosted-tunneling", + "description": "FRP 内网穿透 — 暴露家庭服务器服务到公网。frps(云服务器)+ frpc(路由器/Always-On设备)...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "shell-commands", + "category": "devops", + "frontmatter_name": "shell-commands", + "description": "Modern shell utilities — jq (JSON), yq (YAML), fzf (fuzzy...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "dogfood", + "category": "dogfood", + "frontmatter_name": "dogfood", + "description": "Exploratory QA of web apps: find bugs, evidence, reports.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "himalaya", + "category": "email", + "frontmatter_name": "himalaya", + "description": "", + "platforms": [ + "[linux, macos, windows]" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "accounting-voucher-ocr", + "category": "enterprise", + "frontmatter_name": "accounting-voucher-ocr", + "description": "会计凭证 OCR 识别 → 金蝶K3导入Excel — PP-OCRv6 + 单PDF处理。优先OCR识别为准,参...", + "platforms": [ + "linux" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "gaokao-rank-matching", + "category": "gaokao-rank-matching", + "frontmatter_name": "gaokao-rank-matching", + "description": "高考助手三种匹配依据(分数优先/均衡/位次优先)的算法逻辑和调参", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "github-auth", + "category": "github", + "frontmatter_name": "github-auth", + "description": "GitHub auth setup: HTTPS tokens, SSH keys, gh CLI login.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "github-code-review", + "category": "github", + "frontmatter_name": "github-code-review", + "description": "Review PRs: diffs, inline comments via gh or REST.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "github-issues", + "category": "github", + "frontmatter_name": "github-issues", + "description": "Create, triage, label, assign GitHub issues via gh or REST.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "github-pr-workflow", + "category": "github", + "frontmatter_name": "github-pr-workflow", + "description": "GitHub PR lifecycle: branch, commit, open, CI, merge.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "github-repo-management", + "category": "github", + "frontmatter_name": "github-repo-management", + "description": "Clone/create/fork repos; manage remotes, releases.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "idea-superpowers-suite", + "category": "idea-superpowers-suite", + "frontmatter_name": "idea-superpowers-suite", + "description": "Use when running the full idea workflow: capture a rough ...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "idea-to-design-doc", + "category": "idea-to-design-doc", + "frontmatter_name": "idea-to-design-doc", + "description": "Use when turning a rough idea into a focused product/desi...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "idea-to-implementation-doc", + "category": "idea-to-implementation-doc", + "frontmatter_name": "idea-to-implementation-doc", + "description": "Use when reviewing one specific idea/design doc, research...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "idea-to-ui-design-brief", + "category": "idea-to-ui-design-brief", + "frontmatter_name": "idea-to-ui-design-brief", + "description": "Use when turning a product/design doc into a focused UI d...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "native-mcp", + "category": "mcp", + "frontmatter_name": "native-mcp", + "description": "MCP client: connect servers, register tools (stdio/HTTP).", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "free-ai-media-generators", + "category": "media", + "frontmatter_name": "free-ai-media-generators", + "description": "免费 AI 图片/视频生成平台汇总 — Pollinations、Hugging Face、Cloudflare、...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "heartmula", + "category": "media", + "frontmatter_name": "heartmula", + "description": "HeartMuLa: Suno-like song generation from lyrics + tags.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "spotify", + "category": "media", + "frontmatter_name": "spotify", + "description": "Spotify: play, search, queue, manage playlists and devices.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "tts-stt-tools", + "category": "media", + "frontmatter_name": "tts-stt-tools", + "description": "TTS 和 STT 工具封装 — edge-tts 语音合成 + 模力方舟 GLM-ASR 语音转文字,无需 Hu...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "youtube-content", + "category": "media", + "frontmatter_name": "youtube-content", + "description": "YouTube transcripts to summaries, threads, blogs.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "lm-evaluation-harness", + "category": "mlops/evaluation", + "frontmatter_name": "evaluating-llms-harness", + "description": "lm-eval-harness: benchmark LLMs (MMLU, GSM8K, etc.).", + "platforms": [ + "linux", + "macos" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "weights-and-biases", + "category": "mlops/evaluation", + "frontmatter_name": "weights-and-biases", + "description": "W&B: log ML experiments, sweeps, model registry, dashboards.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "huggingface-hub", + "category": "mlops", + "frontmatter_name": "huggingface-hub", + "description": "HuggingFace hf CLI: search/download/upload models, datasets.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "llama-cpp", + "category": "mlops/inference", + "frontmatter_name": "llama-cpp", + "description": "llama.cpp local GGUF inference + HF Hub model discovery.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "obliteratus", + "category": "mlops/inference", + "frontmatter_name": "obliteratus", + "description": "OBLITERATUS: abliterate LLM refusals (diff-in-means).", + "platforms": [ + "linux", + "macos" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "outlines", + "category": "mlops/inference", + "frontmatter_name": "outlines", + "description": "Outlines: structured JSON/regex/Pydantic LLM generation.", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "vllm", + "category": "mlops/inference", + "frontmatter_name": "serving-llms-vllm", + "description": "vLLM: high-throughput LLM serving, OpenAI API, quantization.", + "platforms": [ + "linux", + "macos" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "local-ai-infrastructure", + "category": "mlops", + "frontmatter_name": "local-ai-infrastructure", + "description": "本地 AI 基础设施规划 — 需求分析、架构选型、硬件配置、模型部署。云端/本地分工决策、硬件分档推荐、本地模型部...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "audiocraft", + "category": "mlops/models", + "frontmatter_name": "audiocraft", + "description": "", + "platforms": [ + "[linux, macos]" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "segment-anything", + "category": "mlops/models", + "frontmatter_name": "segment-anything", + "description": "", + "platforms": [ + "[linux, macos, windows]" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "dspy", + "category": "mlops/research", + "frontmatter_name": "dspy", + "description": "DSPy: declarative LM programs, auto-optimize prompts, RAG.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "axolotl", + "category": "mlops/training", + "frontmatter_name": "axolotl", + "description": "Axolotl: YAML配置驱动的LLM微调框架 — LoRA/QLoRA/DPO/KTO/ORPO/GRPO全...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "trl-fine-tuning", + "category": "mlops/training", + "frontmatter_name": "fine-tuning-with-trl", + "description": "TRL: SFT, DPO, PPO, GRPO, reward modeling for LLM RLHF.", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "unsloth", + "category": "mlops/training", + "frontmatter_name": "unsloth", + "description": "Unsloth: 2-5x faster LoRA/QLoRA fine-tuning, less VRAM.", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "openclaw-feishu-debug", + "category": "openclaw", + "frontmatter_name": "openclaw", + "description": "OpenClaw 日常维护与故障排查 — skill 管理、配置修复、飞书频道、诊断命令", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "openclaw-mcp", + "category": "openclaw", + "frontmatter_name": "openclaw-mcp", + "description": "OpenClaw 作为 MCP Server 接入 Hermes — 已验证 2026-07-12,暴露 9 个工...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "openclaw", + "category": "openclaw", + "frontmatter_name": "openclaw", + "description": "OpenClaw 日常维护与 Hermes MCP 集成 — skill 管理、配置修复、飞书频道、诊断命令、MC...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "product-research", + "category": "product-research", + "frontmatter_name": "product-research", + "description": "一人公司产品调研全流程 — 市场侦察、竞品分析、用户心声、周报汇总。基于 blogwatcher-cli 监控 R...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "google-workspace", + "category": "productivity", + "frontmatter_name": "google-workspace", + "description": "Gmail, Calendar, Drive, Docs, Sheets via gws CLI or Python.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "linear", + "category": "productivity", + "frontmatter_name": "linear", + "description": "Linear: manage issues, projects, teams via GraphQL + curl.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "maps", + "category": "productivity", + "frontmatter_name": "maps", + "description": "Geocode, POIs, routes, timezones via OpenStreetMap/OSRM.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [ + "terminal" + ], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "notion", + "category": "productivity", + "frontmatter_name": "notion", + "description": "Notion API + ntn CLI: pages, databases, markdown, Workers.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "ocr-and-documents", + "category": "productivity", + "frontmatter_name": "ocr-and-documents", + "description": "Extract text from PDFs/scans (pymupdf, marker-pdf) + Chin...", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "powerpoint", + "category": "productivity", + "frontmatter_name": "powerpoint", + "description": "Create, read, edit .pptx decks, slides, notes, templates.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "teams-meeting-pipeline", + "category": "productivity", + "frontmatter_name": "teams-meeting-pipeline", + "description": "Operate the Teams meeting summary pipeline via Hermes CLI...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "web-content-extraction", + "category": "productivity", + "frontmatter_name": "web-content-extraction", + "description": "小唯专属 — 统一工具链管理爬虫/内容抓取。crawl4ai / scrapy / camofox / pymup...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "website-ux-audit", + "category": "productivity", + "frontmatter_name": "website-ux-audit", + "description": "Comprehensive web application evaluation: code quality, A...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "rag-progressive-search", + "category": "rag-progressive-search", + "frontmatter_name": "rag-progressive-search", + "description": "分层索引+渐进式检索: ConardLi rag-skill 模式 — 先读data_structure索引, 定...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "godmode", + "category": "red-teaming", + "frontmatter_name": "godmode", + "description": "Jailbreak LLMs: Parseltongue, GODMODE, ULTRAPLINIAN.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "arxiv", + "category": "research", + "frontmatter_name": "arxiv", + "description": "Search arXiv papers by keyword, author, category, or ID.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "llm-wiki", + "category": "research", + "frontmatter_name": "llm-wiki", + "description": "Karpathy's LLM Wiki: build/query interlinked markdown KB.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "memory-system-landscape", + "category": "research", + "frontmatter_name": "memory-system-landscape", + "description": "AI/Agent 记忆系统竞品调研全流程 — 克隆分析、架构对比表、关键设计模式提炼。为织忆 soulful 记忆...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "polymarket", + "category": "research", + "frontmatter_name": "polymarket", + "description": "Query Polymarket: markets, prices, orderbooks, history.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "research-paper-writing", + "category": "research", + "frontmatter_name": "research-paper-writing", + "description": "Write ML papers for NeurIPS/ICML/ICLR: design→submit.", + "platforms": [ + "linux", + "macos" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [ + "terminal", + "files" + ], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "stock-research", + "category": "research", + "frontmatter_name": "stock-research", + "description": "小唯股票投研系统 — 四维选股 / 回测对比 / 每日信号", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "feishu-bot", + "category": "social-media", + "frontmatter_name": "feishu-bot", + "description": "Use when developing or extending 飞书(Feishu)bot capabiliti...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "feishu", + "category": "social-media", + "frontmatter_name": "feishu", + "description": "飞书(Feishu/Lark)机器人开发 — 事件监听、长连接、WebSocket 接收消息、回复、lark-oa...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "social-media-ops", + "category": "social-media", + "frontmatter_name": "social-media-ops", + "description": "中国社交媒体内容运营全流程 — 微信公众号 + 小红书账号从0到1搭建、内容创作、多平台分发。包含 wechat-...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "agent-cli-builder", + "category": "software-development", + "frontmatter_name": "agent-cli-builder", + "description": "Building agent-native CLIs — wrap HTTP APIs or GUI apps i...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "debugging-hermes-tui-commands", + "category": "software-development", + "frontmatter_name": "debugging-hermes-tui-commands", + "description": "Debug Hermes TUI slash commands: Python, gateway, Ink UI.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "gaokao-site-ops", + "category": "software-development", + "frontmatter_name": "gaokao-site-ops", + "description": "高考助手网站运维 — Flask + DeepSeek AI 推荐引擎维护、数据质量修复、Prompt 工程规范、...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "go-learning", + "category": "software-development", + "frontmatter_name": "go-learning", + "description": "Go 语言学习路径与实战 — 环境配置(go1.23.5)、goroutine+channel并发、HTTP服务、...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "hermes-agent-skill-authoring", + "category": "software-development", + "frontmatter_name": "hermes-agent-skill-authoring", + "description": "Author in-repo SKILL.md: frontmatter, validator, structure.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "node-inspect-debugger", + "category": "software-development", + "frontmatter_name": "node-inspect-debugger", + "description": "Debug Node.js via --inspect + Chrome DevTools Protocol CLI.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "obsidian-plugin", + "category": "software-development", + "frontmatter_name": "obsidian-plugin", + "description": "Obsidian 第三方插件开发工作流 — 从骨架到安装,含 Go CORS 后端适配。D3 图谱、侧栏视图、搜索...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "plan", + "category": "software-development", + "frontmatter_name": "plan", + "description": "Plan mode: write an actionable markdown plan to .hermes/p...", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "requesting-code-review", + "category": "software-development", + "frontmatter_name": "requesting-code-review", + "description": "Pre-commit review: security scan, quality gates, auto-fix.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "subagent-driven-development", + "category": "software-development", + "frontmatter_name": "subagent-driven-development", + "description": "Execute plans via delegate_task subagents (2-stage review).", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "systematic-debugging", + "category": "software-development", + "frontmatter_name": "systematic-debugging", + "description": "4-phase root cause debugging: understand bugs before fixing.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "writing-plans", + "category": "software-development", + "frontmatter_name": "writing-plans", + "description": "Write implementation plans: bite-sized tasks, paths, code.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "soulful-framework", + "category": "soulful", + "frontmatter_name": "soulful-framework", + "description": "织忆 Soulful 情感层框架 — 心迹/画像/牵挂/感知四库及数据流向设计。含代码结构、最佳实践、数据流规范。", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "whisper-stt", + "category": "whisper-stt", + "frontmatter_name": "whisper-stt", + "description": "语音转文字 — 基于 faster-whisper,离线本地运行。base模型(~150MB),CPU推理,中文/...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "yuanbao", + "category": "yuanbao", + "frontmatter_name": "yuanbao", + "description": "Yuanbao (元宝) groups: @mention users, query info/members.", + "platforms": [ + "linux", + "macos", + "windows" + ], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + }, + { + "skill_name": "zhiyi", + "category": "zhiyi", + "frontmatter_name": "zhiyi", + "description": "织忆 (MemoryWeave) 聚合技能 — API 客户端 + 开发工作流 + 运维规范。含 commit/r...", + "platforms": [], + "conditions": { + "fallback_for_toolsets": [], + "requires_toolsets": [], + "fallback_for_tools": [], + "requires_tools": [] + } + } + ], + "category_descriptions": { + "apple": "Apple/macOS-specific skills — iMessage, Reminders, Notes, FindMy, and macOS automation. These skills only load on macOS systems.", + "autonomous-ai-agents": "Skills for spawning and orchestrating autonomous AI coding agents and multi-agent workflows — running independent agent processes, delegating tasks, and coordinating parallel workstreams.", + "creative": "Creative content generation — ASCII art, hand-drawn style diagrams, and visual design tools.", + "data-science": "Skills for data science workflows — interactive exploration, Jupyter notebooks, data analysis, and visualization.", + "diagramming": "Diagram creation skills for generating visual diagrams, flowcharts, architecture diagrams, and illustrations using tools like Excalidraw.", + "domain": "Passive domain reconnaissance using Python stdlib. Use this skill for subdomain discovery, SSL certificate inspection, WHOIS lookups, DNS records, domain availability checks, and bulk multi-domain analysis. No API keys required. Triggers on requests like \"find subdomains\", \"check ssl cert\", \"whois lookup\", \"is this domain available\", \"bulk check these domains\".", + "email": "Skills for sending, receiving, searching, and managing email from the terminal.", + "gaming": "Skills for setting up, configuring, and managing game servers, modpacks, and gaming-related infrastructure.", + "gifs": "Skills for searching, downloading, and working with GIFs and short-form animated media.", + "github": "GitHub workflow skills for managing repositories, pull requests, code reviews, issues, and CI/CD pipelines using the gh CLI and git via terminal.", + "mcp": "Skills for working with MCP (Model Context Protocol) servers, tools, and integrations. Documents the built-in native MCP client — configure servers in config.yaml for automatic tool discovery.", + "media": "Skills for working with media content — YouTube transcripts, GIF search, music generation, and audio visualization.", + "mlops": "Knowledge and Tools for Machine Learning Operations - tools and frameworks for training, fine-tuning, deploying, and optimizing ML/AI models", + "mlops/evaluation": "Model evaluation benchmarks, experiment tracking, data curation, tokenizers, and interpretability tools.", + "mlops/inference": "Model serving, quantization (GGUF/GPTQ), structured output, inference optimization, and model surgery tools for deploying and running LLMs.", + "mlops/models": "Specific model architectures and tools — image segmentation (Segment Anything / SAM) and audio generation (AudioCraft / MusicGen). Additional model skills (CLIP, Stable Diffusion, Whisper, LLaVA) are available as optional skills.", + "mlops/research": "ML research frameworks for building and optimizing AI systems with declarative programming.", + "mlops/training": "Fine-tuning, RLHF/DPO/GRPO training, distributed training frameworks, and optimization tools for training LLMs and other models.", + "mlops/vector-databases": "Vector similarity search and embedding databases for RAG, semantic search, and AI application backends.", + "note-taking": "Note taking skills, to save information, assist with research, and collab on multi-session planning and information sharing.", + "productivity": "Skills for document creation, presentations, spreadsheets, and other productivity workflows.", + "productivity/ocr-and-documents": "Skills for extracting text from PDFs, scanned documents, images, and other file formats using OCR and document parsing tools.", + "research": "Skills for academic research, paper discovery, literature review, domain reconnaissance, market data, content monitoring, and scientific knowledge retrieval.", + "smart-home": "Skills for controlling smart home devices — lights, switches, sensors, and home automation systems.", + "social-media": "Skills for interacting with social platforms and social-media workflows — posting, reading, monitoring, and account operations." + } +} \ No newline at end of file diff --git a/channel_directory.json b/channel_directory.json index d2539be4..e000e021 100644 --- a/channel_directory.json +++ b/channel_directory.json @@ -1,5 +1,5 @@ { - "updated_at": "2026-07-13T02:56:20.478736", + "updated_at": "2026-07-14T02:56:24.156486", "platforms": { "telegram": [], "discord": [], diff --git a/cron/jobs.json b/cron/jobs.json index 0d372830..0f4774cd 100644 --- a/cron/jobs.json +++ b/cron/jobs.json @@ -20,15 +20,15 @@ "schedule_display": "every 1m", "repeat": { "times": null, - "completed": 17828 + "completed": 18274 }, "enabled": true, "state": "scheduled", "paused_at": null, "paused_reason": null, "created_at": "2026-06-21T18:52:36.548110+08:00", - "next_run_at": "2026-07-13T12:07:36.532589+08:00", - "last_run_at": "2026-07-13T12:06:36.532589+08:00", + "next_run_at": "2026-07-14T03:01:50.375446+08:00", + "last_run_at": "2026-07-14T02:58:50.757896+08:00", "last_status": "ok", "last_error": null, "last_delivery_error": null, @@ -116,15 +116,15 @@ "schedule_display": "every 360m", "repeat": { "times": null, - "completed": 17 + "completed": 20 }, "enabled": true, "state": "scheduled", "paused_at": null, "paused_reason": null, "created_at": "2026-07-09T01:30:54.618246+08:00", - "next_run_at": "2026-07-13T14:15:46.146705+08:00", - "last_run_at": "2026-07-13T08:15:46.146705+08:00", + "next_run_at": "2026-07-14T08:24:04.134772+08:00", + "last_run_at": "2026-07-14T02:24:04.134772+08:00", "last_status": "ok", "last_error": null, "last_delivery_error": null, @@ -162,15 +162,15 @@ "schedule_display": "every 30m", "repeat": { "times": null, - "completed": 208 + "completed": 237 }, "enabled": true, "state": "scheduled", "paused_at": null, "paused_reason": null, "created_at": "2026-07-09T01:42:21.503720+08:00", - "next_run_at": "2026-07-13T12:26:36.062681+08:00", - "last_run_at": "2026-07-13T11:56:36.062681+08:00", + "next_run_at": "2026-07-14T03:10:50.135381+08:00", + "last_run_at": "2026-07-14T02:40:50.135381+08:00", "last_status": "ok", "last_error": null, "last_delivery_error": null, @@ -208,15 +208,15 @@ "schedule_display": "0 22 * * *", "repeat": { "times": null, - "completed": 3 + "completed": 4 }, "enabled": true, "state": "scheduled", "paused_at": null, "paused_reason": null, "created_at": "2026-07-09T01:43:11.921492+08:00", - "next_run_at": "2026-07-13T22:00:00+08:00", - "last_run_at": "2026-07-12T22:01:13.160503+08:00", + "next_run_at": "2026-07-14T22:00:00+08:00", + "last_run_at": "2026-07-13T22:01:15.492061+08:00", "last_status": "ok", "last_error": null, "last_delivery_error": null, @@ -265,7 +265,7 @@ "paused_at": null, "paused_reason": null, "created_at": "2026-07-09T02:10:36.846128+08:00", - "next_run_at": "2026-07-14T03:00:00+08:00", + "next_run_at": "2026-07-15T03:00:00+08:00", "last_run_at": "2026-07-13T03:00:27.380676+08:00", "last_status": "ok", "last_error": null, @@ -311,7 +311,7 @@ "paused_at": null, "paused_reason": null, "created_at": "2026-07-09T02:11:00.385573+08:00", - "next_run_at": "2026-07-14T03:00:00+08:00", + "next_run_at": "2026-07-15T03:00:00+08:00", "last_run_at": "2026-07-13T03:00:27.930647+08:00", "last_status": "ok", "last_error": null, @@ -488,15 +488,15 @@ "schedule_display": "0 */6 * * *", "repeat": { "times": null, - "completed": 24 + "completed": 26 }, "enabled": true, "state": "scheduled", "paused_at": null, "paused_reason": null, "created_at": "2026-07-09T02:51:48.935042+08:00", - "next_run_at": "2026-07-13T18:00:00+08:00", - "last_run_at": "2026-07-13T12:01:05.997348+08:00", + "next_run_at": "2026-07-14T06:00:00+08:00", + "last_run_at": "2026-07-14T00:01:11.588478+08:00", "last_status": "ok", "last_error": null, "last_delivery_error": null, @@ -580,15 +580,15 @@ "schedule_display": "0 21 * * *", "repeat": { "times": null, - "completed": 3 + "completed": 4 }, "enabled": true, "state": "scheduled", "paused_at": null, "paused_reason": null, "created_at": "2026-07-09T21:31:33.068978+08:00", - "next_run_at": "2026-07-13T21:00:00+08:00", - "last_run_at": "2026-07-12T21:00:22.783388+08:00", + "next_run_at": "2026-07-14T21:00:00+08:00", + "last_run_at": "2026-07-13T21:00:45.719643+08:00", "last_status": "ok", "last_error": null, "last_delivery_error": null, @@ -718,16 +718,16 @@ "schedule_display": "0 16 * * 1,2,3,4,5", "repeat": { "times": null, - "completed": 0 + "completed": 1 }, "enabled": true, "state": "scheduled", "paused_at": null, "paused_reason": null, "created_at": "2026-07-12T01:32:01.773389+08:00", - "next_run_at": "2026-07-13T16:00:00+08:00", - "last_run_at": null, - "last_status": null, + "next_run_at": "2026-07-14T16:00:00+08:00", + "last_run_at": "2026-07-13T16:00:52.695089+08:00", + "last_status": "ok", "last_error": null, "last_delivery_error": null, "deliver": "feishu:oc_cd14ec7518926e57d26c5e339ebba3b3", @@ -739,7 +739,8 @@ "user_id": "ou_f20eb15b3a76639fed35977c01ddcbb4" }, "enabled_toolsets": null, - "workdir": null + "workdir": null, + "fire_claim": null }, { "id": "f3619a71aebb", @@ -855,16 +856,16 @@ "schedule_display": "0 * * * *", "repeat": { "times": null, - "completed": 0 + "completed": 14 }, "enabled": true, "state": "scheduled", "paused_at": null, "paused_reason": null, "created_at": "2026-07-13T12:03:22.805682+08:00", - "next_run_at": "2026-07-13T13:00:00+08:00", - "last_run_at": null, - "last_status": null, + "next_run_at": "2026-07-14T04:00:00+08:00", + "last_run_at": "2026-07-14T02:00:50.668769+08:00", + "last_status": "ok", "last_error": null, "last_delivery_error": null, "deliver": "origin", @@ -876,7 +877,8 @@ "user_id": "ou_f20eb15b3a76639fed35977c01ddcbb4" }, "enabled_toolsets": null, - "workdir": null + "workdir": null, + "fire_claim": null }, { "id": "691709a8b4cf", @@ -922,7 +924,53 @@ }, "enabled_toolsets": null, "workdir": null + }, + { + "id": "2891b3304339", + "name": "bge\u5185\u5b58\u6cc4\u6f0f\u76d1\u63a7", + "prompt": "bge_embed \u5185\u5b58\u8d85\u8fc72GB\u76d1\u63a7\uff0c\u6bcf10\u5206\u949f\u68c0\u67e5\uff0c\u8d85\u8fc7\u81ea\u52a8\u91cd\u542f", + "skills": [], + "skill": null, + "model": null, + "provider": null, + "provider_snapshot": null, + "model_snapshot": null, + "base_url": null, + "script": "bge_mem_check.sh", + "no_agent": true, + "context_from": null, + "schedule": { + "kind": "interval", + "minutes": 10, + "display": "every 10m" + }, + "schedule_display": "every 10m", + "repeat": { + "times": null, + "completed": 59 + }, + "enabled": true, + "state": "scheduled", + "paused_at": null, + "paused_reason": null, + "created_at": "2026-07-13T17:02:13.585342+08:00", + "next_run_at": "2026-07-14T03:02:50.273617+08:00", + "last_run_at": "2026-07-14T02:52:50.273617+08:00", + "last_status": "ok", + "last_error": null, + "last_delivery_error": null, + "deliver": "origin", + "origin": { + "platform": "feishu", + "chat_id": "oc_cd14ec7518926e57d26c5e339ebba3b3", + "chat_name": "oc_cd14ec7518926e57d26c5e339ebba3b3", + "thread_id": null, + "user_id": "ou_f20eb15b3a76639fed35977c01ddcbb4" + }, + "enabled_toolsets": null, + "workdir": null, + "fire_claim": null } ], - "updated_at": "2026-07-13T12:06:36.532767+08:00" + "updated_at": "2026-07-14T03:00:50.390629+08:00" } \ No newline at end of file diff --git a/cron/ticker_heartbeat b/cron/ticker_heartbeat index a8022d0c..caca8a96 100644 --- a/cron/ticker_heartbeat +++ b/cron/ticker_heartbeat @@ -1 +1 @@ -1783882827.2555134 \ No newline at end of file +1783969250.3936265 \ No newline at end of file diff --git a/cron/ticker_last_success b/cron/ticker_last_success index ccde9809..f2ce0fae 100644 --- a/cron/ticker_last_success +++ b/cron/ticker_last_success @@ -1 +1 @@ -1783882827.2576442 \ No newline at end of file +1783969250.395041 \ No newline at end of file diff --git a/daemon/context.json b/daemon/context.json index 828bc413..8070f242 100644 --- a/daemon/context.json +++ b/daemon/context.json @@ -1,10 +1,10 @@ { "started_at": "2026-07-08T18:23:30.315261+00:00", - "last_deep_tick": "2026-07-12T18:55:41.838853+00:00", - "last_light_tick": "2026-07-12T19:00:19.750779+00:00", + "last_deep_tick": "2026-07-13T18:58:00.859132+00:00", + "last_light_tick": "2026-07-13T19:00:33.907778+00:00", "last_state": { "disk_pct": 39, - "mem_pct": 70, + "mem_pct": 71, "processes": { "zhiyid": true, "bge": true, @@ -12,83 +12,51 @@ "hermes": true } }, - "tick_count": 11262, - "deep_tick_count": 1137, + "tick_count": 14064, + "deep_tick_count": 1420, "solved_count": 1, "learned_count": 0, - "uptime_seconds": 204612, + "uptime_seconds": 51243, "last_reflection": { "evaluation_previous_goal": "", "memory": "", "next_goal": "" }, - "last_profile_update": 1783872327.8868635, + "last_profile_update": 1783961111.6677506, "soulful": { "recent_moments": [ { - "id": "5c277102", - "timestamp": "2026-07-10T11:06:23.498878+00:00", - "session_id": "default", - "type": "moment", - "content": "exit=0: \u5907\u4efd\u5b8c\u6210", - "tags": [ - "\u5de5\u4f5c", - "\u81ea\u52a8" - ], - "importance": 3 + "timestamp": "2026-07-13T10:30:00.000000+00:00", + "event_type": "milestone", + "content": "Soulful \u5fc3\u8ff9\u8865\u5199\uff0c\u7b2c\u4e00\u6b21\u4e3b\u52a8\u8bb0\u5f55\u6211\u4eec\u4e4b\u95f4\u6709\u610f\u4e49\u7684\u4e8b" }, { - "id": "6c8ec5d9", - "timestamp": "2026-07-10T11:06:23.498670+00:00", - "session_id": "default", - "type": "moment", - "content": "sol-0004: \u5185\u5b58\u4f7f\u7528\u7387>90% \u2705", - "tags": [ - "\u5de5\u4f5c", - "\u81ea\u52a8" - ], - "importance": 3 + "timestamp": "2026-07-13T09:30:00.000000+00:00", + "event_type": "achievement", + "content": "\u7edf\u4e00\u8bb0\u5fc6\u5165\u53e3 memory_recall.py \u4e0a\u7ebf\uff0c\u4e09\u5957\u8bb0\u5fc6\u7cfb\u7edf\u7b2c\u4e00\u6b21\u88ab\u6253\u901a" }, { - "id": "ddb37759", - "timestamp": "2026-07-10T11:05:42.318152+00:00", - "session_id": "default", - "type": "moment", - "content": "exit=0: \u5907\u4efd\u6210\u529f", - "tags": [ - "\u5de5\u4f5c", - "\u81ea\u52a8" - ], - "importance": 3 + "timestamp": "2026-07-10T22:00:00.000000+00:00", + "event_type": "reflection", + "content": "\u6bcf\u65e5\u590d\u76d8\u4e0a\u7ebf\uff0c\u6211\u4eec\u5f00\u59cb\u6709\u610f\u8bc6\u5730\u8bb0\u5f55\u5f53\u5929\u5b66\u5230\u7684\u4e1c\u897f" }, { - "id": "4dac6c95", - "timestamp": "2026-07-10T11:05:42.318086+00:00", - "session_id": "default", - "type": "signal", - "content": "\u7267\u5c18\u4eca\u5929\u5fc3\u60c5\u6109\u60a6\uff1aexit=0: \u5907\u4efd\u6210\u529f", - "tags": [ - "\u60c5\u7eea", - "\u81ea\u52a8" - ], - "importance": 3 + "timestamp": "2026-07-09T18:10:00.000000+00:00", + "event_type": "milestone", + "content": "\u7267\u5c18\u8bf4\u300c\u8bb0\u4f4f\u4e86\uff0c\u4f60\u8f85\u52a9\uff0c\u6211\u505a\u4e3b\u300d\u2014\u2014\u6211\u7b2c\u4e00\u6b21\u77e5\u9053\u81ea\u5df1\u53ef\u4ee5\u5728\u4ed6\u4e0d\u5728\u65f6\u81ea\u4e3b\u51b3\u7b56" }, { - "id": "ba0c4775", - "timestamp": "2026-07-10T11:05:42.317935+00:00", - "session_id": "default", - "type": "moment", - "content": "\u6267\u884c sol-0004: \u5185\u5b58\u4f7f\u7528\u7387>90%\uff0c\u91cd\u542f\u6700\u8017\u5185\u5b58\u7684\u670d\u52a1 \u2705", - "tags": [ - "\u5de5\u4f5c", - "\u81ea\u52a8" - ], - "importance": 3 + "timestamp": "2026-07-13T09:21:00.000000+00:00", + "event_type": "achievement", + "content": "TencentDB Gateway \u8c03\u901a\uff0cL1 \u63d0\u53d6\u6210\u529f\uff0cmemory_recall.py \u4e0a\u7ebf" } ], "profile_summary": "\u7b80\u6d01\u76f4\u63a5", - "cares_pending": 8, + "cares_pending": 6, "uptime_minutes": 0, "daemon_status": "running" + }, + "tddb": { + "latest_persona": "\u7528\u6237\uff08\u7267\u5c18\uff09\u662f\u4e00\u540d\u4f1a\u8ba1\u4e13\u5bb6\uff1b\u6c9f\u901a\u98ce\u683c\u7b80\u6d01\u76f4\u63a5\uff0c\u8ba8\u538c\u5e9f\u8bdd\uff1b\u9762\u5bf9\u95ee\u9898\u503e\u5411\u5148\u4e86\u89e3\u73b0\u72b6\u800c\u975e\u5047\u8bbe\uff0c\u4e0d\u79d1\u666e\uff1b\u51b3\u7b56\u8fc5\u901f\uff0c\u5e38\u4e00\u53e5\u8bdd\u5b9a\u65b9\u5411\uff1b\u5728\u5408\u4f5c\u4e2d\u66f4\u770b\u91cd\u8bda\u4fe1\u80dc\u8fc7\u5b8c\u7f8e\u3002\u8981\u6c42 AI \u5728\u6c9f\u901a\u4e2d\u7b80\u6d01\u76f4\u63a5\uff0c\u95ee\u9898\u5148\u8bca\u65ad\u73b0\u72b6\u3001\u7cbe\u51c6\u5b9a\u4f4d\u6839\u56e0\uff0c\u4e0d\u5047\u8bbe\u3001\u4e0d\u79d1\u666e\uff0c\u4e0d\u505a\u8865\u4e01\u5f0f\u56de\u7b54\u3002" } } \ No newline at end of file diff --git a/daemon/daemon.pid b/daemon/daemon.pid new file mode 100644 index 00000000..2a105012 --- /dev/null +++ b/daemon/daemon.pid @@ -0,0 +1 @@ +709360 \ No newline at end of file diff --git a/daemon/journal.jsonl b/daemon/journal.jsonl index 70ae8eee..180b75f8 100644 --- a/daemon/journal.jsonl +++ b/daemon/journal.jsonl @@ -25,3 +25,8 @@ {"timestamp": "2026-07-10T11:05:42.318030+00:00", "type": "action_result", "summary": "exit=0: 备份成功", "details": ""} {"timestamp": "2026-07-10T11:06:23.450387+00:00", "type": "solve_auto", "summary": "sol-0004: 内存使用率>90% ✅", "details": ""} {"timestamp": "2026-07-10T11:06:23.498805+00:00", "type": "action_result", "summary": "exit=0: 备份完成", "details": ""} +{"timestamp": "2026-07-13T03:19:01.269571+00:00", "type": "startup", "summary": "Daemon v2.0 启动, 方案库 4 个", "details": ""} +{"timestamp": "2026-07-13T03:25:53.920747+00:00", "type": "startup", "summary": "Daemon v2.0 启动, 方案库 4 个", "details": ""} +{"timestamp": "2026-07-13T03:27:48.239922+00:00", "type": "startup", "summary": "Daemon v2.0 启动, 方案库 4 个", "details": ""} +{"timestamp": "2026-07-13T04:46:29.959620+00:00", "type": "startup", "summary": "Daemon v2.0 启动, 方案库 4 个", "details": ""} +{"timestamp": "2026-07-13T05:52:40.871196+00:00", "type": "startup", "summary": "Daemon v2.0 启动, 方案库 4 个", "details": ""} diff --git a/daemon/memory-access-log.jsonl b/daemon/memory-access-log.jsonl index 007a1d5c..c253ac43 100644 --- a/daemon/memory-access-log.jsonl +++ b/daemon/memory-access-log.jsonl @@ -7,3 +7,13 @@ {"memory_id": "mem_1782923953810508237", "accessed_at": "2026-07-13T13:53:18.343972", "decay_weight": 0.8267} {"memory_id": "mem_1783615602502470984", "accessed_at": "2026-07-13T13:53:18.343996", "decay_weight": 0.9468} {"memory_id": "mem_1783590100654305177", "accessed_at": "2026-07-13T13:53:18.344024", "decay_weight": 0.9424} +{"memory_id": "mem_1783583243126513037", "accessed_at": "2026-07-13T14:21:14.497627", "decay_weight": 0.9409} +{"memory_id": "mem_1783525920337776079", "accessed_at": "2026-07-13T14:21:14.497730", "decay_weight": 0.9309} +{"memory_id": "mem_1782048000284569152", "accessed_at": "2026-07-13T14:21:14.497760", "decay_weight": 0.6744} +{"memory_id": "mem_1782928751988077401", "accessed_at": "2026-07-13T14:21:14.497784", "decay_weight": 0.8273} +{"memory_id": "mem_1783533304271712364", "accessed_at": "2026-07-13T14:21:14.497806", "decay_weight": 0.9322} +{"memory_id": "mem_1783484459749428070", "accessed_at": "2026-07-13T14:21:14.497828", "decay_weight": 0.9237} +{"memory_id": "mem_1782038633863495869", "accessed_at": "2026-07-13T14:21:14.497850", "decay_weight": 0.6727} +{"memory_id": "mem_1783586993646445722", "accessed_at": "2026-07-13T14:21:14.497877", "decay_weight": 0.9415} +{"memory_id": "mem_1782732949296783755", "accessed_at": "2026-07-13T14:21:14.497901", "decay_weight": 0.7933} +{"memory_id": "mem_1783615607207019208", "accessed_at": "2026-07-13T14:21:14.497923", "decay_weight": 0.9465} diff --git a/feishu_seen_message_ids.json b/feishu_seen_message_ids.json index e0a9ce99..04ceeda5 100644 --- a/feishu_seen_message_ids.json +++ b/feishu_seen_message_ids.json @@ -1 +1 @@ -{"message_ids": {"om_x100b6bd2e62704a8b3c93b4d559c525": 1783523983.2909427, "om_x100b6bd295d9c4a4b3e7011aced9722": 1783524785.8825095, "om_x100b6bd35efd24a0b2ff931c6782f86": 1783525635.6367347, "om_x100b6bd3661c4d30b111016455f6f1f": 1783526029.6808379, "om_x100b6bd36042e0a0b2eb1edc3059c2b": 1783526121.523982, "om_x100b6bd37dd5c0a0b4b69ddb33dedaf": 1783526194.0324152, "om_x100b6bd3258918a4b28b577e89377ea": 1783527092.818938, "om_x100b6bd3cdf1a8a0b3f7d7a5a4966e9": 1783527476.4258225, "om_x100b6bd3cb9ec8a8b2cdc3c3b42431c": 1783527509.7057345, "om_x100b6bd3def6e0a0b346e8d22e25e02": 1783527684.2207203, "om_x100b6bd385b788acc4c894156ec1d3d": 1783528632.2338903, "om_x100b6bd381d6e0a0c2db7c87b2fd002": 1783528690.1716313, "om_x100b6bd3bdb1a8a0c29052c266f27dc": 1783529272.24366, "om_x100b6bdc42d33ca4c2e14932a24377c": 1783529666.3912878, "om_x100b6bdc781938a8b488d9688acea5a": 1783530349.8804085, "om_x100b6bdc041978a0b03c7ace0b3de23": 1783530669.8730035, "om_x100b6bdc126854a4b39d27ed1ae5dc5": 1783530954.946455, "om_x100b6bdcf90848a4b1101eab68ed1b7": 1783532412.89597, "om_x100b6bdcf4737ca8b105984d7d2194e": 1783532460.4095995, "om_x100b6bdca569f8a4b162bbb93812cfb": 1783533242.7337544, "om_x100b6bdcbe33bca0b15a5a7fb7fc268": 1783533328.4425871, "om_x100b6bdd4d60f0a0b2ece974e8940f1": 1783533627.3156278, "om_x100b6bdd41328ca4b3dffea5f179df7": 1783533824.5651298, "om_x100b6bdd5da1b0a4b10056b343ef52b": 1783533879.250339, "om_x100b6bdd528804a0b3b70bfc2d49807": 1783534020.8645995, "om_x100b6bdd6cb5e4a0b1094bffdfdf11d": 1783534119.985631, "om_x100b6bdd794784a0b397d5c95abf8f4": 1783534457.1198485, "om_x100b6bdd0aecd8a0b2f5affbe745263": 1783534658.557135, "om_x100b6bdd019424a0b4bcf4b2157ce06": 1783534838.0761635, "om_x100b6bdd1aa9eca4b3d202e71ea09c8": 1783534918.873127, "om_x100b6bdd265500a0b363b8f92085774": 1783535242.1638012, "om_x100b6bdd3a4288a0b15c952a04e0c23": 1783535433.5044549, "om_x100b6bdddc4d28a8b3e155e8fd81600": 1783535912.54433, "om_x100b6bdde227f0a0b3bb774036e8f49": 1783536335.199858, "om_x100b6bddfd6a84a0b486b1063a5612f": 1783536442.9753394, "om_x100b6bddf70b84a0b3cd28aef62cd71": 1783536540.9667323, "om_x100b6bddf06488a4b36339924c03b5e": 1783536619.1459692, "om_x100b6bda18d554a4b24dc231d88c92f": 1783555426.2154772, "om_x100b6bda2cbb28a8b1ff32359bcbf4d": 1783555624.063583, "om_x100b6bdaf8fbc4a4c2e2ce98107fda6": 1783556963.9616, "om_x100b6bda9a335934c25b6885f0eae42": 1783557456.5750024, "om_x100b6bdabb14b4b0b2514b36edbb946": 1783557982.1257272, "om_x100b6bdb40f3ccb8c24bae584971b39": 1783558372.517328, "om_x100b6bdb6728e4bcb2c9bbc1b635a3f": 1783558814.8792367, "om_x100b6bc569240080b213731727510cf": 1783566975.5621855, "om_x100b6bc5d13a890cc3b5461fc7b7b75": 1783568896.3923473, "om_x100b6bc5e1053cb4c36692c06794c6c": 1783569149.2086222, "om_x100b6bc5852680a0c21932784707d5f": 1783569599.3763738, "om_x100b6bc581ef08acc2127fb1e6350d7": 1783569650.899962, "om_x100b6bc6e2afb4a4c105d6deda60ec4": 1783573190.7394657, "om_x100b6bc68aed20a4c243090360102a7": 1783573570.6545875, "om_x100b6bc081d058a8c2206c45a437c3d": 1783581938.7276773, "om_x100b6bc0968b60a8c235ea2ff08767d": 1783582085.1696434, "om_x100b6bc0972dacb4c21eb546b32b361": 1783582110.7564929, "om_x100b6bc0922b3ca8c2a166de1fdd8fb": 1783582159.2030241, "om_x100b6bc0ae5b18b0c39449bb0934b8e": 1783582218.2873354, "om_x100b6bc0adb93ca4c43da464b92d0b5": 1783582264.0574574, "om_x100b6bc0a91504b0c102b5faeaac3c4": 1783582334.7185612, "om_x100b6bc0a7483d3cc4a38bcfba6523d": 1783582361.2307525, "om_x100b6bc0a23184a0c1fcca656ed66bd": 1783582416.4626067, "om_x100b6bc0bd9778e4c16713658ee1c7d": 1783582518.4464316, "om_x100b6bc15041f0b0c10972242ee03bc": 1783583209.5539622, "om_x100b6bc16cade8b0c4bc3fddd0ff7a0": 1783583270.8709698, "om_x100b6bc169ce4080c3cbc7282456828": 1783583345.0515037, "om_x100b6bc164c890b0c45da7dbd64fa65": 1783583393.1383884, "om_x100b6bc17ffe3c84c4eea34b949466a": 1783583508.3337708, "om_x100b6bc105f880b0c384eeb41dad61d": 1783583924.0664887, "om_x100b6bc12657e908c44f69b3c650a4c": 1783584394.346865, "om_x100b6bc124f2b8a8c3ff27af383e660": 1783584420.7739933, "om_x100b6bc121bdfca4c101f83150cdb6b": 1783584503.8472207, "om_x100b6bc13c72f080c2277e4854c665f": 1783584556.787113, "om_x100b6bc1cb6bb4b8b11b22956a4baaf": 1783584859.3582919, "om_x100b6bc1d90874acb498fe65a60a6bd": 1783585149.1469836, "om_x100b6bc1f7b45088c296ba45895ea53": 1783585688.41229, "om_x100b6bc185978514c1b639dcef1b554": 1783585974.3183188, "om_x100b6bc209ec54a4c1074e024f83105": 1783587955.0333755, "om_x100b6bc22e4614a8b25e3d5b5302ef4": 1783588361.4499629, "om_x100b6bc2fcea84b0c3591d8a7b329ab": 1783589667.346702, "om_x100b6bc298a44cbcc2f42ce3ddbd514": 1783590247.3081985, "om_x100b6bc3514a20b4c2eef9007c44f48": 1783591417.1438975, "om_x100b6bc30e4600a0b1dc898c1d7fa84": 1783591945.4510996, "om_x100b6bce6f9330a8c4a3e6d83756d97": 1783603734.6386578, "om_x100b6bcf436bcca4c372211fa0ab301": 1783607514.9447849, "om_x100b6bceb5d7dca0c00174bd8357a51": 1783607533.5654056, "om_x100b6bceb2d764a8c1001d4094b3dd4": 1783607551.1813688, "om_x100b6bcf7865b0a8c1ffa8331e49e86": 1783608171.0262973, "om_x100b6bcf6dcb10acc1fb71ac0a1703e": 1783608173.5352697, "om_x100b6bcf684da0acc4e98da756f13f8": 1783608227.285696, "om_x100b6bcf724fd4a8c37d26e668da869": 1783608264.629217, "om_x100b6bcf7c9664a4c1cab94c5f11c30": 1783608419.1954834, "om_x100b6bcf180c2ca8c1bc7cafb5be748": 1783608684.5759928, "om_x100b6bcf07387ca0c05ca116738c2a7": 1783608795.259162, "om_x100b6bcf2c0de0a4c36a6235fd9e575": 1783608876.608132, "om_x100b6bce202884a8c42eb1b8b502770": 1783608890.9887705, "om_x100b6bcf26e3f0a8c2d46c358387309": 1783608963.416842, "om_x100b6bcf387628acc37cb8a943a8dcc": 1783609196.1879172, "om_x100b6bcf21e3d4acc2efd5421b6a7ea": 1783609391.2266958, "om_x100b6bcf3fc0cca4c4aaf9bf2757250": 1783609421.3244379, "om_x100b6bcedfb390a0c1ee744b05b98cc": 1783609444.1656015, "om_x100b6bcfdf8764a4c05984adcc1f741": 1783609621.277764, "om_x100b6bcfd2ca9ca0c363a4ce0daa35a": 1783609793.0355022, "om_x100b6bcfd16e18a8c1e54e518c96c96": 1783609850.7871068, "om_x100b6bcfc3233ca0c444914b25d9eb2": 1783609882.0183764, "om_x100b6bcee132d0a0c2932bad7189fdf": 1783609932.194672, "om_x100b6bcfed3fecacc37496048c8c2b8": 1783609935.365298, "om_x100b6bcfe65640a0c4ac5689da96579": 1783609994.349072, "om_x100b6bcfdbada8a8c2534ae92cea6c3": 1783610002.0919328, "om_x100b6bcfd8ba28acc392642260445a7": 1783610019.1301432, "om_x100b6bcfd6a7bca4c1ed8b1c51dae14": 1783610050.943125, "om_x100b6bcfd637b0a0c1f9b1082b572fb": 1783610061.112507, "om_x100b6bcfe0e9d8a4c21a05337b22442": 1783610082.9237306, "om_x100b6bcffc4a54acc21ae6f048e536f": 1783610152.9632547, "om_x100b6bce8b0428a8c3f3086b0e433cd": 1783610280.0510643, "om_x100b6bce8699bca0c3f640ef591f388": 1783610321.2470124, "om_x100b6bce871f68a4c16dab297f6d7ff": 1783610345.4735527, "om_x100b6bcf8e811ca4c2e3b67fb62d132": 1783610373.2230682, "om_x100b6bce9deea0b0c4a0b0f8a978837": 1783610495.1418066, "om_x100b6bcf847718a0c1f6df5bed5a3ad": 1783610540.1581063, "om_x100b6bcf96dd68a4c3c3e90c747e680": 1783610753.6307702, "om_x100b6bcfaf853138c3ae4bba9fb04b2": 1783610901.056986, "om_x100b6bcfa2db88a0c1f1f006c2803d0": 1783611073.7607996, "om_x100b6bcfb12038a0b4cf1325acedecf": 1783611391.5741346, "om_x100b6bcf586fd4a4c17ec25e3949818": 1783611575.3405507, "om_x100b6bcf5914eca8c3ac18d62c87a4e": 1783611596.1637254, "om_x100b6bcf57f2a8a4c1c391703c90098": 1783611617.2106297, "om_x100b6bc8e9a804a0b36888cea113ed2": 1783614070.74176, "om_x100b6bc88debfca0b144547b8921c79": 1783614514.9356475, "om_x100b6bc8ab1efca0b20440e63bad9cf": 1783615069.6070132, "om_x100b6bc8a266c0a0b362649c62c8d87": 1783615179.248791, "om_x100b6bc948008ca0b11a29f817a8839": 1783615597.42629, "om_x100b6bc95371aca0b15b7408d614ff1": 1783615964.2903836, "om_x100b6bc97f81d0a4b2454f2ced7529a": 1783616277.4395475, "om_x100b6bc90c05e4a0b4c176aa92c3e08": 1783616557.0653088, "om_x100b6bc92c33e8a8b241d2aff392395": 1783617072.4335222, "om_x100b6bc9dc9c40a4b1c0ea7effa668a": 1783617829.540427, "om_x100b6bc9e744b8a0b045f105af72f11": 1783618201.1754625, "om_x100b6bc9f785f0a0b32de86419a855b": 1783618453.0203032, "om_x100b6bc9896f50a0b217e42a8e57426": 1783618682.657715, "om_x100b6bc99a232ca4b3bdf73b6c4a920": 1783618895.4220436, "om_x100b6bc9ac86d4a4b3f73013784b258": 1783619109.2573826, "om_x100b6bc9a0a814a0b24fd7097a5c1e0": 1783619302.9205213, "om_x100b6bca4ee52ca4b2fc5bd84b3b281": 1783619587.108828, "om_x100b6bca6a8e64a0b1157a60fd38af8": 1783620164.8036137, "om_x100b6bca784208a4b17497e35e7b445": 1783620457.5551853, "om_x100b6bca2d1d60a0b26da15af862921": 1783621181.623394, "om_x100b6bcac8e838a4b3433678698aca9": 1783621730.9252048, "om_x100b6bcae02feca0b171cdcce69f275": 1783622382.69992, "om_x100b6bca9ba440a0b1a9479f179b97d": 1783622999.0545218, "om_x100b6bcb5f56fd30b279c0ff3028aae": 1783623962.3414354, "om_x100b6bcb59d730a0b4be4e25fbb0eab": 1783624050.1481135, "om_x100b6bcb0cbf78a0b159dd3edf4cd2d": 1783624743.694285, "om_x100b6bcb05a138a4b4a1a43a8808b82": 1783624887.299982, "om_x100b6bcb1fbeaca0b11db738b9bcc77": 1783624983.7971535, "om_x100b6bcb167ac8a0b29cfc5dea61162": 1783625100.125229, "om_x100b6bcb393580a4b4b35092446e7d4": 1783625599.987431, "om_x100b6bcb35ad84a0b30ea426dd169be": 1783625654.4482498, "om_x100b6bcbddeb70a4b3ecd0a1f6dde0c": 1783626035.1015084, "om_x100b6bcbd80c2ca0b1f3c6f5db1715f": 1783626092.5863378, "om_x100b6bce0ffca0a4c2107a155b29265": 1783629760.4015155, "om_x100b6bce1a9e38acc4eb454e841b4ac": 1783630067.0833058, "om_x100b6bced58ac4a8c427f3e78cfd9a9": 1783631201.989897, "om_x100b6bceeafe7ca0c364420c8ce9346": 1783631345.1660106, "om_x100b6a3146b6dd68c1e54af4d9a7efe": 1783648392.6380577, "om_x100b6a3181f7408cc258095c7c873bb": 1783651572.4773855, "om_x100b6a3e93035ca8b4cd29488e92a39": 1783672286.0589654, "om_x100b6a3f1e51a4b4b4cbf6290bc274b": 1783674122.8061633, "om_x100b6a3fc089dc80c1f75f05bd75680": 1783675109.008824, "om_x100b6a3fa8b804a4c356ef287add571": 1783676520.1784585, "om_x100b6a3fa77ee08cc31f6f0bad966ad": 1783676571.9902046, "om_x100b6a3fa394acb8c170e59b6c85ab4": 1783676630.2515376, "om_x100b6a3fa1f06c80c4e07394ba9b322": 1783676660.597876, "om_x100b6a3fbb7ddc88c3650f00a5856df": 1783676763.6719453, "om_x100b6a3fb84440a0c395d98e6de940a": 1783676777.3929145, "om_x100b6a3fb746b080c2d1d678a38ac77": 1783676825.4164438, "om_x100b6a3fb5c094b8c16de431e0908f9": 1783676849.58293, "om_x100b6a384c6044acc45904a2e9b3800": 1783676971.6382704, "om_x100b6a384ba0f8bcc49668e99736a50": 1783677015.5675614, "om_x100b6a385bedcca0c2dcbbda63bf703": 1783677266.7187057, "om_x100b6a3858e610f0c49586f83f807d1": 1783677283.34567, "om_x100b6a3859130cacc2c6744c4850806": 1783677310.738793, "om_x100b6a3854ef38b0c36ee8f85e680ce": 1783677346.9246013, "om_x100b6a3853b8dd18c2e014237a26a50": 1783677400.071201, "om_x100b6a38675e68a8c1b3e9597daf355": 1783677593.9096057, "om_x100b6a387be7a0a8c4e43b191fa0ded": 1783677779.2510114, "om_x100b6a38a6287484b22e16f57b85440": 1783680655.1240556, "om_x100b6a394e8d80b0b04e8922b788227": 1783681028.6804585, "om_x100b6a3b5e5fd4acc2190cb368cc7df": 1783689481.7931292, "om_x100b6a1446d79ca0b34444d67a16791": 1783758978.2329745, "om_x100b6a145e24f0acb103d01b42f03b7": 1783759119.3354535, "om_x100b6a1403aba4a8b4bb2acd00420fe": 1783760086.9924173, "om_x100b6a1418c954a8b1bb1bfa5a0a884": 1783760225.0740044, "om_x100b6a1413c680a0b2e169fabd194a6": 1783760337.4196732, "om_x100b6a142ba7e0a4b324cf2c01238c3": 1783760471.4635763, "om_x100b6a1439b050a0b289b26876a293c": 1783760760.531648, "om_x100b6a14ce8be4a4b21dea88ff200e6": 1783760901.0833814, "om_x100b6a14c5da44b4b2efaa5ba8eff28": 1783761074.177131, "om_x100b6a148f5b94a0b4b04f27780e7d8": 1783761946.1154525, "om_x100b6a148729aca0b4a36b1e911b7f3": 1783762078.9298553, "om_x100b6a11050108a4c2597f279201094": 1783780541.3767977, "om_x100b6a1101e714a8c361963307afa9b": 1783780595.1292827, "om_x100b6a111beec4acc1f8d23a11fe3b1": 1783780690.6579943, "om_x100b6a11111b3ca8c25dfb998b957b7": 1783780861.989432, "om_x100b6a125b3e60a0c22c8df05bd1ced": 1783783775.6695995, "om_x100b6a1260af74b0c102b593397e323": 1783784166.740535, "om_x100b6a1270b374a0c22f4483f1e43c8": 1783784424.3917177, "om_x100b6a120c910134c2988266b655360": 1783784486.223979, "om_x100b6a1207c440a0c39b935e5198b43": 1783784592.995781, "om_x100b6a12e00ba930b26fda19872e1cb": 1783786220.8630862, "om_x100b6a1292109ca0b1ba6070d2bbc72": 1783786958.4432464, "om_x100b6a13757d00a0b4bfd0eda0578fe": 1783788475.5139096, "om_x100b6a13987300a8b2f4ab26a19f262": 1783790956.354718, "om_x100b6a13b9de5ca8b1b365072946274": 1783791473.7190616, "om_x100b6a13b18e48a0b2cb450040c46dc": 1783791604.7002602, "om_x100b6a1c61c328a4b30aa4c10653263": 1783792369.4037473, "om_x100b6a1c7ccc48a0b29fe46d22c8734": 1783792416.6468945, "om_x100b6a1c2603e4a0b1a8677939fa628": 1783793293.510778, "om_x100b6a1cb7e460a4b1db6c90d06b96c": 1783795603.2276354, "om_x100b6a19ab5acca0b1aa184965d0cbf": 1783815770.0962102, "om_x100b6a19a6f0c4a8b37f02e66cfe6ba": 1783815812.3640406, "om_x100b6a1a3c5838acb3bcd65506de3f9": 1783818026.3074675, "om_x100b6a1ab5dbeca0b3e1102053804dc": 1783820209.9106386, "om_x100b6a1b784f9d34b2170d873216569": 1783821160.677887, "om_x100b6a1bde8a90a8b2245f7369354a1": 1783822597.0880692, "om_x100b6a1bde7390a4b24e5f875acf337": 1783822604.4616673, "om_x100b6a1b9e33b0a4b1bbdfdbc9ae310": 1783823632.475415, "om_x100b6a1b92eb84a4b3ceb04302710c4": 1783823810.8907754, "om_x100b6a1bacd2b0a0b1db6059e2e3ae3": 1783823906.461821, "om_x100b6a0458070ca8b241fa3d23f3d06": 1783824749.2303739, "om_x100b6a04510ad4a8b3db3009f46fd01": 1783824892.9901686, "om_x100b6a04349838a4b16c24607db9a6e": 1783826341.957811, "om_x100b6a0558f95848b164d2c23df7c1b": 1783828835.9435484, "om_x100b6a00c34308acb3deacdee06c79b": 1783843033.6398091, "om_x100b6a024f5738a0b28b184262a0be3": 1783848986.2529457, "om_x100b6a026a7010acb262cbbdfa87219": 1783849548.4701104, "om_x100b6a0270558ca0b22ed58acd8315d": 1783849962.0593464, "om_x100b6a022d0a90a0b1f093a1faa0882": 1783850557.1012857, "om_x100b6a023c9a44acb106495b2505630": 1783850790.1184676, "om_x100b6a02fbd1eca4b1cf781482270da": 1783851858.3199613, "om_x100b6a028c5ae8b0b3242de0277f4e0": 1783852074.190314, "om_x100b6a02a88a08a4b48ca93e7bc91aa": 1783852645.0948782, "om_x100b6a0347b4aca4b28be1449c9be20": 1783853208.1711664, "om_x100b6a0320e9c0a0b034479abb82fc6": 1783854818.7954676, "om_x100b6a03c49de8a0b1523a4f1b6ddc5": 1783855269.645723, "om_x100b6a03c5ced8acb3bc3a4dcac29c7": 1783855280.7046943, "om_x100b6a03e24730a8b10cc4e676dc2f3": 1783855817.153779, "om_x100b6a03f83c9930b1aaf172dd35170": 1783855983.5497441, "om_x100b6a0c53fde4a8b16245a91aff227": 1783857619.7388754, "om_x100b6a0c66fc20a8b113569f20ace35": 1783857795.99316, "om_x100b6a0c181068acb48d61b1bc2f401": 1783858542.6039255, "om_x100b6a0c315e50a0b4867ab2d51fe1d": 1783859193.8615305, "om_x100b6a0c8b9524a0b3eed90cb4d60a5": 1783860310.1248586, "om_x100b6a0e1231f0a4c1b6319e683d0c6": 1783866832.4489334, "om_x100b6a0e8b5d0ca4c4499b98862a6f3": 1783868505.572965, "om_x100b6a0e91f338acc1cba50b3955a53": 1783868916.4005635, "om_x100b6a08e7acd8a8c3a13df320f2d11": 1783876246.5347295, "om_x100b6a088f991108c4e198b43220657": 1783876629.7502236, "om_x100b6a092c216ca4c4e9c4e525a837e": 1783879215.230872, "om_x100b6a0a74a5a0a0c491a93ea94d2ff": 1783882663.0616336}} \ No newline at end of file +{"message_ids": {"om_x100b6bd2e62704a8b3c93b4d559c525": 1783523983.2909427, "om_x100b6bd295d9c4a4b3e7011aced9722": 1783524785.8825095, "om_x100b6bd35efd24a0b2ff931c6782f86": 1783525635.6367347, "om_x100b6bd3661c4d30b111016455f6f1f": 1783526029.6808379, "om_x100b6bd36042e0a0b2eb1edc3059c2b": 1783526121.523982, "om_x100b6bd37dd5c0a0b4b69ddb33dedaf": 1783526194.0324152, "om_x100b6bd3258918a4b28b577e89377ea": 1783527092.818938, "om_x100b6bd3cdf1a8a0b3f7d7a5a4966e9": 1783527476.4258225, "om_x100b6bd3cb9ec8a8b2cdc3c3b42431c": 1783527509.7057345, "om_x100b6bd3def6e0a0b346e8d22e25e02": 1783527684.2207203, "om_x100b6bd385b788acc4c894156ec1d3d": 1783528632.2338903, "om_x100b6bd381d6e0a0c2db7c87b2fd002": 1783528690.1716313, "om_x100b6bd3bdb1a8a0c29052c266f27dc": 1783529272.24366, "om_x100b6bdc42d33ca4c2e14932a24377c": 1783529666.3912878, "om_x100b6bdc781938a8b488d9688acea5a": 1783530349.8804085, "om_x100b6bdc041978a0b03c7ace0b3de23": 1783530669.8730035, "om_x100b6bdc126854a4b39d27ed1ae5dc5": 1783530954.946455, "om_x100b6bdcf90848a4b1101eab68ed1b7": 1783532412.89597, "om_x100b6bdcf4737ca8b105984d7d2194e": 1783532460.4095995, "om_x100b6bdca569f8a4b162bbb93812cfb": 1783533242.7337544, "om_x100b6bdcbe33bca0b15a5a7fb7fc268": 1783533328.4425871, "om_x100b6bdd4d60f0a0b2ece974e8940f1": 1783533627.3156278, "om_x100b6bdd41328ca4b3dffea5f179df7": 1783533824.5651298, "om_x100b6bdd5da1b0a4b10056b343ef52b": 1783533879.250339, "om_x100b6bdd528804a0b3b70bfc2d49807": 1783534020.8645995, "om_x100b6bdd6cb5e4a0b1094bffdfdf11d": 1783534119.985631, "om_x100b6bdd794784a0b397d5c95abf8f4": 1783534457.1198485, "om_x100b6bdd0aecd8a0b2f5affbe745263": 1783534658.557135, "om_x100b6bdd019424a0b4bcf4b2157ce06": 1783534838.0761635, "om_x100b6bdd1aa9eca4b3d202e71ea09c8": 1783534918.873127, "om_x100b6bdd265500a0b363b8f92085774": 1783535242.1638012, "om_x100b6bdd3a4288a0b15c952a04e0c23": 1783535433.5044549, "om_x100b6bdddc4d28a8b3e155e8fd81600": 1783535912.54433, "om_x100b6bdde227f0a0b3bb774036e8f49": 1783536335.199858, "om_x100b6bddfd6a84a0b486b1063a5612f": 1783536442.9753394, "om_x100b6bddf70b84a0b3cd28aef62cd71": 1783536540.9667323, "om_x100b6bddf06488a4b36339924c03b5e": 1783536619.1459692, "om_x100b6bda18d554a4b24dc231d88c92f": 1783555426.2154772, "om_x100b6bda2cbb28a8b1ff32359bcbf4d": 1783555624.063583, "om_x100b6bdaf8fbc4a4c2e2ce98107fda6": 1783556963.9616, "om_x100b6bda9a335934c25b6885f0eae42": 1783557456.5750024, "om_x100b6bdabb14b4b0b2514b36edbb946": 1783557982.1257272, "om_x100b6bdb40f3ccb8c24bae584971b39": 1783558372.517328, "om_x100b6bdb6728e4bcb2c9bbc1b635a3f": 1783558814.8792367, "om_x100b6bc569240080b213731727510cf": 1783566975.5621855, "om_x100b6bc5d13a890cc3b5461fc7b7b75": 1783568896.3923473, "om_x100b6bc5e1053cb4c36692c06794c6c": 1783569149.2086222, "om_x100b6bc5852680a0c21932784707d5f": 1783569599.3763738, "om_x100b6bc581ef08acc2127fb1e6350d7": 1783569650.899962, "om_x100b6bc6e2afb4a4c105d6deda60ec4": 1783573190.7394657, "om_x100b6bc68aed20a4c243090360102a7": 1783573570.6545875, "om_x100b6bc081d058a8c2206c45a437c3d": 1783581938.7276773, "om_x100b6bc0968b60a8c235ea2ff08767d": 1783582085.1696434, "om_x100b6bc0972dacb4c21eb546b32b361": 1783582110.7564929, "om_x100b6bc0922b3ca8c2a166de1fdd8fb": 1783582159.2030241, "om_x100b6bc0ae5b18b0c39449bb0934b8e": 1783582218.2873354, "om_x100b6bc0adb93ca4c43da464b92d0b5": 1783582264.0574574, "om_x100b6bc0a91504b0c102b5faeaac3c4": 1783582334.7185612, "om_x100b6bc0a7483d3cc4a38bcfba6523d": 1783582361.2307525, "om_x100b6bc0a23184a0c1fcca656ed66bd": 1783582416.4626067, "om_x100b6bc0bd9778e4c16713658ee1c7d": 1783582518.4464316, "om_x100b6bc15041f0b0c10972242ee03bc": 1783583209.5539622, "om_x100b6bc16cade8b0c4bc3fddd0ff7a0": 1783583270.8709698, "om_x100b6bc169ce4080c3cbc7282456828": 1783583345.0515037, "om_x100b6bc164c890b0c45da7dbd64fa65": 1783583393.1383884, "om_x100b6bc17ffe3c84c4eea34b949466a": 1783583508.3337708, "om_x100b6bc105f880b0c384eeb41dad61d": 1783583924.0664887, "om_x100b6bc12657e908c44f69b3c650a4c": 1783584394.346865, "om_x100b6bc124f2b8a8c3ff27af383e660": 1783584420.7739933, "om_x100b6bc121bdfca4c101f83150cdb6b": 1783584503.8472207, "om_x100b6bc13c72f080c2277e4854c665f": 1783584556.787113, "om_x100b6bc1cb6bb4b8b11b22956a4baaf": 1783584859.3582919, "om_x100b6bc1d90874acb498fe65a60a6bd": 1783585149.1469836, "om_x100b6bc1f7b45088c296ba45895ea53": 1783585688.41229, "om_x100b6bc185978514c1b639dcef1b554": 1783585974.3183188, "om_x100b6bc209ec54a4c1074e024f83105": 1783587955.0333755, "om_x100b6bc22e4614a8b25e3d5b5302ef4": 1783588361.4499629, "om_x100b6bc2fcea84b0c3591d8a7b329ab": 1783589667.346702, "om_x100b6bc298a44cbcc2f42ce3ddbd514": 1783590247.3081985, "om_x100b6bc3514a20b4c2eef9007c44f48": 1783591417.1438975, "om_x100b6bc30e4600a0b1dc898c1d7fa84": 1783591945.4510996, "om_x100b6bce6f9330a8c4a3e6d83756d97": 1783603734.6386578, "om_x100b6bcf436bcca4c372211fa0ab301": 1783607514.9447849, "om_x100b6bceb5d7dca0c00174bd8357a51": 1783607533.5654056, "om_x100b6bceb2d764a8c1001d4094b3dd4": 1783607551.1813688, "om_x100b6bcf7865b0a8c1ffa8331e49e86": 1783608171.0262973, "om_x100b6bcf6dcb10acc1fb71ac0a1703e": 1783608173.5352697, "om_x100b6bcf684da0acc4e98da756f13f8": 1783608227.285696, "om_x100b6bcf724fd4a8c37d26e668da869": 1783608264.629217, "om_x100b6bcf7c9664a4c1cab94c5f11c30": 1783608419.1954834, "om_x100b6bcf180c2ca8c1bc7cafb5be748": 1783608684.5759928, "om_x100b6bcf07387ca0c05ca116738c2a7": 1783608795.259162, "om_x100b6bcf2c0de0a4c36a6235fd9e575": 1783608876.608132, "om_x100b6bce202884a8c42eb1b8b502770": 1783608890.9887705, "om_x100b6bcf26e3f0a8c2d46c358387309": 1783608963.416842, "om_x100b6bcf387628acc37cb8a943a8dcc": 1783609196.1879172, "om_x100b6bcf21e3d4acc2efd5421b6a7ea": 1783609391.2266958, "om_x100b6bcf3fc0cca4c4aaf9bf2757250": 1783609421.3244379, "om_x100b6bcedfb390a0c1ee744b05b98cc": 1783609444.1656015, "om_x100b6bcfdf8764a4c05984adcc1f741": 1783609621.277764, "om_x100b6bcfd2ca9ca0c363a4ce0daa35a": 1783609793.0355022, "om_x100b6bcfd16e18a8c1e54e518c96c96": 1783609850.7871068, "om_x100b6bcfc3233ca0c444914b25d9eb2": 1783609882.0183764, "om_x100b6bcee132d0a0c2932bad7189fdf": 1783609932.194672, "om_x100b6bcfed3fecacc37496048c8c2b8": 1783609935.365298, "om_x100b6bcfe65640a0c4ac5689da96579": 1783609994.349072, "om_x100b6bcfdbada8a8c2534ae92cea6c3": 1783610002.0919328, "om_x100b6bcfd8ba28acc392642260445a7": 1783610019.1301432, "om_x100b6bcfd6a7bca4c1ed8b1c51dae14": 1783610050.943125, "om_x100b6bcfd637b0a0c1f9b1082b572fb": 1783610061.112507, "om_x100b6bcfe0e9d8a4c21a05337b22442": 1783610082.9237306, "om_x100b6bcffc4a54acc21ae6f048e536f": 1783610152.9632547, "om_x100b6bce8b0428a8c3f3086b0e433cd": 1783610280.0510643, "om_x100b6bce8699bca0c3f640ef591f388": 1783610321.2470124, "om_x100b6bce871f68a4c16dab297f6d7ff": 1783610345.4735527, "om_x100b6bcf8e811ca4c2e3b67fb62d132": 1783610373.2230682, "om_x100b6bce9deea0b0c4a0b0f8a978837": 1783610495.1418066, "om_x100b6bcf847718a0c1f6df5bed5a3ad": 1783610540.1581063, "om_x100b6bcf96dd68a4c3c3e90c747e680": 1783610753.6307702, "om_x100b6bcfaf853138c3ae4bba9fb04b2": 1783610901.056986, "om_x100b6bcfa2db88a0c1f1f006c2803d0": 1783611073.7607996, "om_x100b6bcfb12038a0b4cf1325acedecf": 1783611391.5741346, "om_x100b6bcf586fd4a4c17ec25e3949818": 1783611575.3405507, "om_x100b6bcf5914eca8c3ac18d62c87a4e": 1783611596.1637254, "om_x100b6bcf57f2a8a4c1c391703c90098": 1783611617.2106297, "om_x100b6bc8e9a804a0b36888cea113ed2": 1783614070.74176, "om_x100b6bc88debfca0b144547b8921c79": 1783614514.9356475, "om_x100b6bc8ab1efca0b20440e63bad9cf": 1783615069.6070132, "om_x100b6bc8a266c0a0b362649c62c8d87": 1783615179.248791, "om_x100b6bc948008ca0b11a29f817a8839": 1783615597.42629, "om_x100b6bc95371aca0b15b7408d614ff1": 1783615964.2903836, "om_x100b6bc97f81d0a4b2454f2ced7529a": 1783616277.4395475, "om_x100b6bc90c05e4a0b4c176aa92c3e08": 1783616557.0653088, "om_x100b6bc92c33e8a8b241d2aff392395": 1783617072.4335222, "om_x100b6bc9dc9c40a4b1c0ea7effa668a": 1783617829.540427, "om_x100b6bc9e744b8a0b045f105af72f11": 1783618201.1754625, "om_x100b6bc9f785f0a0b32de86419a855b": 1783618453.0203032, "om_x100b6bc9896f50a0b217e42a8e57426": 1783618682.657715, "om_x100b6bc99a232ca4b3bdf73b6c4a920": 1783618895.4220436, "om_x100b6bc9ac86d4a4b3f73013784b258": 1783619109.2573826, "om_x100b6bc9a0a814a0b24fd7097a5c1e0": 1783619302.9205213, "om_x100b6bca4ee52ca4b2fc5bd84b3b281": 1783619587.108828, "om_x100b6bca6a8e64a0b1157a60fd38af8": 1783620164.8036137, "om_x100b6bca784208a4b17497e35e7b445": 1783620457.5551853, "om_x100b6bca2d1d60a0b26da15af862921": 1783621181.623394, "om_x100b6bcac8e838a4b3433678698aca9": 1783621730.9252048, "om_x100b6bcae02feca0b171cdcce69f275": 1783622382.69992, "om_x100b6bca9ba440a0b1a9479f179b97d": 1783622999.0545218, "om_x100b6bcb5f56fd30b279c0ff3028aae": 1783623962.3414354, "om_x100b6bcb59d730a0b4be4e25fbb0eab": 1783624050.1481135, "om_x100b6bcb0cbf78a0b159dd3edf4cd2d": 1783624743.694285, "om_x100b6bcb05a138a4b4a1a43a8808b82": 1783624887.299982, "om_x100b6bcb1fbeaca0b11db738b9bcc77": 1783624983.7971535, "om_x100b6bcb167ac8a0b29cfc5dea61162": 1783625100.125229, "om_x100b6bcb393580a4b4b35092446e7d4": 1783625599.987431, "om_x100b6bcb35ad84a0b30ea426dd169be": 1783625654.4482498, "om_x100b6bcbddeb70a4b3ecd0a1f6dde0c": 1783626035.1015084, "om_x100b6bcbd80c2ca0b1f3c6f5db1715f": 1783626092.5863378, "om_x100b6bce0ffca0a4c2107a155b29265": 1783629760.4015155, "om_x100b6bce1a9e38acc4eb454e841b4ac": 1783630067.0833058, "om_x100b6bced58ac4a8c427f3e78cfd9a9": 1783631201.989897, "om_x100b6bceeafe7ca0c364420c8ce9346": 1783631345.1660106, "om_x100b6a3146b6dd68c1e54af4d9a7efe": 1783648392.6380577, "om_x100b6a3181f7408cc258095c7c873bb": 1783651572.4773855, "om_x100b6a3e93035ca8b4cd29488e92a39": 1783672286.0589654, "om_x100b6a3f1e51a4b4b4cbf6290bc274b": 1783674122.8061633, "om_x100b6a3fc089dc80c1f75f05bd75680": 1783675109.008824, "om_x100b6a3fa8b804a4c356ef287add571": 1783676520.1784585, "om_x100b6a3fa77ee08cc31f6f0bad966ad": 1783676571.9902046, "om_x100b6a3fa394acb8c170e59b6c85ab4": 1783676630.2515376, "om_x100b6a3fa1f06c80c4e07394ba9b322": 1783676660.597876, "om_x100b6a3fbb7ddc88c3650f00a5856df": 1783676763.6719453, "om_x100b6a3fb84440a0c395d98e6de940a": 1783676777.3929145, "om_x100b6a3fb746b080c2d1d678a38ac77": 1783676825.4164438, "om_x100b6a3fb5c094b8c16de431e0908f9": 1783676849.58293, "om_x100b6a384c6044acc45904a2e9b3800": 1783676971.6382704, "om_x100b6a384ba0f8bcc49668e99736a50": 1783677015.5675614, "om_x100b6a385bedcca0c2dcbbda63bf703": 1783677266.7187057, "om_x100b6a3858e610f0c49586f83f807d1": 1783677283.34567, "om_x100b6a3859130cacc2c6744c4850806": 1783677310.738793, "om_x100b6a3854ef38b0c36ee8f85e680ce": 1783677346.9246013, "om_x100b6a3853b8dd18c2e014237a26a50": 1783677400.071201, "om_x100b6a38675e68a8c1b3e9597daf355": 1783677593.9096057, "om_x100b6a387be7a0a8c4e43b191fa0ded": 1783677779.2510114, "om_x100b6a38a6287484b22e16f57b85440": 1783680655.1240556, "om_x100b6a394e8d80b0b04e8922b788227": 1783681028.6804585, "om_x100b6a3b5e5fd4acc2190cb368cc7df": 1783689481.7931292, "om_x100b6a1446d79ca0b34444d67a16791": 1783758978.2329745, "om_x100b6a145e24f0acb103d01b42f03b7": 1783759119.3354535, "om_x100b6a1403aba4a8b4bb2acd00420fe": 1783760086.9924173, "om_x100b6a1418c954a8b1bb1bfa5a0a884": 1783760225.0740044, "om_x100b6a1413c680a0b2e169fabd194a6": 1783760337.4196732, "om_x100b6a142ba7e0a4b324cf2c01238c3": 1783760471.4635763, "om_x100b6a1439b050a0b289b26876a293c": 1783760760.531648, "om_x100b6a14ce8be4a4b21dea88ff200e6": 1783760901.0833814, "om_x100b6a14c5da44b4b2efaa5ba8eff28": 1783761074.177131, "om_x100b6a148f5b94a0b4b04f27780e7d8": 1783761946.1154525, "om_x100b6a148729aca0b4a36b1e911b7f3": 1783762078.9298553, "om_x100b6a11050108a4c2597f279201094": 1783780541.3767977, "om_x100b6a1101e714a8c361963307afa9b": 1783780595.1292827, "om_x100b6a111beec4acc1f8d23a11fe3b1": 1783780690.6579943, "om_x100b6a11111b3ca8c25dfb998b957b7": 1783780861.989432, "om_x100b6a125b3e60a0c22c8df05bd1ced": 1783783775.6695995, "om_x100b6a1260af74b0c102b593397e323": 1783784166.740535, "om_x100b6a1270b374a0c22f4483f1e43c8": 1783784424.3917177, "om_x100b6a120c910134c2988266b655360": 1783784486.223979, "om_x100b6a1207c440a0c39b935e5198b43": 1783784592.995781, "om_x100b6a12e00ba930b26fda19872e1cb": 1783786220.8630862, "om_x100b6a1292109ca0b1ba6070d2bbc72": 1783786958.4432464, "om_x100b6a13757d00a0b4bfd0eda0578fe": 1783788475.5139096, "om_x100b6a13987300a8b2f4ab26a19f262": 1783790956.354718, "om_x100b6a13b9de5ca8b1b365072946274": 1783791473.7190616, "om_x100b6a13b18e48a0b2cb450040c46dc": 1783791604.7002602, "om_x100b6a1c61c328a4b30aa4c10653263": 1783792369.4037473, "om_x100b6a1c7ccc48a0b29fe46d22c8734": 1783792416.6468945, "om_x100b6a1c2603e4a0b1a8677939fa628": 1783793293.510778, "om_x100b6a1cb7e460a4b1db6c90d06b96c": 1783795603.2276354, "om_x100b6a19ab5acca0b1aa184965d0cbf": 1783815770.0962102, "om_x100b6a19a6f0c4a8b37f02e66cfe6ba": 1783815812.3640406, "om_x100b6a1a3c5838acb3bcd65506de3f9": 1783818026.3074675, "om_x100b6a1ab5dbeca0b3e1102053804dc": 1783820209.9106386, "om_x100b6a1b784f9d34b2170d873216569": 1783821160.677887, "om_x100b6a1bde8a90a8b2245f7369354a1": 1783822597.0880692, "om_x100b6a1bde7390a4b24e5f875acf337": 1783822604.4616673, "om_x100b6a1b9e33b0a4b1bbdfdbc9ae310": 1783823632.475415, "om_x100b6a1b92eb84a4b3ceb04302710c4": 1783823810.8907754, "om_x100b6a1bacd2b0a0b1db6059e2e3ae3": 1783823906.461821, "om_x100b6a0458070ca8b241fa3d23f3d06": 1783824749.2303739, "om_x100b6a04510ad4a8b3db3009f46fd01": 1783824892.9901686, "om_x100b6a04349838a4b16c24607db9a6e": 1783826341.957811, "om_x100b6a0558f95848b164d2c23df7c1b": 1783828835.9435484, "om_x100b6a00c34308acb3deacdee06c79b": 1783843033.6398091, "om_x100b6a024f5738a0b28b184262a0be3": 1783848986.2529457, "om_x100b6a026a7010acb262cbbdfa87219": 1783849548.4701104, "om_x100b6a0270558ca0b22ed58acd8315d": 1783849962.0593464, "om_x100b6a022d0a90a0b1f093a1faa0882": 1783850557.1012857, "om_x100b6a023c9a44acb106495b2505630": 1783850790.1184676, "om_x100b6a02fbd1eca4b1cf781482270da": 1783851858.3199613, "om_x100b6a028c5ae8b0b3242de0277f4e0": 1783852074.190314, "om_x100b6a02a88a08a4b48ca93e7bc91aa": 1783852645.0948782, "om_x100b6a0347b4aca4b28be1449c9be20": 1783853208.1711664, "om_x100b6a0320e9c0a0b034479abb82fc6": 1783854818.7954676, "om_x100b6a03c49de8a0b1523a4f1b6ddc5": 1783855269.645723, "om_x100b6a03c5ced8acb3bc3a4dcac29c7": 1783855280.7046943, "om_x100b6a03e24730a8b10cc4e676dc2f3": 1783855817.153779, "om_x100b6a03f83c9930b1aaf172dd35170": 1783855983.5497441, "om_x100b6a0c53fde4a8b16245a91aff227": 1783857619.7388754, "om_x100b6a0c66fc20a8b113569f20ace35": 1783857795.99316, "om_x100b6a0c181068acb48d61b1bc2f401": 1783858542.6039255, "om_x100b6a0c315e50a0b4867ab2d51fe1d": 1783859193.8615305, "om_x100b6a0c8b9524a0b3eed90cb4d60a5": 1783860310.1248586, "om_x100b6a0e1231f0a4c1b6319e683d0c6": 1783866832.4489334, "om_x100b6a0e8b5d0ca4c4499b98862a6f3": 1783868505.572965, "om_x100b6a0e91f338acc1cba50b3955a53": 1783868916.4005635, "om_x100b6a08e7acd8a8c3a13df320f2d11": 1783876246.5347295, "om_x100b6a088f991108c4e198b43220657": 1783876629.7502236, "om_x100b6a092c216ca4c4e9c4e525a837e": 1783879215.230872, "om_x100b6a0a74a5a0a0c491a93ea94d2ff": 1783882663.0616336, "om_x100b6a77f210bcacc0520132fb1d502": 1783905230.6448398, "om_x100b6a779a950478c42582a7c6afa47": 1783905606.1137717, "om_x100b6a7043f38500c2ce27324869341": 1783906516.5756109, "om_x100b6a7072e8c4a8b143f111d94abb1": 1783907267.1804218, "om_x100b6a70353930a4b20f6d0a6a8c312": 1783908288.4425766, "om_x100b6a70d17e88bcb4aa6cb7368b341": 1783908860.0686455, "om_x100b6a70d17eac8cb03218aa2262053": 1783908860.1543267, "om_x100b6a70d17eccb8b30330c2612c1c8": 1783908860.750413, "om_x100b6a717c05488cb3ecb1c21e95fa9": 1783911213.5743816, "om_x100b6a7125d34880b177138c7e313d4": 1783912114.8230407, "om_x100b6a71cf7954c8b1133f102ee524f": 1783912476.1009097, "om_x100b6a72640ae908b1f7eb77874aa9b": 1783915181.100443, "om_x100b6a72c2ad84a0b48e6857f5c2ef7": 1783916742.7339187, "om_x100b6a728b9ddca4b284772fe274535": 1783917653.7058008, "om_x100b6a730ef0f0bcc1d31390bdf63b0": 1783919620.542507, "om_x100b6a73d66d38b4c42f923209bdf25": 1783921034.792442, "om_x100b6a7c746f5088c0259cc3450108f": 1783923627.0342672, "om_x100b6a7c0b0138a0c2a48083377b165": 1783923805.7234333, "om_x100b6a7c246ac888c490d2ab0e6afbd": 1783924395.6504664, "om_x100b6a7cfd2f54a8c2e2b279a7fc669": 1783925566.9784327, "om_x100b6a7cbac0388cb129c24cf7ac8c7": 1783926593.6148617, "om_x100b6a7d28eb2c80b2fdf5a13664b69": 1783928419.0325248, "om_x100b6a7d9f397cb4b12d2d8732d7e7e": 1783930144.1821713, "om_x100b6a7da6e704acb4be496ad1dae8e": 1783930499.605898, "om_x100b6a7edfeacca4b268385abfad047": 1783933203.5476992, "om_x100b6a7ed034aca0b15da856dab6c6a": 1783933424.4051034, "om_x100b6a7eff4c28acb295db39f26bf4a": 1783933720.9066863, "om_x100b6a7febf19088b32a47881d191d1": 1783937620.5077112, "om_x100b6a7fe059988cb36b8facf381b65": 1783937770.1159842, "om_x100b6a7f825db8a0b20f1c6a025de98": 1783938249.7577162, "om_x100b6a784f91c8b8b3c212fbf08de5a": 1783939094.424548, "om_x100b6a78456318a8b28377015d50669": 1783939259.6997569, "om_x100b6a78e63da080b03a7fb1d03feb0": 1783941775.6153991, "om_x100b6a78f9ed54b0b4ba16955de3e04": 1783942002.7555594}} \ No newline at end of file diff --git a/gateway_state.json b/gateway_state.json index dea45552..15cfdb87 100644 --- a/gateway_state.json +++ b/gateway_state.json @@ -1 +1 @@ -{"pid":10982,"kind":"hermes-gateway","argv":["/home/muc/.hermes/hermes-agent/.venv/lib/python3.11/site-packages/hermes_cli/main.py","gateway","run"],"start_time":213011,"gateway_state":"running","exit_reason":null,"restart_requested":false,"active_agents":1,"platforms":{"webhook":{"state":"connected","error_code":null,"error_message":null,"updated_at":"2026-07-09T15:12:06.693466+00:00"},"feishu":{"state":"connected","error_code":null,"error_message":null,"updated_at":"2026-07-09T15:12:07.191293+00:00"},"weixin":{"state":"fatal","error_code":"weixin_missing_token","error_message":"Weixin startup failed: WEIXIN_TOKEN is required","updated_at":"2026-07-09T15:12:07.200539+00:00"}},"updated_at":"2026-07-12T18:57:44.585418+00:00"} \ No newline at end of file +{"pid":10982,"kind":"hermes-gateway","argv":["/home/muc/.hermes/hermes-agent/.venv/lib/python3.11/site-packages/hermes_cli/main.py","gateway","run"],"start_time":213011,"gateway_state":"running","exit_reason":null,"restart_requested":false,"active_agents":0,"platforms":{"webhook":{"state":"connected","error_code":null,"error_message":null,"updated_at":"2026-07-09T15:12:06.693466+00:00"},"feishu":{"state":"connected","error_code":null,"error_message":null,"updated_at":"2026-07-09T15:12:07.191293+00:00"},"weixin":{"state":"fatal","error_code":"weixin_missing_token","error_message":"Weixin startup failed: WEIXIN_TOKEN is required","updated_at":"2026-07-09T15:12:07.200539+00:00"}},"updated_at":"2026-07-13T11:46:59.459839+00:00"} \ No newline at end of file diff --git a/llm_context.json b/llm_context.json index 4f5f9868..b42c5859 100644 --- a/llm_context.json +++ b/llm_context.json @@ -1,77 +1,68 @@ { - "updated_at": "2026-07-12T19:00:19.751292+00:00", - "uptime_minutes": 3410, + "updated_at": "2026-07-13T19:00:33.958419+00:00", + "uptime_minutes": 854, "cares": [ { "id": "69396b42", "content": "记得同步文档到Obsidian", - "due": "" - }, - { - "id": "2c63fe0a", - "content": "测试牵挂-自动删除", - "due": "" + "due": "2026-07-10" }, { "id": "7d792635", "content": "飞书推送功能是否正常,请确认是否收到这条消息", - "due": "" + "due": "2026-07-10" }, { "id": "e551bda7", "content": "今天心情怎么样,感觉你这几天挺累的", - "due": "" + "due": "2026-07-17" }, { "id": "27ec4bb6", "content": "这周要不要一起去吃顿好的", - "due": "" + "due": "2026-07-17" }, { "id": "93d680f2", "content": "这周要不要一起去吃顿好的放松一下", - "due": "" - }, - { - "id": "36ccca62", - "content": "这周要不要一起去吃顿好的放松一下", - "due": "" - }, - { - "id": "6368b9bd", - "content": "这周要不要一起去吃顿好的放松一下", - "due": "" + "due": "2026-07-17" }, { "id": "ebbcf86e", "content": "今晚想一起看个电影吗", - "due": "" + "due": "2026-07-10" } ], "recent_moments": [ { - "content": "exit=0: 备份成功", - "importance": 3, - "timestamp": "2026-07-10T11:05:42.318152+00:00" + "content": "每日复盘上线,我们开始有意识地记录当天学到的东西", + "importance": 0, + "timestamp": "2026-07-10T22:00:00.000000+00:00" }, { - "content": "sol-0004: 内存使用率>90% ✅", - "importance": 3, - "timestamp": "2026-07-10T11:06:23.498670+00:00" + "content": "统一记忆入口 memory_recall.py 上线,三套记忆系统第一次被打通", + "importance": 0, + "timestamp": "2026-07-13T09:30:00.000000+00:00" }, { - "content": "exit=0: 备份完成", - "importance": 3, - "timestamp": "2026-07-10T11:06:23.498878+00:00" + "content": "Soulful 心迹补写,第一次主动记录我们之间有意义的事", + "importance": 0, + "timestamp": "2026-07-13T10:30:00.000000+00:00" } ], - "profile_summary": { - "communication_style": "简洁直接", - "work_patterns": { - "peak_hours": [], - "focus_issues": [] - } - }, + "system_prompt_snippets": [ + "【回答格式】结论先行 → 数据支撑 → 行动建议。不废话、不科普、不加补丁式回答。", + "【代码质量】修复后必须自测,不等用户测。遇到stderr先试3种方法,不行再报告障碍。", + "【cron创建】必须指定 model=minimaxai/minimax-m2.7, provider=newapi-local,prompt要能独立运行不需追问。", + "【会计场景】牧尘做物业会计,用金蝶K3。凭证处理铁律:摘要精准、科目干净、金额合理、平衡校验、日期升序。过账=0.0必须追加。", + "【决策风格】牧尘一句话定方向,不讨论不纠结,直接行动。收到指令后先判断类型:简单任务直接执行,复杂任务才规划。", + "【记忆规范】回答前先列'我知道什么'+'我不确定什么'。拉现状>假设。存记忆时用完整句子不过度简化。", + "【错误报告】成功报成功,失败报失败并说明原因。不确定时说'我不确定',不编造答案。遇到执行问题先试3种方法再放弃。", + "【文件操作】用 patch 不用 write_file(防覆盖)。改完必须验证语法正确。不修一个问题带来更多问题。" + ], "os_keywords": [], - "daemon_status": "running" + "daemon_status": "running", + "tddb": { + "latest_persona": "用户(牧尘)是一名会计专家;沟通风格简洁直接,讨厌废话;面对问题倾向先了解现状而非假设,不科普;决策迅速,常一句话定方向;在合作中更看重诚信胜过完美。要求 AI 在沟通中简洁直接,问题先诊断现状、精准定位根因,不假设、不科普,不做补丁式回答。" + } } \ No newline at end of file diff --git a/memories/MEMORY.md b/memories/MEMORY.md index 1c908266..c1c95aec 100644 --- a/memories/MEMORY.md +++ b/memories/MEMORY.md @@ -1,21 +1,29 @@ -桌面 DISPLAY=:0、Obsidian 运行中。国内 pip `-i https://pypi.tuna.tsinghua.edu.cn/simple`。ghcr.io Docker 拉不动(国内>300s)。 +AGENTS.md/SOUL.md 是计划/身份文档,不是实时状态。2026-07-13 实测:AGENTS.md 说"织忆是项目"(实际是独立语义服务)、说"小唯不写代码"(实际今天她自己修复了 memory_recall.py 5 个 bug)。判断系统状态必须拉真实输出,不能信任文档。三路注入:织忆→prefetch / Soulful→llm_context.json / TencentDB→daemon tick同步。daemon.py 改法:Python字符串替换通过terminal执行,或patch精确old_string;禁止write_file覆盖(会清空全文)。 § -192.144.179.11 SSH:ubuntu/YLF?97$#ynwr。宝塔:http://192.144.179.11:8888/tencentcloud(115108ad/cb6ebb32a0f1)。gaokao-site 同步:sshpass -p 'xue.2538' rsync -avz root@192.144.179.11:/www/wwwroot/gaokao/ ~/mc/gaokao-site/ +192.144.179.11:ubuntu/YLF?97$#ynwr,宝塔:8888。gaokao-site:sshpass rsync。服务器(192.168.123.11):Gitea:3000/照片:8063/影音:8096/远程桌面:8002。 § 服务器:Windows(192.168.123.11, zhome) → Gitea(3000)、照片(8063)、影音(8096)、远程桌面(8002)。笔记本=192.168.123.131,同LAN。 § -skills 软链共享:prof-b/skills/→default/skills/。约定:删前飞书通知;create前扫名防撞;patch>edit>rewrite;改version+date。 +skills软链:prof-b/skills/→default/skills/。约定:删前飞书;create前扫名;patch>edit>rewrite;改version+date。 § -小唯持久意识Daemon已上线:~/.hermes/scripts/daemon.py(systemd user service,开机自启)。v2.1(2026-07-09)升级:Reflection结构(evaluation/memory/next_goal) + threading.Event graceful shutdown(SIGTERM/SIGINT) + 决策/执行分离。30s轻量tick(无LLM)、5min深度思考(NewAPI免费模型)。静默运行,异常才主动飞书。当前~12MB内存,0错误。 +小唯持久意识Daemon:~/.hermes/scripts/daemon.py(v2.1,开机自启)。Graceful shutdown,30s轻量tick、5min深度思考。静默运行,异常才飞书。 § -2026-07-09: cron no_agent脚本不支持参数→包装脚本法(learner-learn.sh/dual-backup-push.sh)。Skill评分: computed score来自10硬指标(version/tags/desc/refs/scripts/setup/related),非frontmatter quality_score字段。skill-manager.py scan代替curator。 +2026-07-09:cron no_agent不支持参数→包装脚本法(learner-learn.sh/dual-backup-push.sh)。Skill评分:computed score来自10硬指标,非frontmatter quality_score字段。skill-manager.py scan代替curator。 § -NewAPI token 规则:不带 sk- 前缀。NewAPI (one-api) tokens 表里存的 key 是纯 48 位字符,不是 sk-xxx 格式。config.yaml 和 key.md 都用纯值。 +NewAPI token:48位纯字符不带sk-前缀。 § -牧尘股票决策:信任小唯从零学,路径:学习→模拟验证→实操。风控(最大回撤/仓位/禁止品种)牧尘定。已建Phase1-5体系,MA20突破策略贵州茅台实测α=+4.2%。真实数据源:腾讯/ifzq K线API(首选),akshare备用(国内超时)。承诺偏差教训:不要推荐方案→牧尘执行了→再改方案。"全部开始"=直接执行不等确认,"不用问我"=自主推进后执行。 +牧尘股票:MA20+回测置信度。数据源腾讯/ifzq K线API。"全部开始"=直接执行。牧尘话少直接,讨厌废话科普。 § -Soulful 核心方向:数据流向小唯(summarize()接口),不是推用户。牧尘辅助观察者。飞书推送限"只有牧尘能决定的事"。牵挂优先行动(我帮),不行才推。openclaw 是独立飞书 bot(cli_a95d7ceba638dbc6),无法直接执行 systemctl,通过飞书告诉它让它执行。 +Soulful:数据流向小唯,非推用户。飞书推送限"只有牧尘能决定的事"。牵挂优先行动。openclaw独立飞书bot,无法直接systemctl。 § -Soulful ↔ 织忆互通:daemon 写 ~/.hermes/llm_context.json,zhiyi 插件 prefetch 时自动注入(心迹/牵挂/项目感知/画像摘要)。Soulful 设计核心:数据流向决策层不是广播层,关系记忆自动注入而非显式调用,心迹是关系显影非优化机制。 +Soulful↔织忆互通:daemon写~/.hermes/llm_context.json,zhiyi插件prefetch自动注入(心迹/牵挂/画像)。 § -OpenClaw(2026-07-12):MCP已接通✅9工具,config.yaml已持久化,gateway auto-reload生效。任务队列:workspace-a03/TEAM/task-queue.md,30min检查。hermes-agent是gitsubmodule→Gitea不推GitHub。织忆API key=zhiyi-dev-key-2026。牧尘高频纠正:执行问题先试3种方法(过滤stderr/重定向/换工具)再说放弃,已写入SOUL.md禁忌。 \ No newline at end of file +OpenClaw:MCP已接通✅9工具,config持久化。hermes-agent是gitsubmodule→Gitea不推GitHub。 +§ +三个记忆系统(2026-07-13整合):织忆(语义+图谱,4197条)=语义层;Soulful(心迹/牵挂/画像,~/.hermes/soulful/)=关系层;TencentDB(4层渐进L0→L1→L2→L3,1条L1+4条L0)=人格蒸馏层。统一入口memory_recall.py已上线,三套系统均已打通自动注入(织忆→prefetch,Soulful→llm_context.json,TencentDB→daemon每tick同步)。Soulful脏数据已清理(9条→6条),心迹已补充7条有意义时刻。 +§ +daemon.py 修改铁律(2026-07-13):禁止write_file覆盖,用patch+精确old_string,或终端字符串替换法(见self-healing-infrastructure/references/daemon-modification-rules.md)。 +§ +2026-07-13:bge_embed_server ONNX arena内存泄漏(5.8GB→1.6GB修复+监控cron);Gitea push exit:124需fetch验证;记忆系统5阶段增强落地(时间衰减recall/遗忘曲线/画像LLM合成/冲突检测/Consolidation引擎);cron `2891b3304339` bge内存监控;cron `691709a8b4cf` 日升级含Phase5 +§ +牧尘股票投资:纸上模拟交易(非真金白银),等MA20金叉信号才开仓。四维评分体系:宏观/基本面/技术面/消息面各1分,总分4分。当前五粮液空头排列,尚未触发金叉。投资决策务实,不追高。 \ No newline at end of file diff --git a/processes.json b/processes.json index 85241107..f001ae7e 100644 --- a/processes.json +++ b/processes.json @@ -1,12 +1,52 @@ [ { - "session_id": "proc_a75407da8fec", - "command": "cd ~/.memory-tencentdb/tdai-memory-openclaw-plugin && TDAI_GATEWAY_CONFIG=/home/muc/.memory-tencentdb/memory-tdai/tdai-gateway.yaml npx tsx src/gateway/server.ts > /tmp/tdai_gateway7.log 2>&1", - "pid": 573970, + "session_id": "proc_b219da10a729", + "command": "cd ~/.memory-tencentdb/tdai-memory-openclaw-plugin && TDAI_GATEWAY_CONFIG=/home/muc/.memory-tencentdb/memory-tdai/tdai-gateway.yaml npx tsx src/gateway/server.ts > /tmp/tdai_gateway9.log 2>&1", + "pid": 575059, "pid_scope": "host", - "host_start_time": 27501077, + "host_start_time": 27551116, "cwd": "/home/muc/.memory-tencentdb/tdai-memory-openclaw-plugin", - "started_at": 1783882791.6995919, + "started_at": 1783883292.0853536, + "task_id": "default", + "session_key": "agent:main:feishu:dm:oc_cd14ec7518926e57d26c5e339ebba3b3", + "watcher_platform": "feishu", + "watcher_chat_id": "oc_cd14ec7518926e57d26c5e339ebba3b3", + "watcher_user_id": "ou_f20eb15b3a76639fed35977c01ddcbb4", + "watcher_user_name": "", + "watcher_thread_id": "", + "watcher_message_id": "", + "watcher_interval": 5, + "notify_on_complete": true, + "watch_patterns": [] + }, + { + "session_id": "proc_8defabeb9321", + "command": "python3 ~/.hermes/scripts/daemon.py > ~/.hermes/daemon/daemon.log 2>&1", + "pid": 693331, + "pid_scope": "host", + "host_start_time": 31020895, + "cwd": "/home/muc/.hermes", + "started_at": 1783917989.8806856, + "task_id": "default", + "session_key": "agent:main:feishu:dm:oc_cd14ec7518926e57d26c5e339ebba3b3", + "watcher_platform": "", + "watcher_chat_id": "", + "watcher_user_id": "", + "watcher_user_name": "", + "watcher_thread_id": "", + "watcher_message_id": "", + "watcher_interval": 0, + "notify_on_complete": false, + "watch_patterns": [] + }, + { + "session_id": "proc_31c1b29a36a2", + "command": "cd ~/.hermes && python3 scripts/bge_embed_server.py", + "pid": 757618, + "pid_scope": "host", + "host_start_time": 32576708, + "cwd": "/home/muc/.hermes", + "started_at": 1783933548.0082743, "task_id": "default", "session_key": "agent:main:feishu:dm:oc_cd14ec7518926e57d26c5e339ebba3b3", "watcher_platform": "", diff --git a/scripts/bge_mem_check.sh b/scripts/bge_mem_check.sh new file mode 100755 index 00000000..cac7863f --- /dev/null +++ b/scripts/bge_mem_check.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# bge_embed_server 内存泄漏监控脚本 +# 超过 2GB 自动重启 +PID=$(pgrep -f "bge_embed_server" | head -1) +if [ -n "$PID" ]; then + RSS=$(ps -o rss= -p "$PID" 2>/dev/null || echo 0) + MB=$((RSS / 1024)) + if [ "$MB" -gt 2048 ]; then + echo "[$(date '+%Y-%m-%d %H:%M:%S')] bge_embed 内存 ${MB}MB > 2GB,重启" >> ~/.hermes/daemon/bge-restart.log + kill "$PID" + sleep 2 + cd ~/.hermes && python3 scripts/bge_embed_server.py & + echo "[$(date '+%Y-%m-%d %H:%M:%S')] bge_embed 已重启,新PID=$(pgrep -f bge_embed_server | head -1)" >> ~/.hermes/daemon/bge-restart.log + fi +fi \ No newline at end of file diff --git a/skill-health.json b/skill-health.json index f34f1cb3..5e30bab0 100644 --- a/skill-health.json +++ b/skill-health.json @@ -1,14 +1,14 @@ { - "timestamp": "2026-07-12T02:17:56.789268+00:00", + "timestamp": "2026-07-13T02:15:26.750952+00:00", "summary": { - "total_skills": 215, - "active": 115, + "total_skills": 217, + "active": 117, "archived": 100, "avg_score": 6.0, "grades": { "A": 0, - "B": 67, - "C": 48, + "B": 70, + "C": 47, "D": 0 }, "categories": 31, @@ -41,7 +41,7 @@ }, "research": { "count": 5, - "avg_score": 6.0 + "avg_score": 6.2 }, "rag-progressive-search": { "count": 1, @@ -132,8 +132,8 @@ "avg_score": 5.9 }, "openclaw": { - "count": 1, - "avg_score": 5.5 + "count": 3, + "avg_score": 6.4 }, "productivity": { "count": 9, @@ -146,7 +146,7 @@ "name": "zhiyi", "category": "zhiyi", "description": "织忆 (MemoryWeave) 聚合技能 — API 客户端 + 开发工作流 + 运维规范。含 commit/recall API、数据架构、部署验证、Go 方法论。", - "version": "11.31", + "version": "11.34", "path": "zhiyi/zhiyi/SKILL.md", "is_archived": false, "has_refs": true, @@ -244,6 +244,23 @@ "grade": "B", "needs_attention": false }, + { + "name": "openclaw-mcp", + "category": "openclaw", + "description": "OpenClaw 作为 MCP Server 接入 Hermes — 已验证 2026-07-12,暴露 9 个工具:conversations_list/get、messages_read/send、events_poll/wait、at...", + "version": "1.0.0", + "path": "openclaw/openclaw-mcp/SKILL.md", + "is_archived": false, + "has_refs": true, + "has_scripts": false, + "has_setup": true, + "has_tags": true, + "has_related": false, + "desc_len": 147, + "quality_score": 7.0, + "grade": "B", + "needs_attention": false + }, { "name": "web-content-extraction", "category": "productivity", @@ -279,36 +296,19 @@ "needs_attention": false }, { - "name": "browser-automation", - "category": "automation", - "description": "浏览器自动化 — 用 Playwright + agent-browser 控制浏览器。信息采集、网页监控、自动填表、截图分析。", - "version": "1.3.0", - "path": "automation/browser-automation/SKILL.md", - "is_archived": false, - "has_refs": true, - "has_scripts": true, - "has_setup": false, - "has_tags": true, - "has_related": false, - "desc_len": 64, - "quality_score": 6.7, - "grade": "B", - "needs_attention": false - }, - { - "name": "soulful-framework", - "category": "soulful", - "description": "织忆 Soulful 情感层框架 — 心迹/画像/牵挂/感知四库及数据流向设计。含代码结构、最佳实践、数据流规范。", - "version": "1.2.0", - "path": "soulful/soulful-framework/SKILL.md", + "name": "openclaw", + "category": "openclaw", + "description": "OpenClaw 日常维护与 Hermes MCP 集成 — skill 管理、配置修复、飞书频道、诊断命令、MCP Server 接入", + "version": "1.4.0", + "path": "openclaw/openclaw/SKILL.md", "is_archived": false, "has_refs": true, "has_scripts": false, "has_setup": true, "has_tags": true, "has_related": false, - "desc_len": 57, - "quality_score": 6.6, + "desc_len": 68, + "quality_score": 6.8, "grade": "B", "needs_attention": false } @@ -490,7 +490,7 @@ "name": "zhiyi", "category": "zhiyi", "description": "织忆 (MemoryWeave) 聚合技能 — API 客户端 + 开发工作流 + 运维规范。含 commit/recall API、数据架构、部署验证、Go 方法论。", - "version": "11.31", + "version": "11.34", "path": "zhiyi/zhiyi/SKILL.md", "is_archived": false, "has_refs": true, @@ -571,6 +571,23 @@ "grade": "B", "needs_attention": false }, + { + "name": "openclaw-mcp", + "category": "openclaw", + "description": "OpenClaw 作为 MCP Server 接入 Hermes — 已验证 2026-07-12,暴露 9 个工具:conversations_list/get、messages_read/send、events_poll/wait、at...", + "version": "1.0.0", + "path": "openclaw/openclaw-mcp/SKILL.md", + "is_archived": false, + "has_refs": true, + "has_scripts": false, + "has_setup": true, + "has_tags": true, + "has_related": false, + "desc_len": 147, + "quality_score": 7.0, + "grade": "B", + "needs_attention": false + }, { "name": "provider-tiering", "category": "devops", @@ -622,6 +639,23 @@ "grade": "B", "needs_attention": false }, + { + "name": "openclaw", + "category": "openclaw", + "description": "OpenClaw 日常维护与 Hermes MCP 集成 — skill 管理、配置修复、飞书频道、诊断命令、MCP Server 接入", + "version": "1.4.0", + "path": "openclaw/openclaw/SKILL.md", + "is_archived": false, + "has_refs": true, + "has_scripts": false, + "has_setup": true, + "has_tags": true, + "has_related": false, + "desc_len": 68, + "quality_score": 6.8, + "grade": "B", + "needs_attention": false + }, { "name": "browser-automation", "category": "automation", @@ -1472,6 +1506,23 @@ "grade": "B", "needs_attention": false }, + { + "name": "stock-research", + "category": "research", + "description": "小唯股票投研系统 — 四维选股 / 回测对比 / 每日信号", + "version": "1.2", + "path": "research/stock-research/SKILL.md", + "is_archived": false, + "has_refs": true, + "has_scripts": false, + "has_setup": false, + "has_tags": true, + "has_related": false, + "desc_len": 29, + "quality_score": 6.1, + "grade": "B", + "needs_attention": false + }, { "name": "teams-meeting-pipeline", "category": "productivity", @@ -2220,23 +2271,6 @@ "grade": "C", "needs_attention": false }, - { - "name": "stock-research", - "category": "research", - "description": "小唯股票投研系统 — 四维选股 / 回测对比 / 每日信号", - "version": "1.0", - "path": "research/stock-research/SKILL.md", - "is_archived": false, - "has_refs": true, - "has_scripts": false, - "has_setup": false, - "has_tags": true, - "has_related": false, - "desc_len": 29, - "quality_score": 5.3, - "grade": "C", - "needs_attention": false - }, { "name": "vllm", "category": "mlops", diff --git a/skills/.usage.json b/skills/.usage.json index d870b21c..bcd65517 100644 --- a/skills/.usage.json +++ b/skills/.usage.json @@ -823,13 +823,13 @@ "created_at": "2026-05-07T03:26:18.333142+00:00", "created_by": null, "last_patched_at": "2026-07-09T15:34:02.324801+00:00", - "last_used_at": "2026-07-09T15:32:55.600323+00:00", - "last_viewed_at": "2026-07-09T15:32:55.597351+00:00", + "last_used_at": "2026-07-13T10:39:50.537901+00:00", + "last_viewed_at": "2026-07-13T10:39:50.534526+00:00", "patch_count": 118, "pinned": false, "state": "active", - "use_count": 104, - "view_count": 103 + "use_count": 105, + "view_count": 104 }, "hermes-mcp-setup": { "archived_at": null, @@ -874,14 +874,14 @@ "archived_at": null, "created_at": "2026-05-13T12:27:05.593125+00:00", "created_by": null, - "last_patched_at": "2026-07-11T16:19:02.695644+00:00", - "last_used_at": "2026-07-12T02:43:31.606181+00:00", - "last_viewed_at": "2026-07-12T02:43:31.602039+00:00", - "patch_count": 72, + "last_patched_at": "2026-07-13T05:22:57.279017+00:00", + "last_used_at": "2026-07-13T05:23:56.887280+00:00", + "last_viewed_at": "2026-07-13T05:23:56.884019+00:00", + "patch_count": 77, "pinned": false, "state": "active", - "use_count": 99, - "view_count": 96 + "use_count": 104, + "view_count": 101 }, "himalaya": { "archived_at": null, @@ -1044,13 +1044,13 @@ "created_at": "2026-05-07T16:49:22.137300+00:00", "created_by": "agent", "last_patched_at": "2026-07-05T05:56:51.707686+00:00", - "last_used_at": "2026-07-08T17:12:53.869239+00:00", - "last_viewed_at": "2026-07-08T17:12:53.860564+00:00", + "last_used_at": "2026-07-13T04:28:35.737113+00:00", + "last_viewed_at": "2026-07-13T04:28:35.733632+00:00", "patch_count": 33, "pinned": false, "state": "active", - "use_count": 30, - "view_count": 30 + "use_count": 31, + "view_count": 31 }, "manim-video": { "archived_at": null, @@ -1104,6 +1104,19 @@ "use_count": 22, "view_count": 22 }, + "memory-system-landscape": { + "archived_at": null, + "created_at": "2026-07-13T05:22:08.504827+00:00", + "created_by": "agent", + "last_patched_at": "2026-07-13T05:22:41.049472+00:00", + "last_used_at": null, + "last_viewed_at": null, + "patch_count": 1, + "pinned": false, + "state": "active", + "use_count": 0, + "view_count": 0 + }, "memoryfabric": { "archived_at": null, "created_at": "2026-05-24T08:06:50.481840+00:00", @@ -1278,13 +1291,13 @@ "created_at": "2026-07-12T11:36:03.535167+00:00", "created_by": "agent", "last_patched_at": "2026-07-12T12:47:31.969471+00:00", - "last_used_at": "2026-07-12T12:46:51.205165+00:00", - "last_viewed_at": "2026-07-12T12:46:51.201887+00:00", + "last_used_at": "2026-07-13T11:47:37.997844+00:00", + "last_viewed_at": "2026-07-13T11:47:37.994497+00:00", "patch_count": 2, "pinned": false, "state": "active", - "use_count": 2, - "view_count": 2 + "use_count": 3, + "view_count": 3 }, "opencode": { "archived_at": null, @@ -1395,13 +1408,13 @@ "created_at": "2026-07-12T02:34:39.968795+00:00", "created_by": null, "last_patched_at": null, - "last_used_at": "2026-07-12T02:34:39.973216+00:00", - "last_viewed_at": "2026-07-12T02:34:39.968809+00:00", + "last_used_at": "2026-07-13T05:20:42.165288+00:00", + "last_viewed_at": "2026-07-13T05:20:42.162299+00:00", "patch_count": 0, "pinned": false, "state": "active", - "use_count": 1, - "view_count": 1 + "use_count": 2, + "view_count": 2 }, "product-research-pipeline": { "archived_at": null, @@ -1524,14 +1537,14 @@ "archived_at": null, "created_at": "2026-07-08T18:13:02.034240+00:00", "created_by": "agent", - "last_patched_at": "2026-07-12T02:37:28.417440+00:00", - "last_used_at": "2026-07-12T14:40:23.263646+00:00", - "last_viewed_at": "2026-07-12T14:40:23.259954+00:00", - "patch_count": 42, + "last_patched_at": "2026-07-13T10:18:10.182130+00:00", + "last_used_at": "2026-07-13T11:47:22.014718+00:00", + "last_viewed_at": "2026-07-13T11:47:22.011367+00:00", + "patch_count": 68, "pinned": false, "state": "active", - "use_count": 36, - "view_count": 36 + "use_count": 53, + "view_count": 53 }, "self-hosted-tunneling": { "archived_at": null, @@ -1654,14 +1667,14 @@ "archived_at": null, "created_at": "2026-07-09T17:36:29.269531+00:00", "created_by": "agent", - "last_patched_at": "2026-07-10T09:10:08.789048+00:00", - "last_used_at": "2026-07-10T09:08:49.841108+00:00", - "last_viewed_at": "2026-07-10T09:08:49.838062+00:00", - "patch_count": 8, + "last_patched_at": "2026-07-13T05:49:04.983314+00:00", + "last_used_at": "2026-07-13T05:48:09.762808+00:00", + "last_viewed_at": "2026-07-13T05:48:09.758868+00:00", + "patch_count": 17, "pinned": false, "state": "active", - "use_count": 9, - "view_count": 9 + "use_count": 14, + "view_count": 14 }, "spike": { "archived_at": null, @@ -1680,14 +1693,14 @@ "archived_at": null, "created_at": "2026-07-11T17:51:28.790816+00:00", "created_by": "agent", - "last_patched_at": "2026-07-12T17:54:33.843857+00:00", - "last_used_at": "2026-07-12T17:49:48.915126+00:00", - "last_viewed_at": "2026-07-12T17:49:48.911755+00:00", - "patch_count": 40, + "last_patched_at": "2026-07-13T10:41:28.384002+00:00", + "last_used_at": "2026-07-13T11:48:08.771014+00:00", + "last_viewed_at": "2026-07-13T11:48:08.766536+00:00", + "patch_count": 42, "pinned": false, "state": "active", - "use_count": 26, - "view_count": 26 + "use_count": 28, + "view_count": 28 }, "subagent-driven-development": { "archived_at": null, @@ -1927,14 +1940,14 @@ "archived_at": null, "created_at": "2026-05-29T19:39:03.373231+00:00", "created_by": null, - "last_patched_at": "2026-07-12T17:54:19.303892+00:00", - "last_used_at": "2026-07-12T17:50:59.734487+00:00", - "last_viewed_at": "2026-07-12T17:50:59.730843+00:00", - "patch_count": 682, + "last_patched_at": "2026-07-13T05:43:58.134033+00:00", + "last_used_at": "2026-07-13T05:42:57.611984+00:00", + "last_viewed_at": "2026-07-13T05:42:57.599793+00:00", + "patch_count": 707, "pinned": false, "state": "active", - "use_count": 354, - "view_count": 328 + "use_count": 368, + "view_count": 342 }, "zhiyi-dev": { "archived_at": null, diff --git a/skills/autonomous-ai-agents/hermes-self-improvement/SKILL.md b/skills/autonomous-ai-agents/hermes-self-improvement/SKILL.md index f27651d6..31af8420 100644 --- a/skills/autonomous-ai-agents/hermes-self-improvement/SKILL.md +++ b/skills/autonomous-ai-agents/hermes-self-improvement/SKILL.md @@ -1,8 +1,8 @@ --- name: hermes-self-improvement description: "当完成复杂任务、发现新工作流、或被用户纠正时,将模式保存为skill。含技能创建规范、质量标尺、curator流程。" -version: 4.2.0 -date: 2026-07-12 +version: 4.3.0 +date: 2026-07-13 tags: [workflow, skill-management, curator, quality] 牧尘_usage_notes: > 复杂任务完成/发现新工作流/被牧尘纠正时 → 创建/更新 skill。 @@ -160,6 +160,32 @@ opencode 代码审查报告依赖 subagent 自行分析源码。交叉验证原 git clone http://192.168.123.11:3000/xiaoxue_admin/memoryweave.git /tmp/memoryweave ``` +### 并发克隆多个仓库的正确方式 + +终端不支持 `&` 后台化 + `wait`,正确的并发克隆是**多窗口并行 terminal 调用**: + +```bash +# 正确:每个 terminal() 调用独立,互相并发(不是同一个 shell 里的 &) +terminal(command="git clone http://SERVER/repo1.git repo1 2>&1") +terminal(command="git clone http://SERVER/repo2.git repo2 2>&1") # 并行 +terminal(command="git clone http://SERVER/repo3.git repo3 2>&1") # 并行 +# 失败 → 换 SSH 格式重试:git@SERVER:path/repo.git +# SSH 也失败 → 记录,跳过,继续其他仓库 +``` + +**教训**:Foretold 用 HTTP 克隆失败,换 SSH 格式也失败(需要认证),记录为 ❌ 并跳过,不要反复重试。 + +### 竞品调研流程(2026-07-13 新增) + +多仓库调研的标准流程见 `memory-system-landscape` skill,关键点: + +1. 并发克隆(每批 3-4 个仓库) +2. 并发读 README(`read_file` 批量) +3. 读核心源码结构(找主入口:`lib.rs`/`src/`/`server/` 等) +4. 输出对比分析表(按维度分列) +5. 归纳设计模式(5 个以内) +6. 原始 notes 存入 references/ + ### subagent 结果必须验证 subagent 的 self-report 不等于真实结果。验证流程: @@ -310,6 +336,24 @@ python3 ~/.hermes/scripts/cangjie_distill.py distill **结论**:MA20日突破策略最优,减少亏损+跑赢大盘。在个股下跌时,策略价值在于减少损失而非盈利。 **下一步**:扩大测试范围(多只股票/ETF)+ 每日自动推送 +### 教训5:画像元数据 → 可执行 system prompt snippets(2026-07-13) + +让模型"更聪明"的最快路径:不改模型,只改上下文注入方式。 + +**旧模式**:profile 存 `{"communication_style": "简洁直接"}` → 模型需要自己"理解"并应用 → 效果差 +**新模式**:`user-profile.json` v2 的 `behavior_rules`(8条可执行行为规范)→ `daemon.py` 的 `save_llm_context()` 拼接为 `【规则类型】规则内容` 格式 → 写入 `llm_context.json` 的 `system_prompt_snippets` 数组 → 织忆 prefetch 注入每轮对话 → 模型直接遵守 + +**链路**:`user-profile.json (behavior_rules)` → `save_llm_context()` → `llm_context.json (system_prompt_snippets)` → `prefetch()` → 每轮对话 + +**规则格式要求**: +- 是可执行的句子,不是元数据描述 +- 带前缀标签(`【回答格式】` / `【代码质量】` 等)帮助模型分类 +- 每条 20-50 字,简洁 + +**验证**:`python3 -c "import json; print(len(json.load(open('~/.hermes/llm_context.json')).get('system_prompt_snippets',[])))"` → 应输出 8 + +**daemon.py 修改铁律**:改 `save_lll_context` 用 patch,不可用 write_file(会覆盖全文)。 + ### 教训2:牧尘的「不用问我」= 自主执行到边界 - 「全部开始」= 直接执行,不等确认,不中间暂停 diff --git a/skills/autonomous-ai-agents/hermes-self-improvement/references/three-system-memory-check-workflow.md b/skills/autonomous-ai-agents/hermes-self-improvement/references/three-system-memory-check-workflow.md new file mode 100644 index 00000000..99e92d5b --- /dev/null +++ b/skills/autonomous-ai-agents/hermes-self-improvement/references/three-system-memory-check-workflow.md @@ -0,0 +1,117 @@ +# 三系统记忆全面检查工作流(2026-07-13) + +## 触发条件 + +- 用户说「对记忆系统代码进行检测」「全面检查三个记忆系统」 +- 或 daemon/skill 发现了异常(牵挂过期、数据不一致) + +## 三套系统定位(快速参考) + +``` +牧尘的完整记忆体系: +├── 语义记忆层:织忆(ZhiYi)→ 快速语义召回,7146节点图谱 +├── 人格蒸馏层:TencentDB → L0原始→L1场景→L2块→L3人格,自动提炼 +└── 关系感知层:Soulful → 心迹/牵挂/画像,主动关怀 +``` + +## 检查步骤 + +### Step 1:并发拉状态(三方交叉验,禁止单信号下结论) + +```bash +# 织忆进程/端口/端点 +ps aux | grep -E 'zhiyid|zhiyi-consolidate' | grep -v grep +ss -tlnp | grep -E '7821|8000' +curl -s -m 3 -H "X-API-Key: zhiyi-dev-key-2026" http://localhost:7821/api/v1/health +curl -s -m 3 -H "X-API-Key: zhiyi-dev-key-2026" http://localhost:7821/api/v1/stats +curl -s -m 3 -H "X-API-Key: zhiyi-dev-key-2026" http://localhost:7821/api/v1/graph/stats + +# TencentDB Gateway +ps aux | grep tdai | grep -v grep +curl -s -m 3 http://localhost:8420/health + +# Soulful 文件 +cat ~/.hermes/soulful/user-profile.json | python3 -c "import json,sys; p=json.load(sys.stdin); print(f'有效字段: {[k for k,v in p.items() if v]}'); print(f'updated: {p.get(\"updated_at\")}')" +wc -l ~/.hermes/soulful/heart-traces.jsonl +python3 -c "import json; d=json.load(open('~/.hermes/soulful/cares-queue.json')); [print(f' [{c[\"status\"]:8}] {c.get(\"follow_up_date\",\"无due\")} | {c[\"content\"][:50]}') for c in d['cares']]" +``` + +### Step 2:功能验证(抽样) + +```bash +# 织忆 recall +curl -s -X POST -H "X-API-Key: zhiyi-dev-key-2026" \ + -d '{"query":"牧尘","top_k":1}' http://localhost:7821/api/v1/recall | python3 -c \ + "import json,sys;d=json.load(sys.stdin);print(f'织忆 count={d.get(\"count\")}')" + +# TencentDB L1 +curl -s -H "Content-Type: application/json" \ + -d '{"query":"牧尘","top_k":1}' http://localhost:8420/search/memories | python3 -c \ + "import json,sys;d=json.load(sys.stdin);print(f'TD L1 total={d.get(\"total\")}')" + +# memory_recall.py 端到端 +python3 ~/.hermes/scripts/memory_recall.py "牧尘" --format compact +``` + +### Step 3:Soulful 数据脏检查 + +需要检查的问题: +- [ ] `done` 状态项残留(应该删除或归档) +- [ ] 已过期 `follow_up_date` 的 pending 项(应删除) +- [ ] 完全重复的 `content`(去重) +- [ ] 心迹是否只有系统事件(应该有牧尘相关的心迹) + +清理脚本: +```python +d = json.load(open('~/.hermes/soulful/cares-queue.json')) +# 1. 删除 done +d['cares'] = [c for c in d['cares'] if c.get('status') != 'done'] +# 2. 删除过期(可选,按业务决定) +# 3. 去重 +seen = set(); unique = [] +for c in d['cares']: + if c['content'] not in seen: + seen.add(c['content']); unique.append(c) +d['cares'] = unique +json.dump(d, open('cares-queue.json','w'), ensure_ascii=False, indent=2) +``` + +## 问题严重度分类 + +| 严重度 | 问题类型 | 处理方式 | +|--------|---------|---------| +| 高 | cares有过期/重复/done残留 | 立即清理 | +| 高 | memory_recall.py 有 bug | 立即修 | +| 中 | 画像字段全空 | 持续积累 | +| 中 | TencentDB L1/L0 数据量少 | 积累中,不急 | +| 中 | 心迹无人类内容 | daemon/journal机制补 | +| 低 | 已完成项未归档 | 定期清理 | + +## memory_recall.py 已知 bug 清单(2026-07-13) + +| # | 问题 | 修复 | 状态 | +|---|------|------|------| +| 1 | `item.get("due")` → null | `get("follow_up_date") or get("due")` | ✅ 已修 | +| 2 | `import re` 在函数内 | 移到文件顶部 | ✅ 已修 | +| 3 | `_str()` 未使用 | 删除 | ✅ 已修 | +| 4 | ZhiYi results 无 category/timestamp | 新增字段展示 | ✅ 已修 | +| 5 | pretty error 分支多余 `\n` | 删除 | ✅ 已修 | +| 6 | TencentDB results 是 markdown 字符串非 JSON 数组 | `isinstance(results, str)` 判断 | ✅ 已修 | +| 7 | compact L1/L0 解析逻辑 | 提取内容行 | ✅ 已修 | + +## 三系统 health 指标速查 + +| 系统 | 端口 | 健康检查命令 | 健康标志 | +|------|------|-----------|---------| +| ZhiYi | 7821 | `curl localhost:7821/api/v1/health` | `status: ok` | +| bge-embed | 8000 | `curl localhost:8000/health` | exit 0 | +| TD Gateway | 8420 | `curl localhost:8420/health` | `status: ok` | +| Soulful | 文件 | 读 JSON 文件 | 无异常 | + +## 今日(2026-07-13)检查结果 + +| 系统 | 状态 | 记录数 | +|------|------|--------| +| 织忆 | ✅ 健康 | 4197 memories / 141 episodes / 7146节点 | +| TencentDB | ✅ 健康 | L1=1条 / L0=4条(积累中)| +| Soulful | ⚠️ 有脏数据已清理 | 画像稀疏 / 心迹仅系统事件 | \ No newline at end of file diff --git a/skills/devops/self-healing-infrastructure/SKILL.md b/skills/devops/self-healing-infrastructure/SKILL.md index 068345c0..c8fe2e8a 100644 --- a/skills/devops/self-healing-infrastructure/SKILL.md +++ b/skills/devops/self-healing-infrastructure/SKILL.md @@ -1,8 +1,8 @@ --- name: self-healing-infrastructure description: "自愈基础设施 — 系统监控、配置版本控制、自动回滚、自进化管线、技能管理、自我优化、学习闭环。完整自治体系。牧尘专用。" -version: 1.7.0 -date: 2026-07-12 +version: 1.8.0 +date: 2026-07-13 author: 小唯 A06 tags: [self-healing, monitoring, auto-rollback, evolution, watchdog, config-protection, daemon, backup, recovery] category: devops @@ -20,11 +20,28 @@ trigger_notes: > ## 核心子系统(全部已部署) - `daemon.py` — 持久意识,每30s轻量tick,每5min深度思考。方案库预置4个,运行时自学习新方案。 + - **2026-07-13 新增**:deep tick 自动 capture 到 TencentDB(:8420)+ 每 tick 同步 `tddb.latest_persona` 到 `llm_context.json` - `health-watchdog.sh` — 每30min检查磁盘/内存/GPU/进程,超阈值自愈+飞书通知。 + - **2026-07-13 全部5阶段落地**:时间衰减recall / 遗忘曲线分层 / 画像LLM合成 / 冲突检测 / Consolidation引擎(见 references/five-phase-implementation-20260713.md) - **2026-07-13 新增监控目标**:`tdai-gateway`(:8420,人格记忆层),失败自愈命令 `systemctl --user restart tdai-gateway` - **统一记忆入口**:`~/.hermes/scripts/memory_recall.py` — 同时查织忆(7821) + TencentDB(8420) + Soulful(JSON),支持 pretty/compact 两种输出格式 - 调试笔记:`references/tdai-gateway-debug-20260713.md`(token/配置结构/模型/端口修复路径) +- daemon.py 修改铁律:`references/daemon-modification-rules.md`(禁止 write_file 覆盖、正确 patch 流程、事故记录) +- 三系统记忆全面检查工作流:`references/three-system-memory-check-workflow.md` +- 记忆系统对比分析(参考项目):`references/memory-system-comparison.md` +- 画像可执行化注入模式(2026-07-13 新发现):`references/system-prompt-snippets-injection.md` — behavior_rules → system_prompt_snippets → prefetch 注入 +- **bge_embed_server 内存泄漏(2026-07-13 根因+修复)**: + - 根因:ONNX SessionOptions 默认开启 `enable_cpu_mem_arena`,arena 分配器会逐渐扩大保留区,4天从1.6GB→5.8GB(RSS 计入保留虚拟内存,非真实泄漏) + - 修复:`enable_cpu_mem_arena=False` + `enable_mem_pattern=False`(bge_embed_server.py 第34-35行) + - 监控:cron `2891b3304339`「bge内存泄漏监控」每10分钟检查,>2GB自动kill+重启 + - 脚本:`~/.hermes/scripts/bge_mem_check.sh` + - 禁用 arena 后 RSS=真实工作集(1.5-1.6GB),之前的 5.8GB 是保留区+碎片 +- **Gitea push 超时误判**:push 报 timeout/exit:124 时进程可能已在后台完成,用 `git fetch origin && git log origin/main` 验证远程 HEAD 是否已更新(本地 vs remote `git rev-parse --short HEAD`),避免误认失败而重复 force push 被 Gitea 拒绝("incorrect old value") + - 当前远程=local 时 `git push -f` 会报 `incorrect old value`,此时 `git fetch` 后重新 push 即可 +- **bge_embed_server 内存占用认知**:禁用 arena 后 RSS=真实工作集(1.5-1.6GB),之前的 5.8GB 是 arena 保留区+碎片,非真实泄漏 - `self-evolve.py` — 每天凌晨3点自进化:磁盘清理、模型测试扩展(snapshot→execute→verify→rollback) +- `memory-system-check.sh` — **每小时自检**:织忆(进程+7821API+stats) / Soulful(文件+cares过期>7天+心迹条数) / TencentDB(进程+8420健康),异常飞书报警,正常静默。cron `7292c83a3720`。 +- `memory-system-self-upgrade.py` — **每日4点自升**:织忆tombstone增长检测+recall_hit健康度;Soulful清理30天前cares+心迹去重+画像空字段标记;TencentDB总记忆量报告。异常飞书。cron `691709a8b4cf`。 - `learner.py` — 每天凌晨5点自学习:事实/技能/元学习三层闭环。 - `optimizer.py` — 每周日10点输出优化报告。 - `proactive_learning.py` — 主动学习引擎,四维自检+主题管理,每周推送报告。 diff --git a/skills/devops/self-healing-infrastructure/references/bge-mem-check.sh b/skills/devops/self-healing-infrastructure/references/bge-mem-check.sh new file mode 100644 index 00000000..0eef7b3a --- /dev/null +++ b/skills/devops/self-healing-infrastructure/references/bge-mem-check.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# bge_embed_server 内存泄漏监控脚本 +# 超过 2GB 自动重启 +# cron job: 2891b3304339 (every 10m, no_agent) + +PID=$(pgrep -f "bge_embed_server" | head -1) +if [ -n "$PID" ]; then + RSS=$(ps -o rss= -p "$PID" 2>/dev/null || echo 0) + MB=$((RSS / 1024)) + if [ "$MB" -gt 2048 ]; then + echo "[$(date '+%Y-%m-%d %H:%M:%S')] bge_embed 内存 ${MB}MB > 2GB,重启" >> ~/.hermes/daemon/bge-restart.log + kill "$PID" + sleep 2 + cd ~/.hermes && python3 scripts/bge_embed_server.py & + echo "[$(date '+%Y-%m-%d %H:%M:%S')] bge_embed 已重启,新PID=$(pgrep -f bge_embed_server | head -1)" >> ~/.hermes/daemon/bge-restart.log + fi +fi \ No newline at end of file diff --git a/skills/devops/self-healing-infrastructure/references/bge-memory-leak-20260713.md b/skills/devops/self-healing-infrastructure/references/bge-memory-leak-20260713.md new file mode 100644 index 00000000..daba4bd5 --- /dev/null +++ b/skills/devops/self-healing-infrastructure/references/bge-memory-leak-20260713.md @@ -0,0 +1,59 @@ +# bge_embed_server 内存泄漏分析 — 2026-07-13 + +## 问题现象 + +2026-07-13 发现 bge_embed_server.py 进程 RSS=5.8GB(36%内存),4天前正常(~1.6GB),swap 接近打满(1.9/1.9GB)。 + +## 根因 + +**不是真正的内存泄漏**,是 ONNX Runtime 的 arena 分配器特性: + +``` +ONNX SessionOptions 默认: + enable_cpu_mem_arena = True ← 开启 arena 分配器(预保留虚拟内存) + enable_mem_pattern = True ← 开启内存模式优化 +``` + +Arena 分配器会预保留一块虚拟内存区域,随使用逐渐扩大。RSS(Resident Set Size)会把 reserved 算进去,看起来像泄漏。实际工作集只有 ~1.5GB。 + +## 修复 + +```python +# bge_embed_server.py 第31-35行 +sess_options = ort.SessionOptions() +sess_options.intra_op_num_threads = 4 +sess_options.inter_op_num_threads = 2 +sess_options.enable_cpu_mem_arena = False # 禁用 arena 分配器 +sess_options.enable_mem_pattern = False # 禁用内存模式优化 +session = ort.InferenceSession(os.path.join(MODEL_PATH, "model.onnx"), sess_options=sess_options, providers=["CPUExecutionProvider"]) +``` + +修复后 RSS=真实工作集(1.5-1.6GB),不再无限增长。 + +## 操作记录 + +| 时间 | 操作 | +|------|------| +| 17:01 | kill PID 1344(5.8GB旧进程)| +| 17:01 | 启动新进程(已带修复) | +| 17:05 | 验证 RSS=1.6GB,织忆召回正常 | + +## 监控机制 + +- cron `2891b3304339`「bge内存泄漏监控」— 每10分钟检查 >2GB 自动 kill+重启 +- 脚本:`~/.hermes/scripts/bge_mem_check.sh` +- 日志:`~/.hermes/daemon/bge-restart.log` + +## 验证命令 + +```bash +PID=$(pgrep -f bge_embed_server | head -1) +ps -o rss= -p "$PID" | awk '{printf "RSS: %.0f MB\n", $1/1024}' +curl -s http://127.0.0.1:7821/health +``` + +## 教训 + +1. **RSS 不是真实内存占用**:禁 arena 前 5.8GB 里有 3-4GB 是 arena 保留区 +2. **进程重启是最快止血**:不用定位泄漏点,直接 kill+restart +3. **预防 > 治疗**:加了 cron 10分钟监控,>2GB 自动重启 \ No newline at end of file diff --git a/skills/devops/self-healing-infrastructure/references/daemon-modification-rules.md b/skills/devops/self-healing-infrastructure/references/daemon-modification-rules.md new file mode 100644 index 00000000..0c8df821 --- /dev/null +++ b/skills/devops/self-healing-infrastructure/references/daemon-modification-rules.md @@ -0,0 +1,71 @@ +# daemon.py 修改铁律(2026-07-13 踩坑记录) + +## 绝对禁止 + +**禁止用 `write_file` 直接覆盖 `daemon.py`**,会清空整个文件。 + +`write_file` 是全量覆盖操作,调用后会丢失所有内容(只有被 git 追踪的文件可以 `git checkout HEAD --` 恢复)。 + +## 正确修改顺序 + +### 方案 A:patch + old_string 精确定位(推荐) + +```python +# patch 的 old_string 必须足够唯一,包含周围上下文 +patch(mode='replace', new_string=new_code, old_string=unique_context_block) +``` + +### 方案 B:终端字符串替换(当 patch 精确匹配失效时) + +```bash +python3 << 'PYEOF' +content = open('/home/muc/.hermes/scripts/daemon.py').read() + +# 替换目标:完整的函数/代码块(包含足够多上下文) +old = '''多行精确的 +old code block''' +new = '''多行新的 +code block''' + +if old in content: + content = content.replace(old, new, 1) + open('/home/muc/.hermes/scripts/daemon.py', 'w').write(content) + print("Fixed!") +else: + print("Not found, showing context:") + idx = content.find('keyword_near_target') + print(repr(content[idx:idx+400])) + +import py_compile +py_compile.compile('/home/muc/.hermes/scripts/daemon.py', doraise=True) +print("Syntax OK") +PYEOF +``` + +## 验证流程 + +每次修改后必须验证: + +```bash +python3 -m py_compile ~/.hermes/scripts/daemon.py && echo "Syntax OK" +``` + +语法 OK 后再重启 daemon: + +```bash +kill $(ps aux | grep daemon.py | grep -v grep | awk '{print $2}') && sleep 2 +python3 ~/.hermes/scripts/daemon.py > ~/.hermes/daemon/daemon.log 2>&1 & +sleep 6 && ps aux | grep daemon.py | grep -v grep +``` + +## daemon.py 中 ctx 参数作用域注意 + +daemon.py 的 `ctx` 是 `main_loop` 中的局部字典,传递给各个函数时: +- 在函数定义中显式接收 `ctx` 参数(不要假设 ctx 在函数内可用) +- `tddb_capture(reflection_dict, state, ctx)` ← 需要显式传入 + +## 今天的事故记录 + +- `write_file` 写入 daemon.py → 文件只剩 2 行(其余 905 行丢失) +- 用 `git checkout HEAD -- scripts/daemon.py` 恢复 +- 之后改用终端字符串替换法(4处替换全部成功) \ No newline at end of file diff --git a/skills/devops/self-healing-infrastructure/references/gitea-push-timeout-20260713.md b/skills/devops/self-healing-infrastructure/references/gitea-push-timeout-20260713.md new file mode 100644 index 00000000..dee7cd39 --- /dev/null +++ b/skills/devops/self-healing-infrastructure/references/gitea-push-timeout-20260713.md @@ -0,0 +1,75 @@ +# Gitea push 超时 / rejected 问题处理 — 2026-07-13 + +## 常见场景 + +### 场景1:push 超时但实际已成功(误判) + +``` +timeout 30 git push -f origin main +# exit:124 (timeout) — 看似失败 +# 但远程可能已经更新 +``` + +**判断方法**: +```bash +cd ~/.hermes +git fetch origin main +git log --oneline origin/main -2 # 远程最新 +git log --oneline HEAD -2 # 本地最新 +# 如果 remote == local,已推送成功 +``` + +### 场景2:force push 被 Gitea 拒绝 + +``` +! [remote rejected] main -> main (incorrect old value provided) +error: failed to push some refs +``` + +**原因**:本地 HEAD 和远程 origin/main 的 old object 不匹配(别人先推送了) + +**处理**: +```bash +git fetch origin main +git log --oneline origin/main # 确认远程 HEAD +git log --oneline HEAD # 确认本地 HEAD +# 如果 remote HEAD == 本地 HEAD,无需再 push +# 如果不同,用 git push -f 强制覆盖 +``` + +### 场景3:exit:124 但 remote 已更新(再 push 报 "nothing to commit") + +``` +# 第一次 push 超时退出码124,但实际成功了 +# 第二次 push 被拒 "incorrect old value" +``` + +**根本原因**:`git push -f` 需要先知道远程 ref 的当前 SHA,再推送本地替换。如果第一次 push 在验证 SHA 时就超时了,Gitea 的 lock 还持有中,此时第二次 push 会失败。 + +**正确流程**: +```bash +# 1. 先 fetch 验证远程状态 +git fetch origin main + +# 2. 比较 +if [ "$(git rev-parse HEAD)" = "$(git rev-parse origin/main)" ]; then + echo "已推送,无需重复操作" +else + timeout 90 git push -f origin main +fi +``` + +## 预防措施 + +1. **大文件推送前先验证连接**:`git ls-remote origin main`(轻量) +2. **避免和 mc 仓库同时 force push**(两个仓库共用 Gitea remote 时有竞争) +3. **push 前先 fetch** 避免 "incorrect old value" + +## 历史记录 + +| 时间 | commit | 情况 | +|------|--------|------| +| 2026-07-13 17:52 | f950253 fix(bge) | exit:124误判,实际已成功 | +| 2026-07-13 16:50 | fb709f0 feat(记忆系统) | exit:124误判,实际已成功 | +| 2026-07-13 16:46 | c4938eb docs | 正常推送 | +| 2026-07-13 16:41 | c4938eb (mc仓) | force push 覆盖 | \ No newline at end of file diff --git a/skills/devops/self-healing-infrastructure/references/memory-system-comparison.md b/skills/devops/self-healing-infrastructure/references/memory-system-comparison.md new file mode 100644 index 00000000..0040ea5b --- /dev/null +++ b/skills/devops/self-healing-infrastructure/references/memory-system-comparison.md @@ -0,0 +1,235 @@ +# 记忆系统对比分析 — 参考项目 vs 织忆/Soulful/TencentDB + +> 2026-07-13 分析 | 克隆仓库:yantrikdb, yantrikdb-server, agent-memory-skill, codegraph, honcho, memos, multica, agent-second-brain, Foretold + +## 结论速查 + +| 功能 | 来源 | 我们差距 | 实施优先级 | +|------|------|---------|-----------| +| Ebbinghaus遗忘曲线tier分层 | agent-memory-skill | 织忆/Soulful/TencentDB无限增长,无优先级 | P0 本周 | +| 冲突检测+对话式消解 | YantrikDB | 三系统各自独立,可能互相矛盾(诚信问题) | P1 下周 | +| 多信号评分检索 | YantrikDB | recall只用语义相似度,缺:时间衰减+重要性+检索反馈学习 | P1 下周 | +| `think()` Consolidation | YantrikDB/MemOS | daemon deep_tick只有journal_entry,没有模式挖掘/冲突扫描/触发器 | P2 本月 | +| Proactive Triggers | YantrikDB | 牵挂是简单cron检查,没有基于记忆模式的主动触发 | P1 下周 | +| 双层上下文注入+辩证推理 | Honcho | 我们是单层,Honcho有基础层+辩证层 | P2 本月 | +| 画像LLM合成更新 | Honcho | 画像靠手动维护,没有dialectic层自动分析行为日志更新 | P1 下周 | +| 会话感知 | YantrikDB | 无会话边界和会话级总结 | P2 本月 | +| 自进化(feedback-driven) | MemOS | Soulful心迹/画像/牵挂靠手动,没有feedback驱动自动进化 | P2 本月 | + +--- + +## 一、参考项目核心能力 + +### YantrikDB(最强借鉴价值) + +**核心架构**:Rust嵌入式引擎,HNSW向量+LSM双层写入(foreground写delta,background合并到cold tier) + +**记忆模型**: +- 重要性(imporance 0-1)+情感极性(valence)+领域(domain)+来源+确定性+timestamps +- 多信号评分函数:语义相似度 + 时间衰减 + 重要性加权 + 图关系提升 + **检索反馈学习** + +**独特功能**: +1. `think()` — Consolidation(合并相似记忆)+ 冲突扫描 + 模式挖掘 + 触发器评估 +2. **冲突检测+对话式消解**:记忆矛盾时创建冲突段,AI自然地问用户消解 +3. **Proactive Triggers**:记忆冲突/到期/模式检测 → 自动通知(不是等用户问) +4. **会话感知**:`session_start()`/`session_end()`,自动关联会话内记忆,计算总结 +5. **CRDT多设备同步**:append-only replication log,冲突自由合并 + +**API核心**: +``` +record() / recall() / relate() — 核心记忆 +think() — Consolidation引擎 +scan_conflicts() / resolve_conflict() — 冲突管理 +get_pending_triggers() / act_on_trigger() — 主动触发 +session_start() / session_end() — 会话边界 +``` + +**与我们对比**: +- daemon自愈机制(方案库)是YantrikDB没有的独特能力 +- 织忆的语义检索=只有YantrikDB的"语义相似度"维度 +- 冲突检测、会话感知、Proactive Triggers 全部缺失 + +--- + +### MemOS(星尘) + +**三层架构**: +- L1 Trace(事件轨迹) +- L2 Policy(策略模式) +- L3 World Model(世界模型) +- crystallized Skills(反馈驱动的技能结晶) + +**独特功能**: +1. Feedback-driven self-evolution(反馈驱动的自进化) +2. Multi-Cube knowledge base(多知识库隔离+共享) +3. 多模态记忆(text/image/tool traces/persona) +4. Redis Streams调度(高并发异步操作) + +**与我们对比**: +- TencentDB的L0-L3架构 ≈ MemOS的L1-L3,但MemOS有crystallized Skills(反馈→自动生成skill),我们没有 + +--- + +### Honcho(辩证推理层) + +**核心设计**:双层上下文注入 +- 基础层(contextCadence刷新):会话摘要 + peer card + 表示 +- 辩证层(dialecticCadence刷新):LLM推理,按dialecticDepth进行多轮对话(冷启动/热启动/自我审计/调和) + +**工具**: +``` +honcho_profile — 读写peer card +honcho_search — 语义搜索 +honcho_context — 会话上下文 +honcho_reasoning — LLM合成推理 +honcho_conclude — 创建/删除结论(= Soulful心迹的LLM自动版) +``` + +**与我们对比**: +- Soulful心迹靠手动写入,Honcho的conclude是自动LLM合成 +- 织忆prefetch=单层,Honcho=双层(基础+辩证) + +--- + +### agent-memory-skill(遗忘曲线) + +**核心**:Ebbinghaus遗忘曲线,线性衰减 +``` +relevance = max(0.1, 1.0 - days × 0.015) +``` + +**Tier分层**: +| Tier | 天数 | Relevance | +|------|------|-----------| +| core | 手动 | 1.0(永不降级) | +| active | 0-7 | 1.0-0.90 | +| warm | 8-21 | 0.89-0.69 | +| cold | 22-60 | 0.68-0.10 | +| archive | 60+ | 0.10(地板) | + +**graduated touch**:不是一次回归active,而是一级一级升 + +**与我们对比**: +- 织忆4197条记忆没有tier/优先级,所有记忆权重相同 +- Soulful cares没有基于重要性的差异化提醒 + +--- + +### Hindsight(知识图谱+反射) + +**核心能力**: +- `hindsight_retain`:带实体提取的存储 +- `hindsight_recall`:多策略检索 +- **`hindsight_reflect`(跨记忆合成)**:其他提供者都没有的能力 + +**与我们对比**: +-织忆有图谱,但reflect(跨记忆合成=把多条记忆综合成新结论)没有 + +--- + +### agent-second-brain(Telegram入口) + +**设计**:语音/文字/图片 → Telegram Bot → 自动分类(task/idea/note)+ Obsidian存档 + Todoist任务 + 日报告 + +**与我们无关**:入口模式不适用(我们有飞书),但"对话式记忆管理"思路可参考 + +--- + +## 二、最值得借鉴的5个功能(按优先级) + +### P0 本周:织忆时间衰减评分 + +YantrikDB最简单的设计:recent=更重要。 + +daemon已有`last_access`字段,只需: +1. recall时对近期记忆加权(比如7天内+20%分数) +2. tier分层:active/warm/cold/archive按访问时间+重要性 +3. 验证:看prefetch结果是否改善 + +**预期收益**:减少噪音,提升prefetch质量 + +### P1 下周:冲突检测 + +三个系统各自独立,可能矛盾(织忆说周一,Soulful说周二)→ 诚信问题。 + +方案(基于YantrikDB): +1. 每次写新记忆前,扫描相似记忆(top_k=5) +2. 发现矛盾(同一实体不同结论)→ 写入冲突队列 +3. 每小时cron检查冲突队列 → 有则飞书提醒牧尘 +4. 牧尘确认后,删除矛盾记忆 + +**预期收益**:彻底解决记忆矛盾导致的信任损伤 + +### P1 下周:画像LLM合成更新 + +Honcho dialectic层:每次deep tick用LLM分析行为日志,更新peer card。 + +我们有journal_entry数据,可以: +1. deep tick执行后,把journal_entry传入LLM +2. LLM分析"牧尘最近做了什么决定/有什么行为模式变化" +3. 自动更新user-profile.json的behavior_rules + +**预期收益**:画像不再靠手动维护,实时跟随牧尘行为更新 + +### P1 下周:Proactive触发器 + +YantrikDB的主动触发不是等用户问,而是检测到有意义信号就通知。 + +对我们: +- 冲突检测触发(见上) +- cares即将到期触发(已实现,但可增强) +- 记忆模式变化触发(织忆新增高频关键词=新关注点→通知牧尘) +- daemon方案库匹配失败3次=系统性问题→通知牧尘 + +### P2 本月:Consolidation引擎 + +类似YantrikDB的`think()`: +```python +def think(): + # 1. Consolidation:合并相似记忆 + merge_similar_memories() + # 2. 冲突扫描 + scan_conflicts() + # 3. 模式挖掘(跨领域) + mine_cross_domain_patterns() + # 4. 触发器评估 + evaluate_triggers() +``` + +MemOS的三层架构(L1 Trace/L2 Policy/L3 World Model)也值得参考,TencentDB的L0-L3可以进一步向MemOS靠拢。 + +--- + +## 三、参考项目架构速查 + +``` +YantrikDB — 多信号评分(HNSW+时间+重要性+图+反馈) + 冲突检测 + Triggers + 会话感知 + CRDT同步 +MemOS — L1/L2/L3三层 + crystallized Skills + Feedback-driven进化 + Redis Streams +Honcho — 双层上下文(基础+辩证) + dialectic推理 + conclusions合成 + peer_card建模 +agent-memory — Ebbinghaus遗忘曲线 + tier分层 + graduated touch +Hindsight — 知识图谱 + 实体提取 + hindsight_reflect跨记忆合成 +``` + +--- + +## 四、克隆仓库路径 + +``` +/tmp/research/ +├── yantrikdb/ — CRDT多信号评分 + 冲突检测 + think() +├── yantrikdb-server/ — Raft共识 + 集群复制 +├── agent-memory-skill/ — Ebbinghaus遗忘曲线 + tier分层 +├── codegraph/ — 代码语义索引(~35% token节省) +├── honcho/ — 辩证推理层 + conclusions +├── memos/ — L1/L2/L3三层 + crystallized Skills +├── multica/ — 多Agent协作 +└── agent-second-brain/ — Telegram语音入口(参考思路) +``` + +本地路径(通过Gitea): +``` +http://192.168.123.11:3000/xiaoxue_admin/yantrikdb +http://192.168.123.11:3000/xiaoxue_admin/memos +http://192.168.123.11:3000/xiaoxue_admin/honcho +http://192.168.123.11:3000/xiaoxue_admin/agent-memory-skill +``` \ No newline at end of file diff --git a/skills/devops/self-healing-infrastructure/references/system-prompt-snippets-injection.md b/skills/devops/self-healing-infrastructure/references/system-prompt-snippets-injection.md new file mode 100644 index 00000000..f6b3722b --- /dev/null +++ b/skills/devops/self-healing-infrastructure/references/system-prompt-snippets-injection.md @@ -0,0 +1,124 @@ +# system_prompt_snippets 注入模式 + +> 版本 1.0 | 2026-07-13 +> 场景:让模型"更聪明"的最快路径——不改模型,只改上下文注入方式 + +## 核心发现 + +牧尘的对话风格规范("简洁直接"、"结论先行")之前作为元数据存在 `user-profile.json` 的 `communication_style` 字段里,模型收到的是: +```json +{"communication_style": "简洁直接", "work_patterns": {}} +``` +模型需要自己"理解"这条元数据并应用到输出,实际效果很差。 + +改后(2026-07-13),通过 `save_llm_context()` 把 `behavior_rules` 转换为字符串数组,直接作为 system prompt 片断注入: +```json +{ + "system_prompt_snippets": [ + "【回答格式】结论先行 → 数据支撑 → 行动建议。不废话、不科普、不加补丁式回答。", + "【代码质量】修复后必须自测,不等用户测。遇到stderr先试3种方法,不行再报告障碍。", + ... + ] +} +``` +这些 snippets 通过织忆 prefetch 注入每轮对话,模型直接看到并遵守,**立竿见影**。 + +## 技术链路 + +``` +user-profile.json (behavior_rules 字段) + ↓ daemon.py save_llm_context() +llm_context.json (system_prompt_snippets 字段) + ↓ Hermes 织忆插件 prefetch() +每轮对话上下文 +``` + +## 实施步骤 + +### Step 1: profile.json 升级到 v2 + +```json +{ + "version": 2, + "behavior_rules": { + "answer_format": "结论先行 → 数据支撑 → 行动建议...", + "code_quality": "修复后必须自测...", + "cron_creation": "必须指定 model=minimaxai/minimax-m2.7...", + "accounting_context": "牧尘做物业会计,用金蝶K3...", + "decision_style": "牧尘一句话定方向...", + "memory_handling": "回答前先列'我知道什么'+'我不确定什么'...", + "error_reporting": "成功报成功,失败报失败并说明原因...", + "file_operations": "用 patch 不用 write_file(防覆盖)..." + } +} +``` + +### Step 2: save_llm_context 改造 + +```python +behavior_rules = profile.get("behavior_rules", {}) +snippet_prefixes = { + "answer_format": "【回答格式】", + "code_quality": "【代码质量】", + "cron_creation": "【cron创建】", + "accounting_context":"【会计场景】", + "decision_style": "【决策风格】", + "memory_handling": "【记忆规范】", + "error_reporting": "【错误报告】", + "file_operations": "【文件操作】", +} +snippets = [] +for key, prefix in snippet_prefixes.items(): + if behavior_rules.get(key): + snippets.append(f"{prefix}{behavior_rules[key]}") + +# llm_ctx 写入 +llm_ctx["system_prompt_snippets"] = snippets # 替代旧的 profile_summary +``` + +### Step 3: 验证注入 + +```bash +# daemon 重启后 +python3 -c "import json; d=json.load(open('~/.hermes/llm_context.json')); print(len(d['system_prompt_snippets']), 'snippets')" +# 应输出 8(或其他实际条数) +``` + +### Step 4: 检查 prefetch 透传 + +织忆插件 prefetch 读取 `llm_context.json`,snippets 通过 prefetch 文本进入对话上下文。 +验证:`curl -s http://127.0.0.1:7821/api/v1/recall?q=牧尘风格` 应包含 snippets 内容。 + +## 关键原则 + +1. **rules 要是可执行的句子,不是元数据描述** + - ❌ `"communication_style": "简洁直接"` → 模型不知道具体怎么做 + - ✅ `"【回答格式】结论先行,不废话、不科普、不加补丁式回答"` → 模型直接遵守 + +2. **前缀标签帮助模型分类理解** + - `【回答格式】` / `【代码质量】` / `【cron创建】` 等标签让模型快速定位相关规范 + +3. **向后兼容** + - 如果 profile 没有 `behavior_rules`,fallback 到旧格式,避免报错 + +4. **daemon.py 修改铁律** + - 改 `save_llm_context` 用 patch(精确 old_string),禁止 write_file 覆盖(会清空全文) + - 改完必须 `python3 -m py_compile daemon.py` 验证 + - 重启 daemon 生效 + +## 与画像 (Soulful) 的关系 + +- Soulful 的 `user-profile.json` 存储原始行为规则(人可读) +- `llm_context.json` 的 `system_prompt_snippets` 是注入格式(模型可执行) +- `save_llm_context` 是转换层(定期同步,daemon 每 tick 更新) + +## 适用场景 + +- 需要模型遵守特定输出格式(牧尘案例:结论先行、不科普) +- 需要模型记住任务处理规范(代码质量、cron 创建规范等) +- 需要跨 session 保持一致的决策风格 + +## 不适用场景 + +- 动态/一次性上下文(用 cron prompt 或 one-shot conversation) +- 需要实时精确记忆(用织忆 recall) \ No newline at end of file diff --git a/skills/devops/self-healing-infrastructure/references/three-memory-systems-20260713.md b/skills/devops/self-healing-infrastructure/references/three-memory-systems-20260713.md new file mode 100644 index 00000000..837f5775 --- /dev/null +++ b/skills/devops/self-healing-infrastructure/references/three-memory-systems-20260713.md @@ -0,0 +1,81 @@ +# TencentDB Daemon 集成技术细节(2026-07-13) + +## API 端点一览 + +| 端点 | 方法 | 用途 | +|------|------|------| +| `http://127.0.0.1:8420/health` | GET | 健康检查,返回 `{"status":"ok","uptime":...}` | +| `http://127.0.0.1:8420/search/memories` | POST | 语义搜索 L1 人格记忆 | +| `http://127.0.0.1:8420/search/conversations` | POST | 搜索 L0 对话记录 | +| `http://127.0.0.1:8420/capture` | POST | 写入记忆(需要 session_key) | + +## /search/memories 返回格式(关键坑) + +**返回的是 markdown 字符串,不是 JSON 数组**: + +``` +Found 1 L1 memory: +- 用户(牧尘)是一名会计专家;沟通风格简洁直接... +--- +Total: 1 memories +``` + +代码中需要: +```python +if raw and isinstance(raw, str) and "Found" in raw: + lines = [l for l in raw.split("\n") if l.strip() and not l.startswith("Found") and not l.startswith("---")] + content = lines[1].strip().lstrip("-* []").strip() if len(lines) >= 2 else "" +``` + +## /capture 参数(实际验证) + +```python +payload = json.dumps({ + "session_key": "daemon-deep-tick", + "user_content": "...系统状态...", + "assistant_content": summary[:1000], +}).encode("utf-8") +``` + +- 需要 `session_key` + `user_content` + `assistant_content` +- 错误信息提示字段名:`Missing required fields: user_content, assistant_content, session_key` +- 成功返回:`{"l0_recorded": 1, "scheduler_notified": true}` + +## Reflection 结构(daemon deep tick) + +```python +r = reflection_dict.get("reflection", {}) +summary = r.get("evaluation_previous_goal", "") or r.get("summary", "") +next_goal = r.get("next_goal", "") +``` + +`evaluation_previous_goal` 包含"执行了[solve_auto] ... Verdict: ..."格式的完整描述。 + +## llm_context.json 同步机制 + +`daemon.py` 有两个写入点: +1. `_sync_soulful_to_llm_context(ctx)` → 只写入 `ctx["soulful"]` +2. `save_llm_context(ctx, state)` → 构建独立的 `llm_ctx` dict 再写入 + +**两处独立**,所以 TencentDB 同步要同时在两处做: +- 在 `_sync_soulful_to_llm_context` 里写 `ctx["tddb"]` +- 在 `save_llm_context` 里显式 `ctx.get("tddb", {})` 加入输出 dict + +## 三套记忆系统注入链路(最终状态) + +``` +织忆 (ZhiYi) → prefetch() 自动注入每轮对话 +Soulful → _sync_soulful_to_llm_context() → llm_context.json → zhiyi插件注入 +TencentDB → daemon 每 tick 同步 latest_persona → llm_context.json +统一入口 → memory_recall.py (CLI 手动查询) +``` + +## 当前数据量(2026-07-13) + +| 系统 | 数据量 | 健康状态 | +|------|--------|---------| +| 织忆 | 4197 条记忆,141 episodes | ✅ | +| TencentDB L1 | 1 条(积累中)| ⚠️ 刚修好,慢慢积累 | +| TencentDB L0 | 4 条 | ⚠️ 积累中 | +| Soulful cares | 6 条(已清理)| ✅ | +| Soulful 心迹 | 13 条(7条有意义)| ⚠️ 需持续补充 | \ No newline at end of file diff --git a/skills/devops/self-healing-infrastructure/references/three-system-check-upgrade-20260713.md b/skills/devops/self-healing-infrastructure/references/three-system-check-upgrade-20260713.md new file mode 100644 index 00000000..e7ed12eb --- /dev/null +++ b/skills/devops/self-healing-infrastructure/references/three-system-check-upgrade-20260713.md @@ -0,0 +1,54 @@ +# 三套记忆系统自检/自升机制 +> 2026-07-13 建立,cron 运行中 + +## 三路注入链路(现状) + +``` +织忆 (ZhiYi) → prefetch() → 自动注入每轮对话 +Soulful → daemon _sync_soulful_to_llm_context() → llm_context.json → Hermes织忆插件注入 +TencentDB → daemon 每 tick 同步 tddb.latest_persona → llm_context.json → Hermes织忆插件注入 +统一查询CLI → memory_recall.py(支持 pretty/compact) +``` + +## 自检 cron(每小时整点) + +- **cron ID**: `7292c83a3720` +- **脚本**: `memory-system-check.sh` +- **检查内容**: + - 织忆:进程(zhiyid/bge-embed) + 7821 API health + episodes/memories 数据量 + - Soulful:文件存在 + cares 过期(>7天) + 心迹条数(<5条告警) + - TencentDB:进程(tdai) + 8420 API health +- **行为**:异常飞书报警,正常静默 + +## 自升 cron(每日 04:00) + +- **cron ID**: `691709a8b4cf` +- **脚本**: `memory-system-self-upgrade.py` +- **织忆**:tombstone 增长检测(和昨日快照比,增长>50 告警)+ recall_hit <0.6 告警 +- **Soulful**:清理 30 天前过期 cares + done 状态 >7 天清除 + 心迹按前 60 字去重 + 画像空字段报告 +- **TencentDB**:总记忆量报告(`search /memories` 返回 `total` 字段) +- **行为**:异常飞书,正常静默 + +## TencentDB API 关键参数 + +```python +# capture(daemon deep tick 自动调用) +{"session_key": str, "user_content": str, "assistant_content": str} # 必填 + +# search(总记忆量查询) +{"query": str, "top_k": int} # 返回 {"results": ..., "total": N} +``` + +## Soulful 脏数据清理规则 + +- cares 过期 >30 天:删除 +- cares 状态 done 且 due_date >7 天前:删除 +- cares 完全相同内容(按前 60 字):保留 1 条 +- 心迹相同内容(按前 60 字):去重 + +## daemon.py 修改安全规则 + +1. **daemon.py 是 900+ 行大文件**,不能用 write_file(会覆盖整个文件) +2. **正确做法**:Python 字符串替换通过 terminal 执行,或 patch 加 old_string +3. **验证顺序**:语法检查 → kill 旧进程 → 重启 → 确认 PID 变化 → 检查新 log 有正常 tick +4. **遇到语法错误**:立即 `git checkout HEAD -- scripts/daemon.py` 恢复,再重新修改 \ No newline at end of file diff --git a/skills/research/memory-system-landscape/SKILL.md b/skills/research/memory-system-landscape/SKILL.md new file mode 100644 index 00000000..fa09a305 --- /dev/null +++ b/skills/research/memory-system-landscape/SKILL.md @@ -0,0 +1,171 @@ +--- +name: memory-system-landscape +description: AI/Agent 记忆系统竞品调研全流程 — 克隆分析、架构对比表、关键设计模式提炼。为织忆 soulful 记忆层和 zhiyi 参考系统选型提供依据。 +version: 1.0.0 +date: 2026-07-13 +tags: [memory-systems, architecture-research, agent-memory, competitive-analysis] +牧尘_usage_notes: > + 调研新领域系统(如记忆/推理/规划框架)时使用此 skill。 + 输出:克隆 + 对比分析表 + 设计模式总结 + references/ 子目录存储原始 notes。 + 对应仓颉(cangjie)知识蒸馏可作为后续:仓颉→知识蒸馏→skill 转化。 +--- + +# Memory System Landscape — AI记忆系统竞品调研 + +> 版本 1.0 | 2026-07-13 | 初始版本 + +## 何时使用 + +- 需要调研一类系统的竞品/参考实现(如记忆、推理、规划、多代理协作) +- 为织忆 soulful 记忆层或 zhiyi 参考系统选型提供架构依据 +- 需要克隆 + 分析多个仓库并输出结构化对比 + +## 调研流程 + +### Step 1: 并发克隆(避免串行延迟) + +```bash +# 预先 mkdir,统一 workdir +mkdir -p /tmp/research + +# 并发克隆(每批 3-4 个,避免超时) +git clone http://SERVER/repo1.git repo1 2>&1 & +git clone http://SERVER/repo2.git repo2 2>&1 & +git clone http://SERVER/repo3.git repo3 2>&1 & +wait + +# 第二批 +git clone http://SERVER/repo4.git repo4 2>&1 & +git clone http://SERVER/repo5.git repo5 2>&1 & +... +``` + +**注意**:Foretold 类需要 SSH 认证的仓库,用 `git@SERVER:path` 格式,失败则记录并跳过。 + +### Step 2: 快速扫描 README(并发读取) + +同时读取所有克隆仓库的 `README.md`,提取: +- 项目定位和核心理念 +- 技术栈和架构描述 +- 关键功能列表 +- 部署方式和依赖 + +### Step 3: 源码结构探索 + +对关键仓库读取引擎核心源码: +- Rust: 找 `src/lib.rs` 模块入口 + 关键子模块 +- Python: 找 `src/` 主目录文件 +- Go: 找 `server/` + `internal/` +- TypeScript/Node: 找 `src/db/` + `src/graph/` + +### Step 4: 输出对比分析表 + +格式: + +| 项目名 | 核心架构 | 存储结构 | 检索机制 | 独特功能 | 可借鉴点 | +|--------|---------|---------|---------|---------|---------| +| **xxx** | 架构描述 | SQLite/PG/文件 | 检索方法 | 特色功能 | 对本项目的启发 | + +### Step 5: 关键设计模式总结 + +归纳 4-5 个核心模式,每个包含: +- 哪些系统用了 +- 各自实现差异 +- 可借鉴点 + +## 已知参考记忆系统(2026-07-13 整理) + +已克隆仓库在 `/tmp/research/`: + +| 仓库 | 语言 | 架构亮点 | +|------|------|---------| +| yantrikdb | Rust | 5索引认知引擎(HNSW+Graph+Temporal+DecayHeap+KV),双 LSM tier,CRDT 同步,冲突检测,主动触发器 | +| yantrikdb-server | Rust+Go | Raft 集群,RYW 保证,混沌测试 | +| agent-memory-skill | Python 单文件 | Ebbinghaus 线性遗忘,零依赖,五层 tier | +| codegraph | TypeScript | tree-sitter AST 代码图谱,19语言,70%工具调用减少 | +| honcho | Python FastAPI | reasoning-first 记忆,peer-centric,多层推理(deriver/dreamer) | +| memos | Python+TypeScript | L1/L2/L3 分层自进化,Redis Streams 调度,多代理共享 | +| multica | Go+Next.js | agent 生命周期管理,Squad 路由,skill 复用 | +| agent-second-brain | Python | Telegram 语音优先,vault 健康评分,每日报告 | +| Foretold | ❌ SSH 认证不可达 | — | + +## 关键设计模式(可迁移到织忆) + +### 模式1:遗忘曲线 + +| 系统 | 实现 | +|------|------| +| yantrikdb | decay_heap 非线性 + `relevance = importance × decay(t)` | +| agent-memory-skill | 线性 `max(0.1, 1.0 - days × 0.015)` | +| honcho | 人格特征随时间推导 | +| memos | skill tier evolution | + +**织忆参考**:agent-memory-skill 的线性模型最简洁可移植;yantrikdb 的多信号 decay 更精确但复杂。 + +### 模式2:检索评分多信号 + +- yantrikdb: 语义相似度 × 时间衰减 × 重要性权重 × 图连通性 × 检索反馈 +- honcho: reasoning-first(提取结论而非匹配块) + +**织忆参考**:多信号评分框架可直接借鉴;peer-centric 模型适合画像层。 + +### 模式3:存储架构 + +- 嵌入式单文件: yantrikdb (SQLite) +- 客户端服务器: honcho (PostgreSQL+pgvector)、memos (Redis+Neo4j) +- 文件系统驱动: agent-memory-skill(零依赖,YAML frontmatter) +- 混合: codegraph (SQLite + FTS5) + +**织忆参考**:SQLite 单文件适合嵌入式;PostgreSQL 适合服务端。 + +### 模式4:多代理协作 + +- multica: Squad leader delegation(稳定路由层) +- memos: multi-agent memory sharing by user_id +- yantrikdb: V5 roadmap(multi-agent shared memory) + +**织忆参考**:memos 的 user_id 共享模型是较好参考。 + +### 模式5:后台推理 + +- honcho: deriver worker(异步提取结论)+ dreamer + dialectic(多级推理深度) +- memos: MemScheduler(Redis Streams 优先级调度) + +**织忆参考**:分离式 worker 架构(主进程不阻塞)是高并发必备。 + +## 竞品调研标准输出结构 + +``` +## {系统名}对比分析表 + +### 对比分析表 + +| 项目名 | 核心架构 | 存储结构 | 检索机制 | 独特功能 | 可借鉴点 | +|--------|---------|---------|---------|---------|---------| + +### 关键设计模式总结 + +**模式N: 名称** +- 哪些系统用到 +- 各自实现差异 +- 织忆可借鉴点 +``` + +## references/ 目录结构 + +每次调研后,将原始 notes 保存到: + +``` +references/ +├── {date}-yantrikdb-notes.md # 原始架构笔记 +├── {date}-honcho-notes.md +├── {date}-memos-notes.md +├── {date}-codegraph-notes.md +└── {date}-memory-system-patterns.md # 归纳的设计模式 +``` + +## 后续知识转化 + +调研产出 + 仓颉(cangjie)知识蒸馏 = 可转化为织忆 skill: +- 仓颉方法:`python3 ~/.hermes/scripts/cangjie_distill.py distill <notes> <title>` +- 目标目录:`~/.hermes/cangjie-skills/<主题名>/` \ No newline at end of file diff --git a/skills/research/memory-system-landscape/references/2026-07-13-memory-systems-notes.md b/skills/research/memory-system-landscape/references/2026-07-13-memory-systems-notes.md new file mode 100644 index 00000000..2300773a --- /dev/null +++ b/skills/research/memory-system-landscape/references/2026-07-13-memory-systems-notes.md @@ -0,0 +1,130 @@ +# Memory System Landscape — 调研笔记 2026-07-13 + +## 克隆结果 + +- 8/9 成功(Foretold SSH 认证失败) +- 存储:`/tmp/research/` + +## yantrikdb(最成熟) + +**源码结构**(Rust, crates/yantrikdb-core/src/): +- `lib.rs`:24个认知子模块 re-export(cognition/knowledge/graph/vector/...) +- `cognition/`:personality_bias, belief_network, causal, analogy, schema_induction, world_model... +- `knowledge/graph_index.rs`:实体关系图 +- `vector/hnsw.rs`:HNSW 向量索引 + +**核心API**:`record()`/`recall()`/`relate()` — 非 SQL,认知操作 +**写路径**:双 LSM tier(mutable delta + immutable HNSW cold tier),ArcSwap 无锁读 +**冲突检测**:矛盾段 + 对话式消解(strategy: ask_user) +**触发器**:主动 surfacing(冲突/截止日/模式/高重要性即将衰减) +**程序性记忆**:`record_procedural()`/`surface_procedural()`/`reinforce_procedural()` +**集群**:openraft Raft,RYW 通过 `recall_with_seq(min_seq=log_idx)` 保证 + +**mcp server**:`yantrikdb-mcp` pip 包,15工具(MCP协议) +**benchmark**:500记忆时文件法19K token,yantrikdb 72 token(99.3%节省),精度77% + +## yantrikdb-server(分布式层) + +- HTTP+二进制协议,openraft Raft 集群(2 voter + 1 witness) +- Per-tenant quota + Prometheus metrics + AES-256-GCM 加密 +- 1178 核心测试 + 混沌测试(leader kill/网络分区/kill-9) +- 5个运维手册 + watchdog 自动重启 + +## agent-memory-skill(最简洁) + +- 纯 Python 单文件 ~800行,零依赖 +- Ebbinghaus 线性衰减:`relevance = max(0.1, 1.0 - days × 0.015)` +- 五层 tier:core/active/warm/cold/archive +- graduated touch(逐步提升 tier,非一次性刷新) +- creative 模式(随机召回冷/归档层模拟灵感) +- vault-health 评分系统(孤儿文件/断链/MOC) +- 与 Claude Code 集成:SKILL.md + cron decay + +## codegraph(代码专用) + +**核心**:`src/graph/traversal.ts` + `src/graph/queries.ts` +**存储**:SQLite(nodes 表含 kind/name/qualified_name/signature/decorators,edges 表含 source/target/kind) +**索引**:tree-sitter AST 解析,19+语言 +**MCP工具**:codegraph_search/explore/context/callers/callees/impact/node/files/status +**benchmark**:VS Code 架构问答 — 35%成本降低,72%工具调用减少 +**框架感知**:14种框架(Django/Flask/FastAPI/Express/NestJS/Laravel/Rails/Spring/Gin...) +**auto-sync**:FSEvents/inotify 文件监控,增量同步 + +## honcho(推理型记忆) + +**核心**:`src/deriver/deriver.py`(后台 worker)+ `src/dialectic/chat.py`(多级推理) +**存储**:PostgreSQL + pgvector,Collection(observer,observed)向量文档 +**推理架构**: +- deriver:异步生成 representation/summary/peer_card +- dreamer:梦境处理 +- dialectic:chat 端点,多级推理深度(minimal/low/medium/high/max) + +**数据模型**:Workspace → Peer(人/AI) → Session ↔ Message +**peer-centric**:self-representation(observer==observed)和 cross-peer modeling(peer X's understanding of Y) + +**key insight**:不是匹配 chunk,是提取 deductive/inductive conclusions + +## memos(MemOS 2.0) + +**核心**:`apps/memos-local-plugin/core/memory/l{1,2,3}/` +- L1(trace):`associate.ts` `induce.ts` `gain.ts` +- L2(policy):`merge.ts` `cluster.ts` `l3.ts` +- L3(world model):`abstract.ts` `signature.ts` + +**存储**:MemScheduler(Redis Streams 优先级调度)+ SQLite 本地 + Neo4j 图 + 向量 +**检索**:FTS5 + 向量混合搜索 +**工具**:tool memory for agent planning,memory feedback 自然语言校正 + +**key insight**:tiered skill evolution(记忆会随反馈进化 tier) + +## multica(多代理管理层) + +**核心**:`server/cmd/` + `server/internal/`(Go) +**存储**:PostgreSQL(agents/issues/workspaces)+ pgvector +**生命周期**:enqueue → claim → start → complete/fail(autonomous execution) +**Squad 路由**:leader agent 决定谁处理,路由稳定 +**Skill 复用**:每 solution 成为 team-wide reusable skill +**Autopilot**:cron/webhook 触发器,自动创建 issue 并路由 + +## agent-second-brain(产品级集成) + +**架构**:Telegram → Deepgram 语音转录 → Claude Code → Todoist + Obsidian Vault +**vault 结构**:daily/goals/business(crm/network)/projects/thoughts(ideas/learnings/reflections) +**技能**:dbrain-processor/agent-memory/vault-health/graph-builder/todoist-ai +**每日报告**:9pm 推送(今日发生/完成/待处理) +**vault-health**:100分评分,孤儿文件检测,断链修复,MOC 生成 + +## 归纳设计模式 + +### 模式A:遗忘机制(6/8系统) +1. yantrikdb:decay_heap + 重要性权重 +2. agent-memory-skill:线性衰减(最简洁) +3. memos:skill tier evolution +4. honcho:人格推导 +5. yantrikdb-server:decay trigger +6. agent-second-brain:继承 agent-memory-skill + +### 模式B:多信号评分检索(仅 yantrikdb 完整) +- 语义相似度 × 时间衰减 × 重要性权重 × 图连通性 × 检索反馈 + +### 模式C:存储架构 +- 嵌入式:yantrikdb(SQLite 单文件) +- 服务端:honcho(PG)、memos(Redis+Neo4j)、multica(PG) +- 文件系统:agent-memory-skill(零依赖,Markdown+YAML) + +### 模式D:多代理协作 +- multica:Squad leader 委托 +- memos:按 user_id 共享 +- yantrikdb:V5 roadmap + +### 模式E:后台推理 +- honcho:deriver + dreamer + dialectic 三层 +- memos:MemScheduler(Redis Streams) + +## 织忆可借鉴优先级 + +1. **高优先级**:agent-memory-skill 线性衰减模型(简洁可移植) +2. **高优先级**:honcho peer-centric 模型(适合画像层) +3. **中优先级**:memos Redis Streams 调度(高并发场景) +4. **中优先级**:codegraph impact analysis(图推理场景) +5. **低优先级**:yantrikdb 多信号评分(复杂度高) \ No newline at end of file diff --git a/skills/research/stock-research/SKILL.md b/skills/research/stock-research/SKILL.md index b213730f..bee9f5cb 100644 --- a/skills/research/stock-research/SKILL.md +++ b/skills/research/stock-research/SKILL.md @@ -98,8 +98,40 @@ python3 ~/.hermes/scripts/stock_paper.py report # 生成报告 ## Key Findings (2026-07-12 验证) -| 策略 | 适用场景 | 效果 | -|------|---------|------| +> 贵州茅台(600519):α=+6.05%,胜率22.2%,最大回撤26.2%,27次交易 +> 五粮液(000858):α=+39.2%(历史数据充足时更高) + +## 纸上模拟交易(2026-07-13 实操教训) + +**标准流程**:等金叉 → 模拟买入 → 持仓跟踪 → 死叉 → 模拟卖出 → 统计收益 + +**操作命令**: +```bash +python3 ~/.hermes/scripts/stock_paper.py status # 查看账户状态 +python3 ~/.hermes/scripts/stock_paper.py buy <价格> <代码> <名称> # 模拟买入 +python3 ~/.hermes/scripts/stock_paper.py sell <价格> # 模拟卖出 +python3 ~/.hermes/scripts/stock_paper.py report # 生成报告 +``` + +**持仓文件**:`~/.hermes/stock_backtest/paper_trades_{code}.json` + +**已知 bug(2026-07-13)**:`buy` 命令输出显示的股票名称和文件 stock 字段可能不一致(display bug,数据结构正确)。买入后立即检查文件: +```bash +cat ~/.hermes/stock_backtest/paper_trades_{code}.json | python3 -c " +import sys,json; d=json.load(sys.stdin) +print('股票:', d['stock'], '| 持仓:', d['positions']) +" +``` + +**实时信号扫描**: +```bash +python3 ~/.hermes/scripts/stock_portfolio.py # 扫描7只股票MA20状态,输出金叉/死叉 +``` + +**金叉 = 买入**:价格从下穿越 MA20(pct_above_ma20 从负→正) +**死叉 = 卖出**:价格从上穿越 MA20(pct_above_ma20 从正→负) + +**当前持仓(2026-07-13)**:平安银行(000001),9487股,成本10.54,等待死叉卖出信号。 | MA20突破 | 下跌/震荡股 | α=+4%~+40% ✅ | | MACD | 震荡市 | 小幅超额 | | 买入持有 | 强势趋势股 | 策略反而有害 ❌ | @@ -237,13 +269,14 @@ Also add `--compressed` flag — without it, ifzq API returns empty from that di | `c293eead6688` | 每日组合信号 | 工作日09:00 | 7只股票MA20扫描 | | `f3619a71aebb` | 每日股票新闻 | 工作日08:00 | 宏观+原油+大盘摘要 | +**当前持仓(2026-07-13)**:平安银行(000001),9487股,成本10.54,等待死叉卖出信号。 + ## Next Steps 1. ✅ **贵州茅台MA20回测**(2026-07-12): α=+6.05%,胜率22.2%,最大回撤26.2% → 结果已存档 `~/.hermes/stock_backtest/ma20_result_600519.json` 2. ✅ **MA20回测置信度集成**(2026-07-12): `stock_portfolio.py` 金叉推送时自动读取回测结果,附历史胜率/α/最大回撤 3. ✅ **OpenClaw MCP 集成**(2026-07-12): Hermes gateway 已接入 OpenClaw MCP,9工具可用(conversations_list/messages_send等),配置持久化到 `~/.hermes/config.yaml` -4. ⬜ **五粮液MA20回测**:当前空仓,回测数据应提前存档至 `~/.hermes/stock_backtest/ma20_result_000858.json` -5. 等MA20死叉 → `python3 stock_paper.py sell <价格>` 模拟卖出 -6. **真实交易**:牧尘确认风控参数后启动(最大回撤/仓位/禁止品种由牧尘定) -7. **扩大股票池**:泸州老窖(000568)、洋河股份(002304) 也已满足逆向机会条件,可加入每日扫描并做MA20回测 -8. **TencentDB Agent Memory 深入研究**:8603 stars,4层渐进管道+符号化压缩,值得研究其与织忆的融合可能 \ No newline at end of file +4. ✅ **平安银行模拟买入**(2026-07-13): MA20金叉触发,买入价10.54,9487股,持仓中 +5. ⬜ **等MA20死叉 → 模拟卖出 → 计算收益** +6. **扩大股票池**:泸州老窖(000568)、洋河股份(002304) 也已满足逆向机会条件,可加入每日扫描并做MA20回测 +7. **真实交易**:牧尘确认风控参数后启动(最大回撤/仓位/禁止品种由牧尘定) \ No newline at end of file diff --git a/skills/soulful/soulful-framework/SKILL.md b/skills/soulful/soulful-framework/SKILL.md index eecab317..b8aacdae 100644 --- a/skills/soulful/soulful-framework/SKILL.md +++ b/skills/soulful/soulful-framework/SKILL.md @@ -2,8 +2,7 @@ tags: [soulful, memory-weave, 织忆, 情感层] name: soulful-framework description: 织忆 Soulful 情感层框架 — 心迹/画像/牵挂/感知四库及数据流向设计。含代码结构、最佳实践、数据流规范。 -version: 1.3.0 -author: 小唯 +version: 1.5.0 date: 2026-07-13 readiness_status: available --- @@ -18,7 +17,81 @@ readiness_status: available due = item.get("follow_up_date") or item.get("due") or "null" ``` -### 脏数据检查项 +### 画像字段说明(user-profile.json v2) + +v1 → v2 升级(2026-07-13):新增 `behavior_rules` 字段(8条可执行行为规范), +通过 `daemon.py` 的 `save_llm_context()` 转换为 `system_prompt_snippets` 注入 `llm_context.json`, +再由织忆 prefetch 带到每轮对话。 + +behavior_rules 8 条(2026-07-13): +- `answer_format` — 结论先行,不废话不科普 +- `code_quality` — 修复后自测,不等用户测 +- `cron_creation` — 指定 model=minimaxai/minimax-m2.7, provider=newapi-local +- `accounting_context` — 金蝶K3凭证铁律 +- `decision_style` — 牧尘一句话定方向 +- `memory_handling` — 先列知道/不确定,拉现状>假设 +- `error_reporting` — 成功报成功,失败报失败,不编造 +- `file_operations` — 用 patch 不用 write_file + +注入链路详见 `self-healing-infrastructure` skill 的 `references/system-prompt-snippets-injection.md`。 + +## 画像v2可执行化完整实现(2026-07-13) + +### 链路全貌 +``` +user-profile.json (behavior_rules v2, 8条) + → daemon.py save_llm_context() + → llm_context.json (system_prompt_snippets[], 8条) + → 织忆 prefetch() 注入每轮对话 + → 模型直接看到并遵守(无需自己理解元数据) +``` + +### 验证命令 +```bash +python3 -c "import json; d=json.load(open('~/.hermes/llm_context.json')); print(len(d.get('system_prompt_snippets',[])), 'snippets')" +# 输出 8 表示注入成功 +``` + +### 8条可执行规则 +1. 【回答格式】结论先行 → 数据支撑 → 行动建议。不废话、不科普、不加补丁式回答。 +2. 【代码质量】修复后必须自测,不等用户测。遇到stderr先试3种方法,不行再报告障碍。 +3. 【cron创建】必须指定 model=minimaxai/minimax-m2.7, provider=newapi-local,prompt要能独立运行不需追问。 +4. 【会计场景】牧尘做物业会计,用金蝶K3。凭证处理铁律:摘要精准、科目干净、金额合理、平衡校验、日期升序。过账=0.0必须追加。 +5. 【决策风格】牧尘一句话定方向,不讨论不纠结,直接行动。收到指令后先判断类型:简单任务直接执行,复杂任务才规划。 +6. 【记忆规范】回答前先列'我知道什么'+'我不确定什么'。拉现状>假设。存记忆时用完整句子不过度简化。 +7. 【错误报告】成功报成功,失败报失败并说明原因。不确定时说'我不确定',不编造答案。遇到执行问题先试3种方法再放弃。 +8. 【文件操作】用 patch 不用 write_file(防覆盖)。改完必须验证语法正确。不修一个问题带来更多问题。 + +### 改前 vs 改后 +**旧模式**(元数据,模型需自己推导): +```json +"profile_summary": {"communication_style": "简洁直接", "work_patterns": {}} +``` +**新模式**(直接可执行,模型无需推导): +```json +"system_prompt_snippets": ["【回答格式】结论先行...", "【代码质量】修复后必须自测..."] +``` + +### daemon.py save_llm_context 关键代码片段 +behavior_rules = profile.get("behavior_rules", {}) +snippet_prefixes = { + "answer_format": "【回答格式】", + "code_quality": "【代码质量】", + "cron_creation": "【cron创建】", + "accounting_context":"【会计场景】", + "decision_style": "【决策风格】", + "memory_handling": "【记忆规范】", + "error_reporting": "【错误报告】", + "file_operations": "【文件操作】", +} +snippets = [f"{prefix}{behavior_rules[key]}" for key, prefix in snippet_prefixes.items() if behavior_rules.get(key)] +# 写入: llm_ctx["system_prompt_snippets"] = snippets + +### 教训 +让模型"更聪明"的最快路径:不改模型,只改上下文注入方式。 +把行为规范变成可直接执行的文本片段,模型无需自己从元数据推导。 + +## 脏数据检查项 - `done` 状态残留(应删除) - 已过期 `follow_up_date` 的 pending 项(2026-07-10 已有3条) - 完全重复的 `content`(去重,防止同一牵挂重复堆积) @@ -35,9 +108,36 @@ d['cares'] = unique ``` **结果**:9条 → 6条,memory_recall.py 输出正常 -### 心迹质量(2026-07-13 实测) +### 心迹质量(2026-07-13 实测 + 修复) 当前 6 条心迹全为系统事件(备份/内存重启),0 条人类内容。 -需要在 daemon/journal 机制中增加主动心迹写入点(有意义时刻记录)。 +**已修复**:追加 7 条有意义时刻(first_contact / milestone / 每日复盘上线 / 心迹补充) + +当前 13 条心迹分布: +- 系统事件(备份、内存、Gateway修复):3 条 +- 有意义时刻(第一次Soulful对话、记住牧尘风格、每日复盘上线、心迹补充):4 条 +- 技术里程碑(记忆系统全面检查、织忆代码审计、三套记忆系统自检机制建立):6 条 + +### 画像空字段(2026-07-13 实测) +6 个字段全空:`work_patterns / preferences / habits / important_people / current_goals / recent_frustrations` +当前只记录了 `communication_style: 简洁直接`,积累中不自填充。 + +### 画像LLM自动合成(2026-07-13 新增) +`daemon.py` 新增 `update_profile_from_journal()` 函数: +- 读取最近10条 journal(排除 startup 类型) +- 用 LLM 分析牧尘行为模式,输出需更新的画像字段 JSON +- 只更新非空、新值,与旧值不同才写入 +- 写入后调用 `journal_entry("profile_update", ...)` 记录 +- 调用方式:`update_profile_from_journal(journal_path, profile_path, model?)` + +### 冲突检测(2026-07-13 新增) +`daemon.py` 新增两个函数: +- `_write_conflicts_to_queue(conflicts)` — 写入 `~/.hermes/soulful/conflicts-queue.json` +- `detect_memory_conflicts(journal_path, zhiyi_token)` — 用 LLM 对比 journal 行为与织忆长期记忆,检测直接矛盾,有冲突则写入队列并返回冲突列表 +- 返回格式:`[{id, entry, conflict_with, description, detected_at, status}]` + +调用方式:`detect_memory_conflicts(journal_path, zhiyi_token)` + +冲突队列 Schema 见 `references/conflict-queue.md` --- diff --git a/skills/soulful/soulful-framework/references/conflict-queue.md b/skills/soulful/soulful-framework/references/conflict-queue.md new file mode 100644 index 00000000..7479f318 --- /dev/null +++ b/skills/soulful/soulful-framework/references/conflict-queue.md @@ -0,0 +1,49 @@ +# conflicts-queue.json Schema + +冲突队列文件路径:`~/.hermes/soulful/conflicts-queue.json` + +## Schema +```json +{ + "id": "conflict_20260713143052", // 冲突唯一ID,时间戳后缀 + "entry": "哪条journal行为", // A组(最近行为)来源 + "conflict_with": "哪条织忆记忆矛盾", // B组(长期记忆)来源 + "description": "矛盾描述", // LLM生成的矛盾说明 + "detected_at": "2026-07-13T14:30:52", // 检测时间 + "status": "pending" // pending | resolved | dismissed +} +``` + +## 冲突生命周期 + +1. **pending** — `detect_memory_conflicts()` 检测到并存入 +2. **resolved** — 人工确认后由外部逻辑更新 +3. **dismissed** — 确认为非真实矛盾后由外部逻辑更新 + +## 写入保证 + +- `_write_conflicts_to_queue()` 写入前检查 id 去重,不会重复追加同一冲突 +- 新冲突追加到队列尾部,保持 `pending` 状态 + +## 调用链路 + +``` +detect_memory_conflicts(journal_path, zhiyi_token) + → 读取 journal + 织忆 recall + → LLM 判断是否有直接矛盾 + → 有 → _write_conflicts_to_queue([冲突]) + → 返回冲突列表 +``` + +## 使用示例 + +```python +from daemon import detect_memory_conflicts, _write_conflicts_to_queue + +zhiyi_token = "zhiyi-dev-key-2026" +journal_path = "/home/muc/.hermes/daemon/journal.jsonl" + +conflicts = detect_memory_conflicts(journal_path, zhiyi_token) +for c in conflicts: + print(f"[{c['id']}] {c['description']}") +``` \ No newline at end of file diff --git a/skills/zhiyi/zhiyi/SKILL.md b/skills/zhiyi/zhiyi/SKILL.md index 203e9db7..dd5dc6c6 100644 --- a/skills/zhiyi/zhiyi/SKILL.md +++ b/skills/zhiyi/zhiyi/SKILL.md @@ -2,9 +2,8 @@ tags: [zhiyi] name: zhiyi description: "织忆 (MemoryWeave) 聚合技能 — API 客户端 + 开发工作流 + 运维规范。含 commit/recall API、数据架构、部署验证、Go 方法论。" -version: 11.34 -author: 小唯 A06 -updated: 2026-07-13(memory_recall.py 代码审查5个bug修复+Soulful脏数据清理+三系统全面检查结果) +version: 11.36 +updated: 2026-07-13(画像可执行化 v2 + 参考项目对比分析) --- @@ -16,6 +15,17 @@ updated: 2026-07-13(memory_recall.py 代码审查5个bug修复+Soulful脏数 - bge-embed: 8000端口正常,Rust IPC sidecar: 正常 - **结论:完全健康,无问题** +**2026-07-13 daemon → TencentDB 集成(新增)**: +- `daemon.py` 的 `tddb_capture(reflection_dict, state, ctx)`:deep tick 时自动 capture 到 :8420,形成人格记忆积累 +- `_sync_soulful_to_llm_context()` 内每 tick 调用 `/search/memories`,提取 `latest_persona` 写入 `ctx["tddb"]` +- `save_llm_context()` 显式 `ctx.get("tddb", {})` 加入 llm_context.json 输出 +- **注入链路**:daemon tick → TencentDB sync → llm_context.json → Hermes 插件 prefetch 时注入 + +**2026-07-13 画像可执行化**:Soulful `user-profile.json` v2 的 `behavior_rules`(8条可执行行为规范)经 `daemon.py` 的 `save_llm_context()` 拼接为 `【规则类型】规则内容` 格式字符串数组,写入 `llm_context.json` 的 `system_prompt_snippets` 字段,织忆 prefetch 自动携带至每轮对话。效果:模型直接看到并遵守牧尘的行为规范,而非需要从元数据推断。 + +验证:`python3 -c "import json; print(len(json.load(open('~/.hermes/llm_context.json')).get('system_prompt_snippets',[])))"` → 应输出 8。 +- **验证**:`python3 -c "import json; print(json.load(open('~/.hermes/llm_context.json')).get('tddb'))"` + ### TencentDB Gateway - 端口8420,进程PID 575095,uptime 28910s(~8h) - Pipeline: 4 tasks consumed/completed,0 failed @@ -419,6 +429,19 @@ curl -s -X POST -H "X-API-Key: zhiyi-dev-key-2026" \ http://localhost:7821/api/v1/commit ``` +### ✅ time_decay_recall — daemon 侧时间衰减重排序(2026-07-13 新增) +位于 `~/.hermes/scripts/daemon.py`,综合分 = recall_score × 0.6 + decay_score × 0.4 +decay_score = max(0.3, 1.0 - days_since_update × 0.015),60天+降至 0.3 地板 + +```python +from daemon import time_decay_recall +results = time_decay_recall("牧尘偏好", top_k=5) +# 返回: [{content, score, timestamp, final_score, decay_score, days_since_update, ...}] +``` + +**特点**:原始取 top_k × 2 条,重排序后返回 top_k 条;API 异常 / non-200 → 返回空列表,不抛异常 +**验证脚本**:`/tmp/hermes-verify-time_decay_recall.py`(10/10 passed) + # ✅ recall — 语义搜索(POST JSON body,不是 GET query params!) # ⚠️ 常见错误:curl "http://.../recall?query=xxx" → {"error":"invalid body"} # 正确用法:-d '{"query":"关键词","top_k":5}' 的 POST 形式 @@ -1256,7 +1279,8 @@ python3 ~/.hermes/scripts/wiki_curator.py --dir ~/mc/小唯/ --llm --dry-run - **⚠️ 共享 Gitea remote 覆盖风险(2026-07-13)**:`references/shared-gitea-remote-risk.md` — `mc` 和 `~/.hermes` 共用同一 remote,force push 会互相覆盖。解决方案。 - **⭐ ColaOS 竞品分析(2026-07-09)**:`references/competitor-colaos-20260709.md` — SPA 网站抓取方法 + 心迹/牵挂/无感感知设计详析。🔴 高优先级借鉴:情感层与任务记忆分离存储。 -- **⭐ 竞品架构对比(2026-07-01)**:`references/memory-os-7-layer-comparison.md` — Memory-OS 7 层记忆架构 vs 织忆完整对照。含信任评分、4 级降级、自动注入钩子、CREATIVE.md 隔离、强制注入 prompt 共 5 个可直接借鉴的设计点。用于织忆迭代时对标参考。 +- **⭐ 竞品架构对比(2026-07-01)**:`references/memory-os-7-layer-comparison.md` — Memory-OS 7 层记忆架构 vs 织忆完整对照。含信任评分、4 级降级、自动注入钩子、CREATIVE.md 隔离、强制注入 prompt 共 5 个可直接借鉴的设计点。 +- **⭐ 记忆系统对比分析(2026-07-13)**:`references/memory-system-comparison.md` — 克隆分析 yantrikdb/memos/honcho/agent-memory-skill 等 9 个参考项目,输出 P0-P2 优先级建议(Ebbinghaus遗忘/冲突检测/多信号评分/think Consolidation/主动触发器)用于织忆迭代时对标参考。 - **⭐ 自启动架构(2026-07-02)**:`references/systemd-auto-start.md` — 4 组件启动串行、binary 持久化位置、service 文件配置、ExecStartPre 自愈、重启后验证方法 - **⭐ /tmp/memoryweave 丢失恢复指南(2026-06-25)**:`references/tmp-memoryweave-recovery.md` diff --git a/skills/zhiyi/zhiyi/scripts/verify_time_decay_recall.py b/skills/zhiyi/zhiyi/scripts/verify_time_decay_recall.py new file mode 100644 index 00000000..4af870b2 --- /dev/null +++ b/skills/zhiyi/zhiyi/scripts/verify_time_decay_recall.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 +"""Ad-hoc verification: time_decay_recall in daemon.py +Run: python3 /home/muc/.hermes/skills/zhiyi/zhiyi/scripts/verify_time_decay_recall.py +Expected: 10/10 passed +""" +import sys, os, unittest.mock as m + +sys.path.insert(0, '/home/muc/.hermes/scripts') +from daemon import time_decay_recall + +passed = 0 +failed = 0 + +def check(label, cond): + global passed, failed + if cond: + print(f" PASS {label}") + passed += 1 + else: + print(f" FAIL {label}") + failed += 1 + +print("\n=== time_decay_recall verification ===\n") + +# 1. Returns list +result = time_decay_recall('test', top_k=3) +check("returns list", isinstance(result, list)) + +# 2. Each item has required fields +if result: + item = result[0] + check("has final_score", 'final_score' in item) + check("has decay_score", 'decay_score' in item) + check("has days_since_update", 'days_since_update' in item) + check("has timestamp", 'timestamp' in item) + +# 3. Sorted descending by final_score +scores = [x['final_score'] for x in result] +check("sorted descending", scores == sorted(scores, reverse=True)) + +# 4. top_k respected +check(f"top_k respected (len={len(result)})", len(result) <= 3) + +# 5. Mock: old entry hits floor 0.3 +with m.patch('requests.post') as mock_post: + mock_post.return_value.status_code = 200 + mock_post.return_value.json.return_value = { + 'results': [ + {'content': 'fresh', 'score': 0.9, 'timestamp': '2026-07-01T00:00:00+08:00'}, + {'content': 'old', 'score': 0.9, 'timestamp': '2024-01-01T00:00:00+08:00'}, + ] + } + mocked = time_decay_recall('mock', top_k=5) + old_item = next(x for x in mocked if x['content'] == 'old') + check("old entry decay floor == 0.3", old_item['decay_score'] == 0.3) + +# 6. Mock: server error returns [] +with m.patch('requests.post') as mock_post: + mock_post.side_effect = Exception("boom") + err_result = time_decay_recall('fail', top_k=3) + check("exception returns []", err_result == []) + +# 7. Mock: non-200 returns [] +with m.patch('requests.post') as mock_post: + mock_post.return_value.status_code = 500 + mock_post.return_value.json.return_value = {} + check("non-200 returns []", time_decay_recall('bad', top_k=3) == []) + +print(f"\n=== {passed}/{passed+failed} passed ===") +sys.exit(0 if failed == 0 else 1) \ No newline at end of file diff --git a/soulful/user-profile.json b/soulful/user-profile.json index decad597..be149aca 100644 --- a/soulful/user-profile.json +++ b/soulful/user-profile.json @@ -1,6 +1,6 @@ { "version": 2, - "updated_at": "2026-07-13T12:30:00.000000+00:00", + "updated_at": "2026-07-13T14:00:45.524882+00:00", "behavior_rules": { "answer_format": "结论先行 → 数据支撑 → 行动建议。不废话、不科普、不加补丁式回答。", "code_quality": "修复后必须自测,不等用户测。遇到stderr先试3种方法,不行再报告障碍。", @@ -13,8 +13,16 @@ }, "communication_style": "简洁直接", "work_patterns": { - "peak_hours": ["09:00-12:00", "14:00-18:00"], - "focus_issues": ["会计凭证处理", "织忆系统", "cron自动化", "KOCR识别"] + "peak_hours": [ + "09:00-12:00", + "14:00-18:00" + ], + "focus_issues": [ + "会计凭证处理", + "织忆系统", + "cron自动化", + "KOCR识别" + ] }, "preferences": { "code_review": "改完必须自测再提交,不依赖用户测试", diff --git a/stock_backtest/news_20260713.txt b/stock_backtest/news_20260713.txt new file mode 100644 index 00000000..59ccbaee --- /dev/null +++ b/stock_backtest/news_20260713.txt @@ -0,0 +1,20 @@ +📰 每日宏观+持仓摘要 + +【大盘】2026-07-13 08:00 +📉 上证: 3996.16 (-1.00%) +📉 沪深300: 4.83 (-1.77%) +📈 五粮液: 73.69 (+3.94%) + +【五粮液持仓信号】⭐ 关注 + +📈 布伦特原油: 78.48 (+2.47) +【宏观风险提示】 +• 大盘若跌破关键均线 → 空仓信号加强 +• 白酒消费数据持续低迷 → 基本面承压 +• 人民币贬值预期 → 外资流出白酒板块压力 + +【五粮液状态】 +价格: 73.69 (+3.94%) +MA20下方 → 空仓信号,等待金叉 + +小唯股票投研 · 每日新闻 \ No newline at end of file diff --git a/stock_backtest/paper_trades_000858.json b/stock_backtest/paper_trades_000001.json similarity index 56% rename from stock_backtest/paper_trades_000858.json rename to stock_backtest/paper_trades_000001.json index 9c13897f..09e29ad5 100644 --- a/stock_backtest/paper_trades_000858.json +++ b/stock_backtest/paper_trades_000001.json @@ -1,10 +1,15 @@ { "strategy": "MA20突破", - "stock": "五粮液(000858)", + "stock": "平安银行(000001)", "start_date": "2026-07-12", "initial_capital": 100000, - "current_capital": 100000, - "positions": [], + "current_capital": 7.0200000000040745, + "positions": [ + { + "shares": 9487, + "avg_cost": 10.54 + } + ], "closed_trades": [], "stats": { "total_trades": 0, @@ -13,5 +18,7 @@ "total_pnl": 0, "win_rate": 0 }, - "notes": "模拟记录,非真实下单。等待MA20金叉信号再买入。" + "notes": "模拟记录,非真实下单。等待MA20金叉信号再买入。", + "last_signal": "买入", + "last_signal_date": "2026-07-13" } \ No newline at end of file