From 9d952f8d99d1df664772e7915e9658135b1c1a64 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 10 Nov 2026 09:04:27 +0000 Subject: [PATCH 1/2] feat: add vllm-project/router issue priority rules Store the agreed fatal/high/medium/low grading guide in the vllm-router knowledge slice so issue triage can apply it, including the impact overrides. Co-authored-by: wangyu --- adapters/vllm_router/manifest.yaml | 30 +++++++++ doc/knowledge/SCHEMA.md | 2 +- knowledge/repos/_index.md | 5 +- knowledge/repos/vllm-router/_index.md | 34 ++++++++++ knowledge/repos/vllm-router/bug/_index.md | 26 ++++++++ knowledge/repos/vllm-router/bug/rules.md | 80 +++++++++++++++++++++++ test/test_adapters.py | 24 +++++++ 7 files changed, 198 insertions(+), 3 deletions(-) create mode 100644 adapters/vllm_router/manifest.yaml create mode 100644 knowledge/repos/vllm-router/_index.md create mode 100644 knowledge/repos/vllm-router/bug/_index.md create mode 100644 knowledge/repos/vllm-router/bug/rules.md diff --git a/adapters/vllm_router/manifest.yaml b/adapters/vllm_router/manifest.yaml new file mode 100644 index 000000000..8053916fa --- /dev/null +++ b/adapters/vllm_router/manifest.yaml @@ -0,0 +1,30 @@ +# Points InferMatrixCopilot at the vllm-project/router issue-priority rules. +# Source modules and a checkout pin are not declared here. +name: vllm_router +status: active +created_by: human +schema_version: 1 +capabilities: [] + +repo: + path: ${VLLM_ROUTER_REPO} + full_name: vllm-project/router + aliases: + - vllm-router + - vllm_router + - router + - vllm-project/router + default_branch: main + +knowledge: + source: vllm-project/router + repo_subdir: repos/vllm-router + briefing_docs: + - repos/vllm-router/bug/rules.md + - repos/vllm-router/_index.md + +push: + default_remote: origin + protected_branches: + - main + allowed: false diff --git a/doc/knowledge/SCHEMA.md b/doc/knowledge/SCHEMA.md index 3ae281bf1..a6096d8aa 100644 --- a/doc/knowledge/SCHEMA.md +++ b/doc/knowledge/SCHEMA.md @@ -81,7 +81,7 @@ contradictions: [相对路径] # 可选:与本页冲突的页面 新标签必须先加入此表再使用(防止标签蔓延): -- 归属:`general`、`vllm-omni`、`afd-plugin`、`vllm-gr`、`jiuwenswarm` +- 归属:`general`、`vllm-omni`、`afd-plugin`、`vllm-gr`、`jiuwenswarm`、`vllm-router` - 工作主题:`review`、`ci`、`docs`、`git`、`debug`、`bug`、`benchmark`、`environment`、 `remote`、`agents`、`planning`、`dev`、`rebase` - 代码/模型轴:`components`、`models`、`diffusion`、`model-executor`、`serving`、 diff --git a/knowledge/repos/_index.md b/knowledge/repos/_index.md index 6dc029ac2..97202ae1c 100644 --- a/knowledge/repos/_index.md +++ b/knowledge/repos/_index.md @@ -1,9 +1,9 @@ --- title: "仓库经验入口" created: 2026-07-10 -updated: 2026-09-30 +updated: 2026-11-10 type: index -tags: [vllm-omni, afd-plugin, vllm-gr] +tags: [vllm-omni, afd-plugin, vllm-gr, vllm-router] sources: [] --- @@ -28,3 +28,4 @@ sources: [] | Jianghan roleplay data pipeline | 私有项目 | [jianghan-roleplay-data-pipeline](jianghan-roleplay-data-pipeline/_index.md) | | vLLM-GR | `JiusiServe/vllm-gr` | [vllm-gr](vllm-gr/_index.md) | | jiuwenswarm | `openJiuwen-ai/jiuwenswarm` | [jiuwenswarm](jiuwenswarm/_index.md) | +| vLLM Router | `vllm-project/router` | [vllm-router](vllm-router/_index.md) | diff --git a/knowledge/repos/vllm-router/_index.md b/knowledge/repos/vllm-router/_index.md new file mode 100644 index 000000000..630902898 --- /dev/null +++ b/knowledge/repos/vllm-router/_index.md @@ -0,0 +1,34 @@ +--- +title: "vLLM Router 仓库知识入口" +created: 2026-11-10 +updated: 2026-11-10 +type: index +tags: [vllm-router] +sources: [] +--- + +# vLLM Router 仓库知识入口 + +## 仓库和适用范围 + +- 上游仓库:`vllm-project/router`。 +- Canonical slug:`vllm-router`。别名包括 `vllm_router` 与 GitHub 仓库名 `router`。 +- 适用范围:该仓库的 issue 分诊与优先级打标。 + +## 什么时候查这里 + +- 用户给出 `vllm-project/router`、`vllm-router` 或 `router`,需要映射到本目录。 +- 为该仓库的 issue 选择致命、高、中、低。 + +## 不放什么 + +- 换仓库仍然成立的方法放 [general](../../general/_index.md)。 +- 其他仓库的调度实现、模型或 CI 经验。 +- 单次 issue 的调查时间线、PR 复盘和评测记录。 + +## 目录内容 + +| 遇到什么 | 查看哪里 | 说明 | +|---|---|---| +| 给 `vllm-project/router` 的 issue 定级或打标 | [issue 分级规则](bug/rules.md) | 致命 / 高 / 中 / 低;先看影响,再看特性 | +| 查看本仓库的 Bug 主题入口 | [bug](bug/_index.md) | 只路由到分级规则 | diff --git a/knowledge/repos/vllm-router/bug/_index.md b/knowledge/repos/vllm-router/bug/_index.md new file mode 100644 index 000000000..b2920a9f7 --- /dev/null +++ b/knowledge/repos/vllm-router/bug/_index.md @@ -0,0 +1,26 @@ +--- +title: "vLLM Router issue 分级" +created: 2026-11-10 +updated: 2026-11-10 +type: index +tags: [vllm-router, bug] +sources: [] +--- + +# vLLM Router issue 分级 + +## 什么时候查这里 + +- 为 `vllm-project/router` 的 issue 判断致命、高、中、低并打标。 + +## 不放什么 + +- 跨仓库的 DI / SLO 计算在 [general/bug](../../../general/bug/_index.md)。 +- 其他仓库的缺陷分级。 +- 单次 issue 的根因、时间线和评测记录。仓库入口见 [vllm-router](../_index.md)。 + +## 目录内容 + +| 遇到什么 | 查看哪里 | 说明 | +|---|---|---| +| 按影响和特性给 issue 定级 | [分级规则](rules.md) | 分诊与打标的完整标准 | diff --git a/knowledge/repos/vllm-router/bug/rules.md b/knowledge/repos/vllm-router/bug/rules.md new file mode 100644 index 000000000..f80c54693 --- /dev/null +++ b/knowledge/repos/vllm-router/bug/rules.md @@ -0,0 +1,80 @@ +--- +title: "vLLM Router issue 分级规则" +created: 2026-11-10 +updated: 2026-11-10 +type: rule +tags: [vllm-router, bug] +sources: [] +--- + +# vllm-project/router issue 分级规则 + +适用范围:`vllm-project/router` 的 issue 分诊与打标。可直接当作标签规则使用。 + +只有 `ROUTER-PRI-数字` 是可审计规则 ID。特性例子和 issue 链接不单独编号。 + +相关入口:[bug 主题](_index.md)、[仓库入口](../_index.md)。 + +## ROUTER-PRI-0 — 先看影响,再看特性 + +- 触发:为 `vllm-project/router` 的 issue 定级或打标。 +- 必须:先看影响,再看特性。致命和高按影响判定;中和低按特性给默认档。主路径不可用或大面积 CI 失败时,特性再低也要升档。 +- 禁止:主路径不可用或大面积 CI 失败时,按特性默认档留下。 +- 验收:定级说明先给出影响判断;只有影响未达到致命或高时,才使用特性默认档。 + +## ROUTER-PRI-1 — 致命 + +- 触发:为 `vllm-project/router` 的 issue 定级,并判断调度是否直接不可用,或一次失败是否打掉大量 CI 用例。 +- 必须:出现「直接无法调度」时标致命。 +- 必须:出现「一次导致大量 CI 用例失败(不是单个 flaky job)」时标致命。 +- 禁止:把单个 flaky job 标成致命。 +- 验收:命中上列任一条必须项时,优先级为致命。 + +## ROUTER-PRI-2 — 高 + +- 触发:为 `vllm-project/router` 的 issue 定级,且未达到致命,或单子带有 `ci-failure`。 +- 必须:`ci-failure` 默认归这一档。 +- 必须:主路径还能跑,但结果会错:错路由、取消/泄漏、主干回归、安全或数据错误。 +- 必须:已标为 `ci-failure` 的单子,只有确认是「大面积用例失败」或「调度直接不可用」时,才升到致命。 +- 禁止:未确认「大面积用例失败」或「调度直接不可用」时,把 `ci-failure` 升到致命。 +- 禁止:把主路径结果错误、安全或数据错误、主干回归降到中或低。 +- 验收:未确认「大面积用例失败」或「调度直接不可用」时,`ci-failure` 与主路径结果错误的优先级为高。确认是这两类情况后,优先级为致命。 + +## ROUTER-PRI-3 — 中(默认特性) + +- 触发:影响没有达到致命或高,需要按特性给默认档。 +- 必须:下列特性默认标为中。 +- 禁止:把 P/D 与 Program 调度算进「其他调度」。 +- 验收:未因影响升档时,命中下列特性的 issue 优先级为中。 + +- KV-aware / prefix / affinity 调度,包括 `kv_aware_affinity`、`cache_aware`、prefix reuse。 +- P/D 与 Program 调度(这是另一条主线,不要算进「其他调度」)。 +- Worker 发现与注册(对不上则亲和策略不会生效,例如 https://github.com/vllm-project/router/issues/468 、https://github.com/vllm-project/router/issues/299)。 +- 取消、泄漏、drain、健康检查误清计数(会让 KV 亲和被绕开,例如 https://github.com/vllm-project/router/issues/464 、https://github.com/vllm-project/router/issues/453)。 +- 主路径协议和鉴权转发:OpenAI/gRPC 字段丢失、auth header、tool-calling 直接 503。 +- 有临时规避、或只打特定后端/配置的上述缺陷,以及这些方向里已达成共识、缺实现的 enhancement。 + +## ROUTER-PRI-4 — 低(默认特性) + +- 触发:影响没有达到致命或高,且特性属于下列低档列表。 +- 必须:下列特性默认标为低。 +- 禁止:把 CI failure 本身算进「CI 加速」而标低。 +- 验收:未因影响升档时,命中下列特性的 issue 优先级为低。 + +- 其他调度策略:least-load、round-robin、`power_of_two`、`consistent_hash`、topology、QoS/token-cost、heterogeneous stage-graph。 +- 可选生态集成:Mooncake、DeepInfer、Consul、LMCache、Anthropic `/v1/messages`。 +- 容量仿真、多租户配额、离线 search、长期 HA。 +- 可观测性增强、文档和配置体验、CI 加速(不是 failure 本身)、多模态远期架构。 +- 还在讨论、尚未排期或没人认领的 RFC / Feature。 + +## ROUTER-PRI-5 — 判定顺序 + +- 触发:同一条 issue 同时沾到影响条件和特性默认档。 +- 必须:按下列顺序判定。特性只决定中、低的默认值;满足第 1 步或第 2 步时必须升档。 +- 禁止:满足第 1 步或第 2 步时,因为特性默认档是中或低而不升档。 +- 验收:`power_of_two` 若导致完全无法调度,优先级为致命,而不是低。 + +1. 是否直接无法调度,或一次挂掉大量 CI 用例 → 致命。 +2. 是否为 `ci-failure`,或主路径结果错误、安全/数据错误、主干回归 → 高。 +3. 其余按上面的特性默认到中或低。 +4. 特性只决定中、低的默认值;满足 1 或 2 时必须升档,例如 `power_of_two` 若导致完全无法调度,仍标致命,不会因为属于「其他调度」而标低。 diff --git a/test/test_adapters.py b/test/test_adapters.py index 03675cb1d..8283a0ef0 100644 --- a/test/test_adapters.py +++ b/test/test_adapters.py @@ -124,3 +124,27 @@ def test_shipped_afd_adapter_parses_and_resolves_alias(monkeypatch, tmp_path): assert reg.resolve(name="afd-plugin").name == "afd_plugin" assert reg.resolve(name="vllm-project/afd-plugin").name == "afd_plugin" assert reg.resolve(repo_path=str(tmp_path)).name == "afd_plugin" + + +def test_shipped_vllm_router_adapter_injects_priority_rules(): + from infermatrix_copilot.config import _REPO_ROOT + + p = load_adapter(_REPO_ROOT / "adapters" / "vllm_router") + assert p.name == "vllm_router" + assert p.manifest["repo"]["full_name"] == "vllm-project/router" + assert p.manifest["knowledge"]["repo_subdir"] == "repos/vllm-router" + assert p.manifest["push"]["allowed"] is False + assert p.matches_name("vllm-router") + assert p.matches_name("vllm-project/router") + assert p.repo_path == "" + + briefing = p.briefing(_REPO_ROOT / "knowledge") + assert "直接无法调度" in briefing + assert "https://github.com/vllm-project/router/issues/468" in briefing + assert "https://github.com/vllm-project/router/issues/453" in briefing + assert "power_of_two" in briefing + assert "仍标致命" in briefing + + reg = AdapterRegistry(_REPO_ROOT / "adapters") + assert reg.resolve(name="vllm_router").name == "vllm_router" + assert reg.resolve(name="vllm-project/router").name == "vllm_router" From 5ebd9bf69d6014a78fce961fb49dfe4c8ce4259b Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 10 Nov 2026 09:20:42 +0000 Subject: [PATCH 2/2] fix: write router priority rules as plain Chinese headings Drop ROUTER-PRI IDs and the trigger/must/forbid/accept template so the page matches the agreed short grading guide. Co-authored-by: wangyu --- knowledge/repos/vllm-router/bug/rules.md | 53 ++++++------------------ 1 file changed, 12 insertions(+), 41 deletions(-) diff --git a/knowledge/repos/vllm-router/bug/rules.md b/knowledge/repos/vllm-router/bug/rules.md index f80c54693..9ae92c6ff 100644 --- a/knowledge/repos/vllm-router/bug/rules.md +++ b/knowledge/repos/vllm-router/bug/rules.md @@ -11,41 +11,22 @@ sources: [] 适用范围:`vllm-project/router` 的 issue 分诊与打标。可直接当作标签规则使用。 -只有 `ROUTER-PRI-数字` 是可审计规则 ID。特性例子和 issue 链接不单独编号。 +## 总原则 -相关入口:[bug 主题](_index.md)、[仓库入口](../_index.md)。 +先看影响,再看特性。致命和高按影响判定;中和低按特性给默认档。主路径不可用或大面积 CI 失败时,特性再低也要升档。 -## ROUTER-PRI-0 — 先看影响,再看特性 +## 致命 -- 触发:为 `vllm-project/router` 的 issue 定级或打标。 -- 必须:先看影响,再看特性。致命和高按影响判定;中和低按特性给默认档。主路径不可用或大面积 CI 失败时,特性再低也要升档。 -- 禁止:主路径不可用或大面积 CI 失败时,按特性默认档留下。 -- 验收:定级说明先给出影响判断;只有影响未达到致命或高时,才使用特性默认档。 +- 直接无法调度。 +- 一次导致大量 CI 用例失败(不是单个 flaky job)。 -## ROUTER-PRI-1 — 致命 +## 高 -- 触发:为 `vllm-project/router` 的 issue 定级,并判断调度是否直接不可用,或一次失败是否打掉大量 CI 用例。 -- 必须:出现「直接无法调度」时标致命。 -- 必须:出现「一次导致大量 CI 用例失败(不是单个 flaky job)」时标致命。 -- 禁止:把单个 flaky job 标成致命。 -- 验收:命中上列任一条必须项时,优先级为致命。 +- `ci-failure` 默认归这一档。 +- 主路径还能跑,但结果会错:错路由、取消/泄漏、主干回归、安全或数据错误。 +- 已标为 `ci-failure` 的单子,只有确认是「大面积用例失败」或「调度直接不可用」时,才升到致命。 -## ROUTER-PRI-2 — 高 - -- 触发:为 `vllm-project/router` 的 issue 定级,且未达到致命,或单子带有 `ci-failure`。 -- 必须:`ci-failure` 默认归这一档。 -- 必须:主路径还能跑,但结果会错:错路由、取消/泄漏、主干回归、安全或数据错误。 -- 必须:已标为 `ci-failure` 的单子,只有确认是「大面积用例失败」或「调度直接不可用」时,才升到致命。 -- 禁止:未确认「大面积用例失败」或「调度直接不可用」时,把 `ci-failure` 升到致命。 -- 禁止:把主路径结果错误、安全或数据错误、主干回归降到中或低。 -- 验收:未确认「大面积用例失败」或「调度直接不可用」时,`ci-failure` 与主路径结果错误的优先级为高。确认是这两类情况后,优先级为致命。 - -## ROUTER-PRI-3 — 中(默认特性) - -- 触发:影响没有达到致命或高,需要按特性给默认档。 -- 必须:下列特性默认标为中。 -- 禁止:把 P/D 与 Program 调度算进「其他调度」。 -- 验收:未因影响升档时,命中下列特性的 issue 优先级为中。 +## 中(默认特性) - KV-aware / prefix / affinity 调度,包括 `kv_aware_affinity`、`cache_aware`、prefix reuse。 - P/D 与 Program 调度(这是另一条主线,不要算进「其他调度」)。 @@ -54,12 +35,7 @@ sources: [] - 主路径协议和鉴权转发:OpenAI/gRPC 字段丢失、auth header、tool-calling 直接 503。 - 有临时规避、或只打特定后端/配置的上述缺陷,以及这些方向里已达成共识、缺实现的 enhancement。 -## ROUTER-PRI-4 — 低(默认特性) - -- 触发:影响没有达到致命或高,且特性属于下列低档列表。 -- 必须:下列特性默认标为低。 -- 禁止:把 CI failure 本身算进「CI 加速」而标低。 -- 验收:未因影响升档时,命中下列特性的 issue 优先级为低。 +## 低(默认特性) - 其他调度策略:least-load、round-robin、`power_of_two`、`consistent_hash`、topology、QoS/token-cost、heterogeneous stage-graph。 - 可选生态集成:Mooncake、DeepInfer、Consul、LMCache、Anthropic `/v1/messages`。 @@ -67,12 +43,7 @@ sources: [] - 可观测性增强、文档和配置体验、CI 加速(不是 failure 本身)、多模态远期架构。 - 还在讨论、尚未排期或没人认领的 RFC / Feature。 -## ROUTER-PRI-5 — 判定顺序 - -- 触发:同一条 issue 同时沾到影响条件和特性默认档。 -- 必须:按下列顺序判定。特性只决定中、低的默认值;满足第 1 步或第 2 步时必须升档。 -- 禁止:满足第 1 步或第 2 步时,因为特性默认档是中或低而不升档。 -- 验收:`power_of_two` 若导致完全无法调度,优先级为致命,而不是低。 +## 判定顺序 1. 是否直接无法调度,或一次挂掉大量 CI 用例 → 致命。 2. 是否为 `ci-failure`,或主路径结果错误、安全/数据错误、主干回归 → 高。