ГАЙД · SELF-HOSTING

Как развернуть Company Brain: Slack-агент с памятью команды на своём Cloudflare

«Deploy in five minutes» из README — это только воркер. Дальше два ключа, приложение Slack с 20 бот-скоупами, вход владельца, установка в workspace и раздача команде. Ниже — весь путь целиком, включая платный Cloudflare, песочницу для запуска кода и честный разбор того, за что вы будете платить каждый месяц.

ГайдCloudflareSlackMCP
Тип Пошаговый гайдПродукт Company Brain, Apache-2.0Стек Workers + D1 + Durable ObjectsОбновлено 26.09.2026

Company Brain — open-source агент, который живёт в Slack и помнит рабочую жизнь команды. Разворачивается он в ваш аккаунт Cloudflare, память хранит в вашем аккаунте supermemory, модель вызывает по вашему ключу. Этот гайд — путь от пустого аккаунта до работающего бота с предсказуемым счётом: что купить, какие ключи положить, где настраивается характер агента и на чём обычно спотыкаются.

Коротко о развёртывании
Обязательные ключиsupermemory + ключ модели (Anthropic / OpenAI / Google / xAI)
Что нужно заранееаккаунт Cloudflare и готовый workspace Slack — бот его не создаёт
Порядок действийдеплой воркера → /setup → приложение Slack → вход владельца → Install to Slack
Платный Cloudflareнужен только для встроенной песочницы; на бесплатном плане хватит ключа Daytona
Минимум в месяц$24 ($19 supermemory Pro + $5 Workers Paid) + токены модели
Прежде чем начинать
Агент устанавливается в уже существующий workspace Slack — свой он не создаёт. Также потребуется аккаунт Cloudflare: деплой по кнопке разворачивает D1, KV, Durable Objects и Workers AI в вашем аккаунте, то есть база данных и состояние остаются у вас, а не у вендора.

01Что понадобится

Обязательных ключей всего два — они же и есть весь bill of materials уровня «завести». Остальное опционально и добавляется позже командой wrangler secret put или через панель Cloudflare.

ПеременнаяЧто этоГде взятьНужна всегда
SUPERMEMORY_API_KEYаккаунт, в котором агент читает и пишет памятьconsole.supermemory.aiда
MODEL_API_KEYключ одного провайдера: Anthropic, OpenAI, Google или xAI — провайдер определяется по префиксупанель вашего провайдерада
ANTHROPIC_API_KEY и аналогиесли нужно несколько провайдеров сразу, ключи задаются поимённопанели провайдеровнет
DAYTONA_API_KEYпесочница (shell, git, Python) на бесплатном плане Cloudflaredaytona.ioнет
FIRECRAWL_API_KEYвеб-поиск сверх бесплатного keyless-тира в 1000 кредитов в месяцfirecrawlнет
CONTEXT_DEV_API_KEYальтернативный провайдер поиска и чтения страницcontext.devнет
PUBLIC_URLадрес туннеля при локальной разработке — Slack должен достучаться до машинываш ngrok/cloudflaredтолько локально

02Шаг 1. Разворачиваем воркер

Самый быстрый путь — кнопка Deploy to Cloudflare в README: она провижнит D1, KV, Durable Objects и Workers AI и спросит ровно два секрета — ключ supermemory и ключ модели. Если предпочитаете руками, хватит wrangler:

terminalbash
bun install
bunx wrangler dev        # локально
bunx wrangler deploy     # в аккаунт Cloudflare

Схему базы воркер применяет сам на первом запросе — отдельный шаг миграции не нужен. Если миграция не пройдёт, страница /setup покажет причину и кнопку «Run migrations» для повтора. При правках схемы в src/db/schema сначала выполняется bun run db:generate: он собирает миграцию и вшивает её в воркер.

03Шаг 2. Открываем /setup: четыре проверки

Страница /setup на вашем деплое — это чек-лист. Она проверяет четыре вещи по порядку и не пускает дальше, пока предыдущая не зелёная:

Что проверяет /setup
1База данныхмиграции D1 применены; если нет — причина и кнопка повтора2Памятьключ SUPERMEMORY_API_KEY установлен3МодельMODEL_API_KEY распознан как Anthropic, OpenAI, Google или xAI4Slackкреды приложения сохранены и подпись событий проходитПорядок проверок — из docs/guide/setup.md.
Ключ модели определяется по префиксу
Если положить ключ в неподходящую переменную, детект провайдера не сработает и проверка «Модель» останется красной. Лечится явными переменными вида ANTHROPIC_API_KEY или XAI_API_KEY вместо общего MODEL_API_KEY.

04Шаг 3. Создаём приложение Slack

