[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6G910WP6CDK663HCD88VA48":3,"skill-same:01M6G910WP6CDK663HCD88VA48":82},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":60,"commitSha":61,"skillDirectory":62,"forksCount":63,"repositoryHtmlUrl":64,"repositoryHomepageUrl":6,"ownerHtmlUrl":65,"ownerBlogUrl":6,"ownerDescription":66,"updatedAt":67,"install":68,"resources":81},"01M6G910WP6CDK663HCD88VA48","ebbinghaus-provider-direct",null,"Run Ebbinghaus memory provider from source for cron jobs.","zapabob\u002FSkills","zapabob","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F130830376?v=4","01M6DBMYZAGRTFQDSQYW3W764P","峯岸 亮","01M6DBMZ3GKDSJ01NZ9XTZD7JD",2,"MIT","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002F70\u002F70d9ca2aac39343d2dec01528d0ddd711c2a41b6f7e4be2a87eefd72c5941a02\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"provider","ebbinghaus provider direct","ebbinghaus","direct","windows","run","cron jobs","automation","hermes","hermes agent","obsidian","agent-memory","ebbinghaus-memory","ebbinghaus memory","consolidation","note-taking","note","sleep","memory","linux","2026-11-10 10:12:30",false,"---\r\nname: ebbinghaus-provider-direct\r\ndescription: \"Run Ebbinghaus memory provider from source for cron jobs.\"\r\nversion: 1.0.0\r\nauthor: Hermes Agent\r\nlicense: MIT\r\nplatforms: [linux, macos, windows]\r\nmetadata:\r\n  hermes:\r\n    tags: [memory, ebbinghaus, cron, automation, sleep, provider]\r\n    related_skills: [ebbinghaus-memory, agent-memory-consolidation, note-taking\u002Fobsidian]\r\n---\r\n\r\n# Ebbinghaus Provider Direct Invocation\r\n\r\nUse this when you need to drive the Ebbinghaus memory provider from a Python\r\nscript — typically a cron job, a batch stats pass, or any context where the\r\n`ebbinghaus_memory` *agent tool* is not exposed in the active tool surface.\r\n\r\n> NOTE: The bundled `ebbinghaus-memory` skill's fallback section documents this\r\n> same scenario but with two inaccuracies (it implies an **async** API and\r\n> imports `get_hermes_home` from `core.utils`). This skill is the verified,\r\n> fork-accurate version. Recommend `hermes curator adopt ebbinghaus-memory` to\r\n> fix the bundled fallback.\r\n\r\n## When to use\r\n\r\n- A scheduled\u002Fcron task must run an Ebbinghaus `sleep` \u002F `stats` cycle with no\r\n  user present and no agent tool surface.\r\n- You want to verify memory counts before\u002Fafter programmatically.\r\n- You are writing a probe\u002Ftest against `plugins\u002Fmemory\u002Febbinghaus\u002F`.\r\n\r\n## Prerequisites\r\n\r\n- Run with the **project venv Python** (the provider imports `hermes_constants`\r\n  and `plugins.*`, which must resolve from the fork root):\r\n  - Windows: `.venv\u002FScripts\u002Fpython.exe script.py`\r\n  - macOS\u002FLinux: `.venv\u002Fbin\u002Fpython script.py`\r\n- The script's `sys.path` must include the fork root (set `HERMES_REPO` or run\r\n  with cwd = fork root).\r\n- Do NOT import `core.utils`; `get_hermes_home` lives in top-level\r\n  `hermes_constants`.\r\n- **hakua-memory v0.3.5+** installed in the environment (`pip install -e \u002Fpath\u002Fto\u002Fhakua-memory`)\r\n- Python **>=3.11** required (hakua-memory v0.3.5+ drops Python 3.10 support)\r\n\r\n## Verified recipe\r\n\r\n```python\r\nimport json, os, sys\r\nREPO = os.environ.get(\"HERMES_REPO\", os.getcwd())\r\nsys.path.insert(0, REPO)\r\n\r\nfrom plugins.memory.ebbinghaus import EbbinghausMemoryProvider\r\nfrom hermes_constants import get_hermes_home\r\n\r\np = EbbinghausMemoryProvider()\r\n# initialize is SYNCHRONOUS and requires session_id as the 1st positional arg.\r\np.initialize(\"cron-memory-sleep\", hermes_home=str(get_hermes_home()))\r\n\r\npre = json.loads(p.handle_tool_call(\"ebbinghaus_memory\", {\"action\": \"stats\"}))\r\n\r\nsleep = json.loads(p.handle_tool_call(\"ebbinghaus_memory\", {\r\n    \"action\": \"sleep\",\r\n    \"prune\": True,                  # -> prune_mode \"delete\" (physical delete)\r\n    \"rehearse_threshold\": 0.45,\r\n    \"forget_threshold\": 0.08,\r\n    \"salience_keep_threshold\": 0.7,\r\n    \"limit\": 200,\r\n}))\r\n\r\npost = json.loads(p.handle_tool_call(\"ebbinghaus_memory\", {\"action\": \"stats\"}))\r\np.shutdown()\r\nprint(json.dumps({\"pre\": pre, \"sleep\": sleep, \"post\": post}, ensure_ascii=False, default=str))\r\n```\r\n\r\nA known-good, ready-to-run copy lives at `templates\u002Febbinghaus_sleep_cron.py`.\r\n\r\n## Critical API facts (verified on this fork)\r\n\r\n- **Everything is synchronous.** `initialize(session_id, hermes_home=...)`,\r\n  `handle_tool_call(\"ebbinghaus_memory\", args) -> str` (JSON string, NOT a dict,\r\n  NOT awaitable), and `shutdown()` are all plain methods. Do NOT `await` them.\r\n- `handle_tool_call` returns a **JSON string**; `json.loads(...)` it.\r\n- `initialize` signature is `initialize(self, session_id, **kwargs)`. Pass a\r\n  dummy session id (e.g. `\"cron-memory-sleep\"`); `hermes_home` goes in kwargs.\r\n- Correct imports:\r\n  - `from plugins.memory.ebbinghaus import EbbinghausMemoryProvider`\r\n  - `from hermes_constants import get_hermes_home`  (NOT `core.utils`)\r\n\r\n## Sleep parameter semantics\r\n\r\n- `prune=true` resolves to `prune_mode=\"delete\"` (physical row DELETE).\r\n- `prune_mode` accepts `none | archive | delete`. Leave `prune` unset to use the\r\n  plugin default (usually `archive`).\r\n- `forget_threshold`, `rehearse_threshold`, `salience_keep_threshold` are floats\r\n  in `[0, 1]`, clamped internally.\r\n\r\n## Stats & verification\r\n\r\n- `stats()` returns a dict. Useful keys:\r\n  - `count` = **total** memories across all states (use this to verify deletes).\r\n  - `active_count`, `archived_count`, `retained_count`, `avg_salience`,\r\n    `rehearsal_count`, `retrieval_count`.\r\n- `sleep_cycle()` returns a dict with: `reviewed` (int), `rehearsed` (list of\r\n  ids), `forgotten` (list of ids), `pruned` (list of ids), `archived` (list),\r\n  `active_count`, `archived_count`.\r\n- **Verification rule:** the `sleep` tool output can under-report changes. Always\r\n  confirm by comparing `stats()['count']` BEFORE vs AFTER. A `delete` prune drops\r\n  `count` by exactly `len(pruned)`. (Verified: 2293 -> 2218 = 75 pruned.)\r\n\r\n## Platform \u002F repo quirks (this fork, Windows host)\r\n\r\n- venv layout is `.venv\u002FScripts\u002Fpython.exe` (Windows), not `.venv\u002Fbin\u002Factivate`.\r\n- `search_files` (ripgrep-backed) returns IO errors on repo paths containing\r\n  spaces (e.g. `%USERPROFILE%\\Documents\\New project\\hermes-agent`). Use\r\n  `terminal` `grep`\u002F`ls` for discovery on this checkout.\r\n\r\n## Pitfalls\r\n\r\n- Do not `await` any provider call — they are sync and the await will raise\r\n  `TypeError: 'str'\u002F'NoneType' is not awaitable`.\r\n- Do not import `get_hermes_home` from `core.utils` — `ModuleNotFoundError`.\r\n- `prune=true` physically deletes rows; counts are irreversible. Use `archive`\r\n  mode if you only want to hide, not delete.\r\n- Re-running a `sleep` mutates state — do not re-run just to \"verify\"; use a\r\n  `py_compile` syntax check or a no-sleep `stats`-only dry run for re-verification.\r\n- Do not estimate counts from the `sleep` output. Use `len(sleep[\"rehearsed\"])`\r\n  for rehearsed count, `len(sleep[\"pruned\"])` for pruned count, or diff\r\n  `stats()[\"sleep_rehearsal_count\"]` \u002F `stats()[\"count\"]` before vs after.\r\n- On some Windows installs, `python` is a non-functional WindowsApps stub. Use\r\n  `py -3` instead, or the project venv at `.venv\u002FScripts\u002Fpython.exe`.\r\n","# Ebbinghaus Provider Direct Invocation\r\n\r\nUse this when you need to drive the Ebbinghaus memory provider from a Python\r\nscript — typically a cron job, a batch stats pass, or any context where the\r\n`ebbinghaus_memory` *agent tool* is not exposed in the active tool surface.\r\n\r\n> NOTE: The bundled `ebbinghaus-memory` skill's fallback section documents this\r\n> same scenario but with two inaccuracies (it implies an **async** API and\r\n> imports `get_hermes_home` from `core.utils`). This skill is the verified,\r\n> fork-accurate version. Recommend `hermes curator adopt ebbinghaus-memory` to\r\n> fix the bundled fallback.\r\n\r\n## When to use\r\n\r\n- A scheduled\u002Fcron task must run an Ebbinghaus `sleep` \u002F `stats` cycle with no\r\n  user present and no agent tool surface.\r\n- You want to verify memory counts before\u002Fafter programmatically.\r\n- You are writing a probe\u002Ftest against `plugins\u002Fmemory\u002Febbinghaus\u002F`.\r\n\r\n## Prerequisites\r\n\r\n- Run with the **project venv Python** (the provider imports `hermes_constants`\r\n  and `plugins.*`, which must resolve from the fork root):\r\n  - Windows: `.venv\u002FScripts\u002Fpython.exe script.py`\r\n  - macOS\u002FLinux: `.venv\u002Fbin\u002Fpython script.py`\r\n- The script's `sys.path` must include the fork root (set `HERMES_REPO` or run\r\n  with cwd = fork root).\r\n- Do NOT import `core.utils`; `get_hermes_home` lives in top-level\r\n  `hermes_constants`.\r\n- **hakua-memory v0.3.5+** installed in the environment (`pip install -e \u002Fpath\u002Fto\u002Fhakua-memory`)\r\n- Python **>=3.11** required (hakua-memory v0.3.5+ drops Python 3.10 support)\r\n\r\n## Verified recipe\r\n\r\n```python\r\nimport json, os, sys\r\nREPO = os.environ.get(\"HERMES_REPO\", os.getcwd())\r\nsys.path.insert(0, REPO)\r\n\r\nfrom plugins.memory.ebbinghaus import EbbinghausMemoryProvider\r\nfrom hermes_constants import get_hermes_home\r\n\r\np = EbbinghausMemoryProvider()\r\n# initialize is SYNCHRONOUS and requires session_id as the 1st positional arg.\r\np.initialize(\"cron-memory-sleep\", hermes_home=str(get_hermes_home()))\r\n\r\npre = json.loads(p.handle_tool_call(\"ebbinghaus_memory\", {\"action\": \"stats\"}))\r\n\r\nsleep = json.loads(p.handle_tool_call(\"ebbinghaus_memory\", {\r\n    \"action\": \"sleep\",\r\n    \"prune\": True,                  # -> prune_mode \"delete\" (physical delete)\r\n    \"rehearse_threshold\": 0.45,\r\n    \"forget_threshold\": 0.08,\r\n    \"salience_keep_threshold\": 0.7,\r\n    \"limit\": 200,\r\n}))\r\n\r\npost = json.loads(p.handle_tool_call(\"ebbinghaus_memory\", {\"action\": \"stats\"}))\r\np.shutdown()\r\nprint(json.dumps({\"pre\": pre, \"sleep\": sleep, \"post\": post}, ensure_ascii=False, default=str))\r\n```\r\n\r\nA known-good, ready-to-run copy lives at `templates\u002Febbinghaus_sleep_cron.py`.\r\n\r\n## Critical API facts (verified on this fork)\r\n\r\n- **Everything is synchronous.** `initialize(session_id, hermes_home=...)`,\r\n  `handle_tool_call(\"ebbinghaus_memory\", args) -> str` (JSON string, NOT a dict,\r\n  NOT awaitable), and `shutdown()` are all plain methods. Do NOT `await` them.\r\n- `handle_tool_call` returns a **JSON string**; `json.loads(...)` it.\r\n- `initialize` signature is `initialize(self, session_id, **kwargs)`. Pass a\r\n  dummy session id (e.g. `\"cron-memory-sleep\"`); `hermes_home` goes in kwargs.\r\n- Correct imports:\r\n  - `from plugins.memory.ebbinghaus import EbbinghausMemoryProvider`\r\n  - `from hermes_constants import get_hermes_home`  (NOT `core.utils`)\r\n\r\n## Sleep parameter semantics\r\n\r\n- `prune=true` resolves to `prune_mode=\"delete\"` (physical row DELETE).\r\n- `prune_mode` accepts `none | archive | delete`. Leave `prune` unset to use the\r\n  plugin default (usually `archive`).\r\n- `forget_threshold`, `rehearse_threshold`, `salience_keep_threshold` are floats\r\n  in `[0, 1]`, clamped internally.\r\n\r\n## Stats & verification\r\n\r\n- `stats()` returns a dict. Useful keys:\r\n  - `count` = **total** memories across all states (use this to verify deletes).\r\n  - `active_count`, `archived_count`, `retained_count`, `avg_salience`,\r\n    `rehearsal_count`, `retrieval_count`.\r\n- `sleep_cycle()` returns a dict with: `reviewed` (int), `rehearsed` (list of\r\n  ids), `forgotten` (list of ids), `pruned` (list of ids), `archived` (list),\r\n  `active_count`, `archived_count`.\r\n- **Verification rule:** the `sleep` tool output can under-report changes. Always\r\n  confirm by comparing `stats()['count']` BEFORE vs AFTER. A `delete` prune drops\r\n  `count` by exactly `len(pruned)`. (Verified: 2293 -> 2218 = 75 pruned.)\r\n\r\n## Platform \u002F repo quirks (this fork, Windows host)\r\n\r\n- venv layout is `.venv\u002FScripts\u002Fpython.exe` (Windows), not `.venv\u002Fbin\u002Factivate`.\r\n- `search_files` (ripgrep-backed) returns IO errors on repo paths containing\r\n  spaces (e.g. `%USERPROFILE%\\Documents\\New project\\hermes-agent`). Use\r\n  `terminal` `grep`\u002F`ls` for discovery on this checkout.\r\n\r\n## Pitfalls\r\n\r\n- Do not `await` any provider call — they are sync and the await will raise\r\n  `TypeError: 'str'\u002F'NoneType' is not awaitable`.\r\n- Do not import `get_hermes_home` from `core.utils` — `ModuleNotFoundError`.\r\n- `prune=true` physically deletes rows; counts are irreversible. Use `archive`\r\n  mode if you only want to hide, not delete.\r\n- Re-running a `sleep` mutates state — do not re-run just to \"verify\"; use a\r\n  `py_compile` syntax check or a no-sleep `stats`-only dry run for re-verification.\r\n- Do not estimate counts from the `sleep` output. Use `len(sleep[\"rehearsed\"])`\r\n  for rehearsed count, `len(sleep[\"pruned\"])` for pruned count, or diff\r\n  `stats()[\"sleep_rehearsal_count\"]` \u002F `stats()[\"count\"]` before vs after.\r\n- On some Windows installs, `python` is a non-functional WindowsApps stub. Use\r\n  `py -3` instead, or the project venv at `.venv\u002FScripts\u002Fpython.exe`.\r\n",{"name":5,"author":49,"license":15,"version":50,"metadata":51,"platforms":58,"description":7},"Hermes Agent","1.0.0",{"hermes":52},{"tags":53,"related_skills":55},[42,26,54,31,41,24],"cron",[36,56,57],"agent-memory-consolidation","note-taking\u002Fobsidian",[43,59,28],"macos","main","0d1434f89f4bc6b07e9d272accd8c1013768820f","archive\u002Fskill-md-reviewed\u002Fsha256\u002F70\u002F70d9ca2aac39343d2dec01528d0ddd711c2a41b6f7e4be2a87eefd72c5941a02",0,"https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills","https:\u002F\u002Fgithub.com\u002Fzapabob","The Open University of JAPAN　2019-now\r\n\r\nTokyo University of Science　2007-2010","2026-10-26 16:29:01",{"source":8,"skillName":5,"commands":69,"prompt":79,"zipAvailable":80},[70,73,76],{"tool":71,"command":72},"npx","npx skills add zapabob\u002FSkills --skill ebbinghaus-provider-direct",{"tool":74,"command":75},"bunx","bunx skills add zapabob\u002FSkills --skill ebbinghaus-provider-direct",{"tool":77,"command":78},"pnpm","pnpm dlx skills add zapabob\u002FSkills --skill ebbinghaus-provider-direct","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002F70\u002F70d9ca2aac39343d2dec01528d0ddd711c2a41b6f7e4be2a87eefd72c5941a02\u002FSKILL.md",true,[],[83,112,147,174,201,216],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":98,"publishedAt":44},"01M6GJTE1GESGGF9K028Y7753E","xurl","X\u002FTwitter via xurl CLI: post, search, DM, media, v2 API.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fxurl\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[89,92,93],{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[85,99,59,100,101,43,28,102,103,104,105,106,107,32,33,108,60,109,110,111],"openclaw","cli","github","official","search","https","social-media","api","Media","twitter","social","via","post",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":129,"publishedAt":44},"01M6GJT8S1PXQ8WPXT1HSNBWH2","writing-plans","Write implementation plans: bite-sized tasks, paths, code.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwriting-plans\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[118,121,124,125,126],{"categoryNo":119,"categoryName":120,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":122,"categoryName":123,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},{"categoryNo":127,"categoryName":128,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000036","内容创作者",[130,131,132,133,59,134,43,135,28,136,137,138,139,140,141,142,143,144,145,146],"writing","writing plans","plans","design","review","workflow","documentation","tasks","development","code","planning","code-review","subagent","write","superpowers","paths","test-driven-development",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":156,"publishedAt":44},"01M6GJST0H5X7WHBJ3BZK0DVKH","whisper","OpenAI's general-purpose speech recognition model. Supports 99 languages, transcription, translation to English, and language identification. Six model sizes from tiny (39M params) to large (1550M params). Use for speech-to-text, podcast transcription, or multilingual audio processing. Best for robust, multilingual ASR.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwhisper\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[153],{"categoryNo":154,"categoryName":155,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[149,59,43,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173],"openai","speech","multimodal","Transformers","ASR","Audio","text","model","speech recognition","use","general","multilingual","translation","english","identification","processing","Audio Processing",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":183,"publishedAt":44},"01M6GJSMRQ8EETZTYMG72P70EA","weights-and-biases","W&B: log ML experiments, sweeps, model registry, dashboards.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fweights-and-biases\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[180],{"categoryNo":181,"categoryName":182,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",[184,59,185,186,28,187,188,189,190,191,192,164,193,194,195,196,197,198,199,200],"weights and biases","tensorflow","experiments","pytorch","visualization","registry","real-time","tuning","dashboards","experiment","log","time","Experiment Tracking","Model Registry","Hyperparameter Tuning","WandB","Real-Time Visualization",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":208,"publishedAt":44},"01M6GJS19KDPRY112JTR326S06","watchers","Poll RSS, JSON APIs, and GitHub with watermark dedup.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwatchers\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[207],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[203,59,209,101,43,31,210,211,54,212,213,32,33,214,215],"terminal","http","monitoring","json","rss","devops","with",{"skillNo":217,"name":218,"nameZh":6,"description":219,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":220,"categories":221,"keywords":224,"publishedAt":44},"01M6GJRHJD2A6Q830SWF9W48BC","serving-llms-vllm","vLLM: high-throughput LLM serving, OpenAI API, quantization.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fvllm\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[222,223],{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},[225,226,227,43,228,157,229,230,231,160,232,106,233,234,235,236,237,238,239,240],"llms","vLLM","serving llms vllm","research","openai api","tensor","Inference Serving","Production","llm serving","High Throughput","PagedAttention","Continuous Batching","Quantization","Tensor Parallelism","high-throughput","throughput"]