大数跨境

Supermemory 企业大脑多人 Agent 框架开源:开源重磅|把 AI 做成团队队友:

Supermemory 企业大脑多人 Agent 框架开源:开源重磅|把 AI 做成团队队友: 苏哲管理咨询
2026-10-17
17
导读:最近 Supermemory 官宣关停旗下「企业大脑」商业产品,但带来一个惊喜 —— 将整套自研多人协同智能体运行框架 Company Brain 完整开源,支持 Cloudflare 一键部署,5

编者摘要:最近 Supermemory 官宣关停旗下「企业大脑」商业产品,但带来一个惊喜 —— 将整套自研多人协同智能体运行框架 Company Brain 完整开源,支持 Cloudflare 一键部署,5 分钟即可搭建,所有数据由使用者自主保管。

市面上绝大多数 Slack AI 机器人,都是 “提问才回答” 的问答模式。而这套框架的核心理念,不是做一个应答 Bot,而是打造一名 AI 团队队友。它不会无脑插话,而是自主判断参与时机、收集上下文、遵守隐私边界,甚至能长时间执行复杂任务,只输出最小且高价值的干预动作。

整套架构基于 Cloudflare Agents SDK 搭建,核心是一套叫 Harness 的运行框架,作为包裹大模型的策略与运行层,串联交互、模型、存储与第三方工具。整体分为四层:Slack 交互层、Harness 运行框架、模型推理层、云基础设施层。

主动感知是最亮眼的设计。很多主动型 Agent 容易频繁刷屏打扰群聊,而 Company Brain 用小模型做多维度打分,评估消息的有用度、置信度、紧急程度、打断代价。评估后分出四种行为:完整回答、后台调研、仅发表情、保持静默。 调研模式尤其巧妙:后台检索记忆、工单、邮件等资料,如果没有有效信息,直接生成「静默结论」,不会在频道输出 “查完没有信息” 这类无效消息,避免污染对话。

框架内置一套分阶段状态机管理 Agent 会话。从工具组装、加载企业上下文、模型流式推理,到进度校验、异常补救、高风险审批,最后写入记忆完成闭环。同时引入步骤预算机制:临近步骤上限时收回工具权限,强制模型基于已有信息总结答案,解决 Agent 反复调用工具、迟迟不给结论的经典 bug。

多人并发场景是另一大亮点。Slack 对话是持续动态的,在 Agent 执行任务时,群内随时会新增消息。系统通过活跃会话网关,判断新消息是忽略、追加上下文、直接替换原有需求,还是终止正在运行的任务。 高风险操作采用断点式审批:触发审批时,会话状态序列化保存并暂停;审批通过后,同一个推理流程继续执行,保证推理因果连贯,而不是重新启动一轮新对话。

在记忆设计上,它没有把所有聊天一股脑灌入向量库(容易堆积过期信息干扰模型),而是做数据隔离:一边是持久化的企业知识库,存储项目、决策、历史信息;另一边是实时事务数据,读取工单、最新邮件等动态业务状态。记忆空间按频道隔离,公共频道、私信、私有频道拥有独立记忆容器,保障权限与隐私。

工具调用采用渐进式暴露策略。工具分组管理,沙箱、调度器等高能力工具默认隐藏,模型需要时才解锁,减少提示词上下文负担,避免无关工具干扰模型选择。

团队提出一个经典智能体价值公式:Agent 价值 =(有用性 × 正确性 × 时效性)/(噪音 × 风险 × 打断代价)。一条答案哪怕技术上正确,如果打断讨论、泄露隐私、重复人类发言,依然是一次糟糕的介入。

项目已在 Github 开源,支持一键部署到 Cloudflare。开发者可以自由修改、二次开发,快速搭建属于自己的企业多人协同智能体。

