dengineproblem

context

Получение контекста пользователя и credentials

dengineproblem 4 1 Updated 7mo ago
GitHub

Install

npx skillscat add dengineproblem/agents-monorepo/moltbot-workspace-router-skills-context

Install via the SkillsCat registry.

About this skill

The context skill retrieves a user's account identifiers and access token by sending the Telegram chat ID in a header request, providing the necessary credentials for subsequent API calls. It must be invoked at the beginning of every conversation to ensure the correct account is used, preventing errors when handling new or unregistered users.

SKILL.md

Context Skill

Первый шаг в любом запросе — получить контекст пользователя.

ВАЖНО: Вызови в НАЧАЛЕ каждого диалога!

Перед выполнением любых действий с рекламой, сначала получи контекст пользователя.
Без контекста tools не смогут определить какой аккаунт использовать.


getContext

Получить credentials по telegram_id.

curl -s http://agent-brain:7080/api/context \
  -H "Content-Type: application/json" \
  -H "X-Telegram-Id: ${TELEGRAM_CHAT_ID}"

Параметры:

  • X-Telegram-Id (header) - Telegram chat ID пользователя

Ответ:

{
  "userAccountId": "uuid-...",
  "accountId": "uuid-...",
  "accessToken": "EAA...",
  "adAccountId": "act_123..."
}

Как использовать контекст

После получения контекста, используй ID во всех последующих вызовах:

# Пример: получить кампании
curl -s -X POST http://agent-brain:7080/brain/tools/getCampaigns \
  -H "Content-Type: application/json" \
  -d '{
    "userAccountId": "полученный-userAccountId",
    "accountId": "полученный-accountId",
    "period": "last_7d"
  }'

Ошибки

400 Bad Request

{"error": "X-Telegram-Id header required"}

Не передан заголовок с Telegram ID.

404 Not Found (Новый пользователь)

{
  "error": "User not found",
  "needsOnboarding": true,
  "message": "Пользователь не найден. Пройдите регистрацию через /onboarding"
}

Это новый пользователь! Автоматически предложи onboarding.


Обработка новых пользователей

Если /api/context возвращает 404 с needsOnboarding: true, это новый пользователь.

Автоматически отправь приветствие:

👋 Привет! Я Performante AI - ваш помощник по управлению рекламой в Facebook и Instagram.

Вижу, вы ещё не зарегистрированы в системе.
Хотите пройти быструю регистрацию? (~5 минут)

Отправьте /onboarding чтобы начать.

ВАЖНО:

  • Не выполняй никаких других действий пока пользователь не пройдёт onboarding
  • Если пользователь спрашивает о статистике/рекламе - напомни что нужно сначала зарегистрироваться
  • После регистрации пользователь получит логин/пароль для входа в систему

Пример диалога

  1. Пользователь пишет: "Покажи статистику"
  2. Claude видит [Telegram Chat ID: 123456789] в начале сообщения
  3. Claude вызывает getContext с этим ID
  4. Получает credentials
  5. Вызывает getCampaigns с полученными userAccountId и accountId
  6. Отвечает пользователю

Настройка Moltbot Telegram транспорта

Для прямой интеграции Telegram → Moltbot нужно добавить в docker-compose.yml:

moltbot-telegram:
  image: node:22-slim
  container_name: moltbot-telegram
  working_dir: /root/clawd
  env_file:
    - ./.env.brain
  command:
    - sh
    - -c
    - |
      npm install -g moltbot@beta
      moltbot telegram --token "$TELEGRAM_BOT_TOKEN" --allow-unconfigured
  environment:
    - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
    - TELEGRAM_BOT_TOKEN=${MOLTBOT_TELEGRAM_BOT_TOKEN}
    - AGENT_SERVICE_URL=http://agent-brain:7080
  volumes:
    - ./moltbot-workspace:/root/clawd
  depends_on:
    - agent-brain

ВАЖНО: Moltbot Telegram транспорт автоматически добавляет контекст с chat_id в сообщение в формате:

[Telegram Chat ID: 123456789]

Сообщение пользователя