SkillCorpus

EverMind-AIApache-2.0活跃维护

把散落的 SKILL.md 文件整理成可检索、可评测的智能体技能语料库,自带检索与评测工具,方便给 Agent 搭建技能库。

Open-source infrastructure that turns scattered SKILL.md files into curated, retrieval-ready agent-skill corpora—with retrieval and evaluation tooling included.

v0.4.0发布于 2026-09-17 07:28 UTC701star +2 / 7 天117fork同步于 2026-11-10 11:56 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/EverMind-AI/SkillCorpus.git skillcorpus && cd skillcorpus
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
python -m skillcorpus.cli build
硬件要求按 README 说明

README 未说明显存要求;检索模型基于 Qwen3-Embedding-0.6B 与 Qwen3-Reranker-0.6B,需自行准备可运行 torch/transformers 的环境,GPU 型号未列出。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把散落的 SKILL.md 整理成可检索、可评测的 agent 技能语料库

把散落的 SKILL.md 文件整理成可检索、可评测的智能体技能语料库,自带检索与评测工具,方便给 Agent 搭建技能库。

核心能力

  • 聚合多仓库源并做安全、许可证、分类、质量、去重多道关卡
  • 导出 parquet 语料与附件并生成 dataset card
  • 提供 bi-encoder 召回加 reranker 精排的两段式检索模型
  • 内置 skillsbench、qwenclawbench、gdpval 三套评测
  • 按部署模型判断技能是否已被内化并可退役

容易踩的坑

match/ 与 evaluate/ 有各自独立的 requirements.txt,不会被 pip install -e . 一并安装;自建语料需要额外的 LLM 分类/质量端点与 embedding 去重端点;自托管检索服务只提供 /embed 与 /score,不能直接替代 SkillHub 托管的 /openapi/v1/skills 接口;run_server.sh 默认指向训练输出路径,需用 EMBEDDING_MODEL 和 RERANKER_MODEL 指向已发布权重。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

