ワンクリックで
agent-router
任务到 Agent 的智能路由器,根据任务类型、文件路径自动选择最合适的 Agent。 使用场景:subagent-driver 需要为任务选择 Agent、不确定应该使用哪个 Agent
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
任务到 Agent 的智能路由器,根据任务类型、文件路径自动选择最合适的 Agent。 使用场景:subagent-driver 需要为任务选择 Agent、不确定应该使用哪个 Agent
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
Aria 项目级配置加载器(内部基础设施)。 查找、解析、验证 .aria/config.json 并合并默认值。 此 Skill 不直接触发,由其他 Skills 引用以读取项目配置。
项目状态扫描与智能工作流推荐,十步循环的统一入口。 收集项目状态、分析变更、推荐最佳工作流、引导用户确认执行。 使用场景:"查看项目当前状态"、"我要提交代码"、"开发新功能"
会话收尾 —— 在任意对话(含未走完十步循环的探索/调试/讨论 session)把"未交接成果" 固化为 handoff。**与十步循环正交平级的会话仪式**(非周期收尾): AI 先内省本对话出 未完成线程 + 待固化经验, 再用机械 autofill 交叉核验补漏, 写 docs/handoff/。leaf — 终结于写交接, 不拖入十步循环。 使用场景: "对话收尾" / "执行对话收尾" / "会话收尾" / "session closeout" / "收尾这次对话" / "写交接" / "写 handoff" / "收工" / "结束本次对话" / context 快满时主动收尾。 不适用 (用 phase-d-closer): "Phase D" / "周期收尾" / "归档 Spec" / "更新 cycle 进度" —— 那是开发周期收尾, 不是会话收尾。
Git 多远程 parity 检测与 push 验证的共享基础设施。 内部工具, 仅供其他 skills 引用。提供标准化 Bash/Python 执行脚本段 + 输出 JSON schema 契约。
向 Aria 维护团队报告 Bug 或提交功能建议。自动收集环境信息, 自动路由到 Forgejo(内部用户)或 GitHub(外部用户)。 使用场景:"报告 bug"、"report an issue"、"提交功能建议"、 "aria 有个问题想反馈"、"feature request"、"提 issue"、 "反馈问题"、"report bug to aria"
十步循环 Phase B - 开发阶段执行器,编排 B.1-B.3 步骤。 使用场景:"执行开发阶段"、"Phase B"、"创建分支并运行测试"
SOC 職業分類に基づく
| name | agent-router |
| description | 任务到 Agent 的智能路由器,根据任务类型、文件路径自动选择最合适的 Agent。 使用场景:subagent-driver 需要为任务选择 Agent、不确定应该使用哪个 Agent |
| argument-hint | [task-description] |
| disable-model-invocation | false |
| user-invocable | false |
| context | fork |
| agent | general-purpose |
| allowed-tools | Read, Glob, Grep, Bash |
版本: 1.2.2 | 类型: 路由器 (Agent 选择) 更新: 2026-07-12 - 摘要表残余漂移对齐 #101 (architecture→backend-architect 0.85 / api-doc·llm·rag 0.95 / React Native·Flutter 0.95 [后两行 recon 新发现]) + 表级 canonical banner (ROUTING_RULES=SOT, 根治双写漂移); 前版 1.2.1 基线层语义补明 #99
使用场景:
不使用场景:
| 功能 | 说明 |
|---|---|
| 智能路由 | 根据任务特征自动匹配 Agent |
| 置信度评分 | 对每个匹配结果评分 (0-1) |
| 项目级 capability 路由 | 扫描 .aria/agents/ 项目级 Agent, 按 capabilities 匹配进入 auto/recommend (v1.2.0, ROUTING_RULES §CAP) |
| 多模式支持 | 自动 / 推荐 / 手动三种模式 |
| 用户覆盖 | 允许用户显式指定 Agent |
| Fallback | 无匹配时使用 general-purpose |
行为: 两段式裁决 (v1.2.0, 详见 §执行流程 step 5 + ROUTING_RULES §CAP-4):
Stage 1 基线裁决 (FP/TT/技术栈/关键词, 既有规则含 threshold 与 <0.1 近分降级)
Stage 2 项目级 CAP 挑战 (仅当存在项目级 CAP 候选):
R-a 决定性直派 (specialist 全命中) / R-b 有序四分支数值裁决
条件: 用户未显式指定 Agent
示例:
任务: "实现用户登录 API" (无项目级候选)
路由结果: backend-architect (confidence: 0.95, decision_path: baseline)
动作: 直接使用 backend-architect
行为: 展示 Top-3 Agent 供用户选择
触发: confidence < threshold 或有多个候选
条件: 用户未显式指定 Agent
示例:
任务: "优化数据库查询"
路由结果:
[1] backend-architect (0.85) - 后端架构优化
[2] qa-engineer (0.60) - 性能分析
[3] general-purpose (0.50) - 通用任务兜底
动作: 询问用户选择
行为: 使用用户显式指定的 Agent
触发: 用户在任务中指定
优先级: 最高 (覆盖自动和推荐)
示例:
任务: "用 backend-architect 实现用户认证"
路由结果: backend-architect (手动指定)
动作: 直接使用 backend-architect
本节为插件级基线四类规则 (文件路径/任务类型/技术栈/关键词) 摘要。项目级 capability 匹配 (§CAP: required_caps 推断 / 评分公式 / 两段式决策 / 同名得分归属 / recommend 混排) 见 ROUTING_RULES.md §CAP。
Canonical banner (v1.2.2, #101): 本节摘要表的目标 Agent 与置信度以 ROUTING_RULES.md 为 canonical SOT, 摘要仅便于扫读; 与 canonical 冲突时一律以 canonical 为准。改路由规则只改 ROUTING_RULES, 摘要表随之对齐 (摘要表历史上已两次漂移: #99 frontend 行 / #101 六行, 皆双写所致)。
| 路径模式 | 目标 Agent | 置信度 |
|---|---|---|
backend/**/* | backend-architect | 0.90 |
api/**/* | backend-architect | 0.95 |
database/**/* | backend-architect | 0.90 |
mobile/**/* | mobile-developer | 0.95 |
*.dart | mobile-developer | 0.90 |
frontend/**/* | frontend-developer (注) | 0.85 |
docs/**/* | knowledge-manager | 0.85 |
ai/**/* | ai-engineer | 0.90 |
注 (v1.2.1, #99):
frontend/**/*行此前写general-purpose 0.70, 与 canonical ROUTING_RULES FP-022 (frontend-developer 0.85) 冲突, 现对齐。frontend-developer非插件内置 Agent (不在 §Agent 能力矩阵) — 胜出时按 §错误处理「Agent 不存在」回退general-purpose, 除非项目级.aria/agents/frontend-developer.md提供该 Agent (详见 ROUTING_RULES FP-022~025 注 1)。
| 任务类型 | 目标 Agent | 置信度 |
|---|---|---|
architecture | backend-architect | 0.85 |
code-review | qa-engineer | 0.95 |
ui-design | ui-ux-designer | 0.90 |
legal | legal-advisor | 0.95 |
api-doc | api-documenter | 0.95 |
llm / rag | ai-engineer | 0.95 |
tech-lead / planning | tech-lead | 0.85 |
| 技术关键词 | 目标 Agent | 置信度 |
|---|---|---|
React Native | mobile-developer | 0.95 |
Flutter | mobile-developer | 0.95 |
REST / GraphQL | backend-architect | 0.85 |
vector / embedding | ai-engineer | 0.90 |
OpenAPI / Swagger | api-documenter | 0.90 |
| 参数 | 必需 | 说明 | 默认值 |
|---|---|---|---|
task | ✅ | 任务描述 | - |
task_type | ❌ | 任务类型。未传时自动推断: 以 TT 表「触发关键词」为唯一依据, task 文本词边界逐字命中 (非语义联想), 见 ROUTING_RULES §任务类型规则推断程序 (v1.2.1, #99) | 自动推断 |
files | ❌ | 相关文件列表 | [] |
mode | ❌ | 路由模式 | recommend |
threshold | ❌ | 自动模式阈值; 比较取 >= (恰等合格, 见 ROUTING_RULES §threshold 比较语义, v1.2.1 #99) | 0.9 |
user_agent | ❌ | 用户指定的 Agent | null |
required_caps | ❌ | 显式任务需求标签 (taxonomy tag list, v1.2.0)。传入 → 跳过 L1/L2 推断直接采用 (归一失败值剔除+WARN), 见 ROUTING_RULES §CAP-1 | null (推断) |
status: "auto_match"
agent: "backend-architect"
confidence: 0.95
reason: "任务涉及 API 设计,路径匹配 backend/**/*"
model: "sonnet"
# ── v1.2.0 additive 字段 (仅当 step 3e 实际执行时输出; 3e 被门控跳过或
# .aria/agents/ 为空时, 输出 shape 完全等同 v1.1.x, 不含以下任何字段。
# 适用形态: auto_match 与 recommend **两种输出均携带**本块 decision 级字段 —
# recommend 时 agent_source 改为逐候选条目携带 [§CAP-7], decision_path/
# required_caps_trace/warnings 仍为顶层 decision 级) ──
agent_source: "plugin" # "plugin" | "project" — 胜出者来源层
decision_path: "baseline" # "R-a" | "R-b" | "baseline" (decision 级单值;
# 赋值通则见 ROUTING_RULES §CAP-4;
# baseline + agent_source=project = 同名接管)
required_caps_trace: # 推断轨迹 (可审计)
explicit: false # 显式传参时 true (此时 l1/l2 为空)
l1: [api-design]
l2: [] # [{tag, evidence}] 语义补充及其证据 token
negated: []
off_taxonomy_tags: [] # 胜出者为项目级时: 其惰性标签提示 (owner 修标签)
warnings: [] # 既有输出惯例 (如同名警告)
# manual / fallback 输出不含上述字段 (manual 不经 3e; fallback 恒 general-purpose)
status: "recommend"
candidates:
- rank: 1
agent: "backend-architect"
confidence: 0.85
reason: "后端架构相关任务"
model: "sonnet"
- rank: 2
agent: "qa-engineer"
confidence: 0.60
reason: "可能涉及性能分析"
model: "sonnet"
- rank: 3
agent: "general-purpose"
confidence: 0.50
reason: "通用任务兜底"
model: "sonnet"
user_select_required: true
status: "manual"
agent: "mobile-developer"
confidence: 1.0
reason: "用户显式指定"
source: "user_override"
status: "fallback"
agent: "general-purpose"
confidence: 0.0
reason: "无明确匹配规则"
fallback: true
路由流程:
1. 解析输入:
├── 读取 task 描述
├── 读取 task_type (如有)
├── 读取 files 列表
└── 检查 user_agent (手动指定)
2. 手动模式检查:
├── if user_agent 存在:
│ └── 返回手动模式结果
└── else: 继续
3. 规则匹配:
├── 3a 文件路径匹配 (FP)
├── 3b 任务类型匹配 (TT)
├── 3c 技术栈匹配
├── 3d 关键词匹配
└── 3e 项目级 capability 匹配 (v1.2.0 新增, 主链默认步, 受配置门控):
├── 门控 (最先判定, 命中即整步不执行 — 含同名检测/吸收在内的一切 3e 逻辑):
│ agent_router.plugin_only == true 或 scan_project_agents == false
│ → 跳过 3e, 退化纯基线 (输出 shape 完全等同 v1.1.x, 不含 3e 新字段)
├── 扫描 .aria/agents/*.md (缓存与失效语义见 §项目级 Agent 发现「缓存」)
├── frontmatter 健壮性: capabilities 缺失/非 list/YAML parse 失败 → skip 该
│ agent 不阻断; 空 list → 合法 (零命中)
├── 同名保护复合 (得分归属见 ROUTING_RULES §CAP-6): 池构建期先按名去重 —
│ 项目级替换插件级候选 + 输出警告; 幸存者吸收插件级按名命中的全部
│ FP/TT/技术栈/关键词 confidence; agent_source 恒 = project
├── 读 capabilities, 经 capabilities-taxonomy.yaml 归一 (ROUTING_RULES §CAP-2)
└── 按 ROUTING_RULES §CAP-3 评分产出项目级候选 (match_rate > 0 才产出,
零命中不入池; 候选携带 match_rate/|matched|/|required_caps|/precision/
off_taxonomy_tags)
4. 置信度聚合:
├── 合并所有匹配结果 (基线候选 + 项目级 CAP 候选进同一候选池)
├── 侧别语义: B12 吸收候选凭吸收分归基线侧; 其 CAP 分录仅用于 recommend
│ 排序与 trace, 不参与 Stage 2 auto 挑战者遴选 (ROUTING_RULES §CAP-6)
├── 去重并排序
└── 选择 Top-N
5. 模式决策:
├── if mode == auto: 两段式 (ROUTING_RULES §CAP-4):
│ ├── Stage 1 基线裁决: 基线侧候选 (含吸收分候选) 按既有规则得出
│ │ baseline 决策 + baseline_top — 基线侧候选间差值 < 0.1 严格降级
│ │ 与 threshold 检查照旧 (无项目级候选时行为与 v1.1.x 一致)
│ └── Stage 2 项目级 CAP 挑战 (仅当存在纯 CAP 项目级候选):
│ R-a 决定性直派 → R-b 有序分支 (0)-(4), 含基线池空分支 → 采纳/直派/降级
│ (auto 内部任何降级产出的 recommend 输出, 同样按 §CAP-7 混排)
│
├── if mode == recommend:
│ └── 返回 Top-3 推荐 (项目级候选按 §CAP-7 规则混排进入)
│
└── if mode == manual:
└── 既有逻辑不变 (user_agent 显式指定时于 step 2 前置返回;
未指定时等待指定 — 两形态均不经 3e 评分)
6. 返回结果
subagent-driver 调用流程:
1. 接收任务列表
2. for each task:
a. 调用 agent-router
├── task: 任务描述
├── files: 相关文件
└── mode: recommend (配置)
b. 获取路由结果
├── auto: 直接使用
├── recommend: 询问用户
├── manual: 使用用户指定
└── v1.2.0: 结果含 agent_source (plugin|project) — 项目级 Agent 胜出时
subagent-driver 可据此填充 handoff-contract 预留字段 agent_source
c. 启动 Fresh Subagent
└── 使用选定 Agent
3. 执行任务
4. 任务间审查
5. 4 选项完成
Legacy 标注 (v1.2.0): 本块为 v1.0.0 era 遗留配置面。step 3e 门控与缓存的 3 个 key (
scan_project_agents/plugin_only/cache_ttl_seconds) 的 SOT 为.aria/config.json的agent_router块 (见下方「项目级 Agent 发现 → 配置」); 既有confidence_threshold/max_candidates/default_mode等仍居本 legacy 块, 迁移不在 v1.2.0 范围。
{
"enabled": true,
"default_mode": "recommend",
"confidence_threshold": 0.9,
"max_candidates": 3,
"fallback_agent": "general-purpose"
}
# detailed-tasks.yaml
tasks:
- id: TASK-001
description: "实现用户认证"
agent: backend-architect # 手动指定
files:
- backend/api/auth.js
下表为插件级基线 Agent (静态)。项目级 Agent (
.aria/agents/*.md) 为动态发现, 不在此表 — 其能力由各自 frontmattercapabilities标签声明, 经 ROUTING_RULES §CAP 匹配参与路由。
| Agent | 擅长任务 | 模型 | 颜色 |
|---|---|---|---|
| general-purpose | 通用任务、复杂搜索 | sonnet | gray |
| knowledge-manager | 文档架构、AI-DDD | sonnet | blue |
| tech-lead | 架构决策、任务规划 | opus | red |
| qa-engineer | 代码审查、质量保证 | sonnet | yellow |
| context-manager | 上下文管理、多任务协调 | opus | cyan |
| ai-engineer | LLM 应用、RAG 系统 | opus | yellow |
| backend-architect | API 设计、微服务 | sonnet | green |
| mobile-developer | React Native、Flutter | sonnet | pink |
| api-documenter | OpenAPI、SDK 生成 | haiku | orange |
| legal-advisor | 法律文档、合规 | haiku | purple |
| ui-ux-designer | 界面设计、用户体验 | sonnet | purple |
输入:
task: "实现用户登录 REST API"
files: ["backend/api/auth.js"]
mode: auto
输出:
status: auto_match
agent: backend-architect
confidence: 0.95
reason: "文件路径匹配 backend/**/*,包含 API 关键词"
输入:
task: "优化用户注册流程性能"
files: ["backend/api/register.js", "database/schema.sql"]
mode: recommend
输出:
status: recommend
candidates:
- rank: 1
agent: backend-architect
confidence: 0.75
reason: "后端相关文件和性能优化"
- rank: 2
agent: qa-engineer
confidence: 0.65
reason: "性能分析和优化"
- rank: 3
agent: general-purpose
confidence: 0.50
reason: "通用任务兜底"
输入:
task: "用 tech-lead 规划系统重构"
user_agent: tech-lead
输出:
status: manual
agent: tech-lead
confidence: 1.0
source: user_override
前提: .aria/agents/database-specialist.md 存在
(capabilities: [orm-migration, query-optimization, database-schema])
输入:
task: "给 extraction_job.status 的 CHECK 约束加值, 写 Alembic migration, 同步模型"
files: ["backend/models/extraction_job.py"]
mode: auto
required_caps: [orm-migration, database-schema] # 显式传参 (或经 L1/L2 推断)
输出:
status: auto_match
agent: database-specialist
confidence: 1.0 # match_rate 2/2
agent_source: project
decision_path: R-a # 全命中 + |req|>=2 + precision 2/3≈0.67 >= 0.5
# (valid_caps=3, matched=2 — 分母为该 agent 全部
# taxonomy 内标签, 见 ROUTING_RULES §CAP-3)
reason: "项目级 specialist 全命中 required_caps (R-a 决定性直派)"
required_caps_trace: {explicit: true, l1: [], l2: [], negated: []}
off_taxonomy_tags: []
warnings: []
# 对比: v1.1.x 同输入会被 FP(backend/**) 0.90 短路直派 backend-architect,
# database-specialist 从不进候选池 (#153 发现 B, 已修复)
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 无匹配规则 | 任务特征不符合任何规则 | 使用 general-purpose |
| Agent 不存在 | 指定的 Agent 无效 | 警告并回退到 general-purpose |
| 多高置信度 | 多个 Agent 置信度都 >= threshold | 降级到推荐模式 |
| 3e 扫描失败 (目录不可读) | 权限/IO 异常 | skip 3e 退化纯基线, WARN 不阻断 |
| 项目级 frontmatter 损坏 | capabilities 缺失/非 list/parse 失败 | skip 该 agent 不阻断; 空 list = 合法零命中 |
| 缓存写入失败 | 权限/磁盘/目录缺失 | mkdir -p 或 WARN + 直读 frontmatter, 不阻断 (§缓存) |
| required_caps 传参含无效值 | off-taxonomy/拼写错 | 剔除该值 + WARN, 余下继续 (§CAP-1) |
项目级 Agent 发现是 §执行流程 step 3e 的主链默认步 (v1.2.0 起, 见上方执行流程; v1.1.0-v1.53.0 期间本段曾为文末孤儿描述, auto 路径从未真正执行 — #153 发现 B, 已修复): 扫描 .aria/agents/ 目录, 项目级 Agent 经 capability 匹配 (ROUTING_RULES §CAP) 进入候选池并参与两段式 auto 裁决。
路由决策流程 (接线版):
1. 加载插件级 Agent 列表 (aria/agents/*.md)
2. step 3e: 扫描项目级 Agent 目录 (.aria/agents/*.md, 受配置门控)
3. 合并: 项目级 CAP 候选与基线候选进同一候选池 (同名保护复合见 §CAP-6)
4. 执行路由匹配: FP/TT/技术栈/关键词 (基线) + capabilities (项目级, §CAP)
5. step 5 两段式裁决 → 输出 (含 agent_source / decision_path 等字段, 见 §输出格式)
注意 (D4 rationale, 保留): 这是 Skill 层的运行时行为,不是 Plugin 层的静态注册。Claude Code Plugin 不会自动加载 .aria/agents/ 中的 Agent,但 agent-router Skill 在执行时会读取它们的 description 和 capabilities。
.aria/cache/project-agents.json, schema:
last_full_scan (int epoch seconds UTC, TTL 判定基准) + files: [{path, mtime[纳秒精度, 文件系统支持时], size}, ...].aria/agents/*.md 做 stat 集合比对, 任何差异 (增/删/改) → 重建缓存 + 更新 last_full_scancache_ttl_seconds (配置, 默认 0): >0 = 即使 stat 集合一致, now − last_full_scan 超 TTL 也强制重建 (对 stat 粒度漏检的时间兜底); 0 = 仅 stat 比对.aria/cache/ 不存在 → mkdir -p; 写入失败 → WARN + 本次直读 frontmatter 不用缓存, 不阻断路由; tmp + rename 原子写; 旧 schema 缓存 (无 last_full_scan) → 视为失效直接重建如果项目级 Agent 与插件级 Agent 同名:
⚠️ 项目级 Agent '<name>' 覆盖了插件级路由plugin_only: true 忽略项目级 Agent// .aria/config.json
{
"agent_router": {
"scan_project_agents": true, // 默认 true
"plugin_only": false, // 设为 true 忽略项目级 Agent
"cache_ttl_seconds": 0 // 0 = 仅 mtime 失效, >0 = 时间失效
}
}
最后更新: 2026-07-12 Skill版本: 1.2.2 (摘要表残余漂移对齐 #101: 6 行对齐 canonical + 表级 canonical banner; 前版 1.2.1 基线层 5 处语义补明 #99)