工作区(Workspace)
用多工作区把不同项目、客户或研究主题隔离——文件树 + 文档标签页 + 共享 AI 上下文。
Workspace 是什么
Workspace 是 VizChat 里最外层的组织单位。一个 Workspace 包含:
- 一棵文件树(FileTree),存 PDF、图片、书签、画布文档
- 一组画布 / 文档,每一个都是独立的二维工作空间
- 一份共享 AI 上下文——Agent 在同一 Workspace 内可读取其他文档做跨文件推理
你可以按"项目 / 客户 / 研究主题 / 季度"维度建多个 Workspace,彼此隔离——一个 Workspace 的文件和对话不会出现在另一个的 AI 上下文里。
界面布局
登录后进入的默认视图是一个三栏结构:
| 面板 | 内容 |
|---|---|
| 左侧栏 | WorkspaceSwitcher(切工作区)+ FileTree(文件树) |
| 中央区域 | AI 对话面板 |
| 右侧栏 | WorkbenchTabBar + 当前打开的文档(画布 / PDF / 富文本) |
文件树支持:
- 拖拽上传文件 → 自动用
document_parser解析 - 新建书签 → 在弹窗里粘贴 URL → 创建书签预览
- 新建文件夹 → 组织大量文件
- 重命名、移动、删除
WorkbenchTabBar
中央区域顶部是一排标签页,每个打开的文档对应一个 tab——类似 VS Code / 浏览器的多标签。点击 FileTree 里的文档会在 tab 里打开,openWorkbenchItems 和 activeWorkbenchItemKey 由 workspace-slice 的 zustand store 管理。
Tab 支持:
- 右键菜单:关闭、关闭其他、关闭全部、在文件树中显示
- 同名自动消歧——不同目录下的同名文件同时打开时,tab 上会在文件名右侧补一段目录,且只补区分得开所需的最短那段(不限于末段),被省掉的部分用
…标出:…/inline/…。完整路径在 tab 的 tooltip 里 - 关闭时状态持久化——下次打开工作区会恢复上次的 tab 列表
各文档类型的渲染器
根据文档的 type 字段,不同渲染器会被挂载。类型与渲染器的对应关系由前端的 workbench 类型注册表一行一条地列出(src/lib/workbench/registry.ts),新增文档类型 = 建一个渲染器目录 + 在那里加一行:
storyboard/dashboard—— 画布,host 内嵌 cross-origin 的 canvas-iframetext/parsable_document—— 文本与可解析文档(Markdown 编辑器、PDF / Office 预览)image/media/bookmark—— 图片、音视频、URL 嵌入
多 Workspace 的典型用法
场景 1:咨询公司,按客户分
📁 Workspace: Acme Corp
📁 季度汇报
📄 Q1-dashboard.dsb
📄 Q2-storyboard.stb
📄 竞品分析.pdf
📁 Workspace: Beta Inc
📄 用户调研访谈纪要.docx
📄 留存模型.stb两个客户的 AI 对话互不污染——问 "我们上季度销售" 时 Agent 只看当前 Workspace。
场景 2:研究生,按课程分
📁 Workspace: 机器学习课
📄 论文笔记/
📄 作业画布
📁 Workspace: 毕设
📄 文献综述.stb
📄 实验数据/场景 3:个人知识库
一个默认 Workspace 存所有内容——适合轻量用户,不想管理多工作区。
Workspace 共享(规划中)
当前 VizChat 以单人使用为主,Workspace 共享与多人协作在 roadmap 中。单文档分享已完成设计但尚未上线,详见 分享 中的规划模型与当前可用的替代方案。