Smart Spawn
Intelligent model routing for AI agents
API · Blog · Author
______________________________________________________________________
智能模型路由 龙虾。根据来自5个来源的真实基准数据,自动为任何任务选择最佳AI模型。
Smart Spawn不会对模型进行硬编码或猜测,而是分析你正在做什么,并为工作找到最佳模型——考虑任务类型、预算、基准、速度和你自己的反馈历史。
快速入门(OpenClaw插件)
你不需要主持任何事情。公共API运行于 ss.deeflect.com.
安装插件:
openclaw plugins install @deeflectcom/smart-spawn
openclaw gateway restart在对话中使用它:
“研究WebGPU的最新发展” Smart Spawn选择Gemini 2.5 Flash(快速、免费、内容丰富),并在其上生成一个研究子代理。
“用auth为我构建一个React仪表板” Smart Spawn在您的预算层中选择最佳编码模型,并生成一个编码子代理。
插件配置 (可选——添加到您的OpenClaw配置中 plugins.entries.smart-spawn.config):
{
"apiUrl": "https://ss.deeflect.com/api",
"defaultBudget": "medium",
"defaultMode": "single"
}| 设置 | 默认 | 选项 |
|---|---|---|
apiUrl | https://ss.deeflect.com/api | 您自己的API URL如果自托管 |
defaultBudget | medium | low, medium, high, any |
defaultMode | single | single, collective, cascade, plan, swarm |
collectiveCount | 3 | 集体模式的型号数量(建议2-5个) |
telemetryOptIn | false | 选择匿名社区遥测 |
communityUrl | apiUrl | 备用社区遥测端点 |
产卵模式
- 单 --选择一个最佳模型,生成一个代理
- 集体 --选择N个不同的模型,生成并行代理,合并结果
- 级联 --从低价开始,如果质量不够,则升级到高端
- 计划 --分解连续的多步任务,并为每一步分配最佳模型
- 群集 --将复杂任务分解为子任务的DAG,每一步都有最佳模型
______________________________________________________________________
运作原理
┌─────────────────────────────────────────────────────┐
│ Data Sources (5) │
│ │
│ OpenRouter ─── model catalog, pricing, capabilities │
│ Artificial Analysis ─── intelligence/coding/math idx │
│ HuggingFace Open LLM Leaderboard ─── MMLU, BBH, etc│
│ LMArena (Chatbot Arena) ─── ELO from human prefs │
│ LiveBench ─── contamination-free coding/reasoning │
└──────────────────────┬──────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────┐
│ Enrichment Pipeline │
│ │
│ 1. Pull raw data from all 5 sources │
│ 2. Alias matching (map model names across sources) │
│ 3. Z-score normalization per benchmark │
│ 4. Category scoring (coding/reasoning/creative/...) │
│ 5. Cost-efficiency calculation │
│ 6. Tier + capability classification │
│ 7. Blend: benchmarks + personal + community scores │
│ │
│ Refreshes every 6 hours automatically │
└──────────────────────┬──────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────┐
│ SQLite Cache → API → Plugin → Agent │
└──────────────────────────────────────────────────────┘评分系统
Z分数归一化 --每个基准源使用不同的标度。人工分析得出的65的“智能指数”与1350的竞技场ELO完全不同。我们使一切正常化:
- 计算所有模型中每个基准的平均值和标准偏差
- 转换为z分数:
(value - mean) / stddev - 0-100比例尺的地图:z=-2.5→0, z=0→50, z=+1→70, z=+2→90
这意味着在LiveCodeBench上比平均水平高出2σ的模型与Arena ELO上比平均值高出2∑的模型得分相同——两者在指标上“同样出色”。
类别得分 --模型使用相关基准的加权组合按类别(编码、推理、创意、视觉、研究、快速廉价、通用)进行评分:
| 类别 | 关键基准 |
|---|---|
| 编码 | LiveCodeBench,代理编码,编码索引 |
| 推理 | GPQA、Arena ELO、MATH-500、BBH |
| 创意 | Arena ELO(人类偏好),LiveBench语言 |
| 视觉 | 智能指数(具有视觉能力的模型) |
| 研究 | 竞技场ELO,上下文长度奖励 |
| 快速便宜 | 速度(代币/秒),价格低廉 |
分数混合 --最终得分=以下各项的加权组合:
- 基准分数(主要)
- 个人反馈(您自己对过去产卵的评分)
- 社区评分(来自其他实例的匿名汇总评分)
- 情境增强(特定任务的信号,如“需要愿景”或“长期情境”)
预算层级
| 预算 | 价格范围(每100万输入代币) | 示例 |
|---|---|---|
low | 0-1美元 | DeepSeek、Kimi K2.5、Gemini Flash |
medium | 0-5美元 | 克劳德·索内特,GPT-4o,Gemini Pro |
high | 2-20美元 | 克劳德·奥普斯,全球定位系统-5或3 |
any | 无限制 | 无论成本如何,都是最佳选择 |
模型分类
每个模型都会自动分类为:
- 等级:溢价/标准/预算(基于供应商+定价)
- 类别:它擅长哪些任务类型(基于基准测试+能力)
- 标签:特定特征,如“快速”、“视觉”、“推理”、“大背景”
- 成本效益:每个类别的质量/美元比率
______________________________________________________________________
API 参考
基本URL: https://ss.deeflect.com/api
获取/选择
为任务选择最佳模型。
curl "https://ss.deeflect.com/api/pick?task=build+a+react+app&budget=medium"| 参数 | 必填 | 描述 |
|---|---|---|
task | 是 | 任务描述或类别名称 |
budget | 没有 | low, medium, high, any (默认值: medium) |
exclude | 否 | 要跳过逗号分隔的模型ID |
context | 否 | 上下文标签(例如。 vision,long-context) |
{
"data": {
"id": "anthropic/claude-opus-4.6",
"name": "Claude Opus 4.6",
"score": 86,
"pricing": { "prompt": 5, "completion": 25 },
"budget": "medium",
"reason": "Best general model at medium budget ($0-5/M) — score: 86"
}
}获取/推荐
通过提供商的多样性获得多个模型推荐。
curl "https://ss.deeflect.com/api/recommend?task=coding&budget=low&count=3"| 参数 | 必填 | 描述 |
|---|---|---|
task 或 category | 是 | 任务描述或类别名称 |
budget | 否 | 预算层(默认值: medium) |
count | 否 | 建议数量,1-5(默认值: 1) |
exclude | 否 | 要跳过逗号分隔的模型ID |
require | 否 | 所需功能: vision, functionCalling, json, reasoning |
minContext | 否 | 最小上下文窗口长度 |
context | 否 | 路由增强的上下文标签 |
GET/比较
并排模型比较。
curl "https://ss.deeflect.com/api/compare?models=anthropic/claude-opus-4.6,openai/gpt-5.2"| 参数 | 必填 | 描述 |
|---|---|---|
models | 是 | 逗号分隔的OpenRouter型号ID |
GET/型号
浏览完整的型号目录。
curl "https://ss.deeflect.com/api/models?category=coding&sort=score&limit=10"| 参数 | 必填 | 描述 |
|---|---|---|
category | 否 | 按类别筛选 |
tier | 否 | 按层筛选: premium, standard, budget |
sort | 没有 | score (默认), cost, efficiency,或任何类别名称 |
limit | 否 | 要返回的结果,1-500(默认值: 50) |
POST/分解
将复杂的任务分解为连续的步骤,每一步都有最佳模型。
curl -X POST "https://ss.deeflect.com/api/decompose" \
-H "Content-Type: application/json" \
-d '{"task": "Build and deploy a SaaS landing page", "budget": "medium"}'POST/群
将任务分解为具有依赖性跟踪的子任务的并行DAG。
curl -X POST "https://ss.deeflect.com/api/swarm" \
-H "Content-Type: application/json" \
-d '{"task": "Research competitors and build a pitch deck", "budget": "low"}'GET/状态
API健康和数据新鲜度。
curl "https://ss.deeflect.com/api/status"POST/刷新
强制数据刷新(从所有5个源中提取)。受API密钥保护,如果 REFRESH_API_KEY 已设置。
curl -X POST "https://ss.deeflect.com/api/refresh" \
-H "Authorization: Bearer YOUR_KEY"POST/生成日志
记录一个生成事件(插件用于反馈/学习)。
POST/生成日志/结果
报告学习循环的任务结果评级(1-5)。
POST/社区/报告
共享情报的匿名社区结果报告。
POST/角色/撰写
从角色/堆栈/域块中编写一个角色丰富的提示。
curl -X POST "https://ss.deeflect.com/api/roles/compose" \
-H "Content-Type: application/json" \
-d '{
"task": "Build a dashboard with auth and billing",
"persona": "fullstack-engineer",
"stack": ["nextjs", "typescript", "postgres", "stripe"],
"domain": "saas",
"format": "full-implementation",
"guardrails": ["code", "security", "production"]
}'退货:
hasRole--是否已解决任何有效块fullPrompt--包含角色块和任务的组合提示warnings--未知块ID(如果有的话)
GET/角色/块
列出可用的角色块ID persona, stack, domain, format,以及 guardrails.
curl "https://ss.deeflect.com/api/roles/blocks"______________________________________________________________________
自我寄宿
API是开源的。如果你想完全控制,就自己经营。
本地开发
git clone https://github.com/deeflect/smart-spawn.git
cd smart-spawn
bun install
bun run dev # starts on http://localhost:3000通用MCP服务器(OpenRouter编排)
Smart Spawn现在包括一个本地MCP服务器,可以运行异步多代理工作流,并将合并结果返回给Codex/Claude/任何MCP客户端。
cd mcp-server
npm install
OPENROUTER_API_KEY=your_key_here bun run start默认本地存储:
/.smart-spawn-mcp/db.sqlite/.smart-spawn-mcp/artifacts//...
根脚本:
bun run mcp:dev
bun run mcp:start
bun run mcp:typecheck
bun run mcp:test执行所需的环境变量:
OPENROUTER_API_KEY
可选环境变量:
SMART_SPAWN_API_URL(默认值:https://ss.deeflect.com/api)SMART_SPAWN_MCP_HOME(默认值:/.smart-spawn-mcp)MAX_PARALLEL_RUNS(默认值:2)MAX_PARALLEL_NODES_PER_RUN(默认值:4)MAX_USD_PER_RUN(默认值:5)NODE_TIMEOUT_SECONDS(默认值:180)RUN_TIMEOUT_SECONDS(默认值:1800)
连接MCP客户端(stdio)
在MCP客户端中将MCP服务器注册为stdio进程。
示例(claude_desktop_config.json):
{
"mcpServers": {
"smart-spawn": {
"command": "bun",
"args": [
"run",
"--cwd",
"/absolute/path/to/smart-spawn/mcp-server",
"start"
],
"env": {
"OPENROUTER_API_KEY": "your_openrouter_key_here",
"SMART_SPAWN_API_URL": "https://ss.deeflect.com/api"
}
}
}
}对于Codex或任何其他MCP主机,在该主机的MCP服务器配置格式中使用相同的stdio命令+env值。
MCP工具
smartspawn_health-OpenRouter/neneneba API/DB/storage/worker的运行状况检查smartspawn_run_create--创建异步运行并返回run_idsmartspawn_run_status--获取跑步状态/进度smartspawn_run_result--获取合并输出(以及可选的原始输出)smartspawn_artifact_get--通过以下方式获取存储的工件run_id+node_idsmartspawn_run_list--列出最近的跑步记录smartspawn_run_cancel--取消排队/跑步
首次运行工作流
- 检查健康状况:
{"name":"smartspawn_health","arguments":{}}- 创建跑步:
{
"name": "smartspawn_run_create",
"arguments": {
"task": "Design and implement a small REST API with tests",
"mode": "swarm",
"budget": "medium",
"role": {
"persona": "backend-engineer",
"stack": ["typescript", "nodejs", "postgres"],
"format": "full-implementation",
"guardrails": ["code", "security", "production"]
}
}
}- 轮询状态直到终端状态(
completed,failed,canceled):
{"name":"smartspawn_run_status","arguments":{"run_id":""}}- 获取合并结果:
{"name":"smartspawn_run_result","arguments":{"run_id":""}}- 可选:直接检查工件(例如:合并的输出工件):
{"name":"smartspawn_artifact_get","arguments":{"run_id":"","node_id":"merged"}}码头工人
docker build -t smart-spawn .
docker run -p 3000:3000 -v smart-spawn-data:/app/data smart-spawn铁路

回购包括 railway.json 和 Dockerfile。只需连接您的仓库并部署即可。
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
PORT | 无 | 服务器端口(默认值: 3000) |
REFRESH_API_KEY | 否 | 保护 /refresh 终点。如果设置,则需要 Authorization: Bearer |
速率限制
- 200次请求/分钟 每个IP(所有端点)
- 2个请求/小时 每个IP打开
/refresh - 退货
429 Too Many Requests随着Retry-After头球
这些对于代理使用来说足够慷慨。如果你达到了极限,那就自己主持吧。
______________________________________________________________________
建筑
smart-spawn/
├── src/ # API server
│ ├── index.ts # Hono app, middleware, startup
│ ├── db.ts # SQLite (cache, spawn logs, scores)
│ ├── types.ts # All TypeScript types
│ ├── model-selection.ts # Score sorting, blending logic
│ ├── scoring-utils.ts # Category classification, score helpers
│ ├── context-signals.ts # Context tag parsing and boost calculation
│ ├── task-splitter.ts # Task decomposition for cascade/swarm
│ ├── enrichment/
│ │ ├── pipeline.ts # Main pipeline: pull → enrich → cache
│ │ ├── scoring.ts # Z-score normalization, score computation
│ │ ├── rules.ts # Tier classification, category derivation
│ │ ├── alias-map.ts # Cross-source model name matching
│ │ └── sources/ # Data source adapters
│ │ ├── openrouter.ts # OpenRouter model catalog
│ │ ├── artificial.ts # Artificial Analysis benchmarks
│ │ ├── hf-leaderboard.ts # HuggingFace Open LLM Leaderboard
│ │ ├── lmarena.ts # LMArena / Chatbot Arena ELO
│ │ └── livebench.ts # LiveBench scores
│ ├── routes/ # API endpoints
│ ├── roles/ # Role composition blocks
│ ├── middleware/ # Rate limiting, response caching
│ └── utils/ # Input validation
├── smart-spawn/ # OpenClaw plugin
│ ├── index.ts # Plugin entry point (tool registration)
│ ├── openclaw.plugin.json # Plugin manifest
│ ├── src/api-client.ts # API client for plugin
│ └── skills/smart-spawn/ # Companion SKILL.md
├── skills/ # API-only skill (no plugin required)
│ └── SKILL.md
├── mcp-server/ # Universal MCP server (async orchestration)
│ ├── src/index.ts # MCP stdio entrypoint
│ ├── src/tools.ts # MCP tool contracts
│ ├── src/runtime/ # Planner + queue + executor
│ ├── src/db.ts # Run/node/event/artifact persistence
│ └── src/storage.ts # Artifact filesystem manager
├── data/ # SQLite database (auto-created)
├── Dockerfile
├── railway.json
└── .env.example______________________________________________________________________
许可证
麻省理工学院——见 许可证.
建造于 @偏转.
