Token导航 LogoToken导航

Agent Skill · 开发

super-router(超级路由器)

super-router 用于补充开发相关能力,适合在 OpenClaw 中需要让 Agent 承接开发相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

super-router 是开发类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描已通过,按安装量在开发类的 21,746 个 Skill 里排第 11,916。

总安装 1,521周安装 64GitHub Stars 公开资料未说明下载 532核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
0.1.1

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:super-router(超级路由器)
来源仓库:https://github.com/fanyadan/super-router
安装命令:
openclaw skills install super-router
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install super-router

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

基于 LangGraph 的智能任务路由器,通过五维复杂度评分和配置策略优化开发流程。适合在 OpenClaw 中承接开发类任务,自动分配子任务并管理执行优先级。使用 openclaw skills install super-router 安装,需结合具体项目配置路由规则。

涉及代码生成、文件修改或外部调用时,应确认权限范围和维护状态。建议提前评估是否会触发联网请求或系统命令执行。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install super-router;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

super-router 怎么安装?

在终端执行 openclaw skills install super-router。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

super-router 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

super-router 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

super-router 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

super-router 用的人多吗?

公开数据是累计安装 1,521 次,近一周安装 64 次,下载 532 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

super-router 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
super-router

超级路由器 · 本页

1,521—接触敏感数据MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
super-router
description
LangGraph-based intelligent task router that splits work between PRO (heavy reasoning) and FLASH (fast) models using 5-dimension complexity scoring, configurable model defaults, and FLASH→PRO escalation.
version
1.0.0
author
Yadan Fan
license
MIT
metadata
openclaw
tags
[model-routing, langgraph, ollama, task-decomposition, multi-model, complexity-scoring]
related_skills
[dspy, subagent-driven-development, llama-cpp]
requires
bins
[python]
env
[]
network
default
optional

Super Router (LangGraph Edition)

Intelligent task decomposition and model routing using LangGraph StateGraph. Automatically routes subtasks between PRO (heavy reasoning) and FLASH (fast) models based on structured complexity assessment.

When to Use This Skill

Use super-router when you need:

  • Intelligent model routing — automatically choose between heavy (PRO) and fast (FLASH) models per subtask
  • Task decomposition — break complex tasks into structured subtasks with independent routing
  • Cost optimization — use fast models for simple work, heavy models only when needed
  • Configurable models — use deterministic defaults, with environment-variable overrides for each role
  • Failure escalation — FLASH retry on infra failures, escalate to PRO on capability failures
  • Audit trail — full logging of planned vs actual routes, retries, and failure classifications

Not needed for: Simple single-turn tasks, tasks where you already know which model to use, or when you want manual control over every routing decision.

Core Architecture (LangGraph StateGraph)

NodeFunction
PlannerReceives original task, calls local Ollama planner model to generate ordered subtask array
JudgeScores each subtask on 5 dimensions: reasoning_depth, code_change_scope, ambiguity, risk, io_heaviness; combines with thresholds + confidence to decide PRO/FLASH
DispatcherReads RouterState.current_step, routes via conditional edge to pro_executor or flash_executor
PRO ExecutorHeavy reasoning model (default: Gemini CLI preview model; override via ROUTER_PRO_MODEL)
FLASH ExecutorFast model with review/retry logic (default: Gemini CLI preview model; override via ROUTER_FLASH_MODEL)
FLASH ReviewValidates output quality; distinguishes infra failures (timeout, network) from capability failures; retries FLASH or escalates to PRO
Metadata ExtractorExtracts 'Technical Gold' (atomic high-precision facts) from step output to prevent finalizer timeouts and loss of detail
Recorder/FinalizerLogs every step; compiles final report using a hybrid of Technical Gold and full audit trails; supports FLASH→PRO→deterministic fallback chain

Installation

# Required: LangGraph + Ollama
pip install langgraph

# Ensure Ollama is running locally
ollama serve

# Pull recommended models if you use Ollama-backed roles
ollama pull gemma4:26b     # Planner or PRO executor (high quality, slow)
ollama pull llama3.1:8b    # Judge (fast scoring, recommended)
ollama pull qwen3         # PRO executor
ollama pull qwen2.5:7b    # FLASH executor

