Thanks to visit codestin.com
Credit goes to github.com

Skip to content

zjunlp/SkillNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

109 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SkillNet Logo

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

Search 150,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 Website


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

  • πŸ€– [2025-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

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


License

This project is licensed under the MIT License.