Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

zjunlp/SkillNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

123 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SkillNet Logo

Open Infrastructure for Creating, Evaluating, and Connecting AI Agent Skills

Search 200,000+ community skills Β· One-line install Β· Auto-create from repos / docs / logs
5-dimension quality scoring Β· Semantic relationship graph

PyPI version License: MIT Python 3.9+ arXiv Hugging Face Website

Installation β€’ Python SDK β€’ CLI β€’ Paper β€’ Website β€’ HuggingFace β€’ Contributing β€’ Featured By AK


SkillNet is an open-source platform that treats AI agent skills as first-class, shareable packages β€” like npm for AI capabilities. It provides end-to-end tooling to search, install, create, evaluate, and organize skills, so agents can learn from the community and continuously grow.

SkillNet Knowledge Graph

πŸ“’ News

  • πŸ“„ [2026-03] SkillNet Technical Report Released! β€” We've published the comprehensive SkillNet Technical Report, covering the system architecture, automated creation pipeline, multi-dimensional evaluation methodology, and the released open-source toolkits. View Report β†’

  • πŸ€– [2026-02] OpenClaw Integration Released! β€” SkillNet is now available as a built-in skill for OpenClaw. One command to install, zero config to use. The agent automatically searches, downloads, creates, evaluates, and analyzes skills on your behalf. Get started β†’

✨ Key Features

Feature Description
πŸ”Β Search Find skills via keyword match or AI semantic search across 500+ curated skills
πŸ“¦Β One‑LineΒ Install skillnet download <url> β€” grab any skill from GitHub in seconds
✨ Auto‑Create Convert GitHub repos, PDFs/PPTs/Word docs, conversation logs, or text prompts into structured skill packages using LLMs
πŸ“ŠΒ 5‑DΒ Evaluation Score skills on Safety Β· Completeness Β· Executability Β· Maintainability Β· Cost‑Awareness
πŸ•ΈοΈΒ SkillΒ Graph Auto-discover similar_to Β· belong_to Β· compose_with Β· depend_on links between skills

πŸ“– Table of Contents


πŸš€ Quick Start

pip install skillnet-ai
from skillnet_ai import SkillNetClient

client = SkillNetClient()  # No API key needed for search & download

# Search for skills
results = client.search(q="pdf", limit=5)
print(results[0].skill_name, results[0].stars)

# Install a skill
client.download(url=results[0].skill_url, target_dir="./my_skills")

🌐 SkillNet Web β€” Search, download individual skills, and explore curated skill collections through the SkillNet website.

skillnet.mp4

πŸ€– OpenClaw + SkillNet β€” See SkillNet in action with OpenClaw. The agent automatically searches, creates, evaluates, and analyzes skills on your behalf. Learn more β†’

openclaw-skillnet.mp4

🌐 REST API

The SkillNet search API is free, public, and requires no authentication.

# Keyword search
curl "http://api-skillnet.openkg.cn/v1/search?q=pdf&sort_by=stars&limit=5"

# Semantic search
curl "http://api-skillnet.openkg.cn/v1/search?q=reading%20charts&mode=vector&threshold=0.8"
πŸ“‘ Full Parameter Reference

Endpoint: GET http://api-skillnet.openkg.cn/v1/search

Parameter Type Default Description
q string required Search query (keywords or natural language)
mode string keyword keyword (fuzzy match) or vector (semantic AI)
category string β€” Filter: Development, AIGC, Research, Science, etc.
limit int 10 Results per page (max 50)
page int 1 Page number (keyword mode only)
min_stars int 0 Minimum star count (keyword mode only)
sort_by string stars stars or recent (keyword mode only)
threshold float 0.8 Similarity threshold 0.0–1.0 (vector mode only)

Response:

{
  "data": [
    {
      "skill_name": "pdf-extractor-v1",
      "skill_description": "Extracts text and tables from PDF documents.",
      "author": "openkg-team",
      "stars": 128,
      "skill_url": "https://...",
      "category": "Productivity"
    }
  ],
  "meta": { "query": "pdf", "mode": "keyword", "total": 1, "limit": 10 },
  "success": true
}

🐍 Python SDK

Initialize

from skillnet_ai import SkillNetClient