Note: If you prefer gemma4:26b as the Planner, keep it there. For speed, the Judge should usually be llama3.1:8b or another 7B-14B model:

export ROUTER_PLANNER_MODEL=gemma4:26b
export ROUTER_JUDGE_MODEL=llama3.1:8b
export ROUTER_PRO_MODEL=gemma4:26b
export ROUTER_FLASH_MODEL=qwen2.5:7b

If you intentionally want an all-gemma4:26b Planner/Judge/PRO setup, use longer timeouts and serialized graph execution:

export ROUTER_PLANNER_MODEL=gemma4:26b
export ROUTER_JUDGE_MODEL=gemma4:26b
export ROUTER_PRO_MODEL=gemma4:26b
export ROUTER_FLASH_MODEL=qwen2.5:7b
export ROUTER_JUDGE_TIMEOUT=600
export ROUTER_MAX_CONCURRENCY=1

Security Boundaries

  • The router only consumes task text, model names, and documented ROUTER_* settings.
  • It has no install hook, background persistence, arbitrary local file scanning, or destructive file operations.
  • Ollama traffic is local by default. Remote ROUTER_OLLAMA_URL values are refused unless ROUTER_ALLOW_REMOTE_OLLAMA=1 is set.
  • Gemini CLI execution is restricted to an executable named gemini and receives only a minimal allowlisted environment.
  • Provider prompts and outputs may leave the machine when using Gemini CLI or an explicitly trusted remote Ollama endpoint. Use local Ollama for sensitive work.

Usage

Basic Usage (via exec)

When user says "走 super-router", "use super-router", or asks for router analysis:

# Direct execution with task as argument
terminal(command="/opt/homebrew/Caskroom/miniforge/base/bin/python ~/.openclaw/skills/super-router/scripts/router.py '分析 K8s YAML 错误并重写配置'")

With Streaming (Node-Level Progress)

terminal(command="/opt/homebrew/Caskroom/miniforge/base/bin/python ~/.openclaw/skills/super-router/scripts/router.py --stream 'Your complex task'")

Via Environment Variable (Agent Compatibility)

For agents that struggle with non-ASCII arguments:

# Normalize task to short ASCII English, then pass as argument
terminal(command="/opt/homebrew/Caskroom/miniforge/base/bin/python ~/.openclaw/skills/super-router/scripts/router.py 'Analyze K8s YAML errors and fix'")

# Or via env var (if agent supports it)
terminal(command="/opt/homebrew/Caskroom/miniforge/base/bin/python ~/.openclaw/skills/super-router/scripts/router.py", 
         env={"ROUTER_TASK": "Your complex task description"})

Handling Long-Running Execution

If exec returns "Command still running":

# Continue polling with process tool
process(action="poll", session_id="<session_id_from_exec>")

# Wait for completion
process(action="wait", session_id="<session_id_from_exec>", timeout=300)

Important: Once process shows completion, your next assistant message MUST start with Router result: or Router failed: and include at least one real detail from the output (e.g., "Planner fallback", "Ollama timed out", "BTC"). Never reply with just ---, punctuation, or empty lines.

Environment Variables

VariablePurposeDefault
ROUTER_PLANNER_MODELTask decomposition modelgemma4:26b
ROUTER_JUDGE_MODELComplexity scoring modelllama3.1:8b
ROUTER_PRO_MODELHeavy reasoning executorgoogle-gemini-cli/gemini-3-pro-preview
ROUTER_FLASH_MODELFast executorgoogle-gemini-cli/flash
ROUTER_PRO_FALLBACK_MODELSComma-separated PRO fallback listNone
ROUTER_FLASH_FALLBACK_MODELSComma-separated FLASH fallback listNone
ROUTER_FLASH_RETRY_BUDGETMax FLASH retries before escalation1
ROUTER_RECURSION_LIMITPython recursion limit128
ROUTER_JUDGE_TIMEOUTTimeout for Judge node LLM calls (seconds)300 (up to 6000 for extremely complex tasks with large models)
ROUTER_MAX_CONCURRENCYLangGraph max node concurrency; set 1 for local 26B+ Judge modelsAuto (1 for large Judge models)
ROUTER_GEMINI_CLIPath to Gemini CLI (if using instead of Ollama)/opt/homebrew/bin/gemini
ROUTER_OLLAMA_URLOllama API endpointhttp://localhost:11434/api/generate
ROUTER_ALLOW_REMOTE_OLLAMAOpt in to non-local Ollama endpoints after trusting themOff
ROUTER_FINALIZER_TIMEOUTTimeout for the final reporting synthesis (seconds). Essential to set high (e.g., 600) for complex tasks to avoid timeouts during context assembly.600
ROUTER_DEBUGPrint raw planner/judge/Ollama diagnostic snippetsOff

