@peterwangze/claude-trigger-router 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -49
- package/config/trigger.advanced.yaml +16 -20
- package/dist/cli.js +1371 -320
- package/dist/cli.js.map +3 -3
- package/package.json +74 -66
package/README.md
CHANGED
|
@@ -33,7 +33,8 @@ ctr setup
|
|
|
33
33
|
|
|
34
34
|
- 检查当前 `~/.claude-trigger-router` 配置是否可以直接复用
|
|
35
35
|
- 检查旧的 `claude-code-router` 配置是否可以迁移
|
|
36
|
-
-
|
|
36
|
+
- 如果都不适用,就按“默认模型 ID -> 接入方式 -> API 信息”的顺序引导你创建最小可用配置
|
|
37
|
+
- 完成最小配置后,可选继续添加一个复杂任务模型,并直接生成 SmartRouter 路由模板
|
|
37
38
|
- 保存配置后启动本地服务
|
|
38
39
|
|
|
39
40
|
这是当前最推荐、也是覆盖最完整的用户入口。
|
|
@@ -80,11 +81,20 @@ Router:
|
|
|
80
81
|
|
|
81
82
|
消息格式转换由路由层统一处理,不需要你自己按不同厂商手写消息体。
|
|
82
83
|
|
|
83
|
-
|
|
84
|
+
如果你在 `ctr setup` 中选择继续添加“复杂任务专用模型”,setup 还可以直接帮你补一层 SmartRouter 模板:
|
|
84
85
|
|
|
85
|
-
|
|
86
|
+
- 规则模板:把架构设计、代码审查、深入分析等高确定性任务切到复杂任务模型
|
|
87
|
+
- 规则 + 智能兜底:在规则之外,再让 `router_model` 在默认模型和复杂任务模型之间自动选择
|
|
86
88
|
|
|
87
|
-
|
|
89
|
+
这样首次接入时就能同时得到:
|
|
90
|
+
|
|
91
|
+
- 一个默认模型
|
|
92
|
+
- 一个复杂任务模型
|
|
93
|
+
- 一套可直接修改的 SmartRouter 起步模板
|
|
94
|
+
|
|
95
|
+
## Router:显式规则优先
|
|
96
|
+
|
|
97
|
+
统一 `Router` 的第一层能力,是先用显式规则处理“高确定性任务”:
|
|
88
98
|
|
|
89
99
|
- 架构设计
|
|
90
100
|
- 代码审查
|
|
@@ -93,6 +103,11 @@ Router:
|
|
|
93
103
|
|
|
94
104
|
这类任务通常可以通过关键词或规则稳定识别,然后直接路由到你指定的模型。
|
|
95
105
|
|
|
106
|
+
当前这层能力由 `SmartRouter.rules` 承载:
|
|
107
|
+
|
|
108
|
+
- 默认请求先走 `Router.default`
|
|
109
|
+
- 命中显式规则的请求,优先切到规则指定模型
|
|
110
|
+
|
|
96
111
|
示例:
|
|
97
112
|
|
|
98
113
|
```yaml
|
|
@@ -112,7 +127,7 @@ Models:
|
|
|
112
127
|
Router:
|
|
113
128
|
default: "sonnet"
|
|
114
129
|
|
|
115
|
-
|
|
130
|
+
SmartRouter:
|
|
116
131
|
enabled: true
|
|
117
132
|
analysis_scope: "last_message"
|
|
118
133
|
rules:
|
|
@@ -125,14 +140,9 @@ TriggerRouter:
|
|
|
125
140
|
model: "opus"
|
|
126
141
|
```
|
|
127
142
|
|
|
128
|
-
|
|
143
|
+
## Router:候选模型智能兜底
|
|
129
144
|
|
|
130
|
-
|
|
131
|
-
- 命中 TriggerRouter 规则的请求,优先切到规则指定模型
|
|
132
|
-
|
|
133
|
-
## SmartRouter:候选模型自动选择
|
|
134
|
-
|
|
135
|
-
`SmartRouter` 是当前产品的另一个核心功能。
|
|
145
|
+
统一 `Router` 的第二层能力,是在显式规则未命中时,用候选模型做智能兜底。
|
|
136
146
|
|
|
137
147
|
它适合“规则难以穷举,但模型选择仍然很重要”的任务:
|
|
138
148
|
|
|
@@ -140,7 +150,10 @@ TriggerRouter:
|
|
|
140
150
|
- 日常修复 vs 架构设计
|
|
141
151
|
- 常规回答 vs 长上下文分析
|
|
142
152
|
|
|
143
|
-
|
|
153
|
+
你提供一个路由模型和一组候选模型,路由器会在规则未命中时,从候选模型里自动挑一个更合适的目标。
|
|
154
|
+
|
|
155
|
+
- 规则负责稳定命中
|
|
156
|
+
- 智能兜底负责补上规则没覆盖到的模糊任务
|
|
144
157
|
|
|
145
158
|
示例:
|
|
146
159
|
|
|
@@ -175,13 +188,14 @@ SmartRouter:
|
|
|
175
188
|
|
|
176
189
|
可以简单理解成:
|
|
177
190
|
|
|
178
|
-
-
|
|
179
|
-
-
|
|
191
|
+
- `Router.default` 负责默认去向
|
|
192
|
+
- 显式规则负责“能明确命中的任务”
|
|
193
|
+
- 智能兜底负责“规则没命中时的动态选模”
|
|
180
194
|
|
|
181
|
-
|
|
195
|
+
这两层能力可以同时启用:
|
|
182
196
|
|
|
183
|
-
-
|
|
184
|
-
-
|
|
197
|
+
- 先让显式规则处理高确定性任务
|
|
198
|
+
- 再让智能兜底处理剩余的模糊任务
|
|
185
199
|
|
|
186
200
|
## `interface` 怎么选
|
|
187
201
|
|
|
@@ -243,9 +257,11 @@ ctr doctor
|
|
|
243
257
|
- 诊断当前配置文件是否存在格式问题
|
|
244
258
|
- 自动修复低风险、可确定补全的结构问题
|
|
245
259
|
- 确认修复后的配置是否还能通过本地校验并让服务启动
|
|
260
|
+
- 用可理解的说明展示当前模型的兼容策略与请求编译方式
|
|
261
|
+
- 预览 capability 配置可能触发的运行时降级,例如 thinking 忽略、工具降级为文本、图片降级为文本
|
|
246
262
|
- 在征得你同意后,对配置中的模型发送最小探测请求,确认模型是否真实可用
|
|
247
263
|
|
|
248
|
-
其中模型探测会消耗少量额度,所以 doctor
|
|
264
|
+
其中模型探测会消耗少量额度,所以 doctor 会先征求你的确认。探测失败时,doctor 会优先给出面向用户的失败说明和处理建议,再保留原始远端报错供继续排查。
|
|
249
265
|
|
|
250
266
|
## 推荐使用顺序
|
|
251
267
|
|
|
@@ -328,33 +344,3 @@ http://127.0.0.1:5678/ui
|
|
|
328
344
|
- `docs/configuration-guide.md`
|
|
329
345
|
- `docs/models-migration-guide.md`
|
|
330
346
|
- `docs/releasing.md`
|
|
331
|
-
|
|
332
|
-
## 发布前验证
|
|
333
|
-
|
|
334
|
-
如果你是维护者,发布前建议执行:
|
|
335
|
-
|
|
336
|
-
```bash
|
|
337
|
-
npm run release:verify
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
这一步现在会包含:
|
|
341
|
-
|
|
342
|
-
- 常规测试
|
|
343
|
-
- tarball 安装校验
|
|
344
|
-
- 安装后 CLI 冒烟校验
|
|
345
|
-
|
|
346
|
-
这样可以尽量避免“发出去再发现 CLI 不可用”。
|
|
347
|
-
|
|
348
|
-
如果你想把“当前仓库里尚未发布的最新版本”直接安装到真实全局环境,可执行:
|
|
349
|
-
|
|
350
|
-
```bash
|
|
351
|
-
npm run install:local-release
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
它会自动执行:
|
|
355
|
-
|
|
356
|
-
- `npm run build`
|
|
357
|
-
- `npm pack`
|
|
358
|
-
- `npm install -g <本地 tarball>`
|
|
359
|
-
|
|
360
|
-
这样安装的是“待发布包的真实内容”,比直接 `npm install -g .` 更适合发包前手动验收。
|
|
@@ -55,11 +55,10 @@ Router:
|
|
|
55
55
|
longContextThreshold: 60000
|
|
56
56
|
webSearch: "sonnet"
|
|
57
57
|
|
|
58
|
-
# 3)
|
|
59
|
-
|
|
58
|
+
# 3) SmartRouter:统一路由入口。先走高确定性规则,再用候选模型智能兜底
|
|
59
|
+
SmartRouter:
|
|
60
60
|
enabled: true
|
|
61
61
|
analysis_scope: "last_message"
|
|
62
|
-
llm_intent_recognition: false
|
|
63
62
|
rules:
|
|
64
63
|
- name: "architecture"
|
|
65
64
|
priority: 90
|
|
@@ -121,9 +120,6 @@ TriggerRouter:
|
|
|
121
120
|
- "simple"
|
|
122
121
|
model: "ollama_qwen"
|
|
123
122
|
|
|
124
|
-
# 4) SmartRouter:规则没命中时,从候选模型中自动挑选
|
|
125
|
-
SmartRouter:
|
|
126
|
-
enabled: true
|
|
127
123
|
router_model: "sonnet"
|
|
128
124
|
candidates:
|
|
129
125
|
- model: "sonnet"
|
|
@@ -139,10 +135,6 @@ SmartRouter:
|
|
|
139
135
|
max_tokens: 256
|
|
140
136
|
fallback: "default"
|
|
141
137
|
|
|
142
|
-
# 5) Governance:治理模块也直接引用 model id
|
|
143
|
-
Governance:
|
|
144
|
-
enabled: true
|
|
145
|
-
|
|
146
138
|
sticky:
|
|
147
139
|
enabled: true
|
|
148
140
|
session_ttl_ms: 3600000
|
|
@@ -153,6 +145,19 @@ Governance:
|
|
|
153
145
|
summarizer_model: "sonnet"
|
|
154
146
|
max_summary_tokens: 256
|
|
155
147
|
|
|
148
|
+
semantic:
|
|
149
|
+
enabled: true
|
|
150
|
+
mode: "embedding"
|
|
151
|
+
threshold: 0.2
|
|
152
|
+
prototypes:
|
|
153
|
+
architecture: "重构 系统 结构 模块 拆分 架构 设计"
|
|
154
|
+
code_review: "代码 审查 风险 评审 review"
|
|
155
|
+
complex_reasoning: "复杂 推理 分析 严谨 逻辑 reasoning"
|
|
156
|
+
|
|
157
|
+
# 4) Governance:保留响应治理、级联与观测能力;semantic / sticky 已归入 SmartRouter
|
|
158
|
+
Governance:
|
|
159
|
+
enabled: true
|
|
160
|
+
|
|
156
161
|
cascade:
|
|
157
162
|
enabled: true
|
|
158
163
|
max_attempts: 2
|
|
@@ -168,15 +173,6 @@ Governance:
|
|
|
168
173
|
to: "opus"
|
|
169
174
|
reasoning: "high"
|
|
170
175
|
|
|
171
|
-
semantic:
|
|
172
|
-
enabled: true
|
|
173
|
-
mode: "embedding"
|
|
174
|
-
threshold: 0.2
|
|
175
|
-
prototypes:
|
|
176
|
-
architecture: "重构 系统 结构 模块 拆分 架构 设计"
|
|
177
|
-
code_review: "代码 审查 风险 评审 review"
|
|
178
|
-
complex_reasoning: "复杂 推理 分析 严谨 逻辑 reasoning"
|
|
179
|
-
|
|
180
176
|
shadow:
|
|
181
177
|
enabled: true
|
|
182
178
|
mode: "async_audit"
|
|
@@ -199,7 +195,7 @@ Governance:
|
|
|
199
195
|
spike_warn_rate: 0.5
|
|
200
196
|
spike_delta_rate: 0.3
|
|
201
197
|
|
|
202
|
-
#
|
|
198
|
+
# 5) Legacy 兼容:旧 `Providers` 仅作为兼容层保留,不建议新配置继续扩展
|
|
203
199
|
# Providers:
|
|
204
200
|
# - name: openrouter
|
|
205
201
|
# api_base_url: "https://openrouter.ai/api/v1/chat/completions"
|