client = SkillNetClient(
    api_key="sk-...",         # Required for create / evaluate / analyze
    # base_url="...",         # Optional: custom LLM endpoint
    # github_token="ghp-..." # Optional: for private repos
)

Search

# Keyword search
results = client.search(q="pdf", limit=10, min_stars=5, sort_by="stars")

# Semantic search
results = client.search(q="analyze financial PDF reports", mode="vector", threshold=0.85)

if results:
    print(f"{results[0].skill_name} ⭐{results[0].stars}")

Install

local_path = client.download(
    url="https://github.com/anthropics/skills/tree/main/skills/skill-creator",
    target_dir="./my_skills"
)

Create

Convert diverse sources into structured skill packages with a single call:

# From conversation logs / execution traces
client.create(trajectory_content="User: rename .jpg to .png\nAgent: Done.", output_dir="./skills")

# From GitHub repository
client.create(github_url="https://github.com/zjunlp/DeepKE", output_dir="./skills")

# From office documents (PDF / PPT / Word)
client.create(office_file="./guide.pdf", output_dir="./skills")

# From natural language prompt
client.create(prompt="A skill for web scraping article titles", output_dir="./skills")

Evaluate

Score any skill across 5 quality dimensions. Accepts local paths or GitHub URLs.

result = client.evaluate(
    target="https://github.com/anthropics/skills/tree/main/skills/algorithmic-art"
)
# Returns: { "safety": {"level": "Good", "reason": "..."}, "completeness": {...}, ... }

Analyze Relationships

Map the connections between skills in a local directory β€” outputs similar_to, belong_to, compose_with, and depend_on edges.

relationships = client.analyze(skills_dir="./my_skills")

for rel in relationships:
    print(f"{rel['source']} --[{rel['type']}]--> {rel['target']}")
# PDF_Parser --[compose_with]--> Text_Summarizer

πŸ’» CLI Reference

The CLI ships with pip install skillnet-ai and offers the same features with rich terminal output.

Command Description Example
search Find skills skillnet search "pdf" --mode vector
download Install a skill skillnet download <url> -d ./skills
create Create from any source skillnet create log.txt --model gpt-4o
evaluate Quality report skillnet evaluate ./my_skill
analyze Relationship graph skillnet analyze ./my_skills

Use skillnet <command> --help for full options.

Search

skillnet search "pdf"
skillnet search "analyze financial reports" --mode vector --threshold 0.85
skillnet search "visualization" --category "Development" --sort-by stars --limit 10

Install

skillnet download https://github.com/anthropics/skills/tree/main/skills/algorithmic-art
skillnet download <url> -d ./my_agent/skills
skillnet download <private_url> --token <your_github_token>

Create

# From trajectory file
skillnet create ./logs/trajectory.txt -d ./generated_skills

# From GitHub repo
skillnet create --github https://github.com/owner/repo

# From office document (PDF, PPT, Word)
skillnet create --office ./docs/guide.pdf

# From prompt
skillnet create --prompt "A skill for extracting tables from images"

Evaluate

skillnet evaluate https://github.com/anthropics/skills/tree/main/skills/algorithmic-art
skillnet evaluate ./my_skills/web_search
skillnet evaluate ./my_skills/tool --category "Development" --model gpt-4o

Analyze

skillnet analyze ./my_agent_skills
skillnet analyze ./my_agent_skills --no-save   # print only, don't write file
skillnet analyze ./my_agent_skills --model gpt-4o

βš™οΈ Configuration

Environment Variables

Variable Required For Default
API_KEY create Β· evaluate Β· analyze β€”
BASE_URL Custom LLM endpoint https://api.openai.com/v1
GITHUB_TOKEN Private repos / higher rate limits β€”

search and download (public repos) work without any credentials.

Linux / macOS:

export API_KEY="sk-..."
export BASE_URL="https://..."  # optional

Windows PowerShell:

$env:API_KEY = "sk-..."
$env:BASE_URL = "https://..."  # optional

πŸ”¬ Example: Scientific Discovery

A complete end-to-end demo showing how an AI Agent uses SkillNet to autonomously plan and execute a complex scientific workflow β€” from raw scRNA-seq data to a cancer target validation report.