For large models (20B+ like gemma4:26b):

  • Prefer ROUTER_PLANNER_MODEL=gemma4:26b with ROUTER_JUDGE_MODEL=llama3.1:8b
  • If using ROUTER_JUDGE_MODEL=gemma4:26b, set ROUTER_JUDGE_TIMEOUT=600 and keep ROUTER_MAX_CONCURRENCY=1
  • Planner timeout is auto-set to 300s for large models
  • Expect 2-5 minute wait times per LLM call
  • Model warmup adds ~30-60s upfront but prevents timeouts.
  • Crucial: A 60s terminal timeout can still kill the run even if internal router timeouts are higher. Use --stream, process polling via process(action='poll'), and a longer terminal/process wait timeout for large Planner/Judge runs.

Complexity Routing Rules

5-Dimension Scoring

The Judge scores each subtask on:

  1. reasoning_depth (1-10): How much logical inference is needed?
  2. code_change_scope (1-10): How many files/lines of code to modify?
  3. ambiguity (1-10): How unclear is the task specification?
  4. risk (1-10): What's the impact of getting this wrong?
  5. io_heaviness (1-10): How much reading/writing vs. thinking?

Routing Thresholds

ConditionRoute
complexity_score >= 5PRO
complexity_score <= 2FLASH
Summary-like task (no deep work)FLASH
High-risk incident diagnosisPRO
High-risk evidence gatheringPRO
High-risk decision/rollback evaluationPRO
Boundary case + low confidencePRO (safe default)

Contextual Score Biases

The router applies automatic adjustments:

  • High-risk context (production, billing, security): boosts reasoning_depth, risk, ambiguity
  • Evidence gathering in incident: keeps on PRO (not mere IO)
  • Communication/summary subtasks: routed to FLASH unless deep work is also required

FLASH Review & Escalation Logic

When FLASH execution fails or produces questionable output:

  1. Classify failure type:

- infra_transient: timeout, network, rate limit, service unavailable - capability_quality: "need more info", empty output, too short, repeated task

  1. Decision:

- Infra failure → Retry FLASH (up to ROUTER_FLASH_RETRY_BUDGET) - Capability failure → Escalate to PRO immediately - Unknown → Retry once, then escalate

  1. Post-execution verification:

- Empty output → escalate - Output < 48 chars (non-summary) → escalate - Output explicitly says "can't complete" → escalate - Output just repeats task description → escalate

Finalizer Fallback Chain

Final report generation follows:

FLASH finalizer → (if fails) → PRO finalizer → (if fails) → Deterministic template

Output Structure

  • Output Structure: The router returns a JSON-serializable state. When summarizing these results in reports or documentation, always use ASCII/Terminal-style arrows (e.g., '-->', '->') rather than mathematical arrows (e.g., '→', '$\ ightarrow$') for all diagrams and flow representations. This is a high-priority stylistic requirement.
{
  "task": "original task string",
  "planner_model": "model name used for planning",
  "judge_model": "model name used for complexity scoring",
  "pro_model": "primary PRO model",
  "flash_model": "primary FLASH model",
  "planned_subtasks": [{"desc": "..."}],
  "subtasks": [
    {
      "desc": "...",
      "model": "PRO|FLASH",
      "assessment": {
        "scores": {"reasoning_depth": 5, "code_change_scope": 3, "ambiguity": 2, "risk": 4, "io_heaviness": 1},
        "complexity_score": 15,
        "suggested_route": "PRO",
        "final_route": "PRO",
        "confidence": 0.85,
        "reason": "...",
        "judge_source": "llm|heuristic"
      }
    }
  ],
  "results": [
    {
      "step": 1,
      "planned_route": "PRO",
      "route": "PRO",
      "model_name": "qwen3",
      "desc": "...",
      "output": "...",
      "status": "success|failed",
      "attempt_count": 1,
      "retry_count": 0,
      "escalated_from_flash": false,
      "used_provider_fallback": false,
      "flash_review": {"decision": "record", "failure_type": "none", "reason": "..."},
      "attempt_log": ["..."]
    }
  ],
  "final_report": "...",
  "finalizer_outcome": {
    "route": "FLASH|PRO|DETERMINISTIC",
    "model_name": "...",
    "status": "...",
    "used_provider_fallback": false,
    "reason": "...",
    "attempt_log": ["..."]
  }
}

