Skip to content

Commit dbf83c3

Browse files
committed
refactor(tool-bailian-kb): 合并 bundle 功能到插件包并简化结构
- 移除独立的 bundle 包及其配置文件和说明文档 - 将原 bundle 的 patch 配置迁移到插件包内的 cordis.patch.yml - 在插件包 package.json 中声明 dsh.bundle.patch 指向新 patch 文件 - 更新 README,说明插件包即是 bundle,简化安装和本地联调流程 - 调整文档中插件名及卸载命令,统一使用 dsh-tool-bailian-kb - 修正仓库结构描述,将包称为目录,更准确反映当前结构 - 改进配置解析链和 Web UI 配置页的说明,突出用户层设置及覆盖机制
1 parent cda1e32 commit dbf83c3

7 files changed

Lines changed: 58 additions & 94 deletions

File tree

‎README.md‎

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,14 @@
66

77
## 仓库结构
88

9-
| 包 | 职责 |
9+
| 目录 | 职责 |
1010
|---|---|
11-
| [`packages/tool-bailian-kb`](packages/tool-bailian-kb/README.md) | 插件本体:Config、KbClient、三个工具、随包打包的管理 skill |
12-
| [`packages/bundle`](packages/bundle/README.md) | 分发面:`dsh.bundle` 声明 + `cordis.patch.yml` |
11+
| [`packages/tool-bailian-kb`](packages/tool-bailian-kb/README.md) | 插件包(同时是 dsh bundle):Config、KbClient、工具、skill、cordis.patch.yml、浏览器端配置页 |
1312

1413
## 安装(dsh 用户)
1514

1615
```sh
17-
dsh plugin --profile web add bailian-kb-dsh # npm 发布后;本地开发用绝对/相对路径
16+
dsh plugin --profile web add dsh-tool-bailian-kb # npm 发布后;本地开发用绝对/相对路径
1817
```
1918

2019
安装后 CLI 自动把 bundle 加入 profile 的层栈,无需手改 YAML。
@@ -28,7 +27,7 @@ DASHSCOPE_API_KEY=sk-xxx # 必填:也可放 ~/.dsh/.credentials.yaml
2827

2928
验证:`dsh --profile web --dump-config` 应能看到 `tool-bailian-kb` row。缺 `BAILIAN_WORKSPACE_ID` 时加载期直接报错(fail loud),不会静默跳过。
3029

31-
卸载:`dsh plugin --profile web remove bailian-kb-dsh`。
30+
卸载:`dsh plugin --profile web remove dsh-tool-bailian-kb`。
3231

3332
## 开发
3433