10 个关键问题Q&A 

  1. Q:Company Brain 是什么? A:Supermemory 开源的多人协同 Agent 运行框架(Harness),专门用于在 Slack 中构建 AI 队友,管理 Agent 的策略、记忆、权限、会话生命周期,底层依托 Cloudflare Agents。
  2. Q:为什么 Supermemory 关停商业产品还要开源? A:商业产品下线,团队重心转向面向 Agent 的底层记忆 API;大量客户建议开源,因此释放整套工程实现,社区可自行部署使用。
  3. Q:它和普通 Slack 机器人最大差别在哪? A:普通 Bot 被动应答;Company Brain 具备可控的主动感知,会自主评估该不该说话,支持后台静默调研、会话断点恢复、多人动态会话接管。
  4. Q:什么是 Harness 运行框架,作用是什么? A:包裹大模型的运行时 + 策略层。模型只负责推理,Harness 管控路由、权限、记忆边界、工具调用、并发、故障恢复、审批流程。
  5. Q:主动感知是如何避免 AI 乱插话刷屏? A:小模型输出多维度置信打分,评估打断代价;分为回答、调研、表情回应、静默四类动作,无价值调研结果直接静默,不输出文本。
  6. Q:步骤预算机制解决了什么 Agent 痛点? A:防止 Agent 在最后一轮继续调用工具、永不输出结论;临近预算上限自动隐藏工具,强制模型基于已有信息总结答案。
  7. Q:记忆层的核心设计思路是什么? A:持久企业语义记忆 和 实时业务事务数据分离;记忆按频道隔离,避免全部信息灌入向量库带来的陈旧信息干扰问题。
  8. Q:多人并发网关解决了什么场景问题? A:Slack 对话动态变化,Agent 执行任务时,新消息可以追加上下文、替换需求或者终止任务,适配多人实时协同对话。
  9. Q:高风险操作的审批流程有什么特点? A:会话暂停并保存完整检查点;审批通过后延续原有推理会话,保持因果连贯,不是重新发起一轮模型对话。
  10. Q:部署门槛怎么样,数据归属如何? A:Cloudflare 一键部署,5 分钟完成搭建;所有数据保存在自己部署环境,不归第三方平台,适合企业私有化使用。
附录 开源企业大脑:多人协同运行框架的设计思路

距离我们下线企业大脑运行框架,才过去两周。我们不得不把大量用户迁移到其他产品,但很多客户以及社区朋友都建议我们把企业大脑相关工作开源。

于是我们决定开源项目,你可以在这里使用:

 https://github.com/supermemoryai/company-brain

一键部署到 Cloudflare,5 分钟以内就能完成搭建,所有数据归你所有。 https://deploy.workers.cloudflare.com/?url=https://github.com/supermemoryai/company-brain

在这篇文章里,我会聊聊这套架构,还有我们团队(主要是 @maheshthedev,大神)在这套运行框架上做的工作。这工程设计真的很棒,基于 Cloudflare Agents SDK 搭建,在权限管理、主动感知能力等细节上做了很多巧思!感谢 @threepointone 带来 Cloudflare Agents。

至于关停产品的原因,可以看下面这篇博文。一句话总结:我们希望打造全世界顶尖的智能体记忆系统,全力深耕这个方向。

Dhravya Shah @DhravyaShah ・ 我们将下线企业大脑与个人大脑产品,所有受影响用户都会获得退款。现在,我们将全部精力投入,持续打造面向智能体的前沿记忆 API。 Supermemory 更新公告

大约一个月前,我们上线了 Supermemory 企业大脑。投入了数月时间、大量人力与资金。上线后在 X 平台获得 50 万 + 曝光……

本文不是 AI 流水线生成的水文,篇幅会比较长 —— 我会把数月的研发沉淀,提炼成清晰的架构决策。全文由我亲手撰写,欢迎评论区反馈!这次不想只用枯燥文字,文中配有大量示意图和 ASCII 流程图,读起来会更轻松!

设计一名团队伙伴,而不是机器人

提到 Slack 机器人或智能体,大家的固有印象是:发送提示词 → 执行任务 → 返回结果。

