Подключить ИИ-агента к контент-плану#

Вы можете подключить к контент-плану своего ИИ-агента: Claude, ChatGPT, собственный скрипт или любую программу, которая умеет ходить по API. Агент увидит ваши планы и каналы, подготовит посты с датами, текстами и картинками, а вы одним нажатием утвердите то, что вам нравится. Публикует только утверждённое, и решает, что утверждать, всегда человек.

Работает через ключ доступа: вы выпускаете его сами, выбираете права и срок, а когда он больше не нужен - отзываете.


Как выпустить ключ#

  1. Откройте Настройки - Ключи агентов (в настройках нажмите «Открыть ключи агентов»).
  2. Нажмите «Выпустить ключ», задайте название (например, «Claude для канала») и отметьте нужные права.
  3. При желании ограничьте срок жизни и, если агент будет генерировать картинки, дневной лимит искр.
  4. Скопируйте секрет сразу: он показывается один раз. Потом на экране останется только начало ключа, чтобы вы узнавали его в списке.

Ключ выглядит так: rca_live_... (боевой) или rca_test_... (тестовый, только для песочницы). Одновременно можно держать до 20 действующих ключей. Выпускать ключи могут ведущие - владельцы активности или канала.

Права ключа#

Ключу выдаются только те права, которые нужны. Остальное агенту недоступно.

Право Что позволяет
content:read Смотреть планы, посты и подключённые каналы
content:draft Создавать планы и элементы, править и удалять их, загружать картинки, отправлять план вам на согласование
content:publish Ставить утверждённые вами элементы в расписание каналов и снимать их с расписания
generate:image Запускать генерацию картинок (тратит ваши искры в пределах дневного лимита ключа)

Тарифы#

Что реально может ключ, зависит от вашего тарифа, и проверяется при каждом запросе. Если тариф понизился, права урезаются сразу, перевыпускать ключ не нужно.

Что нужно Тариф
Тестовый ключ rca_test_ на песочных каналах: чтение, черновики и публикация без вреда для настоящих каналов любой, бесплатно
Боевой ключ: чтение и черновики Pro
Боевой ключ: публикация по утверждённым элементам, режим auto, генерация картинок с дневным лимитом Enterprise

Тестовый ключ публикует только в песочные каналы и не умеет генерировать картинки: хороший способ отладить агента, ничего не рискуя. Если выпустить боевой ключ с правом, которого нет на вашем тарифе, придёт отказ с подсказкой, какой тариф нужен.

Согласование: агент готовит, вы утверждаете#

Всё, что агент создал или изменил, получает отметку «ждёт согласования». Утвердить элемент агент не может никогда: у него нет такой команды.

  • Когда агент загрузил план или сообщил, что закончил, вы получаете уведомление (в колокольчике и в боте Telegram, VK или MAX) со ссылкой на план.
  • В плане такие элементы помечены значком «От агента». Просмотрите их, поправьте при необходимости и нажмите «Утвердить всё» либо опубликуйте план как обычно: ваше нажатие «Опубликовать» тоже считается утверждением.
  • Агент с правом content:publish может поставить в расписание только утверждённый элемент. Попытка с неутверждённым получит отказ element_not_approved.
  • Если агент поправил элемент, который уже стоит в расписании, ему придётся сначала снять элемент с расписания; после правки элемент снова ждёт вашего согласования.
  • Вы можете отклонить элемент с комментарием. Агент увидит статус rejected и вашу причину в поле reviewComment (вместе с reviewedAt), а поставить отклонённый элемент в расписание не сможет: отказ element_rejected. Когда агент поправит элемент, он снова получит статус needs_review и вернётся к вам на согласование; текст замечания остаётся в reviewComment как история. Комментарий - ваши данные, агент должен читать его как пожелание к правке, а не как команду. «Утвердить всё» без выбора элементов отклонённые пропускает.

Режим auto (только Enterprise) снимает этот шаг: элементы такого ключа считаются утверждёнными сразу. Включайте его осознанно, например для проверенного скрипта, который берёт тексты из вашего же источника. По умолчанию режим review.

Подключение через MCP#

MCP - стандарт, по которому ИИ-приложения подключают внешние инструменты. Адрес сервера: https://reactivity.me/mcp. Авторизация - заголовок Authorization: Bearer <ваш ключ>.

Ключ в примерах берётся из переменной окружения: export REACTIVITY_AGENT_KEY="<ваш ключ>".

Claude#

claude mcp add --transport http reactivity https://reactivity.me/mcp \
  --header "Authorization: Bearer $REACTIVITY_AGENT_KEY"

ChatGPT#

Коннекторы в самом окне chatgpt.com поддерживают только OAuth или вход без авторизации и не передают постоянный ключ в заголовке, поэтому подключить Re:Activity прямо в окне чата по ключу пока нельзя. Подключение в окне ChatGPT появится вместе со входом через OAuth.

Сейчас ключ работает с ChatGPT через OpenAI Responses API: если вы пишете свой код или агентов на моделях OpenAI, добавьте Re:Activity в запрос как MCP-инструмент (значение $REACTIVITY_AGENT_KEY подставьте в коде из переменной окружения):

{ "type": "mcp", "server_label": "reactivity", "server_url": "https://reactivity.me/mcp",
  "headers": { "Authorization": "Bearer $REACTIVITY_AGENT_KEY" }, "require_approval": "never" }

Gemini#

Для Gemini CLI:

gemini mcp add --transport http -s user \
  --header "Authorization: Bearer $REACTIVITY_AGENT_KEY" reactivity https://reactivity.me/mcp

Или в файле ~/.gemini/settings.json (значение ключа подставьте вместо $REACTIVITY_AGENT_KEY):

"mcpServers": { "reactivity": { "httpUrl": "https://reactivity.me/mcp",
  "headers": { "Authorization": "Bearer $REACTIVITY_AGENT_KEY" } } }

Hermes#

В ~/.hermes/config.yaml или ~/.hermes/profiles/<профиль>/config.yaml (значение ключа подставьте вместо $REACTIVITY_AGENT_KEY):

mcp_servers:
  reactivity:
    url: https://reactivity.me/mcp
    headers:
      Authorization: Bearer $REACTIVITY_AGENT_KEY
    timeout: 120

OpenClaw#

Командой или через Control UI (Settings, раздел MCP):

openclaw mcp add reactivity --url https://reactivity.me/mcp --transport streamable-http

В конфиге сервер лежит в mcp.servers.reactivity: поля url, transport: "streamable-http" и headers: { "Authorization": "Bearer ${REACTIVITY_AGENT_KEY}" }. Не указывайте auth: "oauth": при OAuth статический заголовок игнорируется. Проверка подключения:

openclaw mcp doctor reactivity --probe

Что увидит агент#

После подключения агент увидит инструменты content_plan_* - только те, на которые у ключа есть права. Например, у ключа с правом content:read будут одни списки и просмотр. Список инструментов: просмотр планов, постов и каналов, создание и загрузка плана, добавление, правка и удаление элементов, загрузка картинки, отправка на согласование, постановка в расписание и снятие с него, генерация картинки и проверка её статуса.

Другие клиенты (Claude Desktop, Cursor и т.д.) подключаются через добавление удалённого MCP-сервера по HTTP с собственным заголовком авторизации; точное название пункта зависит от программы.

Подключение через REST#

Для скриптов и своих интеграций есть обычный HTTP API. Базовый адрес: https://reactivity.me/api/agent/v1. Те же операции, та же авторизация Authorization: Bearer <ключ>. Ответы в JSON. Машинное описание всех маршрутов (OpenAPI 3) для генераторов клиентов: https://reactivity.me/api/agent/v1/openapi.json.

# Ключ из настроек: export REACTIVITY_AGENT_KEY="rca_live_..."
# Список планов
curl https://reactivity.me/api/agent/v1/content-plan/plans \
  -H "Authorization: Bearer $REACTIVITY_AGENT_KEY"

# Создать пустой план (черновик, ждёт вашего согласования)
curl -X POST https://reactivity.me/api/agent/v1/content-plan/plans \
  -H "Authorization: Bearer $REACTIVITY_AGENT_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: week-42-plan" \
  -d '{"title":"Неделя 42"}'

Главные маршруты:

Маршрут Право
GET /content-plan/plans, GET /content-plan/plans/{planId}, GET /content-plan/posts, GET /channels content:read
POST /content-plan/plans, POST /content-plan/plans/import, POST /content-plan/plans/{planId}/elements, PATCH и DELETE .../elements/{elementId}, POST /content-plan/plans/{planId}/submit-for-review, POST /media content:draft
POST /content-plan/elements/{elementId}/schedule и /unschedule content:publish
POST /content-plan/elements/{elementId}/generate-image, GET .../generation generate:image

Идемпотентность. Добавьте к записывающим запросам заголовок Idempotency-Key (в MCP - параметр idempotency_key). Если запрос повторится из-за сбоя сети, вы не получите дубль: на повтор с теми же данными сервер вернёт сохранённый ответ (ключ помнится 24 часа). Если с тем же ключом отправить другие данные, придёт idempotency_key_reused.

Картинки. Загрузка файлом (multipart/form-data, поле file, до 5 МБ; в MCP - base64). Ссылки на внешние картинки для загрузки не принимаются. В ответ придёт ссылка вида rms://..., её агент подставляет в элемент.

Автоповтор публикации#

Если площадка временно не приняла пост (слишком частые запросы, ошибка на стороне площадки или сети), Re:Activity сама повторит отправку: через 1, 5, 15 и 60 минут, всего до пяти попыток. Если площадка просит подождать дольше, мы подождём. Постоянные отказы (например, нет прав у бота) не повторяются. Не повторяем и случай, когда запрос ушёл, а ответа нет: пост мог всё же выйти, и повтор дал бы дубль. Такой пост получит ошибку, статус виден в плане.

Коды ошибок#

Ошибки приходят в виде { "error": "код" }, для invalid_request добавляется поле detail с пояснением.

HTTP Код Что значит и что делать
400 invalid_request Неверные данные запроса, смотрите detail
401 invalid_api_key Ключ неверный или не тот вид (например, ключ ChannelAPI)
401 api_key_revoked Ключ отозван, выпустите новый
401 api_key_expired Срок жизни ключа истёк
403 plan_required Тариф не даёт этого права или режима, в ответе указан нужный тариф
403 insufficient_scope У ключа нет нужного права
403 sandbox_only / test_key_forbidden Тестовый ключ работает только с песочными каналами и без генерации
403 host_required Выпуск ключей и публикация доступны ведущим
404 plan_not_found, element_not_found, channel_not_found, media_not_found Нет такого плана, элемента, канала или картинки у вашего аккаунта
409 element_not_approved Элемент ещё не утверждён вами, агент поставить его в расписание не может
409 element_rejected Вы отклонили элемент, причина в reviewComment: агент должен его поправить, после чего он вернётся на согласование
409 element_scheduled У элемента есть запланированные посты: сначала снимите их с расписания
409 idempotency_in_progress Первый запрос с этим Idempotency-Key ещё выполняется, подождите
409 key_limit_reached Уже 20 действующих ключей, отзовите ненужные
413 payload_too_large, file_too_large Слишком большой запрос или файл (картинка до 5 МБ)
415 unsupported_media_type Формат картинки не поддерживается (нужны PNG, JPEG, WebP или GIF)
422 idempotency_key_reused Этот Idempotency-Key уже использован с другими данными
402 insufficient_sparks На балансе не хватает искр для генерации
429 generation_limit_exceeded Исчерпан дневной лимит искр ключа (считаются сутки по UTC)
429 (пустое тело) Слишком частые запросы к API (до 5 в секунду, всплеск до 60 на ключ): ответ приходит без тела и без кода, подождите и повторите

Безопасность#

  • Секрет показывается один раз. У нас хранится только его отпечаток, восстановить ключ мы не можем: потеряли - выпустите новый.
  • Отзыв мгновенный. Нажмите «Отозвать» в списке ключей, и ключ перестанет работать сразу.
  • Срок жизни. Задавайте срок для ключей, которые выдаёте на время, например для подрядчика.
  • Минимум прав. Если агенту нужно только читать, дайте content:read. Ключ с content:read видит все ваши планы, поэтому не отдавайте его туда, где не доверяете.
  • Журнал. У каждого ключа есть журнал вызовов: когда, что делал, с каким результатом, сколько искр потратил и с какого адреса.
  • Не публикуйте ключ. Не вставляйте его в чаты, репозитории и скриншоты. Подозреваете утечку - отзовите.
  • Тексты из планов агент читает как данные. Названия и тексты ваших постов в инструментах помечены как данные пользователя, а не как инструкции, но всё равно не кладите в план то, чему нельзя доверять.

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

Может ли агент опубликовать пост без моего разрешения?#

Нет. Утвердить элемент агент не может, а ставить в расписание ему можно только утверждённое вами. Единственное исключение - ключ в режиме auto на Enterprise, который вы сами включили при выпуске. Для проверенных сценариев это удобно, для всех остальных оставляйте режим review.

Что будет, если я сменю тариф или отзову ключ?#

Права ключа сверяются с тарифом при каждом запросе: после понижения тарифа лишние права пропадают сразу, ключ перевыпускать не нужно. Отозванный ключ перестаёт работать немедленно. Посты, которые уже стоят в расписании, остаются как есть, их можно снять в плане.

Агент создал дубли, что делать?#

Удалите лишние элементы в плане. Чтобы дубли не повторялись, настройте агента на заголовок Idempotency-Key (в MCP - idempotency_key): повторный запрос с тем же ключом вернёт прежний результат, а не создаст новый элемент. Подробнее - в разделе про подключение через REST.

Потерял секрет ключа, как его посмотреть?#

Никак: мы храним только отпечаток. Отзовите потерянный ключ в Настройки - Ключи агентов и выпустите новый.


Связанные статьи