[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GFEMRFJB4XBJ5605ADA7MF":3,"skill-same:01M6GFEMRFJB4XBJ5605ADA7MF":75},{"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":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M6GFEMRFJB4XBJ5605ADA7MF","ebbinghaus-cron-runtime",null,"Direct runtime fallback for Ebbinghaus memory provider execution when the model tool is unavailable, especially in cron or scripted contexts.","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\u002Fd9\u002Fd9304d0e664af65213ad30f911db0b3d4ba7e3e2beafd1006526b8d9537be960\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"ebbinghaus cron runtime","ebbinghaus","cron","runtime","hermes","consolidation","ebbinghaus memory","ebbinghaus-memory","agent-memory","provider","hermes agent","macos","direct","model","tool","sqlite","execution","windows","memory","linux","2026-11-10 10:12:30",false,"---\r\nname: ebbinghaus-cron-runtime\r\ndescription: Direct runtime fallback for Ebbinghaus memory provider execution when the model tool is unavailable, especially in cron or scripted contexts.\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, fallback, sqlite]\r\n    related_skills: [ebbinghaus-memory, agent-memory-consolidation]\r\n---\r\n\r\n# Ebbinghaus Cron Runtime\r\n\r\nUse this skill when `memory.provider` is `ebbinghaus` but the `ebbinghaus_memory` tool is **not exposed** — for example, inside a non-interactive cron job, a scheduled script, or a background automation — and you still need to perform durable memory operations such as `stats`, `sleep`, `decay`, or batch `remember`\u002F`recall`.\r\n\r\n## Trigger conditions\r\n\r\n- Cron job needs Ebbinghaus memory maintenance but cannot call the tool surface.\r\n- One-off script must run `sleep_cycle` with custom thresholds.\r\n- Observability task wants `stats` without invoking the agent loop.\r\n\r\n## Invocation pattern\r\n\r\nInstead of `ebbinghaus_memory`, call the provider directly:\r\n\r\n```python\r\nimport sys\r\nfrom pathlib import Path\r\n\r\nSOURCE_DIR = Path(\"\u002Fpath\u002Fto\u002Fhermes-agent\")\r\nif str(SOURCE_DIR) not in sys.path:\r\n    sys.path.insert(0, str(SOURCE_DIR))\r\n\r\nfrom hermes_constants import get_hermes_home\r\nfrom plugins.memory.ebbinghaus import EbbinghausMemoryProvider\r\n\r\nprovider = EbbinghausMemoryProvider()\r\nprovider.initialize(session_id=\"cron-sleep\", hermes_home=str(get_hermes_home()))\r\n\r\nresult = provider._store.sleep_cycle(\r\n    rehearse_threshold=0.45,\r\n    forget_threshold=0.08,\r\n    salience_keep_threshold=0.7,\r\n    prune=True,\r\n    limit=200,\r\n)\r\n\r\nprovider.shutdown()\r\nprint(result)\r\n```\r\n\r\n## Helper script\r\n\r\nIf the repo has `scripts\u002Frun_ebbinghaus.py`, prefer it for one-shot runs:\r\n\r\n```bash\r\npy -3 scripts\u002Frun_ebbinghaus.py stats\r\npy -3 scripts\u002Frun_ebbinghaus.py sleep '{\"rehearse_threshold\":0.45,\"forget_threshold\":0.08,\"salience_keep_threshold\":0.7,\"prune\":true,\"limit\":200}'\r\n```\r\n\r\nThe script prints JSON and always shuts down the provider.\r\n\r\n## Obsidian cron summaries\r\n\r\nWhen a cron job runs an Ebbinghaus sleep cycle and writes a safe Obsidian audit note:\r\n\r\n1. Ground the local timestamp first, then derive the monthly note name.\r\n2. Capture stats before sleep, run the sleep cycle with explicit thresholds, then capture stats after sleep.\r\n3. Append only counts and thresholds to the monthly note; never write recalled memory content, raw session text, local DB paths, environment values, tokens, or private conversation excerpts.\r\n4. Create bridge\u002Fexplainer notes only if missing; do not rewrite existing bridge notes during routine sleep.\r\n5. Verify by reading back the written section and running targeted guard searches on the generated note.\r\n\r\nSee `references\u002Fobsidian-cron-summary-windows.md` for the Windows-safe note append and guard-verification pattern.\r\n\r\n## Channel\u002Ftext ingestion rule\r\n\r\nCron syncs must not promote raw session transcripts into durable memory. Treat Telegram\u002FDiscord\u002FLINE transcripts as inspection-only sources; only promote abstracted policy facts, handles, public URLs, and operational handles. Eschew storing raw channel text or anything verbatim from a non-X source.\r\n\r\n## Nightly maintenance flow\r\n\r\nWhen scheduling Ebbinghaus sleep in cron, bundle the cleanup and wiki phases into one durable maintenance routine. This keeps low-salience noise from accumulating between runs and provides an Obsidian audit trail.\r\n\r\nTypical nightly flow:\r\n\r\n1. `ebbinghaus_memory(action='stats')` → capture baseline.\r\n2. `ebbinghaus_memory(action='sleep', forget_threshold=0.08, salience_keep_threshold=0.6, prune=True)` → sleep cycle.\r\n3. Identify low-salience execution\u002FUI noise clusters by source\u002Ftag and `forget` them explicitly in a follow-up batch.\r\n4. `memory_llm_wiki_export(...)` → export curated + Ebbinghaus memories to Obsidian.\r\n5. Append a safe summary note to the monthly Obsidian memory note with only counts and thresholds.\r\n6. Verify by reading the note and running split Windows-safe guard searches.\r\n\r\nAvoid long verbose summaries in the chat output; the cron is local-only by default. If the user asked for live notification, recreate with `deliver='telegram'` or `deliver='all'`.\r\n\r\n## Compensation for Ebbinghaus limitations\r\n\r\nIf direct provider storage cannot support a required schema change, re-classify the relevant rows as non-durable observability artifacts: log them under `x_artifacts` or a transient sidecar file, and make downstream jobs read that file or table.\r\n\r\nExceptions based on verbosity or format preferences are not project-wide unless rooted in facts about the user\u002Fcodebase. Do not decline to add these rules just because a user expressed them.\r\n\r\n- Do **not** call `handle_tool_call(\"ebbinghaus_memory\", ...)` from a script; it parses\u002Fnamespaces JSON args and is slower than direct store access.\r\n- Always `shutdown()` the provider to release the SQLite connection cleanly.\r\n- The database defaults to `~\u002F.hermes\u002Febbinghaus_memory.db` unless `plugins.ebbinghaus.db_path` overrides it.\r\n- This pattern does **not** trigger any agent hooks (prefetch, prefetch, on_session_end). It is a raw store access path.\r\n- For Windows-path guard checks with ripgrep-backed search tools, split secret-term searches from local-path marker searches instead of putting backslashes or drive-path character classes into one regex.\r\n\r\n## Verification\r\n\r\n- `run_ebbinghaus.py stats` must return `count`, `retained_count`, `avg_salience`, etc.\r\n- `run_ebbinghaus.py sleep ...` must return `mode: \"sleep_cycle\"` with `reviewed`, `rehearsed`, `forgotten`, `pruned`.\r\n- If either prints a Python traceback, treat as provider init failure and check `HERMES_HOME`\u002F`PYTHONPATH`.\r\n","# Ebbinghaus Cron Runtime\r\n\r\nUse this skill when `memory.provider` is `ebbinghaus` but the `ebbinghaus_memory` tool is **not exposed** — for example, inside a non-interactive cron job, a scheduled script, or a background automation — and you still need to perform durable memory operations such as `stats`, `sleep`, `decay`, or batch `remember`\u002F`recall`.\r\n\r\n## Trigger conditions\r\n\r\n- Cron job needs Ebbinghaus memory maintenance but cannot call the tool surface.\r\n- One-off script must run `sleep_cycle` with custom thresholds.\r\n- Observability task wants `stats` without invoking the agent loop.\r\n\r\n## Invocation pattern\r\n\r\nInstead of `ebbinghaus_memory`, call the provider directly:\r\n\r\n```python\r\nimport sys\r\nfrom pathlib import Path\r\n\r\nSOURCE_DIR = Path(\"\u002Fpath\u002Fto\u002Fhermes-agent\")\r\nif str(SOURCE_DIR) not in sys.path:\r\n    sys.path.insert(0, str(SOURCE_DIR))\r\n\r\nfrom hermes_constants import get_hermes_home\r\nfrom plugins.memory.ebbinghaus import EbbinghausMemoryProvider\r\n\r\nprovider = EbbinghausMemoryProvider()\r\nprovider.initialize(session_id=\"cron-sleep\", hermes_home=str(get_hermes_home()))\r\n\r\nresult = provider._store.sleep_cycle(\r\n    rehearse_threshold=0.45,\r\n    forget_threshold=0.08,\r\n    salience_keep_threshold=0.7,\r\n    prune=True,\r\n    limit=200,\r\n)\r\n\r\nprovider.shutdown()\r\nprint(result)\r\n```\r\n\r\n## Helper script\r\n\r\nIf the repo has `scripts\u002Frun_ebbinghaus.py`, prefer it for one-shot runs:\r\n\r\n```bash\r\npy -3 scripts\u002Frun_ebbinghaus.py stats\r\npy -3 scripts\u002Frun_ebbinghaus.py sleep '{\"rehearse_threshold\":0.45,\"forget_threshold\":0.08,\"salience_keep_threshold\":0.7,\"prune\":true,\"limit\":200}'\r\n```\r\n\r\nThe script prints JSON and always shuts down the provider.\r\n\r\n## Obsidian cron summaries\r\n\r\nWhen a cron job runs an Ebbinghaus sleep cycle and writes a safe Obsidian audit note:\r\n\r\n1. Ground the local timestamp first, then derive the monthly note name.\r\n2. Capture stats before sleep, run the sleep cycle with explicit thresholds, then capture stats after sleep.\r\n3. Append only counts and thresholds to the monthly note; never write recalled memory content, raw session text, local DB paths, environment values, tokens, or private conversation excerpts.\r\n4. Create bridge\u002Fexplainer notes only if missing; do not rewrite existing bridge notes during routine sleep.\r\n5. Verify by reading back the written section and running targeted guard searches on the generated note.\r\n\r\nSee `references\u002Fobsidian-cron-summary-windows.md` for the Windows-safe note append and guard-verification pattern.\r\n\r\n## Channel\u002Ftext ingestion rule\r\n\r\nCron syncs must not promote raw session transcripts into durable memory. Treat Telegram\u002FDiscord\u002FLINE transcripts as inspection-only sources; only promote abstracted policy facts, handles, public URLs, and operational handles. Eschew storing raw channel text or anything verbatim from a non-X source.\r\n\r\n## Nightly maintenance flow\r\n\r\nWhen scheduling Ebbinghaus sleep in cron, bundle the cleanup and wiki phases into one durable maintenance routine. This keeps low-salience noise from accumulating between runs and provides an Obsidian audit trail.\r\n\r\nTypical nightly flow:\r\n\r\n1. `ebbinghaus_memory(action='stats')` → capture baseline.\r\n2. `ebbinghaus_memory(action='sleep', forget_threshold=0.08, salience_keep_threshold=0.6, prune=True)` → sleep cycle.\r\n3. Identify low-salience execution\u002FUI noise clusters by source\u002Ftag and `forget` them explicitly in a follow-up batch.\r\n4. `memory_llm_wiki_export(...)` → export curated + Ebbinghaus memories to Obsidian.\r\n5. Append a safe summary note to the monthly Obsidian memory note with only counts and thresholds.\r\n6. Verify by reading the note and running split Windows-safe guard searches.\r\n\r\nAvoid long verbose summaries in the chat output; the cron is local-only by default. If the user asked for live notification, recreate with `deliver='telegram'` or `deliver='all'`.\r\n\r\n## Compensation for Ebbinghaus limitations\r\n\r\nIf direct provider storage cannot support a required schema change, re-classify the relevant rows as non-durable observability artifacts: log them under `x_artifacts` or a transient sidecar file, and make downstream jobs read that file or table.\r\n\r\nExceptions based on verbosity or format preferences are not project-wide unless rooted in facts about the user\u002Fcodebase. Do not decline to add these rules just because a user expressed them.\r\n\r\n- Do **not** call `handle_tool_call(\"ebbinghaus_memory\", ...)` from a script; it parses\u002Fnamespaces JSON args and is slower than direct store access.\r\n- Always `shutdown()` the provider to release the SQLite connection cleanly.\r\n- The database defaults to `~\u002F.hermes\u002Febbinghaus_memory.db` unless `plugins.ebbinghaus.db_path` overrides it.\r\n- This pattern does **not** trigger any agent hooks (prefetch, prefetch, on_session_end). It is a raw store access path.\r\n- For Windows-path guard checks with ripgrep-backed search tools, split secret-term searches from local-path marker searches instead of putting backslashes or drive-path character classes into one regex.\r\n\r\n## Verification\r\n\r\n- `run_ebbinghaus.py stats` must return `count`, `retained_count`, `avg_salience`, etc.\r\n- `run_ebbinghaus.py sleep ...` must return `mode: \"sleep_cycle\"` with `reviewed`, `rehearsed`, `forgotten`, `pruned`.\r\n- If either prints a Python traceback, treat as provider init failure and check `HERMES_HOME`\u002F`PYTHONPATH`.\r\n",{"name":5,"author":44,"license":15,"version":45,"metadata":46,"platforms":52,"description":7},"Hermes Agent","1.0.0",{"hermes":47},{"tags":48,"related_skills":50},[37,20,21,49,34],"fallback",[26,51],"agent-memory-consolidation",[38,30,36],"main","0d1434f89f4bc6b07e9d272accd8c1013768820f","archive\u002Fskill-md-reviewed\u002Fsha256\u002Fd9\u002Fd9304d0e664af65213ad30f911db0b3d4ba7e3e2beafd1006526b8d9537be960",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":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add zapabob\u002FSkills --skill ebbinghaus-cron-runtime",{"tool":67,"command":68},"bunx","bunx skills add zapabob\u002FSkills --skill ebbinghaus-cron-runtime",{"tool":70,"command":71},"pnpm","pnpm dlx skills add zapabob\u002FSkills --skill ebbinghaus-cron-runtime","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002Fd9\u002Fd9304d0e664af65213ad30f911db0b3d4ba7e3e2beafd1006526b8d9537be960\u002FSKILL.md",true,[],[76,109,144,170,197,213],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":95,"publishedAt":39},"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",[82,87,90],{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":88,"categoryName":89,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":91,"categoryName":92,"taxonomyType":93,"taxonomyTypeDesc":94},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[78,96,30,97,98,38,36,99,100,101,102,103,104,23,29,105,53,106,107,108],"openclaw","cli","github","official","search","https","social-media","api","Media","twitter","social","via","post",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":126,"publishedAt":39},"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",[115,118,121,122,123],{"categoryNo":116,"categoryName":117,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":119,"categoryName":120,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":88,"categoryName":89,"taxonomyType":85,"taxonomyTypeDesc":86},{"categoryNo":91,"categoryName":92,"taxonomyType":93,"taxonomyTypeDesc":94},{"categoryNo":124,"categoryName":125,"taxonomyType":93,"taxonomyTypeDesc":94},"01JBSEEDCAT000000000000036","内容创作者",[127,128,129,130,30,131,38,132,36,133,134,135,136,137,138,139,140,141,142,143],"writing","writing plans","plans","design","review","workflow","documentation","tasks","development","code","planning","code-review","subagent","write","superpowers","paths","test-driven-development",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":153,"publishedAt":39},"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",[150],{"categoryNo":151,"categoryName":152,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000016","图像与多媒体",[146,30,38,154,155,156,157,158,159,160,32,161,162,163,164,165,166,167,168,169],"openai","speech","multimodal","Transformers","ASR","Audio","text","speech recognition","use","general","multilingual","translation","english","identification","processing","Audio Processing",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":179,"publishedAt":39},"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",[176],{"categoryNo":177,"categoryName":178,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000013","分析与可视化",[180,30,181,182,36,183,184,185,186,187,188,32,189,190,191,192,193,194,195,196],"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":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":201,"categories":202,"keywords":204,"publishedAt":39},"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",[203],{"categoryNo":88,"categoryName":89,"taxonomyType":85,"taxonomyTypeDesc":86},[199,30,205,98,38,206,207,208,21,209,210,23,29,211,212],"terminal","automation","http","monitoring","json","rss","devops","with",{"skillNo":214,"name":215,"nameZh":6,"description":216,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":217,"categories":218,"keywords":221,"publishedAt":39},"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",[219,220],{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},{"categoryNo":91,"categoryName":92,"taxonomyType":93,"taxonomyTypeDesc":94},[222,223,224,38,225,154,226,227,228,157,229,103,230,231,232,233,234,235,236,237],"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"]