@@ -41,11 +40,10 @@ pnpm run typecheck
4140
pnpm run build # tsc 产出 lib/
4241
```
4342

44-
本地联调:`link:` 安装不会把被链接包的依赖装进 profile,需要把 bundle 和插件包**都** add 进去(插件包会报 "declares no dsh.bundle — installed as a plain dependency" 警告,符合预期);npm 正式安装无此问题:
43+
本地联调:只需 add 一次(包同时声明 `dsh.bundle` 和插件代码):
4544

4645
```sh
47-
dsh plugin --profile dev add <本仓库>/packages/bundle
48-
dsh plugin --profile dev add <本仓库>/packages/tool-bailian-kb # 仅 link 联调需要
46+
dsh plugin --profile dev add <本仓库>/packages/tool-bailian-kb
4947
```
5048

5149
patch 文件受 HMR 监听。

‎packages/bundle/README.md‎

Lines changed: 0 additions & 65 deletions
This file was deleted.

‎packages/bundle/package.json‎

Lines changed: 0 additions & 13 deletions
This file was deleted.

‎packages/tool-bailian-kb/README.md‎

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,55 @@
11
# dsh-tool-bailian-kb
22

3-
百炼知识库的 dsh 插件本体:在 `ctx.tools` 注册两个检索模型工具(kb_search、kb_chat),并在 skills 服务可用时注册管理面 skill。服务发现通过 kscli CLI 完成。
3+
百炼知识库的 dsh 插件包(同时是 dsh bundle):在 `ctx.tools` 注册两个检索模型工具(kb_search、kb_chat),并在 skills 服务可用时注册管理面 skill。服务发现通过 kscli CLI 完成。
4+
5+
## Bundle 声明
6+
7+
`package.json` 的 `dsh.bundle.patch` 指向 [`cordis.patch.yml`](cordis.patch.yml),向 profile 插入插件行:
8+
9+
```yaml
10+
- insert:
11+
- id: tool-bailian-kb
12+
name: dsh-tool-bailian-kb
13+
config:
14+
workspaceId: !!js process.env.BAILIAN_WORKSPACE_ID
15+
```
16+
17+
`workspaceId` 只是解析链的一层,不是唯一来源:Config 同时注册为 `bailian-kb` settings namespace,patch entry 作 base 层,设置页/设置文档的用户层叠在其上;都未设置时 per-call 回退到 `BAILIAN_WORKSPACE_ID` credential。同样回退覆盖 `defaultRetrieveAgentId`(`BAILIAN_DEFAULT_RETRIEVE_AGENT_ID`)、`defaultChatAgentId`(`BAILIAN_DEFAULT_CHAT_AGENT_ID`)与 API key(`DASHSCOPE_API_KEY`,无 settings 面)。
18+
19+
### 四个值的解析链
20+
21+
| 值 | 1️⃣ settings 用户层(设置页可编辑、回显) | 2️⃣ entry config(本 patch 或用户覆盖,作 base 层) | 3️⃣ credential(`~/.dsh/.credentials.yaml` / env) | 4️⃣ 都缺失时 |
22+
|---|---|---|---|---|
23+
| `DASHSCOPE_API_KEY` | —(无 settings 面) | —(无 config 面) | ✅ | 工具调用报错并引导配置 |
24+
| `BAILIAN_WORKSPACE_ID` | ✅ `workspaceId` | ✅ `workspaceId` | ✅ | 工具调用报错并引导配置 |
25+
| `BAILIAN_DEFAULT_RETRIEVE_AGENT_ID` | ✅ `defaultRetrieveAgentId` | ✅ `defaultRetrieveAgentId` | ✅ | `kb_search` 的 `agent_id` 参数变必填 |
26+
| `BAILIAN_DEFAULT_CHAT_AGENT_ID` | ✅ `defaultChatAgentId` | ✅ `defaultChatAgentId` | ✅ | `kb_chat` 的 `agent_id` 参数变必填 |
27+
28+
行为参数(`endpointHost`/`agentVersion`/`chatTimeoutMs`)在 config/settings 层(设置文档可改,实时生效)。
29+
30+
### Web UI 配置页
31+
32+
装进 profile 后,Settings 左侧导航出现“百炼知识库”页(`settings.section` 槽位):
33+
34+
- **DashScope API Key** — write-only,`type=password` 遮罩输入草稿,仅显示 configured/来自环境变量 徽标;写 `~/.dsh/.credentials.yaml`
35+
- **Bailian Workspace ID / 默认检索服务 ID / 默认对话服务 ID** — 回显:读写 `bailian-kb` settings 用户层,预填当前解析值;清空保存 = 移除用户层,回退 entry config → credential
36+
37+
降级:远程浏览器(非 loopback,settings RPC 不可达)或未组合 settings 服务时,ID 字段退回旧的 write-only credential 控件,页面顶部显示提示。
38+
39+
### 用户覆盖
40+
41+
用户 patch 层在本 bundle 之上,按 id 覆盖时**替换整个 config(无 deep-merge)**:
42+
43+
```yaml
44+
# ~/.dsh/cordis.patch.yml 或 profile 的 cordis.patch.yml
45+
- id: tool-bailian-kb
46+
config:
47+
defaultRetrieveAgentId: aid-search-service
48+
defaultChatAgentId: aid-chat-service
49+
chatTimeoutMs: 600000
50+
```
51+
52+
禁用:`- id: tool-bailian-kb` + `disabled: true`。
453

554
## Config
655

‎packages/tool-bailian-kb/package.json‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"./package.json": "./package.json"
1212
},
1313
"dsh": {
14+
"bundle": { "patch": "./cordis.patch.yml" },
1415
"client": {
1516
"inject": [
1617
"@deepseek-ai/dsh-client-connection",
@@ -22,7 +23,7 @@
2223
"platform": "web"
2324
}
2425
},
25-
"files": ["lib", "skills"],
26+
"files": ["lib", "skills", "cordis.patch.yml"],
2627
"scripts": { "build": "tsc -b && tsdown" },
2728
"peerDependencies": {
2829
"@deepseek-ai/cordis": "^4.0.1",

‎pnpm-lock.yaml‎

Lines changed: 0 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)