mcp-multi-bridge 2.3.0 → 2.3.1
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 +14 -1
- package/bin.js +1 -1
- package/lib/toolindex.js +8 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -130,7 +130,20 @@ call_tool 调用任意工具
|
|
|
130
130
|
```
|
|
131
131
|
|
|
132
132
|
`search_tools` 的返回只给「名称 + 一句话 + 前几个参数名」,不给完整 schema——
|
|
133
|
-
一个完整 schema 就几百 token,一次返回
|
|
133
|
+
一个完整 schema 就几百 token,一次返回 10 个就等于回到全量暴露。需要细节时走 `describe_tool`。
|
|
134
|
+
|
|
135
|
+
**命中多个时不自动挑一个。** bridge 不知道上下文:用户说「物料」可能是查也可能是建,
|
|
136
|
+
猜错会调错工具、产生副作用(误删数据是最坏情况)。所以按分数排好后交给模型选。
|
|
137
|
+
|
|
138
|
+
返回条数默认 5,可传 `limit`,**上限 10**。上限卡在 10 是因为:
|
|
139
|
+
一次返回太多,模型的选择准确率会下降,而且每条结果都占上下文。
|
|
140
|
+
需要看更多时应该收窄查询词,而不是调大 limit。
|
|
141
|
+
|
|
142
|
+
排序依据三层:
|
|
143
|
+
|
|
144
|
+
1. 文本相关度 —— 名称命中 > 参数名命中 > 描述命中
|
|
145
|
+
2. 意图加权 —— 「料号」偏向读操作,「创建料号」偏向写操作
|
|
146
|
+
3. 名称字典序 —— 完全平票时的兜底,保证同样查询返回同样顺序
|
|
134
147
|
|
|
135
148
|
实测 1200 个工具(6 套系统 × 200):
|
|
136
149
|
|
package/bin.js
CHANGED
|
@@ -628,7 +628,7 @@ function metaTools(items, bySystem, tenantLabel) {
|
|
|
628
628
|
properties: {
|
|
629
629
|
query: { type: 'string', description: '检索词。中英文都可以,描述你要做的事或涉及的业务对象' },
|
|
630
630
|
system: { type: 'string', description: '可选,只在某套系统内搜索。留空则搜全部' },
|
|
631
|
-
limit: { type: 'number', description: '返回条数,默认 5,最多
|
|
631
|
+
limit: { type: 'number', description: '返回条数,默认 5,最多 10' }
|
|
632
632
|
},
|
|
633
633
|
required: ['query']
|
|
634
634
|
}
|
package/lib/toolindex.js
CHANGED
|
@@ -340,13 +340,20 @@ function actionBonus(query, name) {
|
|
|
340
340
|
* 匹配依据只认三处:工具名、描述、参数名。缺中文就去补描述,
|
|
341
341
|
* 不在桥接层维护一张注定对不齐的词表。
|
|
342
342
|
*
|
|
343
|
+
* 命中多个时按分数排序取前 N 个,不自动挑一个——bridge 不知道上下文,
|
|
344
|
+
* 用户说「物料」可能是查也可能是建,猜错会调错工具、产生副作用。
|
|
345
|
+
* 选择权留给模型。
|
|
346
|
+
*
|
|
347
|
+
* 上限 10:一次返回太多,模型的选择准确率会下降,
|
|
348
|
+
* 而且每条结果都占上下文。需要更多时应该收窄查询词。
|
|
349
|
+
*
|
|
343
350
|
* @param {Map} items buildIndex 返回的 items
|
|
344
351
|
* @param {string} query 检索词
|
|
345
352
|
* @param {{system?:string, limit?:number}} opts
|
|
346
353
|
*/
|
|
347
354
|
export function searchTools(items, query, opts = {}) {
|
|
348
355
|
const q = String(query || '').trim();
|
|
349
|
-
const limit = Math.max(1, Math.min(
|
|
356
|
+
const limit = Math.max(1, Math.min(10, opts.limit || 5));
|
|
350
357
|
if (!q) return [];
|
|
351
358
|
|
|
352
359
|
const qTokens = tokenize(q);
|