跳到正文

目录

Macro:用双向链接与共享记忆重造团队工作区

Macro:用双向链接与共享记忆重造团队工作区

先给判断:Macro 不是「又一个 All-in-One 工具」,它对团队软件有一个结构性主张——分散工具的病根是数据不连通,解法是把邮件、消息、文档、任务、CRM 放进同一个数据底座,让所有对象互相 @ 链接、双向可溯,再让代理以一等公民身份住进这张图里。这个主张决定了它值得看的姿势:不是对比功能清单,而是看它的数据模型。

macro-inc/macro 约 3,200 stars,主语言 Rust,AGPLv3(README 强调 fully open source,不是 open core),2025 年 11 月开源,最近提交 2026-08-14。团队自述在纽约与多伦多设计、约 15 人内部吃自家狗粮两年。

出发点:公司不该靠胶水黏合

README 的动机段写得相当直白:团队用过 Slack、Linear、Notion、HubSpot、Superhuman,工具一多,公司就靠 MCP 和 Zapier 勉强缝在一起——「公司不可计算(not computable)」。Macro 的答案是从零设计一个单一系统。

数据模型:一切对象住在一张双向图里

这是全文最关键的一节。Macro 的每个模块(他们称为 block)不是独立子系统,而是同一后端上的不同视图:

  • 文档 @ 提及一封邮件、一条频道消息 @ 链接一个任务、CRM 公司记录 @ 挂进工程任务——所有交叉引用以**双向图(bidirectional graph)**原生存储,从任一端都能导航到另一端。
  • 频道即权限:在频道里 @ 的对象自动对成员可见,加入频道获得权限、退出即失去,没有逐条授权的「权限请求舞」。
  • 「为什么做这个任务」→ 任务 → 代理 → PR 的完整链条在一个系统内可审计,因为上下文没有散落到五六个工具里。

各 block 各自为政但共享后端:邮件(多账户统一收件箱、键盘优先)、消息(为技术讨论设计的频道,前几条内联、其余折叠成线程)、任务(紧耦合于频道与邮件的轻量 issue)、文档(CRDT 实时协同、markdown 原生)、Canvas(2D 白板)、通话(录音转写归档进团队记忆)、文件(从邮件和频道自动导入、全文可搜)、PR(关联任务、可嵌入频道)、CRM(公司/联系人对象 + 邮件聚合)。

值得注意的是任务和 CRM 的设计论:他们引 Linear 的报告说 issue tracking 已死,但立场更强——issue tracking 从来就没真正工作过,因为它与真实对话(聊天)是两个系统,注定过期。解法不是不追踪,而是把轻量任务直接长在对话发生的地方。CRM 同理:交易的真实讨论发生在聊天里而非 CRM 字段里,把 CRM 与聊天 colocate、@ 提及公司名即建双向链接,记录才会自己保持新鲜。

团队级记忆:代理的第一等公民待遇

Macro 的记忆机制值得单独拆开看。因为所有业务数据本来就在同一个库里,它的记忆不是「聊天记录摘要」,而是每晚一个 cron 任务把频道对话、DM、收发邮件、任务创建与完成合成为一遍的团队记忆,与旧记忆合并产出新版本。README 举的例子很具体:拍一张纸上功能清单的照片发给代理,它能建好工单并派给对应工程师。

三条配套设计:记忆以明文 markdown 存储,随时可导出、可直接让 AI 改写;对外经 MCP 暴露给任意代理(claude mcp add --transport http macro https://mcp-server.macro.com/mcp 一行接入 Claude Code/Codex 等任意 MCP 客户端);模型可换(OpenAI、Google、Anthropic……),记忆跟着工作区走而不是锁死在某家厂商。

代理编辑文档走的是与人类相同的 CRDT 协同协议——代理作为「同行编辑者」操作文档,冲突由 CRDT 原生解决。README 给了一个日常例子:一个每日自动化扫描所有频道、更新办公室桌球赛战绩文档;若已有人手改过,它会感知并跳过。

技术栈与工程形态

前端 SolidJS(浏览器、Tauri 桌面、移动端),后端 Rust。仓库布局:apps/web(SolidJS 客户端)、services/(42 个可部署服务/worker/Lambda)、crates/(167 个 Rust 库:领域逻辑、模型、DB 客户端)、packages/(共享 TS:协同、lexical-core、loro-mirror)。服务遵循六边形架构(hexagonal layout):入站适配器、带端口的领域核心、出站适配器。167 个 crate 的规模说明这不是玩具仓库,是一个真实产品的完整后端。

部署形态上主推托管版(macro.com/app,接 Gmail 即用,15 分钟上手),本地跑要按 docs/RUNNING_LOCALLY.md 走 docker compose 栈;安全资质 SOC 2 Type II + ISO 27001,模型侧零数据保留。

适用边界

AGPLv3 + 全开源意味着自托管与二次开发在许可上没有障碍,但 42 个服务的运维复杂度摆在那里——个人用户和两三人小团队托管它不划算,直接用托管版更现实。它的最佳受众是 10-50 人规模、被工具碎片化拖累、且已经开始用 AI 代理干活的技术团队:双向图让「上下文搬家」消失,团队记忆让代理不需要每次从头了解业务。反过来,如果你的团队深度依赖某个单品的独有能力(比如 Jira 的高级报表),Macro 对每个 block 的取舍是「够用且互相连通」而非「单项最强」。

一句收束:多数 All-in-One 产品死在「功能都齐了但数据不通」,Macro 押注的是反过来——先造一张连通一切的双向图,功能只是图上的视图。这个赌注成不成立,值得所有做协作工具的人盯着看。

参与讨论

使用 GitHub 登录。欢迎补充事实、异议与实践。