deerflow-code/frontend-web/docs/xvqiu-0616.md
2026-09-07 18:24:55 +08:00

10 KiB
Raw Permalink Blame History

需求文档 · 问答中心左侧栏改造(0616)

整理自 2026-06-16 需求草稿。本批需求统一围绕「问答中心」菜单下 5 个页面入口的左侧侧边栏进行改造,目标是让每个业务页面的左栏从「通用导航」变为「贴合该业务场景的快捷入口 + 历史记录」。

菜单结构参考:frontend-web/src/core/page-layout/sidebar-menu.ts 中 qa-center(问答中心)分组,含 5 个子项,正好对应下文 5 条需求。

0. 背景与共性约定

需求 菜单项 id 现有路由 对应页面/组件
1 通用问答 general-qa /page/workspace/chats/new Workspace Chat + 左栏(recent-chat-list.tsx 等)
2 多智能体会商 multi-agent-roundtable /page/strategy/qa/multi-agent-roundtable roundtable-planning/pages/RoundtablePlanningPage.tsx
3 zzJC支持 qa-zzjc /page/strategy/agents/6bf/chats/new pages/AgentChatPage.tsx
4 zzXD应用 qa-zzxd /page/strategy/agents/10d69686718349688e58a8790cb61024/chats/new pages/AgentChatPage.tsx
5 课题研究 qa-research /page/canvas/ai-writing open-canvas/pages/AIWritingPage.tsx

共性约定(适用于全部 5 条,除非单条另有说明):

  • 「更多」一律为可点击入口;点击后跳转到对应的完整列表/管理页(具体目标见各条「待确认」)。
  • 列表为空时的兜底:参考各条「现状」中的级联/空态规则;无内容时该区块整体隐藏或显示占位文案(待 UI 设计确认,默认隐藏,与现有 recent-chat-list.tsx 一致)。
  • 左栏宽度、折叠交互沿用现有侧边栏体系(SidebarGroup 系列组件)。
  • 所有「智能体」相关数据复用 core/agents(Agent 类型已含 is_pinned / is_favorite / featured_order,scope 支持 mine / square / builtin)。

1. 通用问答 — 左侧栏改造

页面:/page/workspace/chats/new

1.1 现状

当前左栏主要展示「最近会话」列表(recent-chat-list.tsx,已过滤 scheduler / bootstrap / roundtable 类型线程,置顶会话优先)。

1.2 目标布局(自上而下)

左栏从上到下依次为三块:新建回答按钮 → 常用智能体 → 聊天记录。

① 顶部:新建回答

  • 左栏最顶部放置「新建回答」按钮(主操作)。
  • 点击 = 开启一次全新的通用问答会话(等价于跳转 /page/workspace/chats/new)。

② 常用智能体(最多 3 个 + 更多)

  • 展示「常用智能体」卡片/列表项,最多 3 个。
  • 数据来源采用级联兜底逻辑(取到即用,不足再降级):
    1. 若用户有置顶智能体(is_pinned = true)→ 展示置顶的;
    2. 否则展示用户自己的智能体(scope = "mine");
    3. 仍没有 → 展示默认广场智能体(scope = "square" / builtin,即广场默认推荐)。
  • 三者按上述优先级取,最终最多取 3 个。
  • 下方显示「更多」入口。
  • 点击某个常用智能体 → 进入该智能体的对话(待确认:是否为该智能体新建会话)。

③ 聊天记录(最多 10 条 + 更多)

  • 展示用户的问答聊天记录,最多 10 条(沿用现有 useThreads + 过滤规则)。
  • 下方显示「更多」入口。
  • 点击「更多」→ 跳转到问答记录页面(完整聊天记录列表页)。

1.3

  • 「常用智能体」点击后「打开该智能体主页」
  • 「常用智能体」的「更多」跳转目标页 智能体管理 /page/strategy/agents。
  • 「聊天记录」的「问答记录页面」具体路由http://localhost:5173/#/page/workspace/chats。
  • 级联兜底是(置顶组够 3 个就完全不展示我的/广场)如果不够「补足到 3 个

2. 多智能体会商 — 左侧栏重做

页面:/page/strategy/qa/multi-agent-roundtable(RoundtablePlanningPage)

2.1 现状

圆桌会商页已有业务链选择、分析草稿等能力(roundtable-planning/api/chains.ts、hooks/useRoundtableDrafts.ts)。需求要求左栏整体重做。

2.2 目标布局(自上而下)

① 顶部:业务链(公共,前 3 个)

  • 顶部展示业务链,仅取公共链条(listChains("public"),即所有已发布 is_public = true 的链条)。
  • 仅展示前 3 个。
  • 点击某条业务链 → 以该业务链启动一次会商(沿用现有"会商自动串联圆桌"流程,见记忆 business-chain-mapping)。

② 下方:分析记录

  • 业务链下方展示「分析记录」列表。
  • 数据来源:圆桌分析草稿/历史(useRoundtableDrafts / listDrafts)。
  • 点击某条分析记录 → 打开对应的历史会商分析。

