
【免费下载链接】company-brainOpen-sourcing our company brain - A teammate in your Slack that remembers everything your team says, and can go do the work.项目地址https://gitcode.com/gh_mirrors/co/company-brain点击查看免费下载本篇技术指南基于开源仓库 company-brain 的 docs/agent.md完整讲解其核心运行时一个基于 Cloudflare Durable Object 与 Agents SDK 构建的CompanyBrainAgent。你将掌握它的 DO 生命周期设计、Slack turn 的 Fiber 执行与恢复模型、三档模型角色与跨厂商回退策略、per-turn 计费账本、数据落点Postgres / DO SQL / KV以及最小环境配置清单并结合 src/brain/turn/agent.ts、src/brain/turn/model-profile.ts、src/brain/billing/cost.ts 等源码印证底层实现。一个 Durable Object 承载整个团队大脑company-brain 的运行时核心是一个名为CompanyBrainAgent的 Durable ObjectDO它继承自 Agents SDK 的Agent基类在 wrangler.jsonc 中通过COMPANY_BRAIN_AGENTbinding 绑定并注册为 SQLite 存储类new_sqlite_classes: [CompanyBrainAgent]。其关键设计如下类CompanyBrainAgent extends AgentEnv, CompanyBrainState见 src/brain/turn/agent.ts。绑定COMPANY_BRAIN_AGENT。实例 Id使用 Supermemory 的orgId通过getAgentByName(..., orgId)解析——即每个组织workspace拥有自己独立的 DO 实例。薄壳 懒加载shell 本身保持极薄重型 turn 逻辑全部放入agent.impl.ts并在首次使用时通过import(./agent.impl)动态加载loadImpl()目的是把 worker 全局启动开销控制在 Cloudflare 的校验预算之内src/brain/turn/agent.ts。显式 Slack turn 并不直接裸奔在 DO 上而是使用fiberstartFiber src/brain/turn/slack-turn-fiber.ts执行以获得幂等性、keep-alive以及 DO 被驱逐后的一次恢复尝试。DO 对外暴露的能力面surface以下表格汇总了CompanyBrainAgent上分组公开的方法非内部实现的全量枚举这些方法就是 DO 面向事件、调度与 HTTP 路由的全部入口领域方法示例Slack turnsonSlackEvent、onSlackChimeIn、onSlackContextEvent、onSlackReaction、onSlackMembershipEventApprovals / leasesonApprovalDecision、onLeaseDecision、runLeaseEscalation、连接被吊销/变更的回调ConnectonSlackConnectCompleteHome / installsetHomeChannel、ensurePublicChannelRolloutCard、start/runPublicChannelRollout、安装 nudge团队生命周期自动 invite 投放步骤、onSlackTeamJoin、onSlackUserChange含各自的 retry 回调TrialclaimTrialGrant、trial 提醒的 arm/run记忆管理resetMemoryRegistry、get/setWorkspacePromptSlack 生命周期resetSlackWorkspaceState断开连接的 teardownResearchresearchCompanyOnSignup、runResearchTask、getResearchStateObserverunChannelObserve调度runScheduledTask、automations 的 CRUD runAutomationNowReflectrunPostTurnReflectDebugdebugTurn在 src/brain/turn/agent.ts 中可以看到这些方法的统一实现模式绝大多数方法都是(await this.loadImpl())方法名即把工作转发给懒加载的实现模块凡是带SchedulePayload参数的方法如runTeamInviteStep、runApprovalExpiry、runAutoResearch都是 DO 的 alarm 调度回调。值得注意的是非 Slack 事件的 HTTP 请求往往也打到同一个 DOmodels / settings / research / automations / MCP callback 完成等路由都会以该组织为 key 定向到同一实例从而共享 DO 内的 SQLite 状态与调度上下文。Slack turn 的 Fiber 执行模型显式 Slack turn 使用 Agents SDK 的 fiber 机制执行核心逻辑集中在 src/brain/turn/slack-turn-fiber.ts 与 src/brain/turn/agent.ts 的startSlackTurnFiber/runSlackTurnFiber幂等键slackTurnFiberIdempotencyKey优先用eventId生成slack:{teamId}:{eventId}没有eventId时退化为由teamId channel ts/event_ts event.type拼接。恢复重试时键变为${baseIdempotencyKey}:recovery:${attempt}。Checkpoint 快照fiber 通过fiber.stash(snapshot)持续写入阶段快照阶段phase包括accepted → running → progress → waiting_approval → answered → completed快照中还可能携带threadKey、turnId、turnRevision、progressMessageTs、replyMessageTs、approvalMessageTs、terminalProposal等恢复所需信息。keep-alive 与驱逐恢复当 DO 实例因空闲被驱逐、fiber 被中断时onFiberRecovered会解析快照并决定下一步src/brain/turn/agent.ts若已有replyMessageTs或approvalMessageTs视为已完成直接返回 completed若已有terminalProposal调用finalizeInterruptedSlackTurn终结若attempt MAX_SLACK_TURN_RECOVERY_ATTEMPTS值为 1见 slack-turn-fiber.ts终结并标记 error否则以恢复快照重新startSlackTurnFiber完成一次恢复尝试。重复事件到达时startFiber返回accepted: falseshell 仅打印一行去重日志不会重复执行 turn。这套设计让 Slack 事件处理具备最多一次副作用、可恢复、不重复的语义同时避免了单次 turn 阻塞 HTTP 响应。断开与重装resetSlackWorkspaceStateresetSlackWorkspaceState是安装 bootstrap 的断开disconnect对偶操作。它会清空所有 Slack 派生表home / observe、public-channel rollout、team invite、welcome/notified、channel membership 及其 backfill取消这些表所拥有的 schedule保证后续重新安装从干净状态开始而不是拿着新 token 恢复旧任务。该操作是幂等的。客户主动断开时系统会先发送 farewell 再执行 reset 与 uninstall而运营商operator退役时会先在一个 announcement-only 运行中发送弃用通知再用独立的 removal 运行执行 reset 与 uninstall。即使 reset 失败token 仍保留在 Postgres 中调用保持可重试。模型配置三档角色与跨厂商回退模型配置的实现在 src/brain/turn/model-profile.ts对外 API 为GET/PATCH /brain/models/持久化于organization.metadata.brainModels。角色与默认值角色默认模型默认 effortMaingrok-4.5highTriageclaude-haiku-4.5lowResearchgrok-4.5high源码中对应常量BRAIN_MODEL grok-4.5、TRIAGE_MODEL claude-haiku-4.5、RESEARCH_MODEL grok-4.5、BRAIN_MAIN_EFFORT high、BRAIN_TRIAGE_EFFORT low。可选模型清单Mainclaude-sonnet-5、claude-opus-4.8、claude-sonnet-4.6、grok-4.5、gpt-5.6、gpt-5.5Triageclaude-haiku-4.5、claude-sonnet-5Researchgrok-4.5、grok-4.3配置值不在白名单内时resolveBrainMainModel/resolveBrainTriageModel会自动回退到对应默认模型model-profile.ts。Effort 取值low | medium | high | xhighprovider 映射Main 额外接受auto——即使用 triage 为当前 turn 推荐的 effort。resolveBrainMainEffort中agentMainEffort仅对选择了auto的组织生效内部 turn如后台批次则直接由effortOverride钉死避免把后台任务的姿态错误地带到用户 turn 上。Step 上限MAX_STEPS 60、CONTINUATION_MAX_STEPS 30源码另有LIVE_UPDATE_MAX_STEPS 12见 model-profile.ts。这些值直接进入createModelProfile返回的ModelProfile.maxSteps作为 AI SDK 多步 agent 循环的步数上限。跨厂商回退fallback非 Anthropic 主模型 →claude-sonnet-5Anthropic 主模型 →gpt-5.6brainFallbackModelFor按getModelInfo(name).provider anthropic分支。getBrainModel会把回退模型安装为每次请求的第二个 gateway 候选且回退模型获得与主模型相同的工具集。此外Anthropic 模型会启用anthropic.cacheControl: { type: ephemeral }提示词缓存cacheControl()其他厂商返回 undefined。Workspace prompt工作区提示词存储在 DO 上getWorkspacePrompt/setWorkspacePrompt在 turn 中以不受信任的workspace_prompt注入有大小上限。计费per-turn 账本与后置扣费LLM 用量在 src/brain/billing/cost.ts 的BrainCostLedger上按 turn 累计优先级优先采用 provider 上报的美元金额如 xAI 的cost_in_usd_ticks1 USD 10^10 ticks拿不到美元金额时退化为token × 列表单价usdFromTokenUsagemodel-prices.ts中的 list rates两者都不可得则记为missing并打 warn 日志。source 标记每条账目记录provider | estimate | missing | vendor其中vendor用于非 LLM 的按请求计费 APIrecordVendorUsd与模型成本同账本汇总。后置扣费turn 结束后通过scheduleChargeBrainLlmCost以 fire-and-forgetwaitUntil方式把总成本事后记入 Autumn 的sm_operations不阻塞 Slack 回复。自托管场景下账单只做度量与日志chargeBrainLlmCost注释明确说明hosted 脑会向 org 计费self-hosted 直接向 provider 付费。Trial 联动处于活跃试用期且余额不足no_balance时可以把试用标记为 exhausted并通过产品门禁阻止后续运行。trial 辅助逻辑位于payments/company-brain-trial.ts仓库对应 src/compat/lib/payments/company-brain-trial.ts。工具装配pointerturn/tools.ts中的assembleTurnTools负责为一个 turn 构建 AI SDK 工具集覆盖memory search、Slack search、MCP runtime、connect、schedule、sandbox 等。仓库中的实现位于 src/brain/turn/tools.ts相关能力模块见 src/brain/tools/mcp 与 src/brain/tools/sandbox。Slack 路径上强制只使用个人 MCP 连接防止跨组织共享工具权限。Approvals leases 相关实现见 src/brain/turn/approval.ts、src/brain/lease 与 src/brain/tools/mcp。数据布局Postgres共享src/db/schema/slack.ts — workspace、members、account link、provisioning 字段。src/db/schema/brain/mcp.ts — MCP 连接、OAuth state、嵌入式 grant。Org metadata —brainModels、产品 entitlementcompany_brain。Durable Object SQLDO 内的本地表由各模块以CREATE TABLE IF NOT EXISTS brain_…就地创建。可用以下命令盘点全量rg -n CREATE TABLE IF NOT EXISTS brain_ src/brain原文档针对apps/api/src/lib/brain当前镜像仓库的对应根为src/brain命令同样适用。重要分组thread turns approvals、bot threads、event store、chime budget、public-channel rollout、team invite、channel observe、MCP catalog cache、memory tag registry、research、leases、post-turn reflect。务必注意DO SQL不是跨组织共享状态——每个 DO 实例是 per-org 的本地表仅属于该组织实例。KVslack:oauth:{state}— OAuth 授权流状态。slack:evt:{event_id}以及相关的 chime/dedupe 键— 事件去重。对应 wrangler.jsonc 中的BRAIN_KVbindingkv_namespaces一节。最小配置清单名称用途SLACK_SIGNING_SECRET事件/交互签名校验SLACK_CLIENT_ID/SLACK_CLIENT_SECRET安装 OAuthBETTER_AUTH_SECRET/BETTER_AUTH_URLtoken 加密材料 / 公共 originAUTH_KVOAuth 去重HYPERDRIVE/ DBworkspace 与 MCP 行COMPANY_BRAIN_AGENTDO 命名空间CLOUDFLARE_ACCOUNT_IDCOMPANY_BRAIN_AI_GATEWAY_NAMECOMPANY_BRAIN_AI_GATEWAY_TOKEN三者缺一不可。所有模型调用都经由此 gateway 路由brainGatewayConfig只有在三者齐备时才返回非 null否则wrapBrainGateway会在调用前直接抛错COMPANY_BRAIN_GOOGLE_WORKSPACE_CLIENT_ID/SECRET内嵌 GoogleGmail可选的 GitHub MCP client id/secret免 DCR 的 Catalog GitHub connect功能开关features.companyBraincloud 开、self-hosted 关。DO binding 与迁移的实际声明可对照 wrangler.jsonc 的durable_objects/migrations区块其中CompanyBrainAgent作为 v1 的new_sqlite_classes注册KV 与 D1DBmigrations 目录drizzle也在同一文件声明。可观测性Sentry 挂在 worker 上PostHog 记录 turn 的 AI spans 与company_brain_triage事件。Triage 上报是 best-effort在路由修复后执行失败时不得在本地警告中包含原始 Slack 文本或 prompt 文本避免敏感信息泄漏。产品事件目录见 docs/product/product-analytics.md当前镜像仓库对应 docs/README.md 体系下的产品文档入口。关联文档docs/architecture.md — 系统地图 记忆/工具摘要。docs/slack.md — Slack 特定行为。若要深入 cloud 与 self-hosted 的边界可结合 docs/setup.md 与 wrangler.jsonc 中关于 Workers Paid / container sandbox 的注释CONTAINER_SANDBOX开关、Daytona 回退理解部署差异。赞分享【免费下载链接】company-brainOpen-sourcing our company brain - A teammate in your Slack that remembers everything your team says, and can go do the work.项目地址https://gitcode.com/gh_mirrors/co/company-brain点击查看免费下载相关推荐TestDisk 数据恢复终极实战一次搞定分区表修复与误删文件找回TestDisk 数据恢复终极实战一次搞定分区表修复与误删文件找回 TestDisk 是一款开源的磁盘分区修复与数据恢复工具专门解决分区表损坏、分区丢失、误Cloudflare Codemode Runtime 深度解析基于 Durable Object facet 的持久化执行引擎Cloudflare Codemode Runtime 深度解析基于 Durable Object facet 的持久化执行引擎 Codemode 让模型通过AI AgentAgent 框架后端云原生MCP 服务实时通信gbrain company-brainify 实战从个人大脑安全构建团队共享大脑的完整净化工作流gbrain company brainify 实战从个人大脑安全构建团队共享大脑的完整净化工作流 本篇技术指南围绕 company brainify 技能人工智能RAGAgent 记忆MCP 服务知识管理创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考