3 个版本v0.4.0
  1. v0.4.0SkillCorpus 0.4.0最新正式版2026-09-17 · 2026-09-17 07:28 UTC

    What’s Changed

    SkillCorpus v0.4.0 makes the skill library shared across agents: a skill you have in one host is visible to the others, and a skill retrieved from a catalogue is kept instead of thrown away at the end of the turn.

    • Added a shared skills library across all six hosts — one shared root at ~/.evermind-skillsearch/, hosts self-register the directory they actually resolved, retrieved skills are installed rather than cached for a turn, and changes to the shared directory take effect on the next turn with no restart, by @Tian-yi-Sun in https://github.com/EverMind-AI/SkillCorpus/pull/26
    • Hardened the repository gates and the release path — stable required-check summaries, full-tree size checks on push, pinned CI dependencies, grouped dependency updates, and a release that validates versions, notes and checksums before publishing, by @cyfyifanchen in https://github.com/EverMind-AI/SkillCorpus/pull/24
    • Fixed the Raven plugin schema's top_k default, the one host left at 5 when the multi-source release narrowed every other host to 2, by @ypflll in https://github.com/EverMind-AI/SkillCorpus/pull/25

    Upgrade Note

    Sharing is on by default. Every host also reads ~/.evermind-skillsearch/skills/ and the directories other hosts registered in ~/.evermind-skillsearch/registry.json, and skills retrieved from a catalogue are installed there. Set share_skills / shareSkills to false on a host to keep it out, or set an entry's enabled to false in the registry to stop the others reading that directory — the two switches answer opposite questions, and deleting a registry line does not work because the host re-registers on its next start. SKILLSEARCH_HOME moves the shared root.

    Raven and Hermes gain skills_dirs and SKILLSEARCH_SKILLS_DIRS; both previously accepted only a single directory. Raven's top_k default is now 2, matching every other host and the engine — a deployment that wants the old value must set it explicitly.

    Packages are currently distributed through this GitHub Release. PyPI and npm publication are not yet available.

    Full Changelog: https://github.com/EverMind-AI/SkillCorpus/compare/v0.3.0...v0.4.0

  2. v0.3.0SkillCorpus 0.3.02026-09-02 · 2026-09-02 12:39 UTC
    查看更新说明

    What’s Changed

    SkillCorpus v0.3.0 is the first unified release of the corpus pipeline and all supported agent-host plugins.

    Upgrade Note

    Skill retrieval now defaults to on_demand. Set mode: auto to retain automatic per-turn injection. OpenClaw 2.0 uses plugin-openclaw2; OpenClaw 1.x remains on plugin-openclaw.

    Packages are currently distributed through this GitHub Release. PyPI and npm publication are not yet available.

    Full Changelog: https://github.com/EverMind-AI/SkillCorpus/compare/skillcorpus-plugins-v0.2.0...v0.3.0

  3. v0.1.0SkillCorpus 0.1.02026-08-31 · 2026-08-31 13:46 UTC
    查看更新说明

    What's Changed

    New Contributors

    Full Changelog: https://github.com/EverMind-AI/SkillCorpus/commits/v0.1.0

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    What SkillCorpus gives you

    SkillCorpus is EverMind's open-source pipeline for turning scattered SKILL.md files from public repositories into reliable agent context. It aggregates sources, applies safety and license gates, evaluates quality, and matches task-specific skills before the agent answers.

    You can use the live SkillHub without cloning this repository. Clone SkillCorpus when you want the open-source machinery behind that experience:

    • Build your own skill layer — point the pipeline at your own source registry, apply the curation, safety, and license gates, and export a corpus for your agents.
    • Change the behavior — modify the taxonomy, quality and dedup rules, retrieval recipe, export schema, evaluation suites, or host plugins.
    • Keep control of deployment — self-host the released retrieval models and connect your own agent host instead of using the hosted SkillHub API.

    The core code is Apache-2.0 licensed (match/, evaluate/ and lifecycle/ are MIT); each skill retains its upstream license. The public 1,000-skill demo, three agent benchmarks, and live SkillHub show the result.

    https://github.com/user-attachments/assets/4d9a3241-df13-4b20-9798-fb7920069995

    🔥 Latest Updates

    • 2026-10-28 The October corpus version holds 300,473 skills, 178,173 of them under commercial-safe licenses — same curation pipeline, same schema. Release on HuggingFace coming soon.
    • 2026-10-23 SkillRep — skill retrieval is hard because a request and the skill that answers it are written in different words, and existing methods each move only one or two dimensions. We give the first complete formulation of that representation space (five dimensions; most prior retrievers occupy a single point in it), optimize across the whole of it, and reach state of the art on both mainstream benchmarks — a 0.6B encoder beats the strongest same-size retriever on SRA-Bench by +7.02 MRR@10 and leads SkillsBench. We also make the space interpretable: three measurable quantities show which part of the gap each dimension closes, and when two of them cancel. Code and model are open. arXiv:2610.32336 | code | HF encoder · reranker
    • 2026-10-23 Beyond Gain — skill hubs keep growing (ours is past 300K) while the models they serve keep improving, so a hub has to retire, per model, what that model has already internalized. Yet internalization had no reliable measurement: the standard retire-on-gain test reads identically for a skill the model absorbed and one that never worked for anyone. We give the first reliable measurement of internalization — withhold the skill, score the model, and trust a high score only when some other model does gain from it: under the old rule more than 90% of SkillsBench retirements rest on tasks no run ever solved, while ours loses no reward and reproduces nearly twice as well. Code and data are open. arXiv:2610.32322 | code | HF 1,251 skills × 4 models
    • 2026-09-17 · v0.4.0 Adds a shared skills library across all six hosts: they read one ~/.evermind-skillsearch/ directory and register their own, so a skill you have in one agent is available in the rest; skills retrieved from a catalog are kept instead of discarded at the end of the turn; and changes take effect on the next turn, with no restart. Raven and Hermes also gain skills_dirs / SKILLSEARCH_SKILLS_DIRS.
    • 2026-09-02 Adds OpenClaw 2.0 support and smarter skill delivery: retrieve automatically on every query, or let the main agent call skill_search on demand.
    • 2026-08-27 Supports multi-source retrieval across local skills, EverMind SkillHub, ClawHub, and skillhub.cn, with filtering, deduplication, and final 0–2 selection.
    • 2026-08-26 Supports PathGuard placeholder resolution and host-aware paths for skill files and agent workspaces.
    • 2026-08-25 Adds official SkillCorpus plugins for WorkBuddy, OpenClaw, Hermes, Raven, and DeepSeek Harness.

    Stronger agents, one turn at a time

    At answer time, the practical difference is a retrieval layer: SkillHub selects vetted procedural knowledge for the task and puts it into the agent's context.

    The result is the same agent with better task-specific procedures available at the moment it needs them — stronger execution without asking users to memorise skill names or wire up tool calls.

    Results

    Pass rate with no skills → with SkillCorpus, same harness, same backbone (paper, Table 1):

    Harness × backboneSkillsBenchGDPValQwenClawBench
    OpenClaw × Qwen3.5-27B8.8 → 13.081.2 → 83.165.2 → 66.7
    OpenClaw × Qwen3.5-397B11.1 → 16.982.2 → 84.065.7 → 67.0
    Raven × Qwen3.5-27B10.0 → 16.582.6 → 83.866.9 → 70.8
    Raven × Qwen3.5-397B9.2 → 22.684.0 → 85.268.8 → 73.2
    Pooled ∆+7.5±2.3 (z=3.2)+1.51±0.49 (z=3.1)+2.79±0.70 (z=4.0)

    The gain is largest where the task needs procedural knowledge the model does not already have (SkillsBench), and smallest on open-ended economic tasks it can already do (GDPVal).

    SkillHub integrations

    SkillHub brings skill retrieval to the five agent platforms below. Choose a platform to open its plugin guide:

    Two modes, one setting. On demand — the default — gives the agent a skill_search tool and lets it decide: a long task pays for retrieval at the step that needs it and nothing on the turns that do not. mode: auto is the older behaviour: search every turn, before the model answers, with no tool call and no skill names to memorise. They are exclusive; running both would search twice for one turn.

    OpenClaw ships as two packages, because 2.0 dropped the hook the 1.x plugin injects through: plugin-openclaw for releases up to 2026.7.x, plugin-openclaw2 for 2.0 (2026.8.1) and newer. The packaged Raven plugin installs and its on-demand mode works today; mode: auto there will claim the skills stage once Raven merges its upstream context_segments slot, and is inert until then. Raven's built-in retrieval keeps working either way.

    Install SkillCorpus Plugins following https://github.com/EverMind-AI/SkillCorpus/blob/main/skillcorpus_plugin/INSTALL.agent.md

    Paste that line to your agent and it installs itself. Per-host setup, the five settings you will actually touch, what each turn costs and what leaves your machine — skillcorpus_plugin/.

    Public artifacts

    This is the concrete inventory of what is public today.

    ArtifactWhatLink
    🌐SkillHubthe current 114,190-skill catalog + the two models, hosted as an API — no installevermind.ai/skillhub
    📚Corpus (demo)the downloadable 1,000-skill sample — skills.parquet + attachments.tar.zst + dataset card; the full catalog is served by SkillHub🤗 demo-1k
    🗂️Full corpus (coming soon)the complete 114,190-skill dataset, same schema and layout as the demo — skills.parquet + attachments.tar.zst + dataset card🤗 coming soon
    🔡Retrieval modelsa bi-encoder and a reranker, fine-tuned from Qwen3-Embedding-0.6B and Qwen3-Reranker-0.6B🤗 bi-encoder · reranker
    🛠️Codethis repo — the pipeline that builds the corpus and trains the two models (aggregate · curate · match · evaluate · export)GitHub
    🔌Pluginspackaged host adapters for OpenClaw · Hermes · WorkBuddy · Raven, plus DeepSeek Harness and an HTTP adapterskillcorpus_plugin/

    Open source today: the code, the 1,000-skill demo corpus, and the retrieval models. The full 114,190-skill corpus is being prepared for release on HuggingFace. The hosted SkillHub service itself stays closed.

    The 96,401-skill snapshot measured in the paper, organised by a 16-class taxonomy and three quality facets (utility / robustness / safety), with 1024-dim retrieval embeddings. Column contract: docs/corpus-schema.md.

    Query the API directly

    SkillHub serves the corpus in three tiers — discover (metadata), read (skill_md), download (zip with scripts/). Most skills are pure instructions, so the read tier is usually sufficient.

    curl "https://skillhub.evermind.ai/openapi/v1/skills?q=extract+tables+from+a+PDF"
    

    Take an id from the results, fetch its skill_md, and inject it into your agent's prompt. examples/skillhub_demo.py runs all three tiers:

    # search + read the bodies — stdlib only, no install, no API key
    python examples/skillhub_demo.py "extract tables from a scanned PDF invoice"
    
    # also fetch the bundled scripts of the top hit
    python examples/skillhub_demo.py --install ./skills "convert a PDF to images"
    
    # retrieve AND run the task — any OpenAI-compatible LLM (OpenAI, OpenRouter, local vLLM, …)
    export OPENAI_API_KEY=...                                # OpenRouter / vLLM: also set
    # export OPENAI_BASE_URL=https://openrouter.ai/api/v1   # OPENAI_BASE_URL + --model openai/gpt-4o-mini
    python examples/skillhub_demo.py --ask "extract tables from a scanned PDF invoice"
    
    task: extract tables from a scanned PDF invoice
    
    [1/2] search  → 2 hit(s), metadata only
      1. ocr-and-documents   q=0.808  DOC-PROC  MIT
         Extract text from PDFs/scans (pymupdf, marker-pdf).
      2. document-workflows  q=0.86   DOC-PROC  MIT
         Build end-to-end document processing workflows and pipelines …
    
    [2/2] detail  → fetching skill_md for 2 skill(s)
      ocr-and-documents: 4916 chars  u=8 r=7 s=9  files=4  flags=['no_steps']
      document-workflows: 31628 chars  u=9 r=9 s=9  files=7
    
    → built a prompt of 36,742 chars with the skill bodies injected
    

    Endpoints, response envelope, status codes and rate limits: docs/integrations.md.

    Self-host the models

    To avoid depending on the hosted endpoint, run selection yourself. The corpus and both retrieval models are released: load the data, serve the two models, and run your own encode → top-k → rerank.

    # the data — a 1,000-skill demo for now; the full 114,190-skill corpus follows
    from datasets import load_dataset
    skills = load_dataset("EverMind-AI/skillcorpus-demo-1k", split="train")   # 1,000 demo skills
    # or read the file directly with pandas (no `datasets`):  pip install pandas
    import pandas as pd; skills = pd.read_parquet("skills.parquet")
    

    Attachments (scripts/, references/) ship as a sibling attachments.tar.zst.

    # install the serving deps (torch, transformers, …), then point the two env vars at
    # the released checkpoints (the script's defaults are training outputs absent from a
    # fresh clone) and serve both models behind one endpoint  ->  /embed + /score
    pip install -r skillcorpus/match/requirements.txt
    EMBEDDING_MODEL=<embedding checkpoint dir> RERANKER_MODEL=<reranker checkpoint dir> \
      bash skillcorpus/match/scripts/run_server.sh
    

    This endpoint speaks /embed + /score (skillcorpus/match/ → Serving) — it is not a drop-in for SkillHub's hosted-only /openapi/v1/skills API. So:

    • examples/skillhub_demo.py and the section-C integrations talk only to the hosted SkillHub; a self-hosted setup runs its own selection directly over /embed + /score.
    • It is also the embedding endpoint the producer's dedup uses — set embedding.provider: skillrouter_remote to build your own corpus with it.

    To curate your own sources instead, see Build your own corpus.

    How it works

    skillcorpus/
    ├── core/       data models · SQLite/faiss store · LLM & embedding clients
    ├── aggregate/  source registry + multi-repo clone
    ├── curate/     parse · safety · license · classify · quality · dedup + full-library passes
    ├── export/     corpus writer (parquet + attachments + dataset card)
    ├── match/      the 2 released models + training recipe                 ← isolated deps
    ├── evaluate/   skillsbench · qwenclawbench · gdpval benchmarks          ← isolated deps
    ├── lifecycle/  per-model skill retirement on the unaided level
    └── cli.py      build · stats · export
    

    cli build runs the whole curation chain (ingest → quality_pass → dedup_pass → license_audit → export.corpus). LLM classification and quality scoring degrade gracefully to rules when no model endpoint is reachable, so the pipeline always runs end to end.

    match/ and evaluate/ are standalone toolkits with their own requirements.txt (torch / transformers, per benchmark); they are not pulled in by pip install of the producer.

    • Retrieval — skillcorpus/match/ is the two released models: a bi-encoder fine-tuned from Qwen3-Embedding-0.6B for candidate recall, and a reranker fine-tuned from Qwen3-Reranker-0.6B that scores the top candidates. SkillHub serves both; to run them yourself see Serving (serve.py + run_server.sh). The directory also holds the training recipe (synthetic queries → InfoNCE → listwise CE) and eval_compare.py for the retrieval metrics (nDCG / MRR / Hit / Recall).
    • Benchmarks — skillcorpus/evaluate/: skillsbench, qwenclawbench, gdpval — each self-contained with its own README and dependencies.
    • Retirement — skillcorpus/lifecycle/ decides, per deployment model, which skills the model has internalized and can retire: it synthesizes a task from each skill, scores the model without and with the skill, and retires on the unaided level instead of the gain. It is the code of the paper Beyond Gain: Measuring Skill Internalization for Agent Skill Retirement.

    Build your own corpus

    Only needed if you want to curate your own sources. Requires an LLM endpoint for classification / quality scoring and an embedding endpoint for dedup — see docs/running.md.

    git clone https://github.com/EverMind-AI/SkillCorpus.git skillcorpus && cd skillcorpus
    python3 -m venv .venv && source .venv/bin/activate
    python -m pip install --upgrade pip && pip install -e .
    
    python -m skillcorpus.cli build     # 4 demo sources -> curate -> export
    python -m skillcorpus.cli stats     # counts by source / category / license
    python -m skillcorpus.cli export --out ./corpus
    

    Only skills from GREEN-licensed sources are exported (the demo trusts the whitelist in audit/license_safe_sources.json wholesale; production gates per source-repo SPDX). The per-row license is each skill's declared value, so a demo corpus can still carry non-GREEN license strings. Use --sources-config your.yaml for your own registry, or --source <name> for one source.

    pip install -e ".[dev]"
    python -m pytest skillcorpus/tests -p no:cacheprovider --import-mode=importlib
    

    Roadmap

    • Curation pipeline: 16-class taxonomy, 3-facet quality, per-source license audit
    • Fine-tuned retrieval stack + three-benchmark evaluation
    • Per-model skill retirement on the unaided level (skillcorpus/lifecycle/)
    • Public SkillHub endpoint
    • Retrieval models (bi-encoder + reranker) and a 1k demo corpus on HuggingFace
    • Full 114,190-skill corpus on HuggingFace — coming soon
    • Deployment script for the two retrieval models (self-hosting match/)
    • Plugins for WorkBuddy · Hermes · OpenClaw · DeepSeek Harness (+ HTTP adapter for any other host)
    • Raven plugin — packaged, waiting on the upstream context_segments slot

    EverMind Ecosystem

    EverMind connects memory research, production-ready products, and practical integrations into one open-source ecosystem.

    Together, these projects form EverMind's research-to-runtime stack: methods and benchmarks become reusable memory infrastructure, products, and agent integrations.

    Citation

    @article{wang2026skillcorpus,
      title         = {SkillCorpus: Consolidating and Evaluating the Open Skill Ecosystem for Real-World LLM Agents},
      author        = {Wang, Yanze and Yao, Pengfei and Sun, Tianyi and Hu, Chuanrui and Xiao, Yan and Luo, Xiaotian and Han, Yunyun and Chen, Yifan and Sun, Jun and Deng, Yafeng},
      year          = {2026},
      eprint        = {2607.15557},
      archivePrefix = {arXiv},
      url           = {https://arxiv.org/abs/2607.15557}
    }
    

    License

    • Code — Apache-2.0 (the match/, evaluate/ and lifecycle/ toolkits are each MIT — see their own LICENSE).
    • Corpus — every skill keeps its original upstream license; only GREEN (MIT / Apache-2.0 / BSD / ISC / …) skills are included, none relicensed. Each row carries source, source_url, and license, so downstream use must follow the per-skill terms.

    Full GREEN/RED/YELLOW policy, license data flow, and opt-out: docs/licence-and-governance.md.