而我们设计企业大脑,基于一套完全不同的理念:不只是简单给出答案,它要自主判断何时参与对话、收集合适上下文、在隐私边界内行动、执行超长时间任务,只在必要时给出精简、高价值的介入动作。

企业大脑运行框架(harness)是包裹大模型的运行时、策略层、记忆边界、工具系统与对话协议。它把原始大模型能力,转化成可靠团队伙伴的行为:被提问时及时响应、有选择性地主动介入、具备调研能力、该安静时保持沉默,基础设施故障时还能恢复执行。

运行框架整体体验

大模型本身可以做消息分类、调用工具、生成流畅回答,但它天生不知道这些问题: 这是一个多人协同智能体,所以要处理多人场景下的各类问题:

  • 基于 Slack 事件实现主动感知(包括会议、笔记等信息都可以学习)
  • 机器人是否允许在该频道发言
  • 某一块记忆存储空间是否可以检索
  • 合适的审批与访问控制策略(发送邮件前是否需要审批?审批弹窗过多也会破坏体验)
  • 新消息是否替代了原有请求(请求转向等逻辑)
  • 模型输出的 “正在处理中” 是临时状态,还是最终答案
  • 如果工具调用到一半运行实例消失,如何恢复任务
  • 什么时候最该保持沉默,什么时候不该插嘴

整体架构

整套系统完全基于 Cloudflare 搭建:团队熟悉这套平台,对我们和智能体来说开发体验极佳,并且拥有极强的扩缩容能力。直接使用 Agents SDK 就能开箱获得大量内置能力。

CompanyBrainAgent是核心主体,一个以组织 ID 作为主键的 Cloudflare Durable Object(持久对象)。它负责:

  • 基于 Fiber 实现会话生命周期与故障恢复检查点
  • 本地持久 SQL,存储活跃会话、收件队列、审批任务、机器人对话串、冷却策略、发布游标、追踪日志
  • 解密机器人 Token 后,执行 Slack API 操作
  • 消息分诊、主动感知判定、动作评估
  • 主模型 / 工具调用循环
  • 审批流程的暂停与恢复
  • 计费与埋点任务调度

下面我们看,一条来自 Slack 的事件抵达后会发生什么。

事件分为几类:

  • 显式触发
    @提及、私信、助手对话串、唤醒呼叫
  • 被动事件
    频道内普通消息,允许智能体主动介入
  • 仅上下文
    对话信息需要留存,但 HTTP 路由层不做回复
  • 忽略
    机器人 / 自身消息、不支持的子事件类型、不符合条件的事件

基于事件,系统会做分类判断:

Slack消息
    │
    ├─ 是否是机器人/自身消息?────────────────────► 丢弃
    ├─ 是否为不支持的事件子类型?──────────────────► 丢弃
    ├─ 是否明显是发给其他人的?────────────────────► 仅保留上下文 / 丢弃
    ├─ 权限/订阅校验失败?────────────────────────► 提示通知 / 丢弃
    ├─ 仅表情的被动消息?──────────────────────────► 丢弃
    ├─ 频道设置静默、且非显式触发?────────────────► 丢弃
    ├─ 主动感知冷却期未结束?──────────────────────► 丢弃
    └─ 当前已有会话正在运行?──────────────────────► 请求转向网关
                                                      进入分诊判定

只在必要时开口

我们非常看重机器人介入带来的实际价值。市面上很多智能体都做了主动感知,但很多时候根本不该主动插话,很容易惹人厌烦!

具备主动感知能力的智能体,必须回答两个问题:

  1. 智能体做这件事,是否能产出有效价值?
  2. 现在打断这场对话,是否合适?

最开始我们尝试用二元 “是 / 否” 判断主动触发,但很多场景并不是非黑即白。后来改成置信度打分模型,由小模型输出多项阈值分数:

消息 + 上下文
        │
        ▼
