dengineproblem

context

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

dengineproblem 4 1 Updated 7mo ago
GitHub

Install

npx skillscat add dengineproblem/agents-monorepo/context

Install via the SkillsCat registry.

About this skill

This skill retrieves user context and credentials, including account IDs and access tokens, based on a Telegram chat ID. It solves the problem of identifying the correct user account before performing any advertising-related actions. Developers or agents should call this skill at the beginning of each interaction to ensure proper authentication and account targeting for subsequent API requests.

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]

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