dengineproblem

context

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

dengineproblem 4 1 Updated 4mo ago
GitHub

Install

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

Install via the SkillsCat registry.

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]

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