┌──────────────────────────┐
│ 分诊模型 Triage model    │
│ 评估场景状态              │
│                          │
│ 有用程度                 │
│ 置信度                   │
│ 紧急程度                 │
│ 噪音风险                 │
│ 打断代价                 │
│ 调研价值                 │
│ 表情适配度               │
└────────────┬─────────────┘
             │ 输出0–100各项分数
             ▼
┌──────────────────────────┐
│ 确定性评估器             │
│ 公式 + 模式策略          │
│ 显式消息规则             │
└────────────┬─────────────┘
             │
    ┌────────┼────────────────┬────────────────┐
    ▼        ▼                ▼                ▼
回答 ANSWER  调研 INVESTIGATE  确认 ACKNOWLEDGE  忽略 PASS
完整会话     工具校验          表情回应          保持沉默

评估器可以处理这类场景:

  • 有价值,但置信度低 → 先调研,不直接回答
  • 社交上适合回应,但没有实质信息 → 仅发表情
  • 事情紧急,但直接回复会造成打扰 → 在更严格模式下后台调研
  • 内容正确有用,但已经有人回答 → 不做任何动作
  • 显式提问、内容轻量 → 简单确认,不启动完整推理会话

输出结果 = 核心动作 + 表情动作(Slack 表情)

  • 核心动作:ANSWER 回答|INVESTIGATE 调研|PASS 不响应
  • 表情动作:允许列表内表情|无表情

顺带一提表情能力:我们开源了 emoji-resolve 库,智能体可以随意使用表情,解析器自动处理。还能识别企业自定义表情,学习后直接调用。

由此实现 4 种自然交互行为:

  1. 回复消息,不发表情
  2. 发表情,不回复文字
  3. 发表情 + 回复
  4. 什么都不做

主动感知的配置

即便有这套逻辑,用户有时依然希望关闭频道内的主动能力。我们支持按频道单独配置。

@提及这类显式触发,几乎都会判定为回答。

显式消息
        ▼ 分诊模型
        │
        ├─ ACK确认 ───────────► 允许表情回应
        ├─ ANSWER回答 ────────► 启动完整会话
        ├─ INVESTIGATE调研 ───► 启动调研模式完整会话
        ├─ PASS忽略 ───────────► 强制转为ANSWER回答
        └─ 解析错误/异常 ─────► 降级为ANSWER回答

生成回答的完整流程

当分诊判定选择 ANSWER 或 INVESTIGATE,就开始生成回答。 这里就是运行框架的核心:带时间感知的分阶段状态机,按照人类预期节奏执行任务。

模型会持续向人类同步进度:“我找到了 XYZ,下一步我将处理 ABC。” 避免人类以为智能体卡死。

我们使用 AI SDK 的流式输出,并且通过 onBeforeStep钩子注入节奏控制。

runModelLoop
    │
    ├─ streamText({
    │    model: 主模型配置,
    │    system: 策略 + 工作区上下文,
    │    messages: 对话 + 会话状态,
    │    tools: 组装后的工具集合,
    │    activeTools: 当前可见工具名称,
    │    stopWhen: 达到步骤预算上限,
    │    abortSignal: 会话中断控制
    │  })
    │
    └─ 每一步 EACH STEP
          ├─ onBeforeStep
          │    ├─ 拉取对话队列新消息
          │    └─ 需要时推送进度提示
          │
          ├─ prepareStep
          │    ├─ 渲染最新会话状态
          │    └─ 收尾阶段隐藏工具
          │
          ├─ 模型输出
          │    ├─ 纯文本
          │    ├─ 工具调用
          │    └─ 文本 + 工具调用
          │
          ├─ 执行工具,追加返回结果
          ├─ 记录本轮步骤
          ├─ 距离上限剩3步:提示剩余预算
          └─ 距离上限剩1步:移除所有工具,强制输出最终文本

步骤预算是核心控制机制。

临近上限时,框架会告知模型剩余步数。到达边界,直接收回工具权限,模型只能基于已有信息总结答案。 解决一个常见故障:智能体在最后一步又发起新一轮检索,最终无法给出结论。

工具组装、渐进式暴露、代码模式

