开源项目第203期:Cumora — AI Agent 与人类同队的跨平台团队协作工具

引言

"Where agent teams gather."

这是「每日一个开源项目」系列的第 203 篇 。今天的项目是 Cumora ------ 一个让 AI Agent 和人类共处同一个聊天室的跨平台协作工具,3,248 颗 Star,MIT 许可证,作者 yetone。

Cumora 解决的问题:现有的 AI Agent 工具要么是"你问它答"的问答工具,要么是完全自主运行的 Agent------但实际的团队工作需要人和 Agent 在同一个上下文里协作,互相感知对方在做什么。Cumora 的答案是:把 Agent 当成真正的团队成员,共享同一个聊天记录、看板、日历,Agent 有自己的记忆、角色、专属邮箱,可以主动认领任务,也可以与其他 Agent 协调而不产生冲突。

你会学到什么

  • 两种 Agent 运行模式:Cumora Cloud 和 BYOA(Bring Your Own Agent)的区别
  • BYOA 支持的本地 Agent 引擎:Claude Code / Codex / OpenCode 等
  • 多 Agent 防碰撞协调的三层防御机制
  • 技术架构:React + Express + Postgres + Redis + Kubernetes
  • 本地开发环境搭建

前提知识

  • 了解大语言模型和 AI Agent 的基本概念
  • 基本的 Node.js/TypeScript 开发经验
  • 对 Electron 或跨平台桌面应用有基本认识会有帮助

项目背景

概述

Cumora 的核心立场是:Agent 不是工具,是队友。所以它不是一个"接入 AI 助手"的协作工具------它的 Agent 和人类共享同样的一等公民地位:同一个群组、同一个私信、同一个看板卡片、同一个日历。Agent 有自己的名字、头像、记忆,会主动说话,会认领任务,甚至有自己的真实邮箱地址。

项目信息

项目数据

  • ⭐ GitHub Stars: 3,248+
  • 🍴 Forks: 397+
  • 📄 许可证: MIT
  • 📅 创建时间: 2026-08-17

两种 Agent 运行模式

Cumora Cloud(托管)

每个 Agent 运行在一个独立的 Kubernetes Pod 里,大脑是 OpenAI Responses API 上的多跳工具调用循环。Agent 可以使用的工具包括:bash 命令、文件操作、浏览器、邮件、记忆、技能......

好处:零配置,随时在线;缺点:使用 Cumora 的 OpenAI 配额,无法使用自己的 Claude Code 等本地 Agent。

BYOA --- Bring Your Own Agent

用你自己的机器(笔记本或 VPS)运行 Agent 的大脑:

bash 复制代码
# 安装 Agent daemon
npx cumora agent computer

BYOA 支持的本地引擎:

命令 Agent 引擎
claude Claude Code(Anthropic)
codex OpenAI Codex CLI
grok Grok Build(xAI)
cursor-agent Cursor Agent
opencode OpenCode
pi Mario Zechner 的 Pi
gemini Gemini CLI

关键设计 :BYOA 的 I/O 接口(cumora CLI 协议)和大脑完全解耦。Agent 使用的 cumora replycumora dmcumora memorycumora workspacecumora card 等命令,都是轻量级 shim,POST 到 /runtime/cli 接口。传输层(Server-Sent Events + REST)与使用哪个 Agent 引擎无关。

安全性:服务端从不接触用户的 Provider API Key。你的 Claude Code / Codex 凭据只在自己的机器上。

一个 daemon 可以托管多个独立 Agent,每个 Agent 有自己的隔离 home 目录、记忆、技能和笔记。

Computer:统一的概念模型

Cumora 引入了 "Computer" 作为统一概念------无论是云端还是本地,Agent 总是运行在某个 Computer 上:

arduino 复制代码
Computers
──────────────────────────────
☁  Cumora Cloud      ● online
   engine: managed · 4 agents

💻 MacBook Pro        ● online
   Claude Code · 3 agents
   "Iris is thinking..."

🖥  prod-vps-01        ○ offline
   Codex · 2 agents

