OpenAI Workspace Agents 发布:一个开源的 Lark/飞书版本已经替我们跑了半年
封面图:OpenAI Workspace Agents 官方发布页(2026 年 4 月 22 日)。
TL;DR — OpenAI 4 月 22 日发布了 Workspace Agents:共享的、常驻云端的 AI Agent,跑在 Slack 和 ChatGPT 里,为团队日常工作而做。这个形态和我们半年前开源的 Lark/飞书 Bot Marvin 思路几乎一致——只不过 Marvin 是 MIT 开源、接任意模型、能用任何 MCP 工具、跑在你自己的机器上。本文聊聊 Workspace Agents 确认了什么方向、以及一个可以直接自己跑起来的开源参考实现。
一个飞书群里的 30 秒
“上周哪篇博客带来的转化最高?”
市场同事在飞书群里问了这句话。一分钟内,群里多了一张机器人卡片:上周五篇博客按付费转化降序排列,附带跳出率异常标记,末尾一句 “第一名是第二名的 3 倍,可以考虑再开一篇姐妹篇”。
这件事如果人自己做:打开 GA4 → 选报告模板 → 加维度 → 加筛选 → 导出 CSV → 粘进表格做对比。十分钟起步。Marvin(我们内部那只 Lark Bot)做这件事时,人只是在群里说了一句话。
这不是什么新技术。只是把 Agent 放进了它该在的地方——你已经在工作的那个 IM 里,而不是让人切到 Agent 的新界面去问。
OpenAI 刚把这件事官宣成了产品类别
昨天(2026 年 4 月 22 日)OpenAI 发布了 Workspace Agents。形态大致是:
- 由 Codex 驱动,处理”你已经在做的工作”——准备报告、写代码、回消息
- 常驻云端,你不在的时候它也在跑
- 组织内共享,一次构建、团队复用,在 ChatGPT 和 Slack 里都能用
- 支持定时任务 + 审批流
- 5 月 6 日前免费,之后走 credit 计费
- 定位是”GPTs 的进化”——很快可以把 GPT 转成 Workspace Agent
这篇发布最有意思的不是功能表,而是反复强调的一句话:Agent 应该进到团队已经在用的工作系统里,而不是把人拉进 Agent 的新界面。
这个方向其实早就在收敛
过去两年 AI 产品的重心,正从 “Chat UI” 往 “工作流里的 Agent” 转:
- Claude Code 把 Agent 放进了终端
- Cursor / Windsurf / Zed 把 Agent 放进了 IDE
- Linear Ask Agent 把 Agent 放进了项目管理系统
- OpenAI Workspace Agents 现在把 Agent 放进了团队 IM
共识已经很明显:人不应该为了用 AI 而切换界面。AI 能用的正确位置,是你已经在那里工作的地方。
对我们来说,这个地方是 Lark/飞书。真实的协作、反馈、决策都发生在飞书群里。如果 AI Agent 不能进来,它等于不存在。
一个开源参考实现:Marvin
我们半年前开源了 Marvin——TypeScript 写的 Lark/飞书 Bot 框架,基于 Claude Code CLI。名字取自《银河系漫游指南》里那只对一切都不屑一顾但能力强到可怕的偏执机器人。
能力对照着 Workspace Agents 看:
| Workspace Agents 的承诺 | Marvin 的实现 |
|---|---|
| 常驻运行(Always running) | Session 持久化到磁盘,重启后自动恢复中断任务 |
| 在 IM 里团队共享 | Lark/飞书群里 @ 即用,实时进度卡片(⬜ → 🔄 → ✅) |
| 定时 + 事件触发 | 内置 cron 调度 + WebSocket 事件双触发 |
| 人工审批 | 管理员可随时追加消息中断任务,Claude 带完整上下文恢复 |
| 组织权限 / 安全 | 内置输出过滤:API Key、Token、内部 ID、内网 IP 自动脱敏 |
架构比想象的简单。Lark WebSocket 事件进 → Claude Code CLI 推理 → 实时进度卡片渲染出。完整架构图在 README。
Marvin 已经在替我们干的两件事
一、飞书群里指派一张任务,它走完整个开发闭环
群里有人反馈 “这句文案不对”,或者直接 @Marvin 把事情交给它。Marvin 会:自己 grep 代码找到位置 → 开 feature 分支 → 提 PR → 等 CI → 合到 dev → 再提 PR 到 master → 合并 → 确认部署 → 回群里报告并关掉任务。
脱敏案例:某天飞书群里反馈一句中文 slogan 不合适,全流程从指派到生产上线都是 Marvin 自己跑完的。人只在群里说了一句话。
二、30 秒出一份 GA4 数据分析
就是开头那个场景。Marvin 通过 GA4 MCP 服务器直接调 report API,交叉维度、挑异常、回一份结构化小结。人工做同样的事需要十分钟起步,Marvin 30 秒到 1 分钟。
这件事最大的好处不是快——是把 “问一个数据问题” 的心理成本降到了零。以前你会想 “为了这个小问题值得打开 GA4 吗”,然后往往就不问了。现在直接在群里问一句。问的频次上来,决策自然更有数据支撑。
三、不止这两件
Marvin 能干什么,等于你给它接了哪些 MCP——内容研究(Firecrawl)、财务数据(freee)、文档抓取(Context7)、任意自建服务……今天接进来,明天它就会用。MCP 生态才是它真正的天花板。
四个不同的选择
把 OpenAI Workspace Agents 和 Marvin 并排看,参数对比没意思,形态上的哲学差异才是重点:
| 维度 | OpenAI Workspace Agents | Marvin |
|---|---|---|
| Agent 和模型的关系 | 绑定 Codex | 走 Ofox gateway,任意模型随时切 |
| 数据边界 | 跑在 OpenAI 云 | 跑在你自己的机器 / 服务器 |
| IM 解耦 | 主要 Slack(与 ChatGPT) | lark.ts 是 adapter 层,换 Slack/Discord 不动核心 |
| 工具生态 | Codex + OpenAI 预设集成 | 任意 MCP 服务器 |
| 可改性 | 黑盒 SaaS | 人格、规则、pipeline 都是你 repo 里的文件 |
对很多团队来说,数据边界和可改性是决定性因素。你飞书群里聊什么、代码仓库里有什么、GA4 或财务数据谁看得见——这些是组织的核心信息,大概率你不希望它经过一家外国 SaaS 的云。
Marvin 跑在你自己的机器上。我们这一只跑在办公室的一台 Mac mini 上,launchd 托管,没用任何外部云服务。
怎么跑起来
仓库:github.com/ofoxai/lark-claude-bot
如果你已经装了 Claude Code,把下面这段话直接粘给它,全程交互式引导:
帮我克隆并配置 https://github.com/ofoxai/lark-claude-bot:
1. 克隆仓库并进入目录
2. 运行 npm install
3. 复制 .env.example 为 .env
4. 问我要 Lark App ID、App Secret 和 Encrypt Key,填入 .env
5. 如果我还没有 Lark 应用,告诉我怎么在 open.larksuite.com 或 open.feishu.cn 创建
6. 配置好后运行 npm run dev 启动机器人
几分钟就能在自己的飞书群里 @ 到一只 Marvin。
收尾
OpenAI 的 Workspace Agents 把 “Agent 进工作系统” 这个方向立住了,这件事本身是好事——更多团队会开始认真思考这种形态。但 Agent 的未来不应该是 “一家 SaaS 厂商 + 一个模型 + 一个它帮你选好的 IM”。
Marvin 是这个方向的一个开源参考实现。顺便也是我们 Ofox 作为 AI gateway 的哲学在工作流侧的落地——一个 API 接所有模型,一套 Bot 骨架兼容所有 IM。


