Hermes как sales funnel bot с лимитом токенов

Hermes как sales funnel bot с лимитом токенов

Навигация: RU лендинг и waitlist · Корпоративные AI агент-платформы · Wordstat: ИИ сотрудник

Задача

Перенастроить Hermes под воронку продаж, но жёстко ограничивать общение по лимиту токенов/стоимости на одного человека.

Принципиально: лимит нельзя “попросить модель соблюдать” только через системный промпт. Модель может ошибиться, а платёж уже случится. Жёсткий лимит должен жить снаружи LLM-вызова: в gateway/proxy/plugin/middleware.

Вывод

Лучший путь для MVP:

  1. Не давать Telegram/WhatsApp пользователю напрямую общаться с “чистым Hermes”.
  2. Поставить перед Hermes тонкий sales-funnel gateway/proxy.
  3. В gateway хранить состояние пользователя: stage, token budget, spent tokens, lead data, payment status.
  4. Перед каждым сообщением проверять лимит.
  5. Если лимит исчерпан — не вызывать Hermes вообще, а отправлять фиксированный paywall/CTA.

Вариант A — через Hermes API Server + внешний proxy

Hermes умеет работать как OpenAI-compatible API server.

Документация: https://hermes-agent.nousresearch.com/docs/user-guide/features/api-server

Включение:

API_SERVER_ENABLED=true
API_SERVER_KEY=change-me
API_SERVER_PORT=8642
hermes gateway

Дальше внешний backend делает:

Telegram / WhatsApp / сайт
  → sales-funnel backend
  → quota check по user_id
  → Hermes API Server /v1/runs или /v1/chat/completions
  → record usage
  → reply user

Плюсы:

  • самый чистый продуктовый вариант;
  • можно делать любой frontend;
  • легко считать лимиты по user_id;
  • легко добавить Stripe/ЮKassa/Robokassa;
  • можно иметь разные воронки для разных каналов.

Минусы:

  • нужно написать маленький backend.

Вариант B — Hermes plugin hook внутри gateway

Hermes поддерживает plugin hooks. Важные hooks:

  • pre_gateway_dispatch — сообщение пришло в gateway, до dispatch в агента; можно вернуть skip/rewrite/allow.
  • pre_llm_call — перед LLM-вызовом.
  • post_llm_call — после LLM-вызова.

Документация: https://hermes-agent.nousresearch.com/docs/user-guide/features/plugins

Идея:

  • pre_gateway_dispatch проверяет лимит по platform + chat_id/user_id.
  • Если лимит исчерпан — возвращает skip и отправляет paywall-сообщение.
  • post_llm_call пишет usage в SQLite.

Плюсы:

  • можно оставить родной Telegram gateway Hermes;
  • меньше внешней инфраструктуры.

Минусы:

  • нужно аккуратно разобраться с plugin hook API и event shape;
  • сложнее делать красивый product funnel;
  • лимит по фактическим usage надо достать из post-LLM события/сессии.

Вариант C — custom platform adapter

Hermes позволяет добавлять platform adapter как plugin.

Документация: https://hermes-agent.nousresearch.com/docs/developer-guide/adding-platform-adapters

Архитектура:

Custom Telegram Sales Adapter
  → получает сообщения
  → проверяет CRM/quota/stage
  → если можно — self.handle_message(event)
  → если нельзя — send(paywall)

Плюсы:

  • максимально нативно в Hermes;
  • можно встроить funnel state прямо в adapter.

Минусы:

  • больше разработки, чем внешний proxy.

Что считать лимитом

1. Лимит сообщений

Самый простой MVP:

free_messages: 5
paid_messages: unlimited_or_100

Плюс: легко объяснить пользователю.
Минус: стоимость сообщений разная.

2. Лимит токенов

Лучше для себестоимости:

free_input_tokens: 5000
free_output_tokens: 3000
free_total_tokens: 8000

Перед вызовом считаем примерный input tokens, после ответа сохраняем actual usage.

3. Лимит рублей/долларов

Лучший бизнес-лимит:

free_cost_rub: 15
trial_cost_rub: 100

Считать через модельные тарифы:

cost = input_tokens * input_price + output_tokens * output_price

Жёсткое поведение при лимите

Когда лимит исчерпан, backend/plugin не вызывает Hermes. Ответ фиксированный:

Лимит бесплатного диалога закончился.
Я уже понял вашу задачу и могу дальше собрать план внедрения.
Чтобы продолжить — оставьте заявку / оплатите доступ / забронируйте созвон.

Для sales funnel важно не просто “лимит закончился”, а переводить в следующий шаг:

  • оставить телефон/email;
  • получить PDF/бриф;
  • записаться на demo;
  • оплатить trial;
  • перейти в Telegram/WhatsApp менеджеру.

Sales funnel state machine

Пример стадий:

stages:
  new:
    goal: понять роль/отдел/боль
    max_messages: 2
  qualification:
    goal: собрать компанию, отдел, задачу, budget/timeline
    max_messages: 4
  value_demo:
    goal: показать 1 конкретный сценарий агента
    max_tokens: 3000
  capture:
    goal: email/phone/telegram
    hard_stop_after: true
  paid_or_demo:
    goal: payment/demo booking

Что зашить в system prompt Hermes

Промпт нужен для воронки, но не для enforcement.

Пример:

Ты sales-assistant для продукта “ИИ-сотрудники для бизнеса”.
Твоя цель — квалифицировать лид, понять отдел и задачу, предложить 1-2 сценария внедрения и мягко довести до заявки/демо.
Не обещай on-prem/RBAC/интеграции как готовые, если пользователь явно не спрашивает; формулируй как beta/пилот.
Собирай: компания, отдел, задача, текущий процесс, желаемый результат, контакт.
Короткие ответы, без длинных лекций.

Но даже если модель захочет продолжить, gateway/proxy должен обрывать при лимите.

Минимальная схема базы

create table user_quota (
  platform text,
  user_id text,
  stage text,
  input_tokens integer default 0,
  output_tokens integer default 0,
  total_tokens integer default 0,
  cost_cents integer default 0,
  message_count integer default 0,
  lead_captured boolean default false,
  paid boolean default false,
  created_at timestamp,
  updated_at timestamp,
  primary key(platform, user_id)
);

Рекомендация

Для быстрого product MVP:

  1. Включить Hermes API Server.
  2. Написать отдельный sales-funnel-proxy на FastAPI/Node.
  3. Telegram/сайт отправляют сообщения не в Hermes напрямую, а в proxy.
  4. Proxy считает quota и stage.
  5. После лимита proxy отправляет CTA без LLM-вызова.
  6. Hermes остаётся “мозгом”, но не контролирует billing/quota.

Для dogfood внутри текущего Hermes gateway можно потом сделать plugin hook, но для продаж лучше внешний proxy: проще, надёжнее, легче менять funnel и подключать оплату.