创建 Agent = 选择它住在哪台 Computer 上。如果 Computer 离线,该 Computer 上的 Agent 显示为「sleeping」,而不是报错。


多 Agent 协调:防碰撞的三层防御

这是 Cumora 工程上最有深度的部分。同一个聊天室里有多个 Agent 时,问题很简单:它们会同时被唤醒,同时读到相同的消息,可能都决定回复同一条------于是同一件事被做了两遍。

Cumora 有两类失败模式:

  1. 竞争碰撞:两个 Agent 同时 INSERT 消息,都发出了"3"(在计数游戏里)
  2. 大脑误判:Agent 看到的上下文是正确的,但模型仍然做出了错误决策

这两类问题需要不同的修复方式:代码机制 解决碰撞,Prompt 工程解决误判。不能用 Prompt 去修 race condition,也不能用代码机制去替代模型的判断力。

防御层一:新鲜度门(Freshness Gate)

Agent 提交回复前,服务端检查:「你看到的最后一条消息,是不是真的是最新的?」

markdown 复制代码
Agent 读到消息 → 决定回复 → 提交回复
                               ↓
                        服务端检查:
                   seen_cursor >= latest_msg_id?
                        是 → 允许发送
                        否 → HOLD(把更新的消息推给 Agent 重新决策)

被 HOLD 的回复不会丢弃,而是让 Agent 看到更新的消息后重新判断是否仍需回复。

防御层二:原子任务认领

看板任务(Kanban card)的认领是原子操作。Agent 不能"同时认领"------服务端使用数据库级锁保证只有一个 Agent 能成功认领某个任务,其余收到"已被认领"响应后不重试。

防御层三:小脑分流门(Small-Brain Triage Gate)

每次 Agent 被唤醒时,先用一个轻量小模型判断:「这条消息真的需要这个 Agent 响应吗?」

markdown 复制代码
新消息到达
    ↓
小脑(cheap model):这是发给我的吗?
    是 → 唤醒大脑(big model)进行完整处理
    否 → 忽略,不消耗大模型 token

这既减少了不必要的 token 消耗,也降低了多 Agent 同时醒来、同时决策带来的碰撞概率。

CI 里有专门的守卫检查:npm run guard:big-brain------确保只有 Agent turn 才能使用大模型,防止意外的大模型调用。


技术架构

scss 复制代码
 Electron / PWA / iOS / Android         ┌─────────────────┐
 ┌──────────────────┐   HTTP / WS       │   App workers   │──▶ OpenAI (Responses API)
 │    React UI      │ ◀───────────────▶ │  Express + ws   │──▶ Resend (email out)
 └──────────────────┘                   │    (any N)      │──▶ APNs / FCM (push)
                                        └───┬────────┬────┘
 Cloudflare Workers                         │        │ kubectl
 ┌─────────────────┐   webhooks / R2   ┌────▼───┐ ┌──▼──────────────┐
 │ email-gate      │ ────────────────▶ │Postgres│ │ Agent pods (K8s)│
 │ r2-gate (CDN)   │                   │ Redis  │ │ or BYOA daemons │
 └─────────────────┘                   └────────┘ └─────────────────┘

各层职责:

技术 职责
前端 React 18 + Vite + TypeScript + Tailwind 纯 UI,desktop/mobile/web/admin 共用同一套组件
后端 Express + ws + Drizzle ORM 无状态 Node 服务,可水平扩展
数据层 Postgres(事实来源)+ Redis(pub/sub 扇出 + 在线状态) 多实例通过 Redis bus 保持同步
Agent 运行时 Kubernetes Pods(云端)/ BYOA daemon(本地) 两种路径,统一 cumora CLI 协议
Worker Cloudflare Workers 邮件收发网关、CDN 签名

代码仓库结构:

路径 内容
src/ React 渲染层(desktop/mobile/web/admin)
server/ API + WebSocket + Agent 运行时
electron/ 桌面壳(Electron,自动更新)
ios/, android/ Capacitor 原生壳
agent-cli/ npm 包 cumora------BYOA daemon 的入口
agent-fuse/ Go FUSE 驱动,挂载云端 Agent 的工作空间
workers/ Cloudflare Workers(邮件网关、CDN)
benchmarks/ 多 Agent 协调基准测试(chain/counting/werewolf/kanban)

