skillcorpus

by evermind-ai

技能包github收录于 08-23

SkillCorpus:把公开仓库里散落的 SKILL.md 变成可靠 agent 上下文的开源流水线——聚合来源、做安全处理

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…

安装

dsh plugin --profile web add github:evermind-ai/skillcorpus

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

SkillCorpus 能给你什么

SkillCorpus 是 EverMind 将公开仓库中散落的 SKILL.md 文件转化为可靠 agent 上下文的开源流水线: 它聚合源仓库,执行安全与许可门禁,评估质量,并在 agent 作答前匹配与任务相关的技能。

你可以直接使用线上的 SkillHub,不需要 clone 本仓库。只有当你想拥有 这套能力的开源底座时,才需要 clone SkillCorpus:

  • 构建自己的技能层 —— 把流水线指向自己的 source registry,使用策展、安全和许可门禁,再为自己的 agent 导出语料。
  • 修改它的行为 —— 修改分类体系、质量与去重规则、检索配方、导出字段、评测套件或宿主插件。
  • 掌控部署方式 —— 自己部署已发布的检索模型,把自己的 agent 接进来,而不是依赖托管的 SkillHub API。

核心代码采用 Apache-2.0 许可(match/ 和 evaluate/ 两个工具包为 MIT);每个技能保留其上游许可。 公开的 1,000 条 demo 语料、三个 agent benchmark 和线上的 SkillHub 展示了结果。

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

让 agent 每一轮都更强

在 agent 作答时,真正的区别是一层检索:SkillHub 根据当前任务选出经过审核的过程性知识, 并把它放进 agent 的上下文里。

结果不是换了一个 agent,而是让同一个 agent 在真正需要时获得更贴合任务的过程性知识——不需要用户 记技能名字,也不需要自己接工具调用。

效果

同一 harness、同一 backbone,通过率从「无技能」到「接入 SkillCorpus」的变化 (论文 Table 1):

Harness × backbone SkillsBench GDPVal QwenClawBench
OpenClaw × Qwen3.5-27B 8.8 → 13.0 81.2 → 83.1 65.2 → 66.7
OpenClaw × Qwen3.5-397B 11.1 → 16.9 82.2 → 84.0 65.7 → 67.0
Raven × Qwen3.5-27B 10.0 → 16.5 82.6 → 83.8 66.9 → 70.8
Raven × Qwen3.5-397B 9.2 → 22.6 84.0 → 85.2 68.8 → 73.2
合并 ∆ +7.5±2.3 (z=3.2) +1.51±0.49 (z=3.1) +2.79±0.70 (z=4.0)

任务越依赖模型本身不具备的过程性知识,收益越大(SkillsBench);模型本来就能做的开放式 经济类任务收益最小(GDPVal)。

SkillHub 集成

SkillHub 已为下面五个 agent 平台提供逐轮技能检索。点击对应平台,直接查看插件指南:

检索在每一轮、模型作答之前运行:不需要工具调用,不用记技能名字,也不用改宿主代码。 Raven 插件已经可以安装,但要等 Raven 上游合并 context_segments 插槽后才能真正认领 skills 阶段;Raven 自带的检索今天照常工作。

根据 https://github.com/EverMind-AI/SkillCorpus/blob/main/skillcorpus_plugin/INSTALL.agent.md 安装 SkillCorpus Plugins。

把上面这句粘给你的 agent,它会自己装好。各宿主的具体配置、你真正会碰的五个配置项、 每轮的开销、以及哪些数据会离开你的机器——都在 skillcorpus_plugin/。

公开产物

下面这张表列出目前真正公开的产物。

产物 内容 链接
🌐 SkillHub 当前 114,190 条在线目录 + 那两个模型的托管 API,无需安装 evermind.ai/skillhub
📚 语料 (demo) 可下载的 1,000 条样本 —— skills.parquet + attachments.tar.zst + dataset card;完整目录由 SkillHub 提供服务 🤗 demo-1k
🔡 检索模型 从 Qwen3-Embedding-0.6B 和 Qwen3-Reranker-0.6B 微调出的 bi-encoder 与 reranker 🤗 bi-encoder · reranker
🛠️ 代码 本仓库 —— 构建语料、训练那两个模型的流水线(aggregate · curate · match · evaluate · export) GitHub
🔌 插件 为 OpenClaw · Hermes · WorkBuddy · Raven 提供宿主适配器,另有 DeepSeek Harness 与 HTTP adapter skillcorpus_plugin/

目前开源:代码、1,000 条 demo 语料和检索模型。托管的 SkillHub 服务不开源,完整在线目录也尚未作为可下载数据集发布。

论文所评测的 96,401 条快照,按 16 类体系和三个质量维度(utility / robustness / safety)组织,并带 1024 维 检索向量。字段约定见 docs/corpus-schema.md。

直接调 API

SkillHub 把语料分三级提供:发现(元数据)、读正文 (skill_md)、下载(含 scripts/ 的 zip)。大多数技能是纯指令,读正文这一级通常已足够。

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

从结果中取一个 id,获取它的 skill_md,注入 agent 的 prompt。 examples/skillhub_demo.py 把三级都跑通了:

# 检索 + 读正文 —— 纯标准库,不用安装,不用 API key
python examples/skillhub_demo.py "extract tables from a scanned PDF invoice"

# 顺带把命中的第一个技能的脚本包拉下来
python examples/skillhub_demo.py --install ./skills "convert a PDF to images"

# 检索并把正文注入 prompt 后真正执行任务 —— 任意 OpenAI 兼容 LLM(OpenAI / OpenRouter / 本地 vLLM…)
export OPENAI_API_KEY=...                                # 用 OpenRouter / vLLM 时再设
# 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