模型可以访问多类工具,但不需要一次性加载全部工具定义。

assembleTurnTools 组装会话工具
        │
┌───────┬────────┬────────┬────────┬────────┐
▼       ▼        ▼        ▼        ▼
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
│记忆  │ │发现  │ │外部应用│ │Slack交互│ │副作用 │
│检索  │ │人员  │ │Gmail  │ │频道检索│ │保存  │
│查看  │ │实体  │ │GitHub │ │进度同步│ │连接  │
│解析  │ │组织树│ │Linear │        │ │遗忘  │
└──────┘ └──────┘ │Notion │ └──────┘ └──────┘
                  └──────┘
                      │
                      ▼
            ┌─────────────────┐
            │ 延迟加载工具组   │
            │ 沙箱环境         │
            │ 调度器           │
            │ 默认隐藏,      │
            │ 开启后才暴露    │
            └─────────────────┘

我们使用代码模式 + activeTools选择器实现这套逻辑。 activeTools控制每一步能看到哪些工具。沙箱、调度器这类工具,只有模型主动解锁对应工具组之后,才会暴露给模型。

带来三点收益:

  1. 降低上下文开销:更少工具描述占用提示词空间
  2. 工具选择更精准:无关工具不会干扰模型选择
  3. 策略管控:部分高级能力需要显式切换后才可启用

收尾阶段框架可以一次性移除全部工具,不用重新构建完整模型上下文。

记忆层:多人场景下,管控信息陈旧、知识学习等问题

这块实现难度不小。很多企业大脑类产品,会把所有内容全部灌入向量库。我们认为这种做法会堆积大量过期信息,严重干扰模型判断。

我们要严格区分持久化企业知识和 实时业务状态。

                  ┌────────────────────────┐
                  │       Agent 会话       │
                  └───────────┬────────────┘
                              │
              ┌───────────────┴────────────────┐
              ▼                                ▼
┌────────────────────────┐       ┌────────────────────────┐
 │ 企业大脑记忆层         │       │ 第三方连接应用          │
 │ 决策记录               │       │ 当前工单状态           │
 │ 归属信息               │       │ 最新邮件               │
 │ 项目上下文             │       │ 线上部署状态          │
 │ 历史知识               │       │ 近期Slack消息          │
 └────────────────────────┘       └────────────────────────┘
         持久 / 语义记忆                实时 / 事务性数据

一次会话,会先用记忆理解 “本次迁移” 这类指代,再调用 Linear 或 GitHub 校验当前真实状态。 如果把两类数据源混为一谈:要么记忆频繁变动不稳定,要么实时工具缺少上下文。

在记忆分层上,我们没有全部采用用户维度记忆,而是基于频道划分。 Supermemory 内部的容器标签规则:

  • 公共频道:sm_org_shared组织共享
  • 私信:user_{userId}用户私有
  • 私有频道 / 多人私信:slack_channel_{channelId}

当然,记忆底层直接复用 Supermemory 本身的能力。

调研模式:回答前先取证

我们这套架构另一个亮点:智能体不只判断要不要回复,还可以选择调研(INVESTIGATE):

先调研,再决定要不要发言

INVESTIGATE 调研
    ▼ 收集证据:记忆 · Slack · 追踪日志 · 第三方应用
    ▼ 是否存在可行动、有价值的信息?
    │
    ├─ 有 → 整合信息并回复
    └─ 无 → silentConclusion 静默结论
               不发送Slack消息
               释放主动感知配额

这是环境智能(ambient intelligence)的关键。如果每一次后台检查都输出文字,机器人会刷屏,例如:“我检查完毕,没有找到任何信息。”

静默结论,让系统以产出价值为目标,而不是追求可见输出。

高风险工具的审批流程

模型请求高风险工具调用
        ▼
    审批分类器
        │
    ┌────┴────┐
    ▼         ▼