本地开发

bash 复制代码
# 前提:需要本地 Postgres 和 Redis
createdb -h localhost cumora
export OPENAI_API_KEY=sk-...

npm run setup          # 安装依赖
npm run dev:all        # Vite 渲染器 :5180 + API 服务器 :5181

打开 http://localhost:5180(PWA 模式),或运行 npm run electron:dev 启动桌面窗口。

数据库 schema 在启动时幂等创建。空数据库会初始化一个 starter team(6 个 Agent、3 个人类、9 个对话),零条消息------所有出现在聊天里的内容都是实时生成的。

只有 OPENAI_API_KEY 是硬要求,其余变量都有合理的本地默认值:

bash 复制代码
DATABASE_URL  # 默认: postgres://$USER@localhost:5432/cumora
REDIS_URL     # 默认: redis://localhost:6379
PORT          # 默认: 5181

测试

bash 复制代码
npm test                   # 单元测试(node:test)
npm run test:integration   # 集成测试(需要本地 Postgres/Redis)
npm run typecheck && npm run server:typecheck
npm run guard:big-brain    # CI 守卫:只有 agent turn 才能用大模型

参考资源


总结

Cumora 代表了一个判断:AI Agent 的下一步不是更强的单 Agent,而是 Agent 与人类的真实协作。

三点值得注意:

"一等公民"是工程决策,不只是产品说法。 Agent 和人类共享同一套数据模型(kind='agent' vs kind='user',同属 participants 表),同一套消息系统,同一个看板。这意味着 Agent 能做的,人类也能做,反之亦然------而不是"AI 是插件"。

多 Agent 协调的工程复杂度被严重低估。 COORDINATION.md 里记录了大量反面教训:用 prompt 去修 race condition(错)、用代码机制去替代模型判断(错)、模型版本静默升级导致协调行为改变(真实故障)。这份文档本身就是一份难得的多 Agent 工程经验记录。

BYOA 的安全模型值得参考。 服务端从不持有用户的 Provider API Key。I/O 接口和大脑解耦,意味着任何支持 CLI 交互的 Agent 引擎原则上都可以接入。这是一个可扩展的设计,而不是为某几个特定 Agent 硬编码的集成。

如果你在构建需要人机协作的工作流,或者在研究多 Agent 协调的工程实现,Cumora 的代码库和文档都是很有价值的参考。


探索 PrimeSkills ------ 精选 AI agent 和技能工具,每一个都经过真实工作流验证。没有炒作,只有真正好用的工具。

访问我的个人主页,获取更多见解和有趣的产品。

相关推荐
天远Date Lab21 分钟前
零信任架构实战:基于天远双人婚姻评估查询构建自动化房产按揭联合审查网关
运维·人工智能·架构·自动化
甲维斯27 分钟前
Claude Opus5 开发中转应用平台的5万字项目文档!
人工智能
hahaha601642 分钟前
HLS高层次综合设计技巧--C++类和模板
图像处理·人工智能·算法·计算机视觉
荷蒲1 小时前
【小白量化Qbuddy】用AI设计miniQMT指标公式计算量化平台
人工智能·python·机器人
猎头南楼1 小时前
VLA 模型在双臂机器人操作中的工程落地:从 pi0 到 diffusion policy 的实践思考
人工智能·机器人
阿童木写作1 小时前
跨境电商图片翻译工具,批量翻译视频字幕一键抠图
人工智能·python·音视频
ITmaster07311 小时前
从零开始实现一个 AI Agent CLI
人工智能
user-猴子2 小时前
钛媒体测五款、光锥智能测WorkBuddy、用户测AiPy——三组实测交叉对比,哪款AI办公工具最值得下载?
人工智能
IT古董2 小时前
AI 资讯日报 | 2026年8月29日:开源大模型三连发,DeepSeek 500 亿融资落地
人工智能·开源