GUI Work 板块
桌面端 Work 模式、我的工作流、工作流会话、预设插件和自定义技能的使用说明。
是什么
CrabCode 桌面端顶部有 Code / Work 两种工作空间模式。
| 模式 | 适合做什么 | 左侧栏重点 |
|---|---|---|
| Code | 绑定具体项目目录,做代码修改、测试、Git、文件浏览 | 项目、项目会话、未指定目录会话 |
| Work | 不绑定单一项目,按工作流组织跨项目任务 | 我的工作流、工作流会话、未建工作流对话 |
Work 模式不是独立账号,也不是云端空间。它仍然使用本机 App Server、同一份登录、同一套模型、插件、MCP、权限和记忆。
进入 Work
在桌面端左上或标题栏区域切到 Work。左侧项目树会切换成「我的工作流」:
- 财务工作流:发票识别、对账、报销、台账等。
- 法律工作流:合同审查、数据合规、劳动用工等。
- 办公工作流:文档、表格和日常办公自动化。
- 自定义:由你本机文件型技能自动组成的工作流。
- 未建工作流对话:没有归属到某个工作流的管家会话。
预设工作流入口会先出现;真正的能力卡来自已安装的官方插件和 marketplace 数据。未安装时点击入口会引导你去插件页安装对应官方插件,不会伪造不可用能力。
工作流会话怎么归类
Work 里的会话本质上是管家会话。CrabCode 用 threadWorkflowMap 记录“这个会话属于哪个工作流”。
| 入口 | 归类结果 |
|---|---|
| 点击某个工作流右侧的新建会话按钮 | 新会话归到该工作流下 |
| 在某个工作流能力卡中带入技能并发送 | 当前会话保持在该工作流语境 |
| 点击“新建工作流会话”或顶部管家入口 | 进入未归属会话,显示在「未建工作流对话」 |
| 卸载某个工作流 | 历史会话不删除;重新挂载后可再次归位 |
Work 模式的工作目录是本机状态目录下的 workspaces/butler。Code 模式无项目时有单独的 workspaces/unspecified。两者隔离,避免无目录 Code 会话误跑到 Work 里,也避免 Work 会话拿到项目 cwd。
能力卡和技能带入
进入某个工作流后,中间区域会显示能力卡。能力卡有三种状态:
| 状态 | 含义 | 点击后 |
|---|---|---|
| 可带入 | 插件或技能已安装并启用 | 把 @技能 或模板片段带入输入框 |
| 已禁用 | 插件/技能已安装但未启用 | 跳到插件或技能管理页启用 |
| 未安装 | 预设工作流需要的官方插件未安装 | 跳到插件页安装 |
能力卡只展示真实来源:官方 marketplace、已安装插件、已启用技能或本机自定义技能。
新增和卸载工作流
左侧「我的工作流」右上角的 + 用来打开能力库并挂载更多工作流。挂载只是把入口加入侧栏,不会复制或删除插件。
卸载工作流只会把它从「我的工作流」里移除:
- 不删除插件。
- 不删除技能。
- 不删除历史会话。
- 自定义工作流被你卸载后,系统会记住这个意图;以后生成新自定义技能时只提示你重新挂载,不会强行自动加回侧栏。
自定义工作流
当你通过 skill creator 或手工方式添加用户级 / 项目级技能后,GUI 会从已安装技能中派生「自定义」工作流:
| 技能位置 | 作用域 |
|---|---|
~/.crabcode/skills/<name>/SKILL.md | 用户级,所有项目可用 |
<repo>/.crabcode/skills/<name>/SKILL.md | 项目级,只在该项目语境可用 |
至少有一个本机文件型技能时,「自定义」会自动挂载;如果此前被你显式卸载,则只弹提示,不自动打扰。
与 Code 的边界
| 问题 | 规则 |
|---|---|
| Work 会不会改当前项目文件 | 只有当你明确引用项目、授权工具或让它进入项目上下文时才会改;普通 Work 管家会话默认落在 butler 工作区 |
| Code 无项目发消息会去哪 | 落到 workspaces/unspecified,不会混进 Work 的 butler 会话 |
| 切 Code / Work 会不会丢当前位置 | GUI 分别记住 Code 和 Work 的导航快照,切回来会回到各自上次位置 |
| Work 能不能用插件、MCP、浏览器和自动化 | 可以,仍走同一套 App Server 能力和权限边界 |
常见问题
| 现象 | 处理 |
|---|---|
| Work 里只有空工作流,没有能力卡 | 去「插件/技能」安装或启用对应官方插件 |
| 点击预设工作流后跳到插件页 | 这是正常安装引导;装好官方插件后回到 Work |
| 生成了自定义技能但没看到自定义工作流 | 检查技能是否启用;如果你曾卸载自定义工作流,点击 + 重新挂载 |
| 会话进了「未建工作流对话」 | 该会话没有工作流归属;从具体工作流的新建按钮创建会自动归类 |
| 卸载工作流后历史会话不见了 | 会话未删除;重新挂载同一工作流后会重新归位,未归属的会话在「未建工作流对话」 |