Приложение Slack за четыре шага
1
Нажать «Create the Slack app» на /setup
откроется Slack с манифестом, в котором уже подставлены URL вашего деплоя: события, интерактив и два OAuth-редиректа
2
Выбрать workspace и создать приложение
Slack подтвердит создание приложения в вашем рабочем пространстве
3
Забрать три значения
в Basic Information → App Credentials взять Client ID, Client secret и Signing secret
App Credentialscopy
Client ID
Client secret
Signing secret
4
Вставить их в форму на /setup
после сохранения Slack проверяет URL событий подписью — если ранее он помечал их как непроверенные, нажмите Retry в Event Subscriptions
manifest · скоупы и событияyaml
# bot-скоупы (20):
app_mentions:read · assistant:write · channels:history · channels:join · channels:manage
channels:read · channels:write.invites · chat:write · files:read · files:write
groups:history · groups:read · im:history · im:write · reactions:read
reactions:write · team:read · usergroups:read · users:read · users:read.email

# user-скоупы (13): canvases:read · channels:history · files:read · groups:history · groups:read
# im:history · mpim:history · mpim:read · search:read.files · search:read.im
# search:read.mpim · search:read.private · search:read.public

# события (8):
app_mention · message.channels · message.groups · message.im
reaction_added · reaction_removed · team_join · user_change
Про согласие пользователей
В манифесте явно помечено: чем больше скоупов, тем длиннее экран согласия у каждого сотрудника. В репозитории пользовательские скоупы собраны как read-only именно поэтому — не расширяйте их без нужды.

05Шаг 4. Вход, установка и раздача команде

  1. Sign in with Slack. Первый вошедший создаёт организацию и становится её владельцем. Люди из других workspace не пускаются.
  2. Install to Slack. Доступно только владельцу и админам — это их решение, а не общая кнопка.
  3. Появляется #company-brain. Агент создаёт домашний канал, приглашает вас и публикует вводное сообщение.
  4. Ресёрч по вашей компании. Домен определяется по workspace, дальше проходят шесть аспектов: обзор, продукты, люди, работа, конкуренты и traction. Главная страница скрабится один раз за прогон и используется всеми аспектами как контекст.
  5. Карточка на добавление в публичные каналы. Молча в каналы он не заходит: админ нажимает кнопку, и агент проходит по публичным каналам сам. В приватные — только по приглашению.
  6. Роллаут команды. Люди подхватываются из workspace и получают приветственную личку; отдельных посадок по email нет, поэтому никого не надо приглашать вручную.
Проверка боем
Дальше спросите в #company-brain или в личке: «Что делает наша компания?». Это первый тест и памяти, и модели одновременно.

06Бесплатный Cloudflare или Workers Paid

Продукт заявлен как работающий на бесплатном плане Cloudflare — и это правда, но с двумя существенными оговорками, которые в README вынесены в отдельную таблицу.

ЧтоWorkers FreeWorkers Paid ($5/мес)
Длинные многошаговые ответымогут обрываться: 50 исходящих вызовов на запросполный цикл инструментов
Песочница (shell, git, Python)только с ключом Daytonaвстроенный контейнер на Cloudflare
Code Mode (цепочки вызовов кодом)работаетработает
Лимиты плана100 тыс. запросов в сутки, 10 мс CPU на вызов10 млн запросов, 30 млн CPU-мс, 25 GiB-ч памяти контейнеров, 375 vCPU-мин, 200 GB-ч диска
Как включить встроенную песочницу
1
Раскомментировать блок Workers Paid
в wrangler.jsonc это блок containers с классом Sandbox и образом ./sandbox/Dockerfile
2
Переключить флаг
переменная CONTAINER_SANDBOX переводится из "off" в "on"
wrangler.jsonccopy
"CONTAINER_SANDBOX": "on"
3
Передеплоить
bunx wrangler deploy. Локально для этого нужен запущенный Docker
terminalcopy
bunx wrangler deploy
Daytona как альтернатива
Ключ Daytona работает и на платном плане — если он у вас уже есть, контейнер Cloudflare поднимать не обязательно. Ставки Daytona: $0,0504 за vCPU-час, $0,0162 за ГиБ-час, первые 5 ГиБ бесплатно, $200 вычислительных ресурсов в подарок.

07Модели, характер и навыки

Агент не привязан к одному вендору: ключ определяет провайдера, а в Configure → Models настраиваются модель и уровень усилия отдельно для основных турнов и для triage. Для triage ставьте что-то дешёвое — этот вызов срабатывает на каждый пассивный тред.

.dev.varsbash
# один провайдер — определяется по префиксу ключа
MODEL_API_KEY=""