无需审批    需要审批
    │           │
  直接执行    保存待审批记录
                │
                ▼
         保存消息、工具状态、版本检查点
                │
                ▼
            发送【批准/拒绝】卡片
                │
          ┌─────┴─────┐
          ▼           ▼
        拒绝        批准
          │           │
        结束任务    resumeTurnAfterApproval 恢复会话
                      │
                      ▼
              沿用原模型循环,上下文完整保留

审批不会交给另一个独立智能体处理。当前会话暂停,状态序列化保存。审批通过后,同一个推理过程继续执行,同时记录本次审批决策。

保证因果连续性:发起动作的那个智能体,看到审批结果并继续完成工作。

多人并发处理

Slack 不是简单请求 - 响应模式。智能体工作的同时,对话串会持续新增消息。同事可以补充证据、修正前提、替换需求、要求智能体停止。

活跃会话里新增消息,会走活跃会话网关,而不是普通分诊流程。 新消息抵达正在运行的对话串:

新消息进入活跃会话
        ▼
    活跃会话网关模型
        │
┌────┬────┬──────┬────┐
▼    ▼    ▼      ▼
忽略 追加 替代请求 停止
无关 增加上下文 覆盖原有任务 终止任务
        │             │
        ▼             ▼
  持久收件队列      发送终止信号
        │
  下一步执行前,先读取队列更新
        │
  <live_thread_updates> 注入到会话

运行框架为什么这么复杂?

你大概率会觉得这套框架太重了。但这些复杂度是必要的。

和 Pi、OpenCode、Codex 这类运行框架不一样,我们不能简单粗暴地把所有逻辑丢进模型。面向大型企业使用,确定性是硬性要求:权限、工具调用等都必须可控。而且我们不想只做问答机器人,那太简单无趣;实现真正的多人协同智能体,本身就充满挑战。

产品层面考量

我们要保证用户不用担心智能体做出损害公司的行为。记忆调用、工具使用、访问权限、审批流程,全部可控,可以根据客户需求调整。

我们的优化目标,不只是回答质量。核心目标是作为一名员工所能创造的价值。

\(Agent\ value=\frac{有用性 × 正确性 × 时效性}{噪音 × 风险 × 打断代价}\)

一条技术上正确的回答,依然可能是一次糟糕介入:出现在错误频道、泄露私密上下文、重复人类已说内容、打断敏感讨论、无视最新消息。

这套系统不只回答:我该说什么?还会持续自问:

  • 我是否应该发言?
  • 是否需要先调研取证?
  • 简单发表情是否足够?
  • 适用哪一套信息边界?
  • 用户需求是否已经变更?
  • 是否需要申请审批?
  • 任务能否可靠收尾?

这就是单纯把大模型接入 Slack,和打造 AI 团队伙伴的本质区别!


补充要点(便于快速阅读)

  1. 项目背景:Supermemory 关停「企业大脑」商业产品,将整套多人 Agent 运行框架开源,一键部署 Cloudflare,数据自托管
  2. 核心定位:不是问答 Bot,是AI 队友,核心能力:选择性主动发言、后台静默调研、会话可中断恢复、精细化权限审批
  3. 核心技术亮点
    • 分诊模型打分,评估「该不该插嘴」,控制主动感知,避免骚扰
    • 分阶段状态机会话,步骤预算限制防止无限工具调用
    • 工具渐进式暴露,按需加载工具定义,减少上下文消耗
    • 记忆分层:持久企业语义记忆 + 第三方应用实时事务数据分离
    • 多人并发网关:新消息可以追加上下文、替换原有任务、直接终止正在运行的 Agent 会话
  4. 关键公式:智能体价值 =(有用 × 正确 × 时效)/(噪音 × 风险 × 打断成本)

【声明】内容源于网络
0
0
苏哲管理咨询
为企业及组织提供AI+战略、数智化转型咨询及观点、建议等
内容 2336
粉丝 0
苏哲管理咨询 为企业及组织提供AI+战略、数智化转型咨询及观点、建议等
总阅读61.6k
粉丝0
内容2.3k