Scientific Discovery Workflow
1️⃣TaskUser provides a goal: "Analyze scRNA-seq data to find cancer targets"
2️⃣PlanAgent decomposes into: Data β†’ Mechanism β†’ Validation β†’ Report
3️⃣Discoverclient.search() finds cellxgene-census, kegg-database, etc.
4️⃣EvaluateSkills are quality-gated via client.evaluate() before use
5️⃣ExecuteSkills run sequentially to produce a final discovery report

πŸ‘‰ Try the Interactive Demo (Website β†’ Scenarios β†’ Science) Β |Β  πŸ““ View Notebook


πŸ€– OpenClaw Integration

SkillNet integrates with OpenClaw as a built-in, lazy-loaded skill. Once installed, your agent automatically:

  • Searches existing skills before starting complex tasks
  • Creates new skills from repos, documents, or completed work
  • Evaluates & analyzes your local library for quality and inter-skill relationships

Community skills guide execution β†’ successful outcomes become new skills β†’ periodic analysis keeps the library clean.

πŸ“₯ Installation

Prerequisites: OpenClaw installed (default workspace: ~/.openclaw/workspace)

Option A β€” CLI:

npm i -g clawhub
clawhub install skillnet --workdir ~/.openclaw/workspace
openclaw gateway restart

Option B β€” Via OpenClaw chat:

Install the skillnet skill from ClawHub.

βš™οΈ Configuration

The same three parameters (API_KEY, BASE_URL, GITHUB_TOKEN) apply here β€” see Configuration for details.

In OpenClaw, you can pre-configure them in openclaw.json so the agent uses them silently β€” no prompts, no interruptions. If not configured, the agent only asks when a command actually needs the value, injects it for that single call, and never pollutes the global environment.

Recommended: pre-configure in openclaw.json:

{
  "skills": {
    "entries": {
      "skillnet": {
        "enabled": true,
        "apiKey": "sk-REPLACE_ME",
        "env": {
          "BASE_URL": "https://api.openai.com/v1",
          "GITHUB_TOKEN": "ghp_REPLACE_ME"
        }
      }
    }
  }
}

πŸ§ͺ Quick Verification

In your OpenClaw chat, try:

No credentials needed:

Search SkillNet for a "docker" skill and summarize the top result.

Requires API key:

Create a skill from this GitHub repo: https://github.com/owner/repo (then evaluate it).

The skill source is also available at skills/skillnet/ for reference.


🀝 Contributing

Contributions of all kinds are welcome! Whether it's fixing a typo, adding a feature, or sharing a new skill β€” every contribution counts.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feat/amazing-feature)
  5. Open a Pull Request

πŸ“€ Contribute skills (Website β†’ Contribute β†’ Submit via URL / Upload Local Skill / Batch Upload Skills)

You can also open an Issue to report bugs or suggest features.


πŸ“š Citation

If you find this work useful, please kindly ⭐ the repo and cite our paper!

@misc{liang2026skillnetcreateevaluateconnect,
      title={SkillNet: Create, Evaluate, and Connect AI Skills}, 
      author={Yuan Liang and Ruobin Zhong and Haoming Xu and Chen Jiang and Yi Zhong and Runnan Fang and Jia-Chen Gu and Shumin Deng and Yunzhi Yao and Mengru Wang and Shuofei Qiao and Xin Xu and Tongtong Wu and Kun Wang and Yang Liu and Zhen Bi and Jungang Lou and Yuchen Eleanor Jiang and Hangcheng Zhu and Gang Yu and Haiwen Hong and Longtao Huang and Hui Xue and Chenxi Wang and Yijun Wang and Zifei Shan and Xi Chen and Zhaopeng Tu and Feiyu Xiong and Xin Xie and Peng Zhang and Zhengke Gui and Lei Liang and Jun Zhou and Chiyu Wu and Jin Shang and Yu Gong and Junyu Lin and Changliang Xu and Hongjie Deng and Wen Zhang and Keyan Ding and Qiang Zhang and Fei Huang and Ningyu Zhang and Jeff Z. Pan and Guilin Qi and Haofen Wang and Huajun Chen},
      year={2026},
      eprint={2603.04448},
      archivePrefix={arXiv},
      primaryClass={cs.AI},
      url={https://arxiv.org/abs/2603.04448}, 
}