Skip to content

Repository files navigation

SkillNet-Fabric

Task-time Skill routing with source-grounded graphs and task-specific Wikis.

Paper HF Collection License: MIT

Overview · Results · Analysis · Quick start · Reproduction · Artifacts

SkillNet-Fabric routes a task through a large Skill ecosystem in two stages. At build time, it compiles SKILL.md packages into source-grounded contracts, typed relations, retrieval indexes, and a navigable global Wiki. At task time, it retrieves and expands candidates, projects a compact task-specific Wiki, and lets an Explorer select a small Skill set with file-level evidence.

SkillNet-Fabric architecture

Overview

  • Source-grounded Skill graph. Skill contracts summarize capabilities, inputs, outputs, and use conditions while preserving links to the original source. Relations distinguish dependencies, composition opportunities, and alternatives.
  • Task-specific Wiki. Hybrid sparse and dense retrieval finds relevant seeds; relation expansion adds connected candidates; Wiki projection retains only the evidence needed for the task.
  • Evidence-backed routing. An isolated Explorer navigates the localized Wiki, reads complete sources when needed, and returns the selected Skills and their roles in the task.

This repository contains the core implementation in src/skillfabric/ and the experiment code for SkillRouter, SkillsBench, and AgentSkillOS in experiments/. Official Skills, graphs, benchmark resources, results, and runtime logs are released through zjunlp/SkillNet-Fabric.

Results

The tables below reproduce the SkillNet paper results. Each section links to the corresponding formal artifacts, including per-task outputs, aggregate results, evaluator records, and logs.

Skill routing on SkillRouter Hard

Recall and FullCoverage are macro percentages over 75 scored tasks and 79,141 candidate Skills.

SkillRouter Hard results from Table 5 of the SkillNet paper

Qwen3 E×R denotes Qwen3 Embedding with Qwen3 Ranker.

SkillRouter artifacts →

Downstream performance on SkillsBench

Scores are task-macro mean verifier rewards over 87 tasks and three trials per task.

SkillsBench results from Table 6(a) of the SkillNet paper

SkillsBench artifacts →

Downstream performance on AgentSkillOS

Scores are task-level Bradley-Terry scores on 30 tasks, rescaled to 0-100. Pool Mean weights the 53-, 500-, and 1,000-Skill pools equally.

AgentSkillOS results from Table 6(b) of the SkillNet paper

AgentSkillOS artifacts →

Analysis

What does each Wiki component contribute?

The component study uses GPT-5.4 mini on all 30 AgentSkillOS tasks with the 500-Skill pool.

Wiki component ablation from Table 7 of the SkillNet paper

Wiki component ablation and category robustness

The complete Wiki is at least 11.36 points above every ablation and maintains the strongest minimum score across Data, Document, Motion, Visual, and Web tasks. The result is not explained by token use alone: both missing evidence and missing candidate structure reduce downstream quality.

Ablation artifacts →

How large should the task-specific Wiki be?

Candidate availability and final Skill recovery as localization scope changes

Increasing the localization limit improves candidate availability, but exposing all 79,141 Skills does not improve final set formation. The full pool reaches 100% Candidate FullCoverage while mean Final FullCoverage@10 falls to 38.22%; the best localized settings recover more complete Skill sets with fewer Explorer tokens. The preferred scope varies across Explorer models.

Localization artifacts →

Quick start

Installation

The core implementation supports Python 3.10-3.13. The complete experiment environment uses Python 3.12.

git clone https://github.com/zjunlp/SkillNet-Fabric.git
cd SkillNet-Fabric
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e . \
  -e "./experiments[skillrouter,skillsbench,agentskillos]"
cp .env.example .env

SkillsBench requires Docker. AgentSkillOS artifact rendering also requires LibreOffice and ffprobe. Browser tasks require:

python -m playwright install chromium

API configuration

Set OPENAI_API_KEY and OPENAI_BASE_URL in .env for any OpenAI-compatible LLM endpoint. Set the embedding credentials separately when the embedding service uses a different endpoint. Models, reasoning effort, task counts, and trial counts are fixed by the benchmark TOML profiles.

Download the official artifacts

skillfabric-repro download --profile main

The downloader retrieves the release from Hugging Face, validates each bundle, and extracts the expected layout into experiments/artifacts/. The default repository is zjunlp/SkillNet-Fabric; set SKILLFABRIC_HF_REPO_ID to use a mirror. Plan for a 13.6 GB download and approximately 41 GB of extracted artifacts.

Reproduce the main experiments

Inspect the fixed evaluation matrices without downloading artifacts or calling a model API:

skillfabric-repro run skillrouter --dry-run
skillfabric-repro run skillsbench --dry-run
skillfabric-repro run agentskillos --dry-run

After downloading the artifacts and configuring .env, run one benchmark or the complete suite:

skillfabric-repro run skillrouter --run-id my-run
skillfabric-repro run skillsbench --run-id my-run
skillfabric-repro run agentskillos --run-id my-run
skillfabric-repro run all --run-id my-run

The public entry point reruns SkillNet-Fabric only. AgentSkillOS uses the released baseline artifacts to compute the common Bradley-Terry ranking. Use --resume with the same run ID to continue an interrupted run; terminal results remain fixed within that run.

See experiments/README.md for system requirements, benchmark protocols, advanced graph builds, localization, ablations, resume behavior, and artifact schemas. See experiments/FAIRNESS.md for model-visible inputs and failure treatment.

Core API

The experiment package imports the implementation directly from src/skillfabric/. The same build and route lifecycle is available programmatically:

from skillfabric import SkillFabric

fabric = SkillFabric(workspace=".skillfabric", env_file=".env")
fabric.build("./skills")
route = fabric.route("Analyze the dataset and prepare a presentation")
print(route.selected_skill_ids)

Or through the core CLI:

skillfabric build --skill-root ./skills
skillfabric route "Analyze the dataset and prepare a presentation"

Citation

SkillNet-Fabric is presented as part of the SkillNet paper:

@article{liang2026skillnet,
  title   = {SkillNet: Create, Evaluate, and Connect AI Skills},
  author  = {Liang, Yuan and Zhong, Ruobin and Xu, Haoming and Jiang, Chen and others},
  journal = {arXiv preprint arXiv:2603.04448},
  year    = {2026}
}

Releases

Packages

Contributors

Languages