Skip to content

Commit e1793e1

Browse files
committed
refactor(cli): 替换所有 kscli 命令为 bl CLI 命令
- README 文档中将管理面 CLI 名称由 kscli 改为 bl CLI - 包描述与说明中更新 CLI 名称与对应命令用法 - 技能文档及其命令参考全面替换 kscli 为 bl - 所有子命令示例和用法文档同步改为 bl 及对应子命令路径 - 更新服务发现命令由 kscli 改为 bl knowledge service list - 更新鉴权说明改为 bl auth login 及相关配置命令 - 维护命令结构一致性,保证用户可无缝使用 bl 替代原 kscli
1 parent 0d8d354 commit e1793e1

24 files changed

Lines changed: 638 additions & 253 deletions

README.md

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

3-
阿里云百炼知识库能力的 [DeepSeek Harness (dsh)](https://github.com/deepseek-ai/deepseek-harness) 插件 bundle:三个 API 直连模型工具(`kb_service_list` / `kb_search` / `kb_chat`)+ kscli 管理面 skill。
3+
阿里云百炼知识库能力的 [DeepSeek Harness (dsh)](https://github.com/deepseek-ai/deepseek-harness) 插件 bundle:三个 API 直连模型工具(`kb_service_list` / `kb_search` / `kb_chat`)+ bl CLI 管理面 skill。
44

55
设计文档:[docs/specs/2026-08-15-bailian-kb-bundle-design.md](docs/specs/2026-08-15-bailian-kb-bundle-design.md) · 实现计划:[docs/plans/2026-08-15-bailian-kb-bundle.md](docs/plans/2026-08-15-bailian-kb-bundle.md)
66

packages/tool-bailian-kb/README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# dsh-tool-bailian-kb
22

3-
百炼知识库的 dsh 插件包(同时是 dsh bundle):在 `ctx.tools` 注册两个检索模型工具(kb_search、kb_chat),并在 skills 服务可用时注册管理面 skill。服务发现通过 kscli CLI 完成。
3+
百炼知识库的 dsh 插件包(同时是 dsh bundle):在 `ctx.tools` 注册两个检索模型工具(kb_search、kb_chat),并在 skills 服务可用时注册管理面 skill。服务发现通过 bl CLI(bailian-cli)完成。
44

55
## Bundle 声明
66

@@ -33,6 +33,9 @@
3333

3434
- **DashScope API Key** — write-only,`type=password` 遮罩输入草稿,仅显示 configured/来自环境变量 徽标;写 `~/.dsh/.credentials.yaml`
3535
- **Bailian Workspace ID / 默认检索服务 ID / 默认对话服务 ID** — 回显:读写 `bailian-kb` settings 用户层,预填当前解析值;清空保存 = 移除用户层,回退 entry config → credential
36+
- **自动获取(bl CLI)** — 按钮调 Host 桥接路由 `/bailian-kb/autofill`:宿主机读 `~/.bailian/config.json`(`bl auth login` 的落盘),把 `api_key` 写入凭据存储、`workspace_id` 写入 settings,明文 key 不过浏览器;文件里没有 key 时在宿主机拉起 `bl auth login --console` 浏览器登录,完成后再次点击即可回填
37+
38+
首次接入 seed:启动时若 API key / workspaceId 从未被设置过(settings、credential、env 均无值),自动从 `~/.bailian/config.json` 采纳一次;`seededFields` 字段(settings 文档内,面板不可编辑)记账已消费/已由用户管理的字段,用户主动清空的值永不会被重新填回。
3639

3740
降级:远程浏览器(非 loopback,settings RPC 不可达)或未组合 settings 服务时,ID 字段退回旧的 write-only credential 控件,页面顶部显示提示。
3841

@@ -73,18 +76,18 @@ Config 同时注册为 `bailian-kb` settings namespace(`installSettingsSection
7376
| `kb_search` | `query`、`agent_id`(**必填**;程序化省略时回退 defaultRetrieveAgentId)、`top_k?`(默认 5,**客户端截断**——服务端无此参数)、`images?` | chunks(text/score/来源)+ total |
7477
| `kb_chat` | `message`、`agent_id`(**必填**;程序化省略时回退 defaultChatAgentId) | 完整答案(内部消费 SSE 流缓冲返回)+ request_id |
7578

76-
服务发现(`kb_service_list` 已移除):通过 `kscli service list` CLI 命令查询可用检索/对话服务及其 agent_id。
79+
服务发现(`kb_service_list` 已移除):通过 `bl knowledge service list` CLI 命令查询可用检索/对话服务及其 agent_id。
7780

7881
## 错误语义
7982

80-
- HTTP 错误:原始错误透传,模型可通过 `kscli service list` 发现可用服务以纠正无效 `agent_id`;
83+
- HTTP 错误:原始错误透传,模型可通过 `bl knowledge service list` 发现可用服务以纠正无效 `agent_id`;
8184
- 凭证缺失:指向 `~/.dsh/.env` / `.credentials.yaml` 配置方式与控制台取 key 页面;
8285
- chat 超时:说明服务端多轮检索特性,建议重试或改用 `kb_search`;
8386
- 服务端错误体截断至 500 字符进入错误信息(优先 `code: message`)。
8487

8588
## 管理面 skill
8689

87-
`skills/bailian-kb-management/SKILL.md` 随包分发,插件通过 `ctx.inject(['skills'])` 在 skills 服务可用时以 `source: 'bundled'` 运行时注册;无 skills 服务的组合(headless 最小装配)不受影响。内容:kscli 安装/鉴权/workspace 解析、建库→上传→部署工作流、agent_id 固定最佳实践。
90+
`skills/bailian-kb-management/SKILL.md` 随包分发,插件通过 `ctx.inject(['skills'])` 在 skills 服务可用时以 `source: 'bundled'` 运行时注册;无 skills 服务的组合(headless 最小装配)不受影响。内容:bl CLI 安装/鉴权/workspace 解析、建库→上传→部署工作流、agent_id 固定最佳实践。
8891
8992
## Known Limitations
9093

packages/tool-bailian-kb/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@ali/bailian-kb-dsh",
3-
"version": "0.1.6",
4-
"description": "Bailian knowledge-base tools for DeepSeek Harness: kb_search and kb_chat over the DashScope RAG API, plus the kscli management skill.",
3+
"version": "0.1.7",
4+
"description": "Bailian knowledge-base tools for DeepSeek Harness: kb_search and kb_chat over the DashScope RAG API, plus the bl CLI management skill.",
55
"type": "module",
66
"main": "lib/index.js",
77
"types": "lib/index.d.ts",
Lines changed: 29 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,64 @@
11
---
22
name: bailian-kb-management
33
description: >-
4-
管理阿里云百炼知识库(建库、上传文档、部署检索服务、Chunk 运维、数据中心文件管理),命令行工具为 kscli
4+
管理阿里云百炼知识库(建库、上传文档、部署检索服务、Chunk 运维、数据中心文件管理),命令行工具为 bl(bailian-cli)
55
当用户要创建/更新/删除知识库、上传或导入文档(本地/OSS)、创建/部署/调参检索或问答服务、
66
增删改查 Chunk、管理数据中心类目/文件/集合时使用本 skill。
77
检索与问答不走本 skill——用原生工具 kb_search(取证据)/ kb_chat(成品问答);
8-
kscli search / chat 仅用于部署后的验证调试(如 --agent-version beta 调试草稿版)。
8+
bl knowledge search / chat 仅用于部署后的验证调试(如 --agent-version beta 调试草稿版)。
99
普通问答、编程、写作、翻译、泛搜索不触发本 skill。
1010
---
1111

12-
# 百炼知识库管理(kscli
12+
# 百炼知识库管理(bl
1313

1414
检索面与管理面的分工:**查知识用 `kb_search`(取证据)/ `kb_chat`(成品问答)原生工具;本 skill 只覆盖管理长尾**——知识库全生命周期、文档、检索服务、Chunk、数据中心。
1515

1616
## 前置检查
1717

18-
1. 安装校验:运行 `kscli kb list --help`。若报 `Unknown command` 或 kscli 未安装,执行
19-
`npm install -g knowledge-studio-cli@knowledge`(需 Node.js ≥ 18.17)。
20-
**管理命令(kb/doc/service/chunk/category/file/collection)只在 `knowledge` 发行通道;
21-
`latest` 通道只有 search/chat/config,装错通道会导致所有管理命令不可用。**
18+
1. 安装校验:运行 `bl knowledge list --help`。若报 `Unknown command` 或 bl 未安装,执行
19+
`npm install -g bailian-cli`(需 Node.js ≥ 18.17);已安装但命令缺失时先 `bl update` 升级。
2220
安装失败时把错误原样报告给用户,不要静默跳过。
23-
2. 鉴权:需要 `DASHSCOPE_API_KEY`(环境变量,或 `kscli config set --key api_key --value sk-xxx`)。
24-
3. workspace 解析优先级:`--workspace-id` 参数 > 环境变量 `BAILIAN_WORKSPACE_ID` > `kscli config set --key workspace_id --value ws-xxx`
21+
2. 鉴权:需要 `DASHSCOPE_API_KEY`(环境变量,或 `bl auth login --api-key sk-xxx`,或 `bl config set --key api_key --value sk-xxx`)。
22+
3. workspace 解析优先级:`--workspace-id` 参数 > 环境变量 `BAILIAN_WORKSPACE_ID` > `bl config set --key workspace_id --value ws-xxx`
2523

2624
## 何时用哪个命令
2725

2826
| 用户意图 | 命令 | 备注 |
2927
| --- | --- | --- |
30-
| 查知识 / 问答(日常检索) | 原生工具 `kb_search` / `kb_chat` | 不走 kscli |
31-
| 建库 / 查看 / 改名 / 删库 / 监控 | `kscli kb create/list/info/update/delete/stats` | [reference/kb.md](reference/kb.md) |
32-
| 上传本地文档、看解析状态、删文档、打标签 | `kscli doc upload/list/status/delete/tag` | [reference/doc.md](reference/doc.md) |
33-
| 从 OSS 批量导入 | `kscli doc import-oss` | Bucket 需预先授权服务角色 |
34-
| 创建 / 部署 / 调参检索(问答)服务 | `kscli service create/update/deploy/…` | [reference/service.md](reference/service.md) |
35-
| 修正错误切片、屏蔽某段内容 | `kscli chunk add/list/update/delete` | [reference/chunk.md](reference/chunk.md) |
36-
| 数据中心类目 / 文件 / 集合管理 | `kscli category/file/collection …` | [reference/datacenter.md](reference/datacenter.md) |
37-
| CLI 配置、升级 | `kscli config show/set``kscli update` | [reference/config.md](reference/config.md) |
38-
| 部署后验证、调试草稿版服务 | `kscli search/chat --agent-version beta` | [reference/query.md](reference/query.md) |
28+
| 查知识 / 问答(日常检索) | 原生工具 `kb_search` / `kb_chat` | 不走 bl |
29+
| 建库 / 查看 / 改名 / 删库 / 监控 | `bl knowledge create/list/info/update/delete/stats` | [reference/kb.md](reference/kb.md) |
30+
| 上传本地文档、看解析状态、删文档、打标签 | `bl knowledge doc upload/list/status/delete/tag` | [reference/doc.md](reference/doc.md) |
31+
| 从 OSS 批量导入 | `bl knowledge doc import-oss` | Bucket 需预先授权服务角色 |
32+
| 创建 / 部署 / 调参检索(问答)服务 | `bl knowledge service create/update/deploy/…` | [reference/service.md](reference/service.md) |
33+
| 修正错误切片、屏蔽某段内容 | `bl knowledge chunk add/list/update/delete` | [reference/chunk.md](reference/chunk.md) |
34+
| 数据中心类目 / 文件 / 集合管理 | `bl knowledge category/file/collection …` | [reference/datacenter.md](reference/datacenter.md) |
35+
| CLI 配置、升级 | `bl config show/set``bl update` | [reference/config.md](reference/config.md) |
36+
| 部署后验证、调试草稿版服务 | `bl knowledge search/chat --agent-version beta` | [reference/query.md](reference/query.md) |
3937

4038
## 核心工作流:建库到可检索
4139

4240
```bash
43-
kscli doc upload --file ./docs/ --workspace-id ws-xxx # 1. 上传本地文件/目录 → 得 fileId
44-
kscli kb create --name my-kb --doc-id <fileId> --wait # 2. 建库并导入 → 得 index-id (pipelineId)
45-
kscli service create --name my-search --scene search --index-id <index-id> # 3. 建检索服务 → 得 agent-id(draft)
46-
kscli service deploy --agent-id <agent-id> --yes # 4. 发布服务(此后可被默认版本调用)
47-
kscli service list --scene search --status deployed # 5. 确认服务可见
41+
bl knowledge doc upload --file ./docs/ --workspace-id ws-xxx # 1. 上传本地文件/目录 → 得 fileId
42+
bl knowledge create --name my-kb --doc-id <fileId> --wait # 2. 建库并导入 → 得 index-id (pipelineId)
43+
bl knowledge service create --name my-search --scene search --index-id <index-id> # 3. 建检索服务 → 得 agent-id(draft)
44+
bl knowledge service deploy --agent-id <agent-id> --yes # 4. 发布服务(此后可被默认版本调用)
45+
bl knowledge service list --scene search --status deployed # 5. 确认服务可见
4846
```
4947

50-
部署完成后用原生工具 `kb_search` 带该 `agent_id` 验证检索;若要在部署前调试草稿配置,用 `kscli search --agent-id <id> --agent-version beta`
48+
部署完成后用原生工具 `kb_search` 带该 `agent_id` 验证检索;若要在部署前调试草稿配置,用 `bl knowledge search --agent-id <id> --agent-version beta`
5149

52-
已有文件再入库的简写:`kscli doc upload --file ./a.md --index-id <index-id> --wait`(上传+导入一步完成)。
50+
已有文件再入库的简写:`bl knowledge doc upload --file ./a.md --index-id <index-id> --wait`(上传+导入一步完成)。
5351

5452
## ID 速查(极易混淆)
5553

5654
| ID | 来源 | 用在哪 |
5755
| --- | --- | --- |
58-
| `index-id` | `kb create` 返回的 pipelineId / `kb list` | 所有 kb/doc/chunk 命令的 `--index-id` |
59-
| `fileId` | `doc upload` / `doc import-oss` 返回 | 数据中心命令(`file get/delete``kb create --doc-id``doc tag`|
56+
| `index-id` | `knowledge create` 返回的 pipelineId / `knowledge list` | 所有 knowledge/doc/chunk 命令的 `--index-id` |
57+
| `fileId` | `doc upload` / `doc import-oss` 返回 | 数据中心命令(`file get/delete``knowledge create --doc-id``doc tag`|
6058
| `doc_id`(库内文档 ID) | `doc list` 输出 | `doc delete``chunk add/update``--doc-id`**可能带 workspace 后缀,≠ fileId** |
6159
| `job-id` | 导入命令返回的 ingestionId | `doc status`(必须同时给 `--index-id``--job-id`|
6260
| chunk id | `chunk list` 输出的 `metadata._id` | `chunk update/delete``--chunk-id` |
63-
| `agent-id` | `service create/list` | `service *``kb_search`/`kb_chat``kscli search/chat` |
61+
| `agent-id` | `service create/list` | `service *``kb_search`/`kb_chat``bl knowledge search/chat` |
6462

6563
## 命令参考(权威)
6664

@@ -69,14 +67,14 @@ kscli service list --scene search --status deployed # 5. 确认
6967
- [reference/index.md](reference/index.md) — 全命令速查表、全局 flag、鉴权说明
7068
- reference/&lt;group&gt;.md — 按命令组分文件(kb / doc / service / chunk / datacenter / config / query)
7169

72-
执行不熟悉的命令前,先读对应 reference 或跑 `kscli <命令> --help`**不要猜 flag。**
70+
执行不熟悉的命令前,先读对应 reference 或跑 `bl <命令> --help`**不要猜 flag。**
7371
全部命令支持 `--output json`(结构化输出)、`--dry-run`(预览请求)、`--quiet``--verbose`
7472

7573
## 危险与不可逆操作
7674

7775
执行以下操作前须向用户确认,脚本化时才用 `--yes` 跳过交互确认:
7876

79-
- `kb delete`:不可逆,库和全部索引内容永久删除(数据中心源文件保留)。
77+
- `knowledge delete`:不可逆,库和全部索引内容永久删除(数据中心源文件保留)。
8078
- `file delete`:不可逆,且引用该文件的知识库文档索引会失效;只想从单个库移除用 `doc delete`
8179
- `chunk delete`:不可逆。
8280
- `service deploy`:发布影响线上调用方;`service delete` 后 agent_id 不可再用(软删、幂等)。
@@ -87,6 +85,6 @@ kscli service list --scene search --status deployed # 5. 确认
8785

8886
- 用户反复使用同一检索服务时,建议其把 agent_id 写入项目指令(如 AGENTS.md)或让 agent 记住,后续 kb_search / kb_chat 直接携带。
8987
- 服务有 draft/deployed 两种状态:只有 deployed 可被默认版本调用;draft 调试用 `--agent-version beta`。改已发布版本的配置:先改 beta 草稿(`service update`),验证后 `service deploy` 发新版本。
90-
- 导入类命令(`kb create``doc upload --index-id``doc status`)优先带 `--wait` 轮询到终态,避免手工轮询;文档解析失败(如 PARSE_FAILED)会以非零退出码透传错误。
88+
- 导入类命令(`knowledge create``doc upload --index-id``doc status`)优先带 `--wait` 轮询到终态,避免手工轮询;文档解析失败(如 PARSE_FAILED)会以非零退出码透传错误。
9189
- `chunk add` 有 10 QPS 限流,批量脚本注意节流;响应不带 chunk id,需要 `chunk list` 反查。
9290
- `service list` 必须带 `--scene chat|search`,两个场景要分别查询。

packages/tool-bailian-kb/skills/bailian-kb-management/reference/chunk.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
# `kscli chunk` — Chunk 运维
1+
# `bl knowledge chunk` — Chunk 运维
22

33
> 通用鉴权/全局 flag 见 [index.md](index.md)。以下 Flags 只列命令专属项。
44
> chunk id = `chunk list` 输出的 `metadata._id`;文档 id = `metadata.doc_id`
55
6-
## `kscli chunk add`
6+
## `bl knowledge chunk add`
77

88
直接向库内添加 chunk。
99

1010
```
11-
Usage: kscli chunk add --index-id <id> (--content <text> | --field <k=v>) [flags]
11+
Usage: bl knowledge chunk add --index-id <id> (--content <text> | --field <k=v>) [flags]
1212
```
1313

1414
| Flag | 说明 |
@@ -29,16 +29,16 @@ Notes:
2929
- 响应不带 chunk id;添加后用 `chunk list` 反查。
3030

3131
```bash
32-
kscli chunk add --index-id idx-xxx --content "chunk text" --title intro --doc-id file-xxx
33-
kscli chunk add --index-id idx-xxx --field 列A=v1 --field 列B=v2
32+
bl knowledge chunk add --index-id idx-xxx --content "chunk text" --title intro --doc-id file-xxx
33+
bl knowledge chunk add --index-id idx-xxx --field 列A=v1 --field 列B=v2
3434
```
3535

36-
## `kscli chunk list`
36+
## `bl knowledge chunk list`
3737

3838
列出 chunk 内容与状态。
3939

4040
```
41-
Usage: kscli chunk list --index-id <id> [flags]
41+
Usage: bl knowledge chunk list --index-id <id> [flags]
4242
```
4343

4444
| Flag | 说明 |
@@ -51,15 +51,15 @@ Notes:
5151
- 后续 update/delete 用输出中的 `metadata._id`(chunk id)与 `metadata.doc_id`(文档 id)。
5252

5353
```bash
54-
kscli chunk list --index-id idx-xxx --doc-id file-xxx --page-size 50
54+
bl knowledge chunk list --index-id idx-xxx --doc-id file-xxx --page-size 50
5555
```
5656

57-
## `kscli chunk update`
57+
## `bl knowledge chunk update`
5858

5959
改 chunk 内容或切换检索可见性。
6060

6161
```
62-
Usage: kscli chunk update --index-id <id> --chunk-id <id> --doc-id <id> [flags]
62+
Usage: bl knowledge chunk update --index-id <id> --chunk-id <id> --doc-id <id> [flags]
6363
```
6464

6565
| Flag | 说明 |
@@ -78,16 +78,16 @@ Notes:
7878
- 只切 `--exclude/--include` 不给新内容时,自动重提交现有内容。
7979

8080
```bash
81-
kscli chunk update --index-id idx-xxx --chunk-id chunk-xxx --doc-id file-xxx --content "corrected text"
82-
kscli chunk update --index-id idx-xxx --chunk-id chunk-xxx --doc-id file-xxx --exclude
81+
bl knowledge chunk update --index-id idx-xxx --chunk-id chunk-xxx --doc-id file-xxx --content "corrected text"
82+
bl knowledge chunk update --index-id idx-xxx --chunk-id chunk-xxx --doc-id file-xxx --exclude
8383
```
8484

85-
## `kscli chunk delete`
85+
## `bl knowledge chunk delete`
8686

8787
删除 chunk。**不可逆,执行前须向用户确认。**
8888

8989
```
90-
Usage: kscli chunk delete --index-id <id> --chunk-id <id> [flags]
90+
Usage: bl knowledge chunk delete --index-id <id> --chunk-id <id> [flags]
9191
```
9292

9393
| Flag | 说明 |
@@ -96,5 +96,5 @@ Usage: kscli chunk delete --index-id <id> --chunk-id <id> [flags]
9696
| `--yes` | 跳过交互确认 |
9797

9898
```bash
99-
kscli chunk delete --index-id idx-xxx --chunk-id chunk-a --chunk-id chunk-b --yes
99+
bl knowledge chunk delete --index-id idx-xxx --chunk-id chunk-a --chunk-id chunk-b --yes
100100
```

0 commit comments

Comments
 (0)