Token导航 LogoToken导航TokenDH.com
Routrt MCP logo
运维云端stdio官方级别未说明来源级核验

Routrt MCP

MCP Server

Router-MCP 是一个高精度路由识别服务,专注于将用户口语化输入安全、可解释地路由到 MCP / Skill / Tool / Planner,适用于需要准确率优先的结构化路由场景。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
Python云端部署Docker

安装说明

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

作者 / 组织

gungunj

提供方

gungunj

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -m pip install -e '.[dev]'

详细介绍

Router-MCP 高精度路由识别 MVP

这是一个围绕“准确率优先、宁可拒答也不误触发”构建的最小可运行 Router-MCP 路由识别服务。它不是通用聊天机器人,而是一个针对结构化路由层,负责把用户口语化输入安全、可解释地路由到 MCP / Skill / Tool / Planner。

当前实现

  • agent-router-mcp:统一入口、路由编排、输出结构化决策。
  • semantic-router:配置驱动的候选召回与多字段打分,默认优先调用本地 embedding 服务并自动回退规则召回。
  • NeMo-Guardrails 风格守护层:对执行前决策做二次守护,控制 clarify / refuse 质量,拦截高风险误执行。
  • 多意图拆分:一句话可拆成多个子任务分别决策。
  • planning intent:识别“方案设计 / 任务拆解 / 步骤规划 / 工作流编排”并路由到 plan
  • 作用域控制:支持 tenant / customer / role / enabled 过滤。
  • 可解释 trace:每个子意图保留标准化、召回、过滤、打分、决策审计信息。
  • local_embedding_service:独立目录部署的本地 embedding 服务,主路由服务通过 HTTP 调用。
  • API / CLI / MCP Server / OpenClaw 薄包装 / 评测脚本 / 单测:可直接本地演示。

目录结构

config/
  capabilities.yaml          # 能力注册表示例
  router_settings.yaml       # 阈值、别名、反问模板、打分配置
docs/eval/datasets/
  qdport_real_query_30_eval.yaml         # 30 条基础命中集
  qdport_generalized_query_240_eval.yaml # 240 条泛化评测集
  qdport_multiturn_query_240_eval.yaml   # 240 条多轮对话评测集
src/router_mcp/
  agent_router_mcp/          # 路由编排服务
  semantic_router/           # 候选召回与语义打分
  guardrails/                # 执行前守护与反问/拒答规范
  pipeline/                  # normalize / slot / rerank / decision
  registry/                  # registry schema 与加载校验
  eval/                      # 批量评测脚本
  api.py                     # FastAPI demo API
  cli.py                     # CLI demo
tests/
  test_router_pipeline.py
  test_api.py

快速开始

python3 -m pip install -e '.[dev]'
pytest
python3 -m pip install -r local_embedding_service/requirements.txt
python3 -m local_embedding_service.app
python3 scripts/extract_qdport_eval_datasets.py
python3 scripts/generate_multiturn_eval_dataset.py
python3 -m router_mcp.eval.run_eval --summary-only
python3 -m router_mcp.eval.run_eval --dataset docs/eval/datasets/qdport_real_query_30_eval.yaml --dataset docs/eval/datasets/qdport_generalized_query_240_eval.yaml --summary-only
python3 -m router_mcp.eval.run_multiturn_eval --dataset docs/eval/datasets/qdport_multiturn_query_240_eval.yaml
python3 -m router_mcp.cli "帮我查下今天异常流程,再把昨天没跑完的补跑一下" --tenant qingdao_port --customer default --role supervisor --execute
python3 -m router_mcp.cli "先别执行,先规划一下这个需求怎么落地" --tenant qingdao_port --customer default --role supervisor --plan
python3 -m router_mcp.app
python3 -m router_mcp.mcp_server

日常开发建议直接使用固定验证脚本:

scripts/verify_quick.sh
scripts/verify_boundary.sh
scripts/verify_full.sh

说明:

  • scripts/extract_qdport_eval_datasets.py 现在默认优先读取仓库内的缓存 bundle:

qdport_generalized_query_240.json

  • 如需重新从外部 Excel 全量抽取,仍可显式传 --source /path/to/qdport_query_generalization_v2.xlsx

如果动了 API / MCP / OpenClaw 入口,可加:

scripts/verify_quick.sh --with-api

Dashboard 前端工程位于 frontend/,开发与构建命令:

cd frontend
npm install
npm run dev
npm run build
  • npm run dev:本地起前端开发服务器,自动代理后端 API
  • npm run build:生成 frontend/build/,供 FastAPI 在 / 提供生产页面
  • 如果直接运行 python3 -m router_mcp.app 且还没构建前端,根路径会返回提示先执行 cd frontend && npm install && npm run build

服务启动后可用接口:

  • GET /capabilities
  • POST /capabilities/validate
  • POST /route
  • POST /route/explain
  • POST /route/plan
  • POST /route/batch

