OpenWork — 架构与原理
30 秒导读: OpenWork 是一款开源桌面 App(macOS / Windows / Linux),让非程序员也能在自己电脑上、对着自己的文件用 AI agent 干活——它是 Claude Cowork / Codex 的开源替代。底层的"agent 大脑"直接复用开源引擎 OpenCode;OpenWork 在它外面套了一层外壳 + 中间层:Electron 窗口负责界面,一个进程编排器(orchestrator)一键拉起并看管进程栈,中间的
openwork-server用带权限作用域的反向代理在 OpenCode 之上补齐会话管理、权限审批、工作区挂载、技能 / MCP 装配。默认只 绑127.0.0.1本地跑,想协作时再显式打开远程,一条链接就能把整套配置分享给同事,或接到 Slack / Telegram、扩展到云端 worker。
1. 这是什么(零基础也能懂)
一句话定义。 OpenWork = OpenCode(agent 引擎)+ 一层安全、好用、可分享的产品外壳。
它解决谁的什么问题。 现有的 opencode CLI/GUI 是给开发者用的:满屏 file diff、工具名、要靠命令行才能扩展(见仓库 README.md 的 "Why" 一节)。OpenWork 把这套能力产品化给普通人:
- 假设你不是工程师,但想让 AI 帮你整理一个装满合同/表格/笔记的文件夹——OpenWork 让你在一个桌面 App 里选中那个文件夹、发一句话,就能安全地让 agent 动手,而且每一步危险操作都会弹出审批让你点"允许 / 拒绝"。
- 假设你已经调好了一套 agent 工作流(装了哪些技能、连了哪些 MCP、什么权限),想让整个团队复用——OpenWork 让你把这套 setup 打包成一条链接分享出去。
它能做什么(功能)。 摘自 README.md 的 "What's Included",逐条对应到代码:
| 功能 | 白话 |
|---|---|
| Host mode / Client mode | 在本机跑 opencode,或用 URL 连到已有的 OpenCode 服务器 |
| 会话(Sessions) | 创建 / 切换会话、发提示词 |
| 实时流(Live streaming) | 订 阅 SSE /event,把 agent 的进展实时刷到界面 |
| 执行计划(Execution plan) | 把 OpenCode 的 todo 渲染成时间线 |
| 权限(Permissions) | 把权限请求弹给人:允许一次 / 总是允许 / 拒绝 |
| 模板(Templates) | 存下常用工作流、一键重跑 |
| 技能管理(Skills) | 列出 / 导入 .opencode/skills 里的技能包 |
用起来什么样(最小示例)。 不装桌面 App,也能用 CLI 主机模式起同样的进程栈(apps/orchestrator/README.md):
npm install -g openwork-orchestrator
openwork start --workspace /path/to/workspace --approval auto
这条命令会下载并拉起 opencode、openwork-server、opencode-router 三个 sidecar,在 TTY 里显示一个带服务健康度、端口、连接信息的仪表盘。桌面 App 做的事本质一样,只是把这套编排藏在了一键按钮后面。