# или явно, если провайдеров несколько
ANTHROPIC_API_KEY=""
OPENAI_API_KEY=""
GOOGLE_GENERATIVE_AI_API_KEY=""
XAI_API_KEY=""
Что настраиваетсяГдеЗачем
Модели и усилиеConfigure → Modelsбаланс «быстро/тщательно» отдельно для ответов и triage
Workspace-промптConfigure → Workspace Promptпостоянный характер агента: от сухого официального до полностью свободного
НавыкиConfigure → Skillsповторяемые процессы, форматы и голос команды
ПроактивностьConfigure → Proactivityall channels / только свой канал / исключения по каналам

Дефолты в коде репозитория: основная модель grok-4.5, triage — claude-haiku-4.5, запасная — claude-sonnet-5, ресёрч — grok-4.5. Промпты тюнены под Anthropic и xAI — на этих двух провайдерах поведение из коробки предсказуемее.

08Автоматизации и вклинивания

Автоматизация ставится обычной фразой в Slack: «каждый понедельник в 9 утра выложи в #product дайджест того, что вышло и что открыто». Дайджесты работают только на чтение и только через организационные коннекторы — личные креды автора не используются, чтобы запланированный пост не действовал от имени конкретного человека.

Сколько раз агент может вклиниться за час
0шт/час6,2шт/час12,5шт/часАбсолютный максимум на канал12шт/часОбычный приоритет6шт/часПо прямому вызову4шт/часНизкий приоритет2шт/час
4 + 6 + 2 = 12 — это один и тот же бюджет, разбитый по приоритетам. Между обычными репликами минимум 3 минуты, после низкоприоритетной — 15 минут тишины.
  • Настройка запускается прямо в Slack или в Configure → Automations, где есть кнопка Run now для проверки.
  • Участник может владеть максимум 20 автоматизациями, админы управляют чужими.
  • Автоматизации в приватные каналы из Configure создают только админы; участники канала могут сделать это из Slack.
  • Вклинивание работает только там, где агент уже состоит: публичные каналы после раздачи админом и приватные по приглашению.

09Локальная разработка и правки

Локальный запуск
1
Установить зависимости
проект собирается bun, в нём же фронтенд
terminalcopy
bun install
2
Создать файл окружения
скопировать пример и заполнить два обязательных ключа
terminalcopy
cp .dev.vars.example .dev.vars
3
Запустить дев-сервер
поднимется wrangler dev; при включённом контейнере нужен запущенный Docker
terminalcopy
bun run dev
4
Прокинуть туннель
Slack должен достучаться до машины: поднимите туннель, положите его адрес в PUBLIC_URL и создавайте Slack-приложение из /setup этого адреса
5
Сменить схему — перегенерировать миграции
после правок в src/db/schema миграцию собирает drizzle-kit и вшивает в воркер
terminalcopy
bun run db:generate
Без туннеля приложение Slack не создать
Манифест подставляет тот URL, с которого вы его открыли. Если это localhost, Slack не сможет доставить события и приложение останется полуживым. Правильный порядок — сначала туннель, потом /setup.

10Сколько это стоит в месяц

Платных посредников в схеме нет — вы платите трём сторонам напрямую: Cloudflare за инфраструктуру, supermemory за память и провайдеру модели за токены.

Цена компонентов, $ в месяц
0$/мес200$/мес400$/месCloudflare Workers Free0$/месCloudflare Workers Paid5$/месsupermemory Free0$/месsupermemory Pro19$/месsupermemory Max100$/месsupermemory Scale399$/мес
Ставки с официальных страниц на 26.09.2026. Рабочий минимум — Pro $19 + Workers Paid $5 = $24 в месяц; Daytona и веб-поиск можно оставить бесплатными.
Ставки supermemory за миллион единиц
0$/1M5$/1M10$/1MПамять: обычный текст5$/1MПамять: rich-контент10$/1MSuperRAG: текст1$/1MSuperRAG: rich2$/1MПоиск: за 1M запросов5$/1M
Операции (ре-ранжирование, агрегация, переписывание запроса) тарифицируются отдельно — $100 за миллион операций. Повторно загруженный неизменённый контент не биллингуется.
Free
$0в месяц
  • $5 кредитов
  • хватит на тесты, не на команду
оптимально
Pro
$19в месяц
  • $20 кредитов
  • автопополнение с лимитом
  • 3 места
Max
$100в месяц
  • $130 кредитов
  • в 6,5 раза больше кредитов Pro
  • Gmail-коннектор
Scale
$399в месяц
  • $600 кредитов
  • S3 и веб-краулер
  • неограниченные места, доступ по тегам
Тарифы supermemory на 26.09.2026: кредиты списываются по фактическим вызовам, ставки одинаковые на всех планах.
Как удержать счёт
Supermemory биллингует только уникальный контент, поэтому память дешевеет по мере прогрева. Токены модели — ваша главная переменная: держите triage на дешёвой модели, а тяжёлые турны — на основной. И не включайте context.dev без нужды: бесплатный тир Firecrawl — 1000 кредитов в месяц, тогда как context.dev стоит примерно $0,0015 за поиск или страницу.

11Грабли, на которые наступают

  • Скоупы против согласия. Каждый лишний скоуп — строка на экране согласия каждого сотрудника; добавляйте их точечно, а не «на всякий случай».
  • 50 исходящих вызовов. На бесплатном плане Cloudflare длинный ответ с несколькими инструментами может обрезаться — это первое, что замечают на демо.
  • Песочница без ключа. Свободный план без Daytona-ключа означает, что «запусти тест и покажи вывод» просто не сработает.
  • MCP наружу нет. Спросить агента из Claude Code или Cursor не получится — в self-hosted сборке нет ни MCP-сервера, ни API для вопросов.
  • Синхронизации документов нет. Google Drive и OneDrive как источники не подключить: знания приходят из Slack, живых коннекторов и того, что вы положите в supermemory под тегом sm_org_shared.
  • Роли только в базе. Экрана назначения админов в сборке нет — роль меняется руками в таблице member базы D1.
  • Приватные каналы по приглашению. Агент не заходит в них сам, и памяти канала для посторонних не существует.
  • Прямой API-ключ supermemory — это admin-доступ. Он видит все контейнеры, включая личные; не выдавайте его как «способ спросить мозг».

Частые вопросы

Сколько времени занимает установка?
Сам деплой воркера и настройка через /setup занимают несколько минут — README называет это «deploy in five minutes». Дольше всего идёт финальная часть: создание приложения Slack с 20 бот-скоупами, установка, раздача по каналам и первый ресёрч по компании.
Обязателен ли платный план Cloudflare?
Нет. Продукт работает на бесплатном плане, но там всего 50 исходящих вызовов на один запрос агента и нет встроенной песочницы — её придётся подключать ключом Daytona. Платный план за $5 в месяц снимает оба ограничения.
Что делать, если Slack помечает URL событий как непроверенный?
Так бывает, пока не сохранены креды приложения: Slack проверяет URL подписью, для которой нужен Signing secret. После сохранения кредов вернитесь в Event Subscriptions и нажмите Retry.
Можно ли использовать одну модель для всего?
Да, но невыгодно: triage срабатывает на каждый пассивный тред, поэтому дешёвая быстрая модель на этой роли экономит заметную часть счёта, а основную модель лучше держать на «тщательно».
Где хранятся данные?
Схема и состояние — в вашем аккаунте Cloudflare (D1, KV, Durable Object), тексты и память — в аккаунте supermemory по вашему API-ключу. Наружу уходят только вызовы модели и веб-поиска, если он включён.
Можно ли перенести агента из облачного продукта Supermemory?
Нет: облачная версия свёрнута, новые регистрации в ней остановлены, и открытая сборка — это отдельная установка в ваш аккаунт с нуля, а не миграция существующей организации.

Источники и официальные ссылки

  • README: Deploy in five minutesgithub.com/supermemoryai/company-brain/blob/main/README.md
    кнопка деплоя, два ключа, плитка Free vs Workers Paid, локальная разработка
  • docs/guide/setup.mdgithub.com/supermemoryai/company-brain/blob/main/docs/guide/setup.md
    четыре проверки /setup, создание приложения Slack, установка и роллаут
  • docs/slack-app-manifest.yamlgithub.com/supermemoryai/company-brain/blob/main/docs/slack-app-manifest.yaml
    полный список скоупов и событий из репозитория
  • .dev.vars.examplegithub.com/supermemoryai/company-brain/blob/main/.dev.vars.example
    переменные окружения: обязательные и опциональные
  • docs/guide/connectors.mdgithub.com/supermemoryai/company-brain/blob/main/docs/guide/connectors.md
    что подключается как инструмент и чего в сборке нет
  • Cloudflare Workers: ценыdevelopers.cloudflare.com/workers/platform/pricing/
    $5 в месяц, лимиты бесплатного плана
  • Cloudflare Containers: ценыdevelopers.cloudflare.com/containers/pricing/
    что входит в Workers Paid и типы инстансов
  • supermemory: тарифыsupermemory.ai/pricing
    планы и ставки за SM-токены, поиск и операции
  • Daytona: ценыdaytona.io/pricing
    ставки за vCPU и память, $200 бесплатных вычислений
Ставить или сначала посмотреть разбор?
Обзор объясняет, как устроен граф прав, сколько агент говорит сам и где границы открытой сборки.