Orkas 与两个 OpenBot:桌面 Agent 的三条路线,与三种信任模型
你在 GitHub 搜 "OpenBot",会搜出两个毫不相干的项目。再加上 Orkas,三个东西的用户故事听起来几乎一样:本地优先、多 Agent、有自己的工作区、能连着你的编码工具、数据不上云。
目录
Orkas 与两个 OpenBot:桌面 Agent 的三条路线,与三种信任模型
你在 GitHub 搜 "OpenBot",会搜出两个毫不相干的项目。再加上 Orkas,三个东西的用户故事听起来几乎一样:本地优先、多 Agent、有自己的工作区、能连着你的编码工具、数据不上云。
但读完源码会发现,它们不是同一个产品的三个版本,而是三种互不兼容的架构答案。
仓库快照日期 2026-11-01。以下数字都是本地实测(行数按 *.ts/*.tsx/*.js 统计,排除构建产物)。一、先把名字厘清
| 路径 | 实际仓库 | 出品方 | 形态 | 许可 |
|---|---|---|---|---|
Orkas/ | Orkas-AI/Orkas | orkas.ai | Electron 桌面应用 | MIT |
nightly-lab-openbot/ | nightly-labs/openbot | 个人/小团队 | Electron 桌面 + 自托管 server + 手机 + Web | PolyForm NC |
OpenBot/ | CopilotKit/openbot | CopilotKit | Docker/Postgres 自托管平台,浏览器优先 | MIT |
二、三条路线:谁拥有 Agent 循环
这是三个项目最根本的分野。
Orkas:自己造循环。
src/core-agent/ 是从 OpenClaw 核心模块提取出来的独立 harness,通过 @earendil-works/pi-ai 接模型。runner.ts 220 KB、session.ts 155 KB,另配上下文分层压缩预算、循环守卫、持久会话、执行计划、工作区状态。工具链自带:文件、Shell、进程会话、run_program(quickjs 沙箱)、网页抓取、记忆、元认知。
nightly OpenBot:借循环。 它不写循环,它写适配器。Codex App Server、Claude Agent SDK、Grok、ACP(OpenCode/Gemini/Cursor/Cline)、Pi、Muse 都是执行端;OpenBot 自己只暴露约 11 个直接工具,通过 MCP bridge 注入进去。它的护城河在别处:邮箱、队列、车位、审批、跨设备。
CopilotKit OpenBot:只要协议。 任何 AG-UI 端点就是一个 Bot。仓库里躺着 16 个框架样例:LangGraph、Mastra、CrewAI、ADK、Pydantic AI、Claude SDK、LlamaIndex……它故意不拥有循环,因为它的产品是治理,不是智能。
一句话总结:
Orkas 卖的是能力,nightly 卖的是编排,CopilotKit 卖的是约束。
三、同一个问题,三种回答:谁决定它能动手
这部分是这次对比里最有意思的。
| 控制点 | 一句话 | |
|---|---|---|
| Orkas | 用户设置 | 三档权限 + 逐次弹窗,风险由用户承担 |
| nightly OpenBot | agent 配置 | 每个 teammate 有 access 档位和审批模式 |
| CopilotKit OpenBot | 网关 | 目标解析 → CEL 策略 → 写审计 → 才执行 |
还有一个设计我觉得另外两家都该抄:审计行里带 initiator_kind,区分 person / routine / responsibility / memory / handoff,UI 上直接给一个 "Nobody watching" 过滤器。
它回答的不是"谁授权了",而是"我不在的时候,谁在用我的名义干活"。这个问题在定时任务和 Agent 互相派活的时代会越来越重要。
nightly 的文档里给 CLI 默认的是 danger-full-access(README 自己标了警告);Orkas 的默认是"可以访问整个磁盘,但敏感操作要审批"。三种取舍都诚实,但对"能过审计"的要求,只有第三种站得住。
四、对照总表
| 维度 | Orkas | nightly OpenBot | CopilotKit OpenBot |
|---|---|---|---|
| 交付形态 | Electron 桌面 | 桌面 + server + 手机 + Web | Docker/Compose/Helm,桌面只是安装器外壳(Tauri) |
| Agent 内核 | 自研完整循环 | 宿主:外部 CLI 是引擎 | 协议宿主:AG-UI 端点即 Bot |
| 数据 | 文件系统 JSON/JSONL | 单一 SQLite(48 个迁移) | PostgreSQL + pgvector;会话/记忆在 CopilotKit Intelligence |
| 协作模型 | 单会话群聊:@ 提及 + Commander 分解 + 任务板 | 常驻 teammate + Mailbox/队列 + channel + workflow DAG | Bot(coworker)+ channel + 团队发布 + Responsibilities |
| 隔离 | 进程内沙箱 | workspace 限制 + 浏览器 profile | 每人/每 Bot 一容器 |
| 前端栈 | 手写 ES module,无框架无打包 | SolidJS 2 RC + Vite | React 19 + TanStack + shadcn |
| 代码量 | src 33 万 / test 35 万行 | 三处合计约 86 万行 | 约 47 万行 |
| 测试 | 936 单测 + 136 e2e,CI 仅 2 条 | 58 vitest + 约 230 真机 e2e,CI 16 条 | 716 个 bun test,CI 6 条 |
| 许可 | MIT | PolyForm NC | MIT |
五、各自的软肋
Orkas 的交付物闭环最完整(视频、配音、图像、Office、电商、建站),但它把复杂度堆进了单文件:bus.ts 552 KB、conversation.js 825 KB。主进程不打构建,打包内带 tsx 在运行期转译 TypeScript。CI 只有 2 条,936 个测试靠本地跑,回归主要依赖人工清单。
nightly OpenBot 把"Agent 团队"当基础设施做透了:邮箱、车位、steer、审批中心、Team API 能力协商、iOS/Android、自托管 server。代价是重依赖外部 CLI 的版本与行为 —— 文档里到处是"Codex 动态工具在 session 创建时固定""ACP 只能给 notes"这类补丁,还有专门的 provider CLI canary 流水线盯着。技术上也很前沿:Solid 2 RC、Effect 4、TS 7。
CopilotKit OpenBot 治理最硬、框架最开放,但它 v0.2.0、自述 beta 兼"模板而非产品"。依赖链也长:Docker + Postgres + CopilotKit Intelligence(可自托管,但要许可证)。"自有基础设施"的叙事里,会话与记忆其实落在 Intelligence —— 这是它最软的一环。配置面同样惊人,configuration.md 有 92 KB。
六、怎么选
- 一个人干活,要成品 → Orkas。
- 一个人/小团队,指挥一队编码 Agent,还要手机和远端 → nightly OpenBot。
- 公司内部多人使用,需要"能过审计的 Agent" → CopilotKit OpenBot。
- 要二次开发成自己的产品:Orkas 和 CopilotKit 都是 MIT;nightly 需谈授权。
七、如果三个都在手上,互相抄什么
1. Orkas 最该抄网关:把"三档权限 + 弹窗"升级成可写规则、可回放的策略层。initiator 的概念能直接解决它"定时任务和人在场同权限"的盲点。
2. nightly 最该抄容器隔离:它现在给 CLI 的是全权限,而 CopilotKit 证明"每 Bot 一容器 + 出口白名单"在工程上可行。
3. CopilotKit 最该抄交付物能力:它止步于浏览器 + 文件 + React 组件,没有视频/Office 流水线 —— 那正是 Orkas 的护城河。
4. 三者对"无人值守"的处理可以互相印证:nightly 的静默运行 + 失败上报、CopilotKit 的疲劳规则(连续 10 次失败自动关停)、Orkas 的项目自动推进。同一个问题的三种答案。
结语
三个项目都在解决同一句话:让 Agent 持续地把活干完,而不是回答完一个问题就消失。
区别在于,Orkas 相信"更强的引擎能自己管好自己",nightly 相信"好的调度器能让别人家的引擎协同",CopilotKit 相信"没有约束的自主不值得信任"。
三种相信都成立。你需要先回答的不是"哪个功能多",而是"我准备把多少决定权交出去,以及交给谁"。
仓库
- Orkas — https://github.com/Orkas-AI/Orkas
- OpenBot(nightly-labs)— https://github.com/nightly-labs/openbot
- OpenBot(CopilotKit)— https://github.com/CopilotKit/openbot