Token导航 LogoToken导航TokenDH.com
开发敏感数据clawhub未标认证来源可访问clear审计通过

super-router超级路由器

Agent Skill

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

总安装

1,521

周安装

64

GitHub Stars

公开资料未说明

下载量

532
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 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

简介

基于 LangGraph 的智能任务路由器,通过五维复杂度评分和配置策略优化开发流程。

  • 适合在 OpenClaw 中承接开发类任务,自动分配子任务并管理执行优先级。
  • 使用 openclaw skills install super-router 安装,需结合具体项目配置路由规则。
  • 涉及代码生成、文件修改或外部调用时,应确认权限范围和维护状态。
  • 建议提前评估是否会触发联网请求或系统命令执行。

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

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

73.19%
按下载量换算389

安全审计

VirusTotal

未展示

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

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

安装前确认

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

来源信息

继续浏览同类 Skills