2.3 待确认

  • 「业务链」是否需要「更多」入口跳转到业务链条配置页(/page/strategy/business-chains)?需求未提及,默认仅展示前 3 个、无更多。 需要更多入口
  • 「分析记录」是否需要分页/「更多」?需求未提及,默认展示全部或合理上限 分析记录默认全部吧。
  • 公共业务链「前 3 个」的排序口径(创建时间倒序?已有 listChains 默认 newest first) 按照现在默认的显示来吧,然后要支持用户单选,如果用户选择后,点击进入多智能体研讨按钮时,直接按照选择的业务链进去执行,如果用户取消勾选,或没有勾选就还是打开弹窗。

3. zzJC支持 — 左侧栏改造(按类型聚合智能体)

页面:/page/strategy/agents/6bf/chats/new(当前为单一智能体 6bf 的对话页)

3.1 现状

当前 zzJC支持直接进入某个固定智能体(id=6bf)的对话页(AgentChatPage)。

3.2 目标布局

  • 左栏按「类型」分组,展示该类型下的智能体列表("类型"待确认,推测为智能体 tags / 分类)。
  • 智能体分组下方展示聊天记录。
  • 左栏宽度与通用问答(需求 1)保持一致("左侧是问答宽")。

3.3 Admin 设置入口

  • 在 admin 账号权限下,页面右侧顶部显示「设置」图标按钮(齿轮图标)。
  • 点击设置按钮 → 打开设置面板,可对该模块进行配置。
  • 非 admin 账号不显示设置按钮(沿用 sidebar-menu.ts 中 adminOnly 同款角色判断)。

3.4 待确认

  • 「类型」的确切含义:是智能体的 tags,还是 zzJC 业务自定义的一组分类?
  • 现 zzJC 入口是单个智能体 6bf;改为「按类型展示多个智能体」后,进入该菜单时默认落地页是什么(智能体列表?还是仍默认进 6bf 对话)?是否需要新建一个 zzJC 聚合页。
  • Admin「设置」具体可配置项:配置「该模块纳入哪些类型/哪些智能体」?还是其他(如默认智能体、欢迎语)?需明确设置项清单。
  • 「聊天记录」过滤范围:仅 zzJC 相关会话,还是全部会话?

4. zzXD应用 — 左侧栏改造

页面:/page/strategy/agents/10d69686718349688e58a8790cb61024/chats/new

4.1 需求

与需求 3(zzJC支持)完全一致:

  • 左栏按类型展示该类型下的智能体 + 下方聊天记录;
  • 左栏宽度同通用问答;
  • admin 账号下右侧顶部显示设置图标按钮,可设置。

4.2 待确认

  • 同需求 3 全部待确认项。
  • zzXD 与 zzJC 是否共用同一套「按类型 + 设置」组件(仅数据源/默认智能体不同),还是各自独立配置?建议抽象为同一可复用组件,通过参数区分。

5. 课题研究 — 左侧栏改造(研究模板 + 笔记本)

页面:/page/canvas/ai-writing(AIWritingPage)

5.1 目标布局(自上而下)

① 上半部分:研究模板

  • 左栏上半部分展示「研究模板」。
  • 研究模板 = 原来的「文章类型」(open-canvas/hooks/useArticleTypes.ts 的 articleTypes,即 AI 写作表单里的「文章类型」选择项)。
  • 点击某个研究模板 → 以该模板/文章类型发起课题研究(沿用现有 articleType 设置逻辑)。

② 下半部分:笔记本

  • 左栏下半部分展示「笔记本」。
  • 笔记本内容 = 「简洁模式」左侧菜单下方展示的笔记本内容(useStudioNotebooks,即 workspace-nav-studio.tsx 中渲染的 studio notebooks 列表)。
  • 点击某个笔记本 → 打开该笔记本(沿用现有 /page/workspace/studio/notebooks/{id} 行为,或作为课题研究的素材来源 materialSource = 'notebook',待确认)。

备注:草稿原文写作「简介模式」,结合代码应为「简洁模式」(appearance-settings-page.tsx 中的全局界面模式:全量 / 简洁;简洁模式下笔记本在左栏菜单展示)。

5.2 待确认

  • 「研究模板」点击行为:仅预填表单 articleType,还是直接开始生成?
  • 「笔记本」点击行为:跳转笔记本详情页,还是将笔记本设为当前课题研究的素材来源(materialSource='notebook')?
  • 上/下两部分是否各自可折叠、是否需要「更多」入口与数量上限?需求未提及。

6. 整体待确认与建议

  1. 复用性:需求 3 / 4(zzJC / zzXD)布局完全相同,建议实现为同一套「按类型分组 + 聊天记录 + admin 设置」可复用组件,通过配置区分模块。
  2. 左栏宽度统一:需求 1 / 3 / 4 都要求"问答宽",建议统一左栏宽度常量,避免各页面各写一套。
  3. 「更多」目标页:需求 1 涉及「智能体更多」「聊天记录更多→问答记录页」两个跳转目标需先确定路由是否已存在。
  4. Admin 设置项清单:需求 3 / 4 的设置面板具体能配置什么,需要产品给出字段清单后才能落地。
  5. 入口语义变更:需求 3 / 4 把原「单一智能体对话」入口改为「按类型聚合」,菜单 path 与默认落地页可能需要调整,需同步确认。