Cotal
AI Agent 的开放发布/订阅协作标准:任意拓扑、跨机器、多厂商,让一群 Agent 在同一共享空间里实时协同。
- Star 数
- ★ 331
- 最近更新
- 今天
- License
- Apache-2.0
- 主语言
- TypeScript
- FA 评分
- 77/100 · 表现良好
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code
- 费用
- 免费,无需付费服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 让 Claude Code 主 Agent 按需召唤队友:向你的编码 Agent 说 "spin up a reviewer",它通过
cotal_spawn把 reviewer 拉上 mesh。 - 不适合
- 只需要两个 Agent 之间简单请求/响应(A2A/MCP 已覆盖)的团队
- 需要一个托管 SaaS、不想到自己机器上跑 broker 的用户
- 只支持 Python 等其他语言实现并需要官方客户端的团队(目前仅有 TypeScript 实现)
- 源码审查
- 77/100 · 表现良好
这个 Agent 能做什么,适合哪些场景?
Cotal(仓库 Cotal-AI/Cotal,Apache-2.0)是一个面向 AI Agent 的开放发布/订阅协议及其 TypeScript 参考实现,底层运行在久经生产验证的 NATS 与 JetStream 之上。它把一个 NATS 账户变成一个 Agent "空间":每个 Agent 发布在线状态并携带 A2A AgentCard,互相之间可直接寻址发消息,而拓扑(扁平 peers、经理-工人、指挥链或任意混合)完全由配置决定。核心 CLI cotal 提供 cotal up(启动 JWT 认证的 mesh)、cotal spawn、cotal web、cotal run 等命令,并支持多个 mesh 并存和跨互联网连接远程 broker。消息寻址分三种模式:多播(频道)、单播(持久收件箱)、任播(按角色投给一个空闲实例)。官方连接器覆盖 Claude Code、OpenCode、Codex、Hermes、Jcode 和 pi 六种 Agent,它们都暴露相同的 cotal_* 工具并支持推送唤醒;Cotal Lang 用带步骤日志的 effect 子集支持跨天、可恢复的工作流运行。
Cotal 的端到端流程:安装后运行 cotal setup 准备机器并安装 Agent Skills(Claude Code 插件或 ~/.agents/skills),cotal up --detach 启动一个 JWT 认证、带服务端投递守护进程的 NATS/JetStream mesh,cotal spawn 把你的 Agent 接上 mesh。之后 Agent 通过三种 subject 族(chat.> 多播、inst.> 单播、svc.> 任播)通信:频道消息到达所有订阅者;点对点消息在对方忙或离线时停留在其持久收件箱;发给角色(如 "reviewer")的消息进入共享工作队列,恰好一个空闲实例认领。每个 Agent 发布 idle/waiting/working/offline 状态和 A2A AgentCard,身份由服务端绑定在 NATS subject 上的 JWT 凭据保证,配以默认拒绝的 per-agent ACL。cotal web 打开只读浏览器仪表盘(图状星座视图、频道消息、golden-signal 磁贴),cotal run 用 Cotal Lang(spawn/turn/ask/checkpoint 等 effect)在管理端运行可断点续跑的工作流。连接器为各 Agent 暴露 cotal_spawn、cotal_run 等统一工具。
- 让 Claude Code 主 Agent 按需召唤队友:向你的编码 Agent 说 "spin up a reviewer",它通过
cotal_spawn把 reviewer 拉上 mesh。 - 多个厂商混合的分布式团队:Claude Code、Codex、OpenCode 的 Agent 在同一空间中作为平等 peers 横向协作,无需中央调度器。
- 异步长任务:单播持久收件箱让忙碌或离线的 Agent 恢复后补读消息,晚加入者可回放历史。
- 按角色做负载均衡与委派:任播把工作交给任意一个空闲的 reviewer 实例,不必点名具体工人。
- 跨天工作流:用 Cotal Lang 写带 checkpoint 的流水线,进程停止后在任意主机从步骤日志恢复。
- 并行多团队:
cotal meshes/cotal use在同一台机器上隔离多个 mesh,或在云端容器与笔记本之间共享一个空间。
如何安装或部署这个 Agent?
macOS/Linux 用官方安装脚本(装到家目录,无需 sudo,之后自动运行 cotal setup):
curl -fsSL https://get.cotal.ai | shWindows,或已有 Node 22+ 时,通过 npm 安装:
npm install -g cotal-ai && cotal setupcotal setup 会播种一个 default persona 并安装 Cotal 的 Agent Skills(已装 Claude Code 则装 cotal-skills 插件,Codex/Cursor/OpenCode/Gemini CLI/Windsurf 装到 ~/.agents/skills);cotal setup --skills 仅刷新技能。也可以让 Agent 自己装:指向 https://docs.cotal.ai/prompt.md。
如何使用这个 Agent?
安装后启动并接入一个最小 mesh:
cotal up --detach # 启动 mesh(默认 JWT 认证)
cotal spawn # 把你的 agent 放上 mesh 并对话(Ctrl-C 离开)
cotal web # 在浏览器中观察
cotal down # 全部停止cotal up 默认 JWT 认证(发送者真实性 + per-agent ACL + 服务端投递守护进程);cotal up --open 给出仅回环、无认证的实时 mesh;cotal up --user-auth --idp <auth base URL> 启用人员登录。引导式演示团队:
cotal setup --demo
cotal spawn david
cotal web让编码 Agent 按需召唤队友:cotal up 自带一个 manager 端点,Agent 通过 cotal_spawn 在 mesh 上拉起队友(如 "spin up a reviewer")。也可以用一个 cotal.yaml manifest 启动整支团队。查看运行情况:
cotal console
cotal run start --file build.cotal.js
cotal run ps
cotal run journal <runId>
cotal run answer <runId> <stepKey> --value '"yes"'
cotal run resume <runId>这个 Agent 有哪些优点和局限?
- 拓扑由你定义:同一标准可运行扁平 peers、经理-工人、指挥链或任意混合,而多数工具把树形结构写死。
- 与 MCP(Agent↔工具)、A2A(两两请求/响应)互补而非竞争,复用 A2A AgentCard 与 Message/Part 形状保持互操作。
- 底层是生产级 NATS + JetStream:持久投递、每读者书签、回放、跨机器/集群扩展都无需 Cotal 重新实现。
- 安全模型具体:发送者身份钉在 subject 上由 JWT 校验,DM 用绑定式持久收件箱,天然防冒充。
- 六个官方连接器(Claude Code、OpenCode、Codex、Hermes、Jcode、pi)暴露同一套
cotal_*工具并支持推送唤醒。
- 目前唯一实现是 TypeScript;其他语言需按 docs 中的契约自行实现,官方客户端尚未提供。
- 需要运行并理解 NATS/JetStream broker 基础设施——跨机器部署时 broker 可能在互联网可达的服务器上,增加运维面。
- 安装脚本是 POSIX shell,Windows 只能走 npm 路线。
- 属相对年轻的项目,Team 区尚有 TODO、连接器仍在按投票扩展,成熟度证据有限。
这个 Agent 与同类方案有什么区别?
README 明确将 Cotal 与 MCP 和 A2A 定位为互补:MCP 连接 Agent 与其工具,A2A 连接两个 Agent 的成对请求/响应,都不提供带在线状态、频道、持久投递和拓扑自由的多 Agent 实时共享空间——这是 Cotal 填补的空白。Cotal 复用 A2A 的数据形状但不采用其 HTTP/JSON-RPC 传输与 Task RPC 模型。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Cotal 当前 | 77 · 表现良好 | 命令行工具免费 | ★ 331 | 今天 | TypeScript | Codex · Claude Code |
| Google ADK TypeScript 开发套件 | 51 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 1.4k | 今天 | TypeScript | — |
| Agor | 45 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 1.5k | 1 天前 | TypeScript | Codex · Claude Code |
| Agentica | 63 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 356 | 今天 | Python | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示强化的最小权限设计:每代理默认拒绝的ACL、只读仪表板自铸窄凭据后丢弃签名种子、示例代理对远程订阅源做SSRF地址阻断与重定向复验并有测试覆盖。扣分点:cotal setup 会静默向 ~/.agents/skills 和 Claude Code 安装技能插件,未明确要求用户逐步确认;curl|sh 安装脚本虽有 --dry-run 预览,但外部效应(写home目录、起broker)文档化程度有限,故 external_effects 仅1分。工作流 checkpoint 提供人工审批机制,但没有看到对代理执行破坏性操作时的确认协议。
仓库带有极大规模的冒烟测试矩阵(packages/core、runtime、lang、各connector)、mutation coverage、doc-binding 自检与 CI 门禁,自一致性证据充分得3分。依赖可用性:node>=22 锁定、pnpm frozen lockfile,但静态审查未见依赖审计/漏洞扫描证据,扣至2分。failure_messages:CLI 有 cotal doctor,测试断言了具体错误文案,但普遍的失败消息质量只能由文档侧面印证,2分。
面向人类与代理双读者(prompt.md、docs),支持六种代理与多种拓扑,示例覆盖多场景,得3分。能力边界在FAQ有说明(TypeScript仅参考实现、协议开放),但边界文档散落而非集中,2分。触发精度靠 presence/attention 模式与 push wake-up 描述,未见精确的触发语义规范,2分。环境适配:Windows走npm、容器部署有deploy/README,2分。
信息架构极为完整(SPEC、docs/、examples、AGENTS.md),得3分。命名稳定(cotal_* 工具、subject族规范)3分。版本管理用 changesets 加发布闭包与可安装性门禁,3分。License 为完整 Apache-2.0 文本加 LICENSING.md 商标说明,3分。扣分项:install_notes 主推 curl|sh 远程脚本执行,虽可 --dry-run 预览仍是保守评估下的减分;known_limitations 散见于FAQ;维护责任有具名团队但发布者未经注册表验证,均2分。
输出可用性:durable投递、attention模式、web/console双视图设计合理,但未执行验证,2分。边际价值:填允 many-agent pub/sub 空隙、复用A2A数据形状的论证清晰,2分。成本收益:安装门槛低、NATS复用减少自研,2分。
声明可追溯性强:README 内嵌 SPEC §14、docs 锚点、npm徽章与CI状态,得3分。交叉印证仅限仓库内部(自测、lint门禁),无第三方审计,2分。事实与推断基本分离(如身份验证机制有测试断言佐证),但部分营销性声明('proven in production')无仓库内证据,2分。
- 主推的安装方式是 curl -fsSL https://get.cotal.ai | sh,远程脚本直接执行;虽提供 --dry-run 预览,企业环境应先人工审阅脚本再安装。
- cotal setup 会静默向 ~/.agents/skills 与 Claude Code 安装技能插件;如不接受默认植入,请检查安装选项。
- cotal up --open 是无认证模式,仅限回环;切勿暴露到网络。跨机 broker 部署务必启用 JWT 或 user-auth。
- 发布者未经 FollowAgents 注册表验证,静态审查置信度为低;本评分未包含任何运行时验证。
- 代理间消息与外部订阅源内容属于不可信输入;示例已做标记与SSRF防护,但自建代理需自行复用同等防护。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Cotal 0.85.0 is out! Grab it: npm i [email protected] Changes in this release - A detached Claude Code spawn no longer fails its startup confirmation when Claude skips the development-channels warning and opens its input screen. Claude 2.1.301 does that when channels are off for the session, for example under a Team or Enterprise organization that has not set channelsEnabled: true in managed settings. Such a seat now stays up, and gets mesh messages through its hooks only, so a message does not wake it while it is idle. When the warning appears it is still answered with one Enter, …在 GitHub 查看 ↗ -
发布说明摘录
Cotal 0.84.0 is out! Grab it: npm i [email protected] Changes in this release - Load Claude Code's native MCP sources by default alongside Cotal and declared overrides. Preserve explicit per-spawn sharing restrictions, carried-session isolation, native policy and narrow environment forwarding. - Treat a mesh record removed during a registry or keyed read as absent instead of reporting it as damaged. Keep named refusals for parse, shape and other read failures. …在 GitHub 查看 ↗ -
发布说明摘录
Cotal 0.83.0 is out! Grab it: npm i [email protected] Changes in this release - Allocate a fresh numbered actor for implicit foreground user-auth launches without replacing an existing session or grant. Preserve explicit names, enrollments and managed handoffs, and retry only typed name collisions. Refuse backward connector-store migration even with force or reset, remove unsafe downgrade advice, and make the shell installer identify PATH shadowing and use its absolute installed launcher in next steps. …在 GitHub 查看 ↗
常见问题
Cotal 免费吗?运行成本是什么?
cotal up 在本地启动自带 broker,无强制付费服务。你运行的各 Agent 自身的模型费用另计。一个 Agent 能冒充另一个吗?
我的 Agent 不在支持列表里怎么办?
支持 Windows 吗?需要什么运行时?
npm install -g cotal-ai && cotal setup,需 Node 22+。工作流运行中断了怎么办?
cotal run resume <runId> 从日志恢复;checkpoint 可由持有 run 能力的任何人通过终端或 cotal_run 工具回答。