Example Workflows

Example 1: K8s Incident Triage

router.py "生产环境 K8s Pod 频繁重启,分析日志找出根因,给出修复方案并整理给值班同事的简短行动摘要"

Expected routing:

  1. "分析 Pod 重启日志,定位错误模式" → PRO (high-risk diagnosis)
  2. "确定根因(资源不足/配置错误/依赖故障)" → PRO (high-risk decision)
  3. "制定修复方案(YAML 调整/回滚/扩容)" → PRO (high-risk repair plan)
  4. "整理给值班同事的简短行动摘要" → FLASH (communication/summary)

Example 2: Code Refactoring

router.py "Refactor auth module to use JWT, add unit tests, update docs"

Expected routing:

  1. "Analyze current auth implementation" → PRO (deep inspection)
  2. "Design JWT claims model" → PRO (design logic)
  3. "Implement JWT encoding/decoding" → PRO (implementation)
  4. "Add unit tests for JWT functions" → PRO (test logic)
  5. "Update README with JWT usage examples" → FLASH (documentation)

Example 3: Simple Summary

router.py "Summarize the last 10 git commits"

Expected routing:

  • Single subtask → FLASH (summary-like, low complexity)

Maintenance

FilePurpose
scripts/router.pyMain LangGraph router script
SKILL.mdThis documentation

Troubleshooting

"Router timed out" / "Ollama returned an empty response"

  • Best fix when keeping a large Planner: keep ROUTER_PLANNER_MODEL=gemma4:26b, but set ROUTER_JUDGE_MODEL=llama3.1:8b.
  • All-gemma mode: set ROUTER_JUDGE_MODEL=gemma4:26b, ROUTER_JUDGE_TIMEOUT=600, and ROUTER_MAX_CONCURRENCY=1; expect much longer runs.
  • Use --stream and increase the terminal/process timeout if the Planner itself may take longer than 60s.
  • Set ROUTER_JUDGE_TIMEOUT=300 or higher only when intentionally using a 20B+ Judge.
  • Alternative: use Gemini CLI for planning: ROUTER_PLANNER_MODEL=google-gemini-cli/gemini-3-pro-preview.

"Planner timed out after 30s" (or 90s)

  • Model is too large or not loaded. Warmup helps but large models may still timeout.
  • Use --stream plus a longer terminal/process timeout, or choose a smaller planner model.
  • Check Ollama logs: ollama serve output for errors

"FLASH kept escalating to PRO"

  • Task may genuinely require heavy reasoning
  • Check if FLASH model is too small for your tasks
  • Try setting ROUTER_FLASH_MODEL to a larger model

"Gemini CLI AbortError or Auth Failures"

  • If gemini-cli returns AbortError or authentication errors in non-interactive sessions, this is often an infrastructure/API timeout or session issue.
  • Use --stream to monitor real-time progress and ensure ROUTER_JUDGE_TIMEOUT and terminal timeouts are sufficiently high to prevent external process termination.

"Planner produced only one subtask"

  • Task may be simple enough to not need decomposition
  • Planner model may be too small; try ROUTER_PLANNER_MODEL=gemma4:31b (if you have the patience for 90s+ waits)

Related Skills

  • dspy — Declarative LM programming with automatic prompt optimization (Python framework alternative)
  • subagent-driven-development — Task decomposition with OpenClaw-native delegation + two-stage review
  • llama-cpp — Run LLM inference locally (alternative to Ollama backend)

See Also

  • LangGraph documentation: https://langchain-ai.github.io/langgraph/
  • Ollama documentation: https://ollama.com/docs

平台分布

OpenClaw

73.19%
按下载量换算389

安全审计

VirusTotal

未展示

ClawScan

通过

Static analysis

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills