Как развернуть 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) на бесплатном плане Cloudflare
daytona.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
Ключ модели определяется по префиксу
Если положить ключ в неподходящую переменную, детект провайдера не сработает и проверка «Модель» останется красной. Лечится явными переменными вида 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
В манифесте явно помечено: чем больше скоупов, тем длиннее экран согласия у каждого сотрудника. В репозитории пользовательские скоупы собраны как read-only именно поэтому — не расширяйте их без нужды.
05Шаг 4. Вход, установка и раздача команде
Sign in with Slack. Первый вошедший создаёт организацию и становится её владельцем. Люди из других workspace не пускаются.
Install to Slack. Доступно только владельцу и админам — это их решение, а не общая кнопка.
Появляется #company-brain. Агент создаёт домашний канал, приглашает вас и публикует вводное сообщение.
Ресёрч по вашей компании. Домен определяется по workspace, дальше проходят шесть аспектов: обзор, продукты, люди, работа, конкуренты и traction. Главная страница скрабится один раз за прогон и используется всеми аспектами как контекст.
Карточка на добавление в публичные каналы. Молча в каналы он не заходит: админ нажимает кнопку, и агент проходит по публичным каналам сам. В приватные — только по приглашению.
Роллаут команды. Люди подхватываются из workspace и получают приветственную личку; отдельных посадок по email нет, поэтому никого не надо приглашать вручную.
Проверка боем
Дальше спросите в #company-brain или в личке: «Что делает наша компания?». Это первый тест и памяти, и модели одновременно.
06Бесплатный Cloudflare или Workers Paid
Продукт заявлен как работающий на бесплатном плане Cloudflare — и это правда, но с двумя существенными оговорками, которые в README вынесены в отдельную таблицу.
Что
Workers Free
Workers 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 → Proactivity
all channels / только свой канал / исключения по каналам
Дефолты в коде репозитория: основная модель grok-4.5, triage — claude-haiku-4.5, запасная — claude-sonnet-5, ресёрч — grok-4.5. Промпты тюнены под Anthropic и xAI — на этих двух провайдерах поведение из коробки предсказуемее.
08Автоматизации и вклинивания
Автоматизация ставится обычной фразой в Slack: «каждый понедельник в 9 утра выложи в #product дайджест того, что вышло и что открыто». Дайджесты работают только на чтение и только через организационные коннекторы — личные креды автора не используются, чтобы запланированный пост не действовал от имени конкретного человека.
Сколько раз агент может вклиниться за час
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 за память и провайдеру модели за токены.
Цена компонентов, $ в месяц
Ставки с официальных страниц на 26.09.2026. Рабочий минимум — Pro $19 + Workers Paid $5 = $24 в месяц; Daytona и веб-поиск можно оставить бесплатными.
Ставки supermemory за миллион единиц
Операции (ре-ранжирование, агрегация, переписывание запроса) тарифицируются отдельно — $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?
Нет: облачная версия свёрнута, новые регистрации в ней остановлены, и открытая сборка — это отдельная установка в ваш аккаунт с нуля, а не миграция существующей организации.