Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions adapters/vllm_router/manifest.yaml
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion doc/knowledge/SCHEMA.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`、
Expand Down
5 changes: 3 additions & 2 deletions knowledge/repos/_index.md
Original file line number Diff line number Diff line change
@@ -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: []
---

Expand All @@ -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) |
34 changes: 34 additions & 0 deletions knowledge/repos/vllm-router/_index.md
Original file line number Diff line number Diff line change
@@ -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) | 只路由到分级规则 |
26 changes: 26 additions & 0 deletions knowledge/repos/vllm-router/bug/_index.md
Original file line number Diff line number Diff line change
@@ -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) | 分诊与打标的完整标准 |
51 changes: 51 additions & 0 deletions knowledge/repos/vllm-router/bug/rules.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
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 分诊与打标。可直接当作标签规则使用。

## 总原则

先看影响,再看特性。致命和高按影响判定;中和低按特性给默认档。主路径不可用或大面积 CI 失败时,特性再低也要升档。

## 致命

- 直接无法调度。
- 一次导致大量 CI 用例失败(不是单个 flaky job)。

## 高

- `ci-failure` 默认归这一档。
- 主路径还能跑,但结果会错:错路由、取消/泄漏、主干回归、安全或数据错误。
- 已标为 `ci-failure` 的单子,只有确认是「大面积用例失败」或「调度直接不可用」时,才升到致命。

## 中(默认特性)

- 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。

## 低(默认特性)

- 其他调度策略: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。

## 判定顺序

1. 是否直接无法调度,或一次挂掉大量 CI 用例 → 致命。
2. 是否为 `ci-failure`,或主路径结果错误、安全/数据错误、主干回归 → 高。
3. 其余按上面的特性默认到中或低。
4. 特性只决定中、低的默认值;满足 1 或 2 时必须升档,例如 `power_of_two` 若导致完全无法调度,仍标致命,不会因为属于「其他调度」而标低。
24 changes: 24 additions & 0 deletions test/test_adapters.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Loading