端点、响应信封、状态码和限速见 docs/integrations.md。

自建模型服务

若不想依赖托管端点,可自己跑 selection。语料和两个检索模型都已发布:加载数据、部署两个 模型,自己做 encode → top-k → rerank。

# 数据 —— 目前是 1,000 条 demo;完整的 114,190 条语料后续发布
from datasets import load_dataset
skills = load_dataset("EverMind-AI/skillcorpus-demo-1k", split="train")   # 1,000 条 demo 技能
# 或者用 pandas 直接读文件(不依赖 datasets):  pip install pandas
import pandas as pd; skills = pd.read_parquet("skills.parquet")

附件(scripts/、references/)以同级的 attachments.tar.zst 形式发布。

# 先装 serving 依赖(torch、transformers 等),再把两个环境变量指向已发布的检查点
# (脚本自带的默认值是训练产物,全新克隆里并不存在),然后把两个模型部署在同一个
# 端点后面  ->  /embed + /score
pip install -r skillcorpus/match/requirements.txt
EMBEDDING_MODEL=<embedding 检查点目录> RERANKER_MODEL=<reranker 检查点目录> \
  bash skillcorpus/match/scripts/run_server.sh

这个端点只提供模型的 /embed + /score (见 skillcorpus/match/ → Serving),并不是 SkillHub 那个仅托管的 /openapi/v1/skills API 的替代品。因此:

  • examples/skillhub_demo.py 和 C 节的集成只对接托管的 SkillHub;自部署时,你直接在 /embed + /score 之上运行自己的 selection。
  • 它同时也是 producer 去重所用的 embedding 端点,把 embedding.provider 配成 skillrouter_remote,即可用它来构建自己的语料。

想策展自己的源,见 构建自己的语料。

工作原理

skillcorpus/
├── core/       数据模型 · SQLite/faiss 存储 · LLM 与 embedding 客户端
├── aggregate/  源注册表 + 多仓库克隆
├── curate/     解析 · 安全 · 许可 · 分类 · 质量 · 去重 + 全库扫描
├── export/     语料写出(parquet + 附件 + dataset card)
├── match/      发布的两个模型 + 训练配方                          ← 依赖独立
├── evaluate/   skillsbench · qwenclawbench · gdpval 评测           ← 依赖独立
└── cli.py      build · stats · export

cli build 会执行完整的策展链路(ingest → quality_pass → dedup_pass → license_audit → export.corpus)。当没有可用的模型端点时,LLM 分类与质量打分会自动降级为规则实现,因此 整条管线始终能端到端跑通。

match/ 和 evaluate/ 是独立的工具包,各自带有 requirements.txt(torch / transformers, 按 benchmark 区分);安装主包时不会被一并拉入。

  • 检索 —— skillcorpus/match/ 就是发布的那两个模型: 从 Qwen3-Embedding-0.6B 微调的 bi-encoder 负责候选召回,从 Qwen3-Reranker-0.6B 微调的 reranker 负责对候选打分重排。SkillHub 已托管这两个模型;如需自行部署,见 Serving(serve.py + run_server.sh)。该目录还包含训练配方(合成 query → InfoNCE → listwise CE)和 eval_compare.py(检索指标 nDCG / MRR / Hit / Recall)。
  • 评测 —— skillcorpus/evaluate/:skillsbench、qwenclawbench、 gdpval,各自独立,带自己的 README 和依赖。

构建自己的语料

仅当你想策展自己的源时才需要这一节。它需要一个 LLM 端点做分类与质量打分,以及一个 embedding 端点做去重,详见 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 源 -> 策展 -> 导出
python -m skillcorpus.cli stats     # 按 source / category / license 统计
python -m skillcorpus.cli export --out ./corpus

只有来自 GREEN 许可源仓库的技能才会被导出(demo 直接信任 audit/license_safe_sources.json 里的白名单;生产环境按源仓库 SPDX 逐个把关)。每行的 license 是技能自己声明的值,因此 demo 语料里仍可能出现非 GREEN 的 license 字符串。 用 --sources-config your.yaml 指定自己的源注册表,或用 --source <name> 只构建单个源。

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

路线图

  • 策展管线:16 类体系、三维质量、逐源许可审计
  • 微调检索栈 + 三个 benchmark 的评估
  • 公开的 SkillHub 端点
  • 检索模型(bi-encoder + reranker)与 1k demo 语料上 HuggingFace
  • 完整的 114,190 条语料上 HuggingFace
  • 两个检索模型的部署脚本(自建 match/)
  • 把 skill 库 + 检索框架打包成插件,供 WorkBuddy · Hermes · OpenClaw · DeepSeek Harness 使用
  • Raven 插件——已打包,等上游 context_segments 插槽

EverMind 生态系统

EverMind 是一个面向长期记忆、自我演进 agent、AI 原生界面和记忆评估的开源生态系统。

这些仓库共同构成 EverMind 从研究到运行时的技术栈:新的记忆方法、可复用算法、基准证据与实用的 agent 集成。

引用

@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}
}

许可

  • 代码 —— Apache-2.0(match/ 和 evaluate/ 两个工具包各自为 MIT,见其目录下的 LICENSE)。
  • 语料 —— 每个技能保留其上游原始许可;只收录 GREEN(MIT / Apache-2.0 / BSD / ISC / …) 许可的技能,不做任何重新授权。每行都带 source、source_url、license,下游使用须遵循 各技能自身的条款。

完整的 GREEN/RED/YELLOW 策略、许可数据流与 opt-out 通道见 docs/licence-and-governance.md。

原始 README: https://github.com/EverMind-AI/SkillCorpus/blob/main/README.zh-CN.md ↗