API 示例

POST /route

{
  "text": "帮我查下今天异常流程,再把昨天没跑完的补跑一下",
  "context": {
    "tenant_id": "qingdao_port",
    "customer_scope": "default",
    "role": "supervisor",
    "allow_execute": true
  },
  "dry_run": true
}

返回重点字段:

  • overall_decision
  • decisions[].decision
  • decisions[].trace_id
  • decisions[].reason
  • decisions[].evidence
  • decisions[].goal_type
  • decisions[].risk_level
  • decisions[].selected_capability
  • decisions[].decision_reason
  • decisions[].matched_capabilities
  • decisions[].confidence_breakdown
  • decisions[].missing_slots
  • decisions[].clarify_question
  • decisions[].refuse_reason
  • decisions[].execution_target
  • decisions[].audit_trace

核心决策原则

  • 高置信单命中才执行。
  • 多候选接近时优先 clarify
  • 缺关键槽位时必须 clarify
  • 方案设计 / 任务拆解 / 步骤规划 / 多阶段编排时进入 plan
  • 未命中或低置信度时 refuse
  • 高风险执行缺少确认或证据不足时强制拦截。
  • customer / tenant / role 不匹配时直接过滤,不允许越权命中。

默认评测集覆盖

  • 明确命中样例
  • 模糊表达样例
  • 多意图样例
  • 未命中样例
  • 高相似能力混淆样例
  • 权限不足样例
  • 缺槽位样例

评测输出至少包含:

  • correct_decisions
  • correct_capabilities
  • top1_accuracy
  • topk_recall
  • clarify_count
  • refuse_count
  • execute_count
  • false_execute_count
  • wrong_route_rate
  • direct_execution_rate
  • clarification_precision
  • refusal_precision
  • planning_detection_precision
  • planning_detection_recall

其中 false_execute_count 是当前 MVP 最关键指标。

当前默认 run_eval 会顺序跑两套整理后的评测集:

另外新增了一套并行维护的多轮评测集:

  • qdport_multiturn_query_240_eval.yaml:由 30 条基础命中集派生出的 240 条多轮对话样本,覆盖 clarify_fill_slots / proposal_confirm_cancel_revise / context_break_or_new_request

这套数据不进入默认 run_eval,而是通过独立 runner 回放共享 session_key + thread_id 的 turns:

python3 -m router_mcp.eval.run_multiturn_eval \
  --dataset docs/eval/datasets/qdport_multiturn_query_240_eval.yaml

如果需要覆盖默认口径,仍可显式传入 --dataset ...

最新调优结果

本轮调优重点放在 5 件事:

  • 补强中文口语槽位抽取:最近三天 / 本班 / 上一班 / 按货种汇总 / excel / 发给值班负责人 / 录到目标系统
  • 支持 查 -> 整理 -> 发出 的结构化步骤识别,并给同 family 多步骤链增加 rerank 组合分
  • 修正 family 级别 guardrail:query/generate family 可以按 family 安全放行,execute family 仍必须按 resolved member 槽位复核;hard_confusion 强制 clarify
  • 补齐 plan / refuse:显式 planning intent 检测、planner capability、MCP/OpenClaw 薄包装和 planning 指标
  • decision.py 的 guardrail 阻断收尾分支抽成具名 finalize_rule,并补齐 rule_name trace 回归测试
  • 对运行时能力集做轻量归一化:合并同名 seed family、去掉单成员 family 的同名 leaf,并对剩余不可安全合并的重名 seed leaf 做运行时改名,避免出现 “A 或 A / generate 还是 generate”

在默认 240 条泛化评测集 qdport_generalized_query_240_eval.yaml 上,当前 summary-only 指标为:

  • decision_accuracy: 0.8125
  • execute_count: 81
  • clarify_count: 159
  • direct_execution_rate: 0.3375
  • false_execute_count: 0
  • wrong_route_count: 0
  • named_target_accuracy: 0.9667
  • trace_coverage: 1.0
  • reason_coverage: 1.0

这轮结果对应的关键策略是:

  • 恢复 missing_required_slots -> clarify
  • 关闭 hard_confusion 高分直通 execute 的豁免

关于 LLM 的当前口径也需要明确:

  • 当前主链路仍是 heuristic + 结构化规则
  • 只有当 heuristic 槽位候选置信度 name
  • aliases -> aliases
  • capability_description -> description
  • generalized_user_query -> examples
  • required_slots -> required_slots
  • action_type -> 统一 action_type
  • clarify_when / reject_when -> guardrail hints

这样当前服务默认会同时加载手工高精度样例能力和 500 条原始种子能力。

开发约定与最新报告

目录标签

目录标签

Python云端部署Docker路由识别本地部署语义分析多意图处理高精度路由结构化决策

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosessionlocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP