Подключить ИИ-агента к контент-плану#
Вы можете подключить к контент-плану своего ИИ-агента: Claude, ChatGPT, собственный скрипт или любую программу, которая умеет ходить по API. Агент увидит ваши планы и каналы, подготовит посты с датами, текстами и картинками, а вы одним нажатием утвердите то, что вам нравится. Публикует только утверждённое, и решает, что утверждать, всегда человек.
Работает через ключ доступа: вы выпускаете его сами, выбираете права и срок, а когда он больше не нужен - отзываете.
Как выпустить ключ#
- Откройте
Настройки - Ключи агентов(в настройках нажмите «Открыть ключи агентов»). - Нажмите «Выпустить ключ», задайте название (например, «Claude для канала») и отметьте нужные права.
- При желании ограничьте срок жизни и, если агент будет генерировать картинки, дневной лимит искр.
- Скопируйте секрет сразу: он показывается один раз. Потом на экране останется только начало ключа, чтобы вы узнавали его в списке.
Ключ выглядит так: 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.
Потерял секрет ключа, как его посмотреть?#
Никак: мы храним только отпечаток. Отзовите потерянный ключ в Настройки - Ключи агентов и выпустите новый.