Workspace 架构
你正在调试一个后端 API。与此同时,前端同事希望你看一下一个 CSS 问题。还有一个基础设施告警要处理。
在大多数 AI 工具里,你要么把所有事都挤进一个混乱的对话,要么反复开新对话再丢失上下文。在 Helix 里,你只需要打开三个 Workspace,每个完全独立、零干扰。
Workspace 是 Helix 中最基础的执行边界。
为什么 Workspace 隔离很重要
工程师从来不会一次只做一件事。没有隔离,下面这些问题就会反复出现:
- 在同一个对话中讨论两个项目——AI 给出的代码建议指向了错误的仓库
- 工具配置冲突——前后端项目需要不同的 shell 环境与 LSP 配置
- 模型选择混乱——DeepSeek 在代码生成上更有性价比,Claude 在架构评审上更准确,但切换很麻烦
- 上下文交叉污染——后端调试的日志输出干扰了前端代码分析
Workspace 从根本上解决了这些问题:每个 Workspace 都是一个完全独立的执行沙箱。
每个 Workspace 独立持有的内容
| 隔离维度 | 描述 |
|---|---|
| 会话历史 | 每个 Workspace 独立维护自己的对话与消息历史 |
| 上下文状态 | Cache 与 Compact 策略按 Workspace 独立运行 |
| 工具配置 | Shell、文件系统、LSP 等内置 MCP server 按 Workspace 实例化 |
| 模型与 Profile | 每个 Workspace 可选择不同的默认模型与系统提示词 |
| MCP Servers | 用户自定义的 MCP server 按 Workspace 绑定 |
| SubAgent 任务 | SubAgent 在所属 Workspace 的边界内运行 |
也就是说:切换 Workspace 就像切换到完全不同的工位——干净、迅速、零上下文残留。
本地与远程 Workspace
Workspace 不仅限于本地目录。Helix 支持两种目标类型:
本地 Workspace
指向你机器上的一个项目目录。内置 MCP server(Shell、文件系统、LSP)直接操作本地文件与终端。
这是最常见的用法——打开你的代码仓库,开始工作。
远程 Workspace
通过 SSH 连接到远程服务器,命令与文件操作在远程机器上执行,而 UI 交互与会话管理保留在本地。
适用场景:
- 在服务器上调试生产环境
- 在 GPU 机器上监控模型训练
- 在远程代码库上工作,无需本地环境依赖
你可以在 Helix UI 中同时打开一个本地 Workspace 与一个远程 Workspace,用完全相同的交互模型操作两个截然不同的环境。
Workspace 生命周期
每个 Workspace 都有清晰的生命周期:
创建 / 连接
│
▼
惰性加载 Session Manager
│ (首次使用时初始化,避免启动开销)
│
▼
活跃使用
│ ├─ 多个会话并行
│ ├─ 工具调用与 SubAgent 执行
│ └─ Cache / Compact 持续维护上下文
│
├─ 用户手动断开
│ ▼
│ 保存状态,释放资源
│
└─ 长时间无活动
▼
空闲超时(默认 30 分钟)→ 自动关闭
下次连接时重新加载
关键设计选择:
- 惰性加载 —— Workspace 创建时不会初始化所有资源;Session Manager 与 MCP server 在首次使用时才加载
- 空闲超时 —— 默认 30 分钟无活动自动关闭,释放内存与连接资源
- 状态持久化 —— 断开后重新连接,会话历史与上下文完整恢复
Worktree 绑定:保护主分支
当 AI Agent 需要修改代码时,直接在 main 分支上操作是有风险的。Helix 提供了 Git Worktree 绑定机制:
- 写操作自动在隔离的 git worktree 分支上执行
- 主分支保持干净,不受 Agent 改动影响
- Agent 完成后,你可以审查分支变更,再决定是否合并
当多个 Agent 并行修改同一个仓库时,这一点尤为重要——每个 Agent 在自己的分支上工作,避免冲突。
Agent Profile:预设工作模板
不同任务类型需要不同的 Agent 配置。Helix 通过 Agent Profile(YAML 格式)让你为 Workspace 预设工作模板:
# 示例:代码审查专家 profile
name: code-reviewer
model: claude-sonnet-4
system_prompt: |
You are a meticulous code reviewer focused on security,
performance, and maintainability. Always explain the
reasoning behind your suggestions.
thinking_enabled: true
mcp_servers:
- serena-lsp
- shell
- filesys
你可以为不同的 Workspace 选择不同的 Profile——一个用于代码生成,一个用于代码审查,再来一个用于文档编写。
实际使用模式
模式 1:多项目并行工作
最常见的模式。每个项目对应一个 Workspace,互不干扰。
Workspace A: frontend-app
└─ 模型:Claude Sonnet · Profile:前端开发
└─ 会话:"实现新的用户设置页"
Workspace B: backend-api
└─ 模型:DeepSeek · Profile:后端开发
└─ 会话:"优化数据库查询性能"
Workspace C: infra-config
└─ 模型:GPT-4o · Profile:运维分析
└─ 会话:"分析部署日志中的异常"
模式 2:本地 + 远程 同时工作
当你需要同时操作本地代码与远程服务器时:
Workspace A: 本地代码仓库
└─ 修改代码、运行测试
Workspace B: 远程生产服务器(SSH)
└─ 分析日志、检查配置、验证部署
模式 3:不同的安全域
在企业场景下,不同项目可能有不同的安全要求:
Workspace A: 内部核心服务(自托管模型 + 严格的 MCP 权限)
Workspace B: 开源贡献项目(云端模型 + 完整工具集)
与其他能力的关系
| 能力 | 与 Workspace 的关系 |
|---|---|
| 多 Agent | SubAgent 在父 Workspace 内运行,从不跨越 Workspace 边界 |
| 上下文管理 | Cache 与 Compact 按 Workspace 隔离,不会交叉干扰 |
| 多模型 | 每个 Workspace 可独立选择模型与 Profile |
| MCP 工具 | 内置 MCP server 按 Workspace 实例化,用户 MCP 按 Workspace 绑定 |
相关文档
- 多 Agent 架构 —— 子任务如何在 Workspace 边界内运行
- 上下文管理 —— Workspace 级的 Cache/Compact 隔离
- 多模型支持 —— 为不同 Workspace 选择不同模型