diff --git "a/docs/PRD/2.6 \347\201\265\346\200\235 deepagents \350\277\201\347\247\273 PRD/2.6 \347\201\265\346\200\235 Linsight \350\277\201\347\247\273 deepagents \346\241\206\346\236\266 PRD.md" "b/docs/PRD/2.6 \347\201\265\346\200\235 deepagents \350\277\201\347\247\273 PRD/2.6 \347\201\265\346\200\235 Linsight \350\277\201\347\247\273 deepagents \346\241\206\346\236\266 PRD.md"
index e98ab8380d..0cf03df5fc 100644
--- "a/docs/PRD/2.6 \347\201\265\346\200\235 deepagents \350\277\201\347\247\273 PRD/2.6 \347\201\265\346\200\235 Linsight \350\277\201\347\247\273 deepagents \346\241\206\346\236\266 PRD.md"
+++ "b/docs/PRD/2.6 \347\201\265\346\200\235 deepagents \350\277\201\347\247\273 PRD/2.6 \347\201\265\346\200\235 Linsight \350\277\201\347\247\273 deepagents \346\241\206\346\236\266 PRD.md"
@@ -57,13 +57,15 @@
| create_deep_agent | deepagents 装配工厂,返回 LangGraph graph |
| SkillsMiddleware | deepagents 内置 Skill 加载中间件,progressive disclosure |
| 白名单激活 | per-run 通过 `config.configurable.active_skills` 指定本轮生效的 skill |
+| 展示名称(display_name) | 技能面向用户的可读名称(支持中文);前端列表 / 选择器 / 详情一律只展示它 |
+| 技能 ID(name) | 技能的系统级唯一标识:小写字母 / 数字 / 单连字符(deepagents frontmatter 硬约束),同时是落盘目录名与 `active_skills` 激活键;新建时由展示名称自动转拼音生成、可修改 |
| progressive disclosure | 启动只注入 skill frontmatter,body 由模型按需 `read_file` 展开 |
| HITL | Human-in-the-loop,执行中暂停等待用户输入/审批 |
| 适配层 | 保留 BiSheng 横切基础设施、仅替换 agent 推理内核的迁移路径 |
## 1.5 范围说明
-> 工程实现列只标粗粒度章号,**逐行细映射以 §4.8「配套技术实现索引」为单一事实源**。
+> 工程实现列只标粗粒度章号,**逐行细映射以 §4.9「配套技术实现索引」为单一事实源**。
| 模块 | 本期范围 | 产品需求 | 工程实现 |
|-|-|-|-|
@@ -71,9 +73,10 @@
| 附件上传 | 多格式上传、解析四态、offload-first 按需翻阅 | §4.2 | 技术方案 §9 |
| 任务执行可视化 | 排队/规划/子任务/工具步骤/产物 流式 UI | §4.3 | 技术方案 §2、§3 |
| 人机协同 HITL | 执行中追问、中断现场持久化、可随时回来续跑 | §4.4 | 技术方案 §4 |
-| Skill 体系/管理 | 列表/上传/编辑/删除/启用 + 多租户隔离 | §4.5 | 技术方案 §7 |
-| 存量数据迁移 | `linsight_sop` → `SKILL.md` 一次性脚本、对账报告 | §4.6 | 技术方案 §8 |
+| Skill 体系/管理 | 列表/上传(.md/.zip/.skill/文件夹)/编辑/删除/启用 + 展示名称/技能 ID 双字段 + 多租户隔离 | §4.5 | 技术方案 §7 |
+| 存量数据迁移 | `linsight_sop` → `SKILL.md` 一次性脚本(输出迁移摘要日志,运维产物) | §4.6 | 技术方案 §8 |
| 权限与可见性 | 角色 × Skill 可见/可操作规则 | §4.7 | 技术方案 §6 |
+| 工作台配置合并 | 「灵思」tab 并入「日常」tab:入口开关移除、展示名称/提示语改「任务模式」、可选工具废弃改共用日常「可用工具」、指导手册库升级为技能管理 | §4.8 | 技术方案 §2.7、§7 |
| Agent 执行引擎 | 自研 ReAct → deepagents `create_deep_agent`(适配层) | — | 技术方案 §1、§2 |
| 运行时 | 保留 BiSheng Worker / Redis queue / WebSocket | §3.2 | — |
@@ -125,13 +128,13 @@ flowchart TD
flowchart TD
subgraph MIG["系统升级 · 存量 SOP 一次性迁移(US-4)"]
S[("存量 SOP
linsight_sop")] -->|转换脚本| K["SKILL.md"]
- K --> RP["对账报告
成功 / 失败 / 跳过 · 异常可人工处理
AC-4"]
+ K --> RP["迁移摘要日志(脚本产物·运维核对)
成功 / 失败 / 跳过 · 异常可人工处理
AC-4"]
end
- subgraph MGMT["Skills 管理页(仅租户自定义技能)"]
+ subgraph MGMT["技能管理(仅租户自定义技能)"]
TA([租户管理员 · US-3]) -->|新建/导入/编辑/删除/启停| TS["租户自定义 Skill
按租户隔离"]
SA([系统管理员 · US-5]) -->|admin-scope 切换进入该租户后维护| TS
end
- RP -.迁移产物进入管理页.-> MGMT
+ K -.迁移产物进入管理页·与手动新建一致呈现.-> MGMT
```
> 📎 **draw.io 源文件**:2.2-管理员Skill管理与迁移.drawio
@@ -141,7 +144,7 @@ flowchart TD
| AC | 验收标准 |
|-|-|
| AC-3 | Skill 管理(列表 / 新建 / 导入 / 编辑 / 删除 / 启停)端到端可用;技能均为租户自定义、按租户隔离;内核自带的 built-in skill 不在前端暴露、不纳入 UI 管理。 |
-| AC-4 | 存量 SOP 全量转换为 Skill,产出对账报告,异常记录可人工处理。 |
+| AC-4 | 存量 SOP 全量转换为 Skill;迁移脚本输出迁移摘要日志(成功/失败/跳过及原因,运维产物,无管理页报告界面),异常记录可人工处理。 |
## 2.3 整体与非功能验收(横切项)
@@ -245,7 +248,7 @@ flowchart TD
flowchart TD
Start([用户进入灵思]) --> Chip{挂上「任务模式」chip
进入灵思模式}
- Chip --> F1["§4.1 发起任务·统一输入区
「+」技能 / 知识空间 / 组织知识库 / 附件 + 输入框工具栏选用工具
提交前一览·可见可改"]
+ Chip --> F1["§4.1 发起任务·统一输入区
「+」上传文件 / 知识空间 / 组织知识库 + 任务模式·添加 Skill 分组
+ 输入框工具栏选用工具 · 提交前一览·可见可改"]
F2["§4.2 附件上传与按需处理
offload-first·解析四态·引用溯源"] -.挂入输入区.-> F1
F1 --> Submit{提交任务}
@@ -276,13 +279,14 @@ flowchart TD
| 功能域 | 小节 | FR 区间 | 一句话产品职责 |
|-|-|-|-|
-| 发起任务·统一输入区与上下文组装 | §4.1 | FR-1.x | 用户在统一输入框挂「任务模式」chip,经「+」菜单组装技能/知识库/附件,并经输入框工具栏选用工具,提交前可一览四类上下文并逐项增删后发起任务。 |
+| 发起任务·统一输入区与上下文组装 | §4.1 | FR-1.x | 用户经「+」菜单进入任务模式(任务模式与添加 Skill 组合排布)、组装技能/知识库/附件,并经输入框工具栏选用工具,提交前可一览四类上下文并逐项增删后发起任务。 |
| 附件上传与按需处理(offload-first) | §4.2 | FR-2.x | 用户以点击/拖拽/粘贴上传多格式文件,看到上传→解析四态反馈;正文不进对话,由灵思按需翻阅,产物按原文件名可溯源。 |
| 任务执行过程可视化(含产物交付) | §4.3 | FR-3.x | 用户看见灵思「规划→子任务委派→执行」的非黑盒过程与进度,长任务可后台运行、可中断,并在交付区获取产物(下载/复制/溯源),可回看历史任务。 |
| 人机协同(执行中追问 HITL) | §4.4 | FR-4.x | 灵思执行中遇含糊处主动追问,用户在输入区回答、补充、纠偏或叫停,回答后任务续跑,追问与普通对话有视觉区分。 |
| Skill 管理页 | §4.5 | FR-5.x | 租户管理员从 0 新建 / 导入、维护本租户自定义技能(增删改启停),提供列表搜索筛选与空态引导,启停即时影响输入区可见技能;内核自带 built-in skill 不在前端暴露、不纳入管理。 |
-| 存量 SOP 迁移体验 | §4.6 | FR-6.x | 一次性将动态生成的 SOP 迁移为静态 Skill,向用户对齐切换时机、迁移结果归属、新老用法对照与不可迁移项的兜底说明。 |
+| 存量 SOP 迁移体验 | §4.6 | FR-6.x | 一次性将动态生成的 SOP 迁移为静态 Skill;迁移产物与手动新建技能一致呈现(不作来源区分),迁移结果由脚本摘要日志(运维产物)核对,向用户对齐新老用法对照与不可迁移项的兜底说明。 |
| 权限与可见性 | §4.7 | FR-7.x | 以「角色 × 资源」矩阵收口技能/知识库/工具的可见与可改边界,明确租户自定义技能按租户隔离、跨租户不可见及无权限时的统一界面表现;内核 built-in skill 不作为可见 / 可管理资源。 |
+| 工作台配置合并(管理端) | §4.8 | FR-8.x | 构建-工作台配置取消「灵思」独立 tab,配置项并入「日常」tab:入口开关移除(改走角色可见菜单授权)、展示名称/输入框提示语更名「任务模式」、可选工具废弃改共用日常既有「可用工具」、灵思指导手册库升级为技能管理。 |
---
@@ -296,9 +300,9 @@ flowchart TD
| 界面元素 | 位置 | 说明 |
|-|-|-|
-| 任务模式 chip | 输入框顶部 | 进入灵思的唯一标识;带「×」可移除以退出 |
-| 占位文案 | 输入框内 | 「发送消息,或用『+』添加 技能 / 知识空间 / 组织知识库 / 附件」 |
-| 「+」按钮 | 底部左侧 | 展开上下文菜单:技能 / 知识空间 / 组织知识库 / 附件 |
+| 任务模式 chip | 输入框顶部 | 处于任务模式的唯一标识;带「×」可移除以退出 |
+| 占位文案 | 输入框内 | 任务模式下为管理端配置的「任务模式输入框提示语」(§4.8);日常模式沿用现有占位文案 |
+| 「+」按钮 | 底部左侧 | 展开菜单:上传文件 / 知识空间 / 组织知识库 + 分组(任务模式、添加 Skill),见 §4.1.3 |
| 上下文 chip 区 | 输入框内/上方 | 已挂的 技能 / 知识空间 / 组织知识库 / 附件 以 chip 呈现,逐项可移除(工具不以 chip 呈现,见 §4.1.5) |
| 发送按钮 | 底部右侧 | 提交任务;可提交性判定见边界表 |
@@ -306,8 +310,8 @@ flowchart TD
| 动作 | 触发方式 | 进入/退出后变化 |
|-|-|-|
-| 进入任务模式 | 在首页选择灵思入口 / 默认即处于任务模式 | 输入框顶部出现「任务模式」chip;「+」菜单中可添加 技能 / 知识空间 / 组织知识库 / 附件;占位文案变为灵思引导语 |
-| 退出任务模式 | 点击「任务模式」chip 上的「×」(**仅显式退出,不再"收到消息就自动退出"**) | chip 消失,回到普通对话模式。**技能上下文随之取消**——技能为任务模式专属能力,**日常模式暂不支持使用技能**;**文件 / 知识库 / 工具的选择被会话「记住」**:退出后在日常对话期间**不接管、不强求生效**,但**再次进入任务模式时自动回填并生效**(即"会话级记忆",机制见下方策略表) |
+| 进入任务模式 | 点击「+」菜单中的「任务模式」项(与「添加 Skill」组合排布在同一分组,见 §4.1.3) | 输入框顶部出现「任务模式」chip;「+」菜单中「添加 Skill」变为可用;占位文案变为任务模式引导语(文案由管理端「任务模式输入框提示语」配置,§4.8) |
+| 退出任务模式 | 点击「任务模式」chip 上的「×」,或在「+」菜单再次点击「任务模式」取消选中(**仅显式退出,不再"收到消息就自动退出"**) | chip 消失,回到普通对话模式。**技能上下文随之取消**——技能为任务模式专属能力,**日常模式暂不支持使用技能**;**文件 / 知识库 / 工具的选择被会话「记住」**:退出后在日常对话期间**不接管、不强求生效**,但**再次进入任务模式时自动回填并生效**(即"会话级记忆",机制见下方策略表) |
| 再次进入 | 在同一会话重新挂上「任务模式」chip | 文件 / 知识库 / 工具的选择自动回填、继续沿用(除已被用户逐项移除);**技能需重新勾选**(退出时已清除) |
> 关键设计:**模式是「会话内由用户显式开关的能力」**(取消"消息到达自动退出")。退出时按上下文类型分流:**技能随退出一并取消**(日常模式暂不支持技能);**文件 / 知识库 / 工具是「会话级记忆」**——退出后**仅被会话记住、不在日常对话链路接管**,待用户**再次进入任务模式时回填生效**;只有用户在「上下文一览」(4.1.6)里逐项点「×」移除才是真正放弃。
@@ -329,28 +333,29 @@ flowchart TD
### 4.1.3 「+」菜单框架
-「+」是组装上下文的统一入口,展开后分四类(其中「知识空间」与「组织知识库」为两个相互独立的入口——沿用现有产品逻辑,「+」菜单内**没有合并的「知识库」选项**;本文档中出现的「知识库」为这两者的统称):
+「+」是组装上下文与进入任务模式的统一入口。菜单分为两个分组:**通用上下文组**(上传文件 / 知识空间 / 组织知识库——其中「知识空间」与「组织知识库」为两个相互独立的入口,沿用现有产品逻辑,「+」菜单内**没有合并的「知识库」选项**,本文档中出现的「知识库」为这两者的统称)与**任务模式组**(任务模式开关 + 添加 Skill,二者相邻组合排布、以分隔线与通用组隔开):
-| 分类 | 作用 | 已选呈现 |
-|-|-|-|
-| 技能 | 选用流程知识(SOP 化的做事方法) | 已选项生成技能 chip;详见 4.1.4 |
-| 知识空间 | 指定灵思检索的**个人私有**知识范围 | 已选项生成知识空间 chip;详见 4.1.5 |
-| 组织知识库 | 指定灵思检索的**组织共享**资料范围 | 已选项生成组织知识库 chip;详见 4.1.5 |
-| 上传文件 | 上传本期一次性参考的本地文件 | 已上传项生成附件 chip;解析态详见 §4.2 |
+| 分组 | 菜单项 | 作用 | 已选呈现 |
+|-|-|-|-|
+| 通用上下文 | 上传文件 | 上传本期一次性参考的本地文件 | 已上传项生成附件 chip;解析态详见 §4.2 |
+| 通用上下文 | 知识空间 | 指定灵思检索的**个人私有**知识范围 | 已选项生成知识空间 chip;详见 4.1.5 |
+| 通用上下文 | 组织知识库 | 指定灵思检索的**组织共享**资料范围 | 已选项生成组织知识库 chip;详见 4.1.5 |
+| 任务模式组 | 任务模式 | 进入 / 退出任务模式的开关项(带选中态) | 开启后输入框顶部出现「任务模式」chip(§4.1.2) |
+| 任务模式组 | 添加 Skill | 打开技能选择器,选用流程知识(SOP 化的做事方法);任务模式未开启时点击它**自动先开启任务模式**再打开选择器(技能是任务模式专属能力) | 已选项生成技能 chip;详见 4.1.4 |
- 重复添加同一项自动去重,不产生重复 chip。
- 某类无可选内容时(如本租户无可用技能、无可见的知识空间 / 组织知识库),该分类项展示空态引导而非禁用消失(见边界表)。
### 4.1.4 技能(Skill)勾选激活
-点开「+ → 技能」进入技能选择器:
+点开「+ → 添加 Skill」进入技能选择器(任务模式未开启时自动先开启,§4.1.3):
| 选择器能力 | 说明 |
|-|-|
-| 搜索 | 按名称 / 摘要关键词过滤 |
+| 搜索 | 按展示名称 / 摘要关键词过滤 |
| 列表 | 单一扁平列表,仅展示本租户管理员在后台(§4.5)新建 / 导入并启用的自定义技能;用户仅选用、不可自建技能(内核 built-in skill 不在此列、对用户不可见) |
-| 条目信息 | 每条显示 名称 + 一句话摘要,便于判断用途 |
-| 勾选 | 多选;勾选项进入「已选」并在输入区生成技能 chip |
+| 条目信息 | 每条显示 **展示名称** + 一句话摘要,便于判断用途(不展示技能 ID,见 §1.4 术语) |
+| 勾选 | 多选;勾选项进入「已选」并在输入区生成技能 chip(chip 显示展示名称) |
| 清空 | 一键清空本轮所有勾选 |
技能激活规则(二元,简单直白):
@@ -407,14 +412,14 @@ flowchart TD
```Plaintext
flowchart TD
Start([首页统一输入区]) --> Mode{是否进入
任务模式}
- Mode -->|点击灵思入口/默认| InMode[显示任务模式 chip]
+ Mode -->|「+」菜单点击 任务模式| InMode[显示任务模式 chip]
Mode -->|普通对话| Normal[普通对话模式
本节不展开]
InMode --> Plus[点开「+」菜单]
- Plus --> Skill[添加技能
勾选启用·不勾不用]
+ Plus --> Skill[添加 Skill
与任务模式同分组·勾选启用·不勾不用]
Plus --> KBSpace[添加知识空间
个人私有]
Plus --> KBOrg[添加组织知识库
租户共享]
- Plus --> File[添加附件
解析见 §4.2]
+ Plus --> File[上传文件
解析见 §4.2]
InMode --> Toolbar[输入框工具栏
选用预设工具·独立入口
同日常模式·不生成 chip]
Skill --> Compose[输入区生成上下文 chip]
@@ -439,9 +444,9 @@ flowchart TD
| 编号 | 需求 | 验收要点(产品语言) |
|-|-|-|
-| FR-1.1 | 统一输入区以「任务模式」chip 标识灵思模式,取代首页 tab | chip 可见即处于任务模式;移除 chip 即退出 |
-| FR-1.2 | 「+」菜单支持添加 技能 / 知识空间 / 组织知识库 / 附件 四类上下文(知识空间与组织知识库为两个独立入口) | 各入口均可达;已选项以 chip 呈现 |
-| FR-1.3 | 技能选择器为单一扁平列表,支持搜索、名称+摘要、多选、清空;仅展示本租户已启用的自定义技能 | 各能力均可用;勾选项生成技能 chip |
+| FR-1.1 | 统一输入区以「任务模式」chip 标识灵思模式,取代首页 tab;进入/退出经「+」菜单「任务模式」项或 chip「×」 | chip 可见即处于任务模式;移除 chip 即退出 |
+| FR-1.2 | 「+」菜单分两组:通用上下文(上传文件 / 知识空间 / 组织知识库,后两者为独立入口)+ 任务模式组(任务模式开关、添加 Skill,相邻组合排布、分隔线隔开);任务模式未开启时点「添加 Skill」自动先开启 | 各入口均可达;已选项以 chip 呈现 |
+| FR-1.3 | 技能选择器为单一扁平列表,支持搜索、展示名称+摘要、多选、清空;仅展示本租户已启用的自定义技能 | 各能力均可用;勾选项生成技能 chip(显示展示名称) |
| FR-1.4 | 技能二元激活:勾选的技能本轮启用,不勾选(空)则本轮不使用任何技能 | 勾了才用、不勾不用;无隐式「默认全选」 |
| FR-1.5 | 支持选用「知识空间」与「组织知识库」(两个独立入口)并多选 | 可选范围与授权一致;分别生成知识空间 / 组织知识库 chip |
| FR-1.6 | 工具支持选用工作台预设工具,交互与日常模式一致 | 仅可选用、不可新增;由工具栏呈现选中态,不生成上下文 chip |
@@ -858,19 +863,21 @@ flowchart TD
---
-## 4.5 Skill 管理页
+## 4.5 Skill 管理页(技能管理)
> 面向**租户管理员**(管理本租户自定义 Skill);**系统管理员**本身不在此页直接管理任何技能,如需维护某租户的技能,须先经 admin-scope 切换进入该租户、按该租户管理员权限操作。本节只讲"在管理页里怎么操作";完整可见性矩阵收口在 §4.7。终端用户不进入本页,只在输入区选用(参见 §4.1)。**内核自带的 built-in skill 不在本页出现、不纳入 UI 管理。**
### 4.5.1 入口与角色差异
+**页面位置**:「构建 - 工作台配置」(日常 tab)内的「技能管理」区——即原「灵思指导手册库」所在位置,本次升级整体替换为技能管理(工作台配置 tab 合并见 §4.8)。
+
Skill 管理页是技能的"后台仓库",与终端用户在输入区的"选用"是两件事。本页只承载**租户自定义技能**(从 0 新建或导入),不同角色进入后可操作范围不同:
| 角色 | 能否进入本页 | 进入后看到 | 能操作的对象 |
|-|-|-|-|
| 租户管理员 | 是 | 本租户自定义技能(单一列表) | 增删改启停本租户自定义技能 |
| 系统管理员 | 须先 admin-scope 切入目标租户 | 切入后等同该租户视角:该租户自定义技能 | 切入后按租户管理员权限增删改启停 |
-| 终端用户 | 否(无此页入口) | —(仅在输入区"+ 技能"中选用) | 不可管理,仅选用 |
+| 终端用户 | 否(无此页入口) | —(仅在输入区「+ → 添加 Skill」中选用) | 不可管理,仅选用 |
> 说明:技能均为**租户自定义**、按租户隔离——本租户技能只有本租户可见、可管理,不会串到别的租户(跨租户隔离详见 §4.7)。内核 built-in skill 是任务模式自带能力,**不在管理页出现,任何角色都不通过 UI 增删改启停它**。
@@ -905,22 +912,35 @@ flowchart LR
| 区域 | 内容与状态 |
|-|-|
-| 列表区 | 单一列表(**无分组**),仅本租户自定义技能。每项显示名称、简要描述、启用/停用状态点;迁移而来的项带「由 SOP 迁移」来源标识(见 §4.6)。顶部搜索框按名称/描述实时过滤;可附加按状态(启用/停用)筛选 |
-| 详情区 | 选中某项后展示其内容,提供 **Preview / Source** 两个视图切换:Preview 为渲染后的可读视图(结构化排版、图片以引用形式展示);Source 为原始文本(技能定义原文) |
-| 操作区 | 「上传 Skill」「新建 Skill」常驻;选中某项后「编辑」「删除」「启用/停用开关」可用 |
+| 列表区 | 单一列表(**无分组**),仅本租户自定义技能。每项只显示**展示名称**、简要描述、启用/停用状态点;**不展示技能 ID,也不区分来源(手动新建或 SOP 迁移一致呈现,见 §4.6)**。**技能为目录形态(bundle)**:含附属文件的技能列表项可**展开为文件树**(SKILL.md + reference/、scripts/ 等子目录文件,交互对齐 Claude web Skills),点击树中文件即在详情区查看;仅含 SKILL.md 的技能不出现展开箭头。顶部搜索框按展示名称/描述实时过滤;可附加按状态(启用/停用)筛选 |
+| 详情区 | 按**当前选中文件**渲染:默认选中 SKILL.md,提供 **Preview / Source** 两个视图切换(Preview 为渲染后的可读视图,含展示名称/技能 ID/描述等元信息,图片以引用形式展示;Source 为原文);选中附属文件(脚本/模板/参考资料等)时以**只读 Source** 展示,Markdown 附属文件亦可 Preview |
+| 操作区 | 「上传 Skill」「新建 Skill」常驻;选中某项后「编辑」「删除」「启用/停用开关」可用(启停/删除作用于整个技能目录) |
### 4.5.3 上传 / 新建 Skill 交互流程
支持两种创建方式,最终都进入"即时校验 → 预览确认 → 保存生效":
-- **上传**:点击选择文件,或将技能文件拖拽到上传热区。
-- **新建**:在表单中填写名称、描述、技能正文等字段。
+- **上传**:点击选择或拖拽到上传热区,支持多种 Skill 形态(交互对齐 Claude web 的 Upload skill):
+ | 上传形态 | 要求 |
+ |-|-|
+ | 单个 `.md` 文件 | 须含 YAML frontmatter(`name` + `description` 必填) |
+ | `.zip` / `.skill` 压缩包 | 包内须含 `SKILL.md`;可携带脚本、参考资料等附属文件,整包随技能落盘 |
+ | 文件夹(拖入) | 视同压缩包:根目录须含 `SKILL.md`,目录结构原样保留 |
+
+ 上传热区下方常驻「文件要求」说明(上表内容的简版)与示例链接;整包体积 ≤10MB。
+- **新建**:在表单中填写以下字段(**所有输入框底纹词走 i18n(中/英/日),并以示例值增强引导**):
+ | 字段 | 必填 | 说明 |
+ |-|-|-|
+ | 展示名称 | 是 | 用户可读名称(支持中文),列表/选择器/chip 一律显示它;底纹词给出示例(如「给技能起一个用户易识别的名称,如:季度财报分析」) |
+ | 技能 ID | 是 | 系统级唯一标识(小写字母/数字/单连字符,≤64);**由展示名称自动转拼音生成,可修改**;底纹词说明格式并给出示例(如 `ji-du-cai-bao-fen-xi`) |
+ | 描述 | 是 | 一句话说明技能做什么、何时使用(≤1024)——模型按它判断何时调用,底纹词给出引导 |
+ | 技能正文 | 是 | SKILL.md 正文(Markdown);frontmatter 由系统按上述字段生成,无需手写 |
```Plaintext
flowchart TD
Start([点 上传 或 新建]) --> Choose{选择方式}
- Choose -- 上传 --> Drop[选文件 / 拖拽到热区]
- Choose -- 新建 --> Form[填写 名称/描述/正文 表单]
+ Choose -- 上传 --> Drop[选文件 / 拖拽到热区
.md / .zip / .skill / 文件夹]
+ Choose -- 新建 --> Form[填写 展示名称/技能ID/描述/正文 表单
技能ID 由展示名称自动生成可改]
Drop --> Validate[即时校验]
Form --> Validate
Validate -- 校验失败 --> ErrHint[就地标红 + 提示如何修正
保存按钮置灰]
@@ -945,7 +965,7 @@ flowchart TD
| 操作 | 适用对象 | 交互 |
|-|-|-|
-| 编辑 | 本租户自定义技能 | 进入与新建一致的表单/正文编辑 → 即时校验 → Preview/Source 预览 → 保存生效;保存后立即对终端用户选用可见 |
+| 编辑 | 本租户自定义技能 | 进入与新建一致的表单/正文编辑 → 即时校验 → Preview/Source 预览 → 保存生效;保存后立即对终端用户选用可见。**编辑范围仅 SKILL.md**(展示名称/技能 ID/描述/正文);bundle 附属文件只读,更新附属文件须在编辑中**重新上传整包替换**(保持同一技能 ID) |
| 删除 | 本租户自定义技能 | **二次确认弹窗**,提示"删除后终端用户将无法再选用该技能,且不可恢复",确认后从列表移除 |
| 启用 / 停用 | 本租户自定义技能 | 列表项上的开关,单击即切换,无需进详情;停用后该技能从终端用户输入区可见列表中即时消失,启用后即时出现 |
@@ -963,7 +983,7 @@ flowchart TD
### 4.5.6 启停 / 增删对"输入区可见技能"的即时影响
-管理页的改动需让租户管理员清楚预期:它会**实时**改变终端用户在输入区「+ 技能」里能选到什么。
+管理页的改动需让租户管理员清楚预期:它会**实时**改变终端用户在输入区「+ → 添加 Skill」里能选到什么。
```Plaintext
flowchart LR
@@ -980,15 +1000,18 @@ flowchart LR
校验在上传/新建/编辑时即时触发,每条都给出"哪里错 + 怎么改":
-| 校验项 | 触发场景 | 用户看到的提示(示意) | 如何修正 |
+| 校验项 | 触发场景 | 用户看到的提示(示意,实际文案走 i18n) | 如何修正 |
|-|-|-|-|
-| 名称含非法字符 | 名称包含不允许的符号/空白等 | "技能名称含有不支持的字符,请使用中英文、数字、连字符" | 去掉非法字符后重试 |
-| 名称超长 | 名称超过长度上限 | "技能名称过长,请控制在 N 个字符以内" | 精简名称 |
-| 名称重名 | 与本租户已有技能同名 | "已存在同名技能,请换一个名称" | 改名,或先编辑已有同名项 |
-| 描述超长 | 描述超过长度上限 | "描述过长,请控制在 N 个字符以内" | 精简描述 |
-| 必填缺失 | 名称/正文等必填项为空 | "请填写技能名称 / 技能内容" | 补全必填项 |
-| 文件超大 | 上传文件超过 10MB | "文件超过 10MB 上限,请精简后重传" | 缩减文件后重传 |
-| 格式不合规 | 上传文件格式/结构不符合技能规范 | "文件格式不符合技能规范,请检查后重传" | 按规范修正文件结构 |
+| 展示名称缺失/超长 | 展示名称为空或超过长度上限 | "请填写技能显示名称 / 显示名称过长,请控制在 N 个字符以内" | 补全或精简展示名称 |
+| 展示名称重名 | 与本租户已有技能展示名称相同 | "已存在同名技能,请换一个名称" | 改名,或先编辑已有同名项 |
+| 技能 ID 非法 | 技能 ID 含大写/中文/空格等,或首尾/连续连字符 | "技能 ID 仅支持小写字母、数字和单个连字符,可点『重新生成』自动转换" | 按规则修改或一键重新生成 |
+| 技能 ID 超长 | 技能 ID 超过 64 字符 | "技能 ID 过长,请控制在 64 个字符以内" | 精简技能 ID |
+| 技能 ID 重名 | 与本租户已有技能 ID 相同 | "已存在相同技能 ID,请换一个" | 改 ID,或先编辑已有同名项 |
+| 描述超长 | 描述超过长度上限 | "描述过长,请控制在 1024 个字符以内" | 精简描述 |
+| 必填缺失 | 展示名称/技能 ID/描述/正文等必填项为空 | "请填写技能显示名称 / 技能 ID / 描述 / 技能内容" | 补全必填项 |
+| 文件超大 | 上传文件(含压缩包整包)超过 10MB | "文件超过 10MB 上限,请精简后重传" | 缩减文件后重传 |
+| 压缩包缺 SKILL.md | `.zip` / `.skill` / 文件夹内无 `SKILL.md` | "压缩包/文件夹中未找到 SKILL.md,请检查目录结构" | 将 SKILL.md 置于根目录后重传 |
+| 格式不合规 | `.md` 缺 frontmatter、frontmatter 缺 name/description 等 | "文件格式不符合技能规范:缺少 ××,请检查后重传" | 按规范修正文件结构 |
| 正文结构非法 | 表单/文件正文不满足技能结构要求 | "技能内容结构有误,请检查必填段落是否完整" | 按提示补全/修正结构 |
> 校验失败时保存按钮始终置灰,已填内容不丢失;同一次提交存在多处错误时,逐项就地标红,不只报第一条。
@@ -1009,29 +1032,33 @@ flowchart LR
| 编号 | 需求(产品语言) |
|-|-|
-| FR-5.1 | Skill 管理页以单一列表(无分组)展示本租户自定义技能,每项显示名称、描述、启用/停用状态(迁移项带「由 SOP 迁移」标识) |
-| FR-5.2 | 列表区提供按名称/描述的实时搜索,并可按启用状态筛选 |
+| FR-5.1 | Skill 管理页(位于「构建-工作台配置」日常 tab 的「技能管理」区,§4.8)以单一列表(无分组)展示本租户自定义技能,每项只显示**展示名称**、描述、启用/停用状态;不展示技能 ID,不作来源区分 |
+| FR-5.2 | 列表区提供按展示名称/描述的实时搜索,并可按启用状态筛选 |
| FR-5.3 | 详情区支持 Preview(渲染)与 Source(原文)双视图切换;含图技能在 Preview 中以引用形式展示图片 |
-| FR-5.4 | 支持通过"上传文件(点击/拖拽)"或"表单新建"两种方式创建技能,二者均经"即时校验 → 预览确认 → 保存生效"流程 |
-| FR-5.5 | 创建/编辑时即时校验:名称合法性与长度、重名、描述长度、必填、文件大小(≤10MB)、文件格式与正文结构;失败就地标红并给出修正指引,保存按钮置灰 |
+| FR-5.4 | 支持通过"上传(点击/拖拽,支持单个 .md、.zip / .skill 压缩包、文件夹——压缩包/文件夹须含 SKILL.md,可携带附属文件)"或"表单新建"两种方式创建技能,二者均经"即时校验 → 预览确认 → 保存生效"流程;上传热区常驻文件要求说明 |
+| FR-5.5 | 创建/编辑时即时校验:展示名称与技能 ID 的合法性/长度/重名、描述长度、必填、文件大小(整包 ≤10MB)、压缩包含 SKILL.md、文件格式与正文结构;失败就地标红并给出修正指引,保存按钮置灰 |
| FR-5.6 | 支持对本租户自定义技能进行编辑、删除(二次确认)、启用/停用(列表开关一键切换) |
| FR-5.7 | 新建/上传的技能默认启用 |
| FR-5.8 | 系统管理员不在默认视角管理任何租户技能;如需维护某租户技能须先 admin-scope 切入该租户,切入后权限同该租户管理员 |
| FR-5.9 | 管理页对技能的新建/启用/停用/删除即时反映到终端用户输入区的可见技能列表 |
| FR-5.10 | 提供空态、加载、校验中、校验失败、保存失败等界面状态及对应引导/反馈文案 |
| FR-5.11 | 自定义技能仅本租户可见可管理,不跨租户串用(隔离细则见 §4.7);内核 built-in skill 不在本页出现、不纳入管理 |
+| FR-5.12 | 技能具备「展示名称」(用户可读,支持中文,前端一律展示它)与「技能 ID」(小写字母/数字/单连字符,系统级唯一标识)双字段;新建时技能 ID 由展示名称自动转拼音生成、可修改,并提供「重新生成」 |
+| FR-5.13 | 新建/编辑表单的输入框底纹词(placeholder)与校验文案全部走 i18n(中/英/日),底纹词须含格式说明与示例值以增强引导 |
+| FR-5.14 | 技能为目录形态(bundle):除 SKILL.md 外可含脚本、参考资料等附属文件;含附属文件的列表项可展开为文件树浏览(对齐 Claude web Skills),详情区按选中文件渲染(SKILL.md 支持 Preview/Source,附属文件只读查看);表单编辑仅作用于 SKILL.md,更新附属文件经重新上传整包替换;启停/删除作用于整个技能目录 |
### 4.5.10 边界与异常(用户视角)
| 触发场景 | 用户看到 / 产品如何兜底 |
|-|-|
-| 上传文件超过 10MB | 即时拦截,提示"文件超过 10MB 上限,请精简后重传",不进入校验后续 |
-| 上传文件格式/结构不合规 | 即时拦截并指出不合规原因,列表不新增条目,已选文件可移除重选 |
-| 新建/编辑时名称与已有技能重名 | 就地提示"已存在同名技能,请换一个名称",保存置灰 |
+| 上传文件超过 10MB(含压缩包整包) | 即时拦截,提示"文件超过 10MB 上限,请精简后重传",不进入校验后续 |
+| 上传压缩包/文件夹缺 SKILL.md,或文件格式/结构不合规 | 即时拦截并指出不合规原因(缺什么、在哪),列表不新增条目,已选文件可移除重选 |
+| 新建/编辑时展示名称或技能 ID 与已有技能重名 | 就地提示"已存在同名技能 / 相同技能 ID,请换一个",保存置灰 |
| 校验存在多处错误 | 逐项就地标红,不只报第一条;改正一项即时复校该项 |
| 保存瞬间网络/服务异常 | 提示"保存失败,请重试",已填表单/已选文件内容不丢失,可直接重试 |
| 删除某自定义技能后,终端用户本轮已勾选它 | 用户输入区给"该技能已不可用,已自动移除"轻提示,不阻塞其提交其余上下文 |
| 停用某自定义技能时它正被多名用户选用 | 停用即时生效,相关用户下次组装时不再可见;已组装未提交者按上一条兜底提示 |
+| 技能含附属文件(bundle) | 列表项展开文件树浏览;附属文件只读查看,编辑入口仅作用于 SKILL.md;更新附属文件需重新上传整包替换(保持同一技能 ID) |
| 自定义技能列表为空 | 显示空态引导,指向"上传/新建" |
| 搜索/筛选无结果 | 显示"未找到匹配的技能",并提供一键清除筛选条件 |
| 列表/详情加载缓慢或失败 | 显示骨架占位;加载失败给"加载失败,点击重试",操作按钮在加载完成前不可点,避免误操作 |
@@ -1046,75 +1073,55 @@ flowchart LR
| 角色 | 升级后能感知到什么 | 在哪里看到 | 是否需要操作 |
|-|-|-|-|
-| 租户管理员 | 管理页新增一批由旧 SOP 转换来的技能,带「由 SOP 迁移」来源标识;首次进入有一份迁移对账报告,列出成功/失败/跳过项 | 技能管理页 + 迁移对账报告入口 | 仅对失败/跳过项需人工处理,其余无需操作 |
-| 终端用户 | 历史的 SOP 会话仍可打开查看(只读);新发起的任务里不再有「SOP」入口,改用「+技能」组装上下文 | 历史任务列表 + 统一输入区 | 无需操作;新任务改用技能选择 |
+| 租户管理员 | 技能管理列表中出现由旧 SOP 转换来的技能,**与手动新建技能一致呈现(不作来源区分、无任何迁移提示/报告界面)**,可直接查看/编辑/启停 | 技能管理(§4.5) | 无需操作;失败/跳过项由运维按脚本迁移摘要联动处理(§4.6.2) |
+| 终端用户 | 历史的 SOP 会话仍可打开查看(只读);新发起的任务里不再有「SOP」入口,改用「+ → 添加 Skill」组装上下文 | 历史任务列表 + 统一输入区 | 无需操作;新任务改用技能选择 |
| 系统管理员 | 本次迁移只针对各租户私有 SOP,与系统管理员职责无关;内核 built-in skill 不参与迁移 | —(无需进入管理页) | 无需操作 |
-### 4.6.2 租户管理员:首次进入管理页的迁移结果
+### 4.6.2 迁移结果核对(运维侧,无管理页报告)
-升级完成后,租户管理员**首次**进入技能管理页时会看到一条迁移结果提示条,引导其查看对账报告。迁移来的技能在列表中带有明确的「由 SOP 迁移」来源标识,与管理员手动新建的技能在视觉上可区分。
+> 产品决策:迁移结果**不做管理页内的提示条 / 对账报告 / 待办消除等产品化界面**。核对收口在**运维侧**——迁移脚本结束时输出一份**迁移摘要**(stdout + JSON 文件,按 成功 / 失败 / 跳过 三类列出每条 SOP 的结果与可读原因),由运维核对并在需要时联动租户管理员处理。
-```Plaintext
-flowchart TD
- A[升级完成后 租户管理员
首次进入技能管理页] --> B[页面顶部出现
迁移结果提示条]
- B --> C[点击 查看迁移对账报告]
- C --> D{对账报告
按状态分组}
- D --> E[成功项
已转为技能 带 由SOP迁移 标识]
- D --> F[失败项
转换未成功 附原因]
- D --> G[跳过项
超大SOP等 未处理 附原因]
- E --> H[可直接在管理页
查看/编辑/启停]
- F --> I[人工处理路径:
查看原因→修正后重建为技能]
- G --> J[人工处理路径:
超大SOP拆分后
重新上传为技能]
- I --> K[处理完成项
从待办中消除]
- J --> K
- K --> L[对账报告可重复进入
直到待办清零]
-```
-
-> 📎 **draw.io 源文件**:4.6.2-迁移结果对账.drawio
-
-迁移对账报告是管理员核对「老的有没有都搬过来」的唯一可信入口,三类状态各自交代清楚:
-
-| 状态 | 含义(用户视角) | 管理员可做的事 |
+| 状态 | 含义 | 处理路径 |
|-|-|-|
-| 成功 | 旧 SOP 已转为同名/对应技能,带「由 SOP 迁移」标识,立即可用 | 查看、编辑、启停,与普通自定义技能一致 |
-| 失败 | 转换过程未成功(如内容结构无法识别) | 查看失败原因;按提示修正后,手动重建为技能 |
-| 跳过 | 主动未处理(如单个 SOP 体量过大、超出技能容量上限) | 查看跳过原因;将超大 SOP 拆分为多个较小技能后重新上传 |
+| 成功 | 旧 SOP 已转为对应技能(展示名称 = SOP 原名,技能 ID 为其拼音),立即可用 | 无需处理;管理员可在技能管理中查看、编辑、启停,与普通自定义技能一致 |
+| 失败 | 转换过程未成功(如内容结构无法识别) | 运维按摘要中的原因联动管理员:修正内容后在管理页**手动重建**为技能 |
+| 跳过 | 主动未处理(如单个 SOP 体量过大、超出技能容量上限) | 运维按摘要联动管理员:将超大 SOP **拆分**为多个较小技能后经管理页重新上传 |
+
+脚本幂等可重跑:异常项处理后再次运行仅补齐缺失项,已迁移项不重复产生。
### 4.6.3 终端用户:历史会话兼容与新会话入口
终端用户不参与迁移操作,但需要对「老会话还能不能看、新任务怎么发」有清晰预期:
- **历史 SOP 会话只读兼容**:升级前用 SOP 跑过的历史任务会话,仍保留在历史任务列表中,可打开**查看**已产生的对话与产物,作为留存记录;但历史会话内不可再「续跑」基于旧 SOP 的逻辑,也不再出现旧的 SOP 操作入口。
-- **新会话改用技能**:升级后新发起的任务,统一输入区里**不再有「SOP」入口**;用户改用「+」菜单里的「技能」来组装本轮上下文(激活规则见 §4.1:勾了才用、不勾不用)。迁移来的技能若已由租户管理员保留启用,会正常出现在用户的可见技能列表中。
-- **认知引导**:在历史会话只读态与首次进入新输入区时,给一句轻量说明——「原来的 SOP 已升级为『技能』,可在输入框点『+ 技能』选用」,帮助用户把旧习惯平滑映射到新入口。
+- **新会话改用技能**:升级后新发起的任务,统一输入区里**不再有「SOP」入口**;用户改用「+」菜单里的「添加 Skill」来组装本轮上下文(激活规则见 §4.1:勾了才用、不勾不用)。迁移来的技能若已由租户管理员保留启用,会正常出现在用户的可见技能列表中。
+- **认知引导**:在历史会话只读态与首次进入新输入区时,给一句轻量说明——「原来的 SOP 已升级为『技能』,可在输入框点『+ → 添加 Skill』选用」,帮助用户把旧习惯平滑映射到新入口。
### 4.6.4 FR 需求表
| 编号 | 需求描述(产品语言) |
|-|-|
| FR-6.1 | 升级时,各租户的私有 SOP 一次性转换为本租户自定义技能;内核 built-in skill 不参与转换。整个过程在后台完成,无需任何角色手动触发。 |
-| FR-6.2 | 迁移来的技能在管理页须带「由 SOP 迁移」来源标识,与管理员手动新建的技能视觉可区分。 |
-| FR-6.3 | 租户管理员首次进入技能管理页时,须看到迁移结果提示条,并能进入一份迁移对账报告。 |
-| FR-6.4 | 对账报告须按「成功 / 失败 / 跳过」三类分组列出每个 SOP 的转换结果,并对失败、跳过项给出可读原因。 |
-| FR-6.5 | 成功迁移的技能须可被租户管理员像普通自定义技能一样查看、编辑、启停。 |
-| FR-6.6 | 对失败、跳过项,须提供人工处理路径:失败项可修正后重建为技能;超大 SOP(跳过项)可拆分后重新上传为技能。 |
-| FR-6.7 | 对账报告须可重复进入,已处理项从待办中消除,便于管理员核对到全部清零。 |
-| FR-6.8 | 终端用户的历史 SOP 会话须保留为只读可查(对话与产物可见),但不再提供旧 SOP 操作入口、不可续跑旧逻辑。 |
-| FR-6.9 | 升级后新发起的任务,统一输入区不再出现「SOP」入口;用户改用「+技能」组装上下文。 |
-| FR-6.10 | 在历史只读会话及新输入区,须给出轻量认知引导,说明「SOP 已升级为技能、改从『+技能』选用」。 |
-| FR-6.11 | 本次为一次性切换、不与旧引擎并存;须在迁移结果提示中明确告知用户「旧 SOP 入口已下线」,避免用户继续寻找旧入口。 |
+| FR-6.2 | 迁移来的技能与管理员手动新建的技能**一致呈现、一致管理,不作来源区分**(来源信息仅作为内部溯源数据保留,不暴露前端);展示名称沿用 SOP 原名,技能 ID 由原名转拼音生成。 |
+| FR-6.3 | 迁移脚本须输出迁移摘要(stdout + JSON 文件,运维产物):按「成功 / 失败 / 跳过」三类列出每个 SOP 的转换结果,并对失败、跳过项给出可读原因;**不提供管理页内的提示条 / 对账报告 / 待办界面**。 |
+| FR-6.4 | 成功迁移的技能须可被租户管理员像普通自定义技能一样查看、编辑、启停。 |
+| FR-6.5 | 对失败、跳过项,处理路径为:运维按迁移摘要联动租户管理员——失败项修正后在管理页手动重建为技能;超大 SOP(跳过项)拆分后经管理页重新上传。脚本幂等可重跑,不重复产生已迁移项。 |
+| FR-6.6 | 终端用户的历史 SOP 会话须保留为只读可查(对话与产物可见),但不再提供旧 SOP 操作入口、不可续跑旧逻辑。 |
+| FR-6.7 | 升级后新发起的任务,统一输入区不再出现「SOP」入口;用户改用「+ → 添加 Skill」组装上下文。 |
+| FR-6.8 | 在历史只读会话及新输入区,须给出轻量认知引导,说明「SOP 已升级为技能、改从『+ → 添加 Skill』选用」。 |
+| FR-6.9 | 本次为一次性切换、不与旧引擎并存;旧 SOP 入口(含管理端「灵思指导手册库」,§4.8)随升级整体下线。 |
### 4.6.5 边界与异常
| 触发场景 | 用户看到什么 / 产品如何兜底 |
|-|-|
-| 部分 SOP 迁移失败 | 不静默丢弃。管理员在对账报告「失败」分组中看到具体哪些 SOP 未成功及原因,并有「修正后重建为技能」的处理路径;待办项保留直到处理。 |
-| 超大 SOP 被跳过 | 在「跳过」分组中明确提示「该 SOP 体量过大,已跳过」,并引导「拆分为多个较小技能后重新上传」,而非让用户误以为已迁移成功。 |
-| 迁移后技能重名 | 当转换来的技能与管理员已有的自定义技能同名时,给出可识别的区分(如保留来源标识 + 标注「迁移」后缀或冲突提示),不直接覆盖管理员原有技能;管理员可在管理页自行改名或合并。 |
+| 部分 SOP 迁移失败 | 不静默丢弃。失败项及原因记录于脚本迁移摘要(运维产物),由运维联动租户管理员「修正后在管理页重建为技能」;脚本可重跑补齐。 |
+| 超大 SOP 被跳过 | 迁移摘要中明确标注「该 SOP 体量过大,已跳过」及原文长度,由运维联动管理员「拆分为多个较小技能后重新上传」,而非让其误以为已迁移成功。 |
+| 迁移后技能重名 | 同租户内转换结果重名时自动加后缀去重(技能 ID 追加 `-2/-3`,展示名称追加「(2)」),不直接覆盖管理员原有技能;管理员可在管理页自行改名或合并。 |
| 升级前正在进行中的任务会话 | 迁移仅作用于 SOP 定义本身,不打断正在跑的任务;进行中的会话按原逻辑继续直至结束,结束后归入历史会话(只读兼容)。若升级窗口内任务被中断,按 §4.3 的失败兜底处理,用户可在新框架下用技能重新发起。 |
-| 终端用户打开历史 SOP 会话后想「再跑一次」 | 历史会话为只读,不提供续跑入口;给出引导「请在输入框用『+技能』重新发起新任务」,避免用户在只读界面反复尝试。 |
-| 用户升级后仍在找旧的「SOP」入口 | 因一次性切换、不并存,新输入区与历史会话均给出明确说明「SOP 已升级为技能」,并指向「+技能」入口,避免用户误判为功能丢失。 |
-| 租户私有 SOP 为空(无可迁移项) | 管理员首次进管理页不出现迁移提示条,或对账报告显示「无可迁移的 SOP」,不打扰,自定义技能列表按空态引导(去创建,见 §4.5)。 |
+| 终端用户打开历史 SOP 会话后想「再跑一次」 | 历史会话为只读,不提供续跑入口;给出引导「请在输入框用『+ → 添加 Skill』重新发起新任务」,避免用户在只读界面反复尝试。 |
+| 用户升级后仍在找旧的「SOP」入口 | 因一次性切换、不并存,新输入区与历史会话均给出明确说明「SOP 已升级为技能」,并指向「+ → 添加 Skill」入口,避免用户误判为功能丢失。 |
+| 租户私有 SOP 为空(无可迁移项) | 管理员侧无任何迁移痕迹(本就无提示条/报告界面),自定义技能列表按空态引导(去创建,见 §4.5);脚本摘要中该租户计数为 0。 |
---
@@ -1257,7 +1264,39 @@ flowchart TD
---
-## 4.8 配套技术实现索引
+## 4.8 工作台配置合并(管理端)
+
+> 背景:本次改版**弱化「灵思」独立概念**——终端入口收敛为输入区「+」菜单中的「任务模式」(§4.1.2/§4.1.3),管理端随之取消「构建 - 工作台配置」中的「灵思」独立 tab,其配置项并入「日常」tab。升级后工作台配置 tab 为:日常 / 订阅 / 知识空间。
+
+### 4.8.1 原「灵思」tab 配置项去向
+
+| 原灵思 tab 配置项 | 去向 | 说明 |
+|-|-|-|
+| 灵思入口开关 | **移除** | 任务模式入口授权改由「系统 - 角色管理 - 可见菜单」的「首页 → 任务模式」开关统一控制(§4.7.7),不再有租户级总开关 |
+| 灵思模式展示名称 | 保留,并入日常 tab | 更名「**任务模式展示名称**」;存量配置值沿用 |
+| 输入框提示语 | 保留,并入日常 tab | 更名「**任务模式输入框提示语**」;存量配置值沿用,任务模式下输入框占位文案取此值(§4.1.1) |
+| 灵思可选工具 | **废弃移除,改为共用日常 tab 既有「可用工具」配置** | 任务模式与日常对话直接共用日常 tab 的「可用工具」这一份配置(不新增配置项、**不做配置数据合并/迁移**);原灵思可选工具配置随 tab 移除作废;用户在输入区工具栏按轮选用(§4.1.5) |
+| 灵思指导手册库(SOP 管理) | **升级为「技能管理」** | 原 SOP 列表(从运行记录导入 / 从本地文件导入 / 新建指导手册 / 精选)整体下线,由技能管理(§4.5)替代;存量 SOP 经迁移脚本转为技能(§4.6) |
+
+### 4.8.2 FR 需求表
+
+| 编号 | 需求描述(产品语言) |
+|-|-|
+| FR-8.1 | 「构建 - 工作台配置」不再展示「灵思」独立 tab;其保留配置项并入「日常」tab,升级后不丢失存量配置值。 |
+| FR-8.2 | 「灵思入口开关」随 tab 合并移除;任务模式入口的开闭统一由角色可见菜单(首页 → 任务模式)控制(§4.7.7)。 |
+| FR-8.3 | 「展示名称」「输入框提示语」更名为「任务模式展示名称」「任务模式输入框提示语」,配置语义与生效位置不变。 |
+| FR-8.4 | 「灵思可选工具」配置废弃移除;任务模式直接共用日常 tab 既有「可用工具」配置(同一份配置项),不做配置数据迁移。 |
+| FR-8.5 | 原「灵思指导手册库」区域整体替换为「技能管理」(§4.5);SOP 管理相关入口与操作不再出现。 |
+
+### 4.8.3 边界与异常
+
+| 触发场景 | 产品如何兜底 |
+|-|-|
+| 升级前租户已关闭「灵思入口开关」 | 开关移除后以**角色可见菜单**为准:存量回填只给「可进工作台」的角色补「任务模式」菜单(§4.7.7);如租户原本整体关闭灵思,需管理员在角色编辑器中关闭对应角色的「任务模式」菜单达到同等效果 |
+| 原灵思可选工具中存在、而日常「可用工具」未配置的工具 | 升级后默认不可用(以日常「可用工具」为准,不自动迁移);如需保留,管理员在「可用工具」中手动添加,升级说明中明确提示 |
+| 管理员在旧文档/习惯中寻找「灵思」tab | 不提供旧 tab 残留入口;版本说明与升级公告中明确「灵思配置已并入日常 tab,指导手册已升级为技能管理」 |
+
+## 4.9 配套技术实现索引
本章聚焦产品与交互;下列工程实现详见《技术方案:灵思 Linsight 迁移 deepagents 适配层设计》。
@@ -1268,10 +1307,11 @@ flowchart TD
| §4.2 附件上传与按需处理(offload-first) | 技术方案 §9 附件上传与 Context Engineering |
| §4.3 任务执行可视化(流式过程、排队态、工具步骤文案) | 技术方案 §2 内核替换、§3 执行事件流映射(含历史消息压缩) |
| §4.4 人机协同 HITL(中断现场持久化、可随时续跑) | 技术方案 §4 HITL 技术实现(含 Redis checkpointer) |
-| §4.5 Skill 管理页 | 技术方案 §7 Skill 存储与中间件 |
-| §4.6 存量迁移体验 | 技术方案 §8 存量迁移脚本 |
+| §4.5 Skill 管理页(展示名称/技能 ID 双字段、多形态上传) | 技术方案 §7 Skill 存储与中间件 |
+| §4.6 存量迁移体验(脚本摘要为运维产物) | 技术方案 §8 存量迁移脚本 |
| §4.7 权限与可见性 | 技术方案 §6 多租户与权限落位 |
| §4.7.7 任务模式菜单权限(首页·任务模式独立授权) | 技术方案 §6.7 任务模式菜单权限落位 |
+| §4.8 工作台配置合并(灵思 tab 并入日常、工具共用日常「可用工具」、指导手册库→技能管理) | 技术方案 §2.7 模型选择(配置收敛同向)、§7 Skill;工作台配置 schema 清理随实现补充 |
---
diff --git a/src/frontend/client/index.html b/src/frontend/client/index.html
index 4e0677b821..99557abb3d 100644
--- a/src/frontend/client/index.html
+++ b/src/frontend/client/index.html
@@ -58,6 +58,16 @@
height: 100vh;
background-color: ${backgroundColor};
}
+
+ #loading-container img {
+ width: 80px;
+ height: 80px;
+ object-fit: contain;
+ }
+
+ #loading-container img:not([src]) {
+ display: none;
+ }
`;
document.head.appendChild(loadingContainerStyle);
@@ -66,8 +76,33 @@