AgentKeyGate

Пропуск для агента на 20 вызовов и 10 минут.

Агент пишет, зачем ему доступ. Вы одобряете в Telegram или на сайте. Шлюз сам подставляет ключ в каждый вызов и закрывает пропуск, когда лимит кончился.

Бесплатно, открытый код, Apache-2.0. Работает на вашем сервере.

sales-agent просит доступ к Bitrix24

Ждёт вас
На срок
10 мин
Вызовов, до
20

Агент увидит: сделки и лиды без имён, телефонов, e‑mail и комментариев

Отчёт за неделю: лиды, у которых с понедельника сменился статус

Написал агент, не проверено

Пример заявки. В Telegram и Slack приходит то же: агент, сервис, срок, число вызовов, причина.

Агент может всё, что может его ключ.

  • Агенты читают .env, даже когда правила это запрещают.issue #24846 в claude-code
  • Чужая инструкция на сайте или в тикете может попросить агента отправить ключи на сторону.Prompt injection
  • Ключ с полными правами даёт агенту полные права, пока ключ жив.Широкий ключ
  • Песочница не поможет, если ключ уже в памяти агента.Песочница
  • Ссылка вебхука CRM тоже ключ: у кого ссылка, у того и права.Вебхуки CRM

Как проходит вызов

  1. 1
    Агент просит

    Называет сервис, срок, число вызовов и причину.

  2. 2
    Вы решаете

    Заявка приходит в Telegram, Slack или на почту со всеми подробностями. Разрешить или отказать можно в Telegram или на сайте.

  3. 3
    Шлюз делает вызов

    Подставляет ключ, считает вызовы, фильтрует ответ. Когда кончились время или вызовы, пропуск перестаёт работать.

Пропуск или агента целиком можно отозвать в любой момент. Отзыв действует со следующего вызова.

Агент просит доступ, владелец одобряет заявку на сайте, вызов проходит через шлюз
Запись демо-версии на английском. Агент просит, владелец одобряет, вызов проходит.

Вы решаете, что агент получит из CRM.

Ключи CRM по умолчанию только на чтение. Вы отмечаете типы данных и поля, которые агенту можно видеть, остальное шлюз вырезает из ответа.

Bitrix24 отдаёт crm.lead.list, пример
{
  "result": [{
    "ID": "4182",
    "TITLE": "Анна Ли, редизайн сайта",
    "STATUS_ID": "IN_PROCESS",
    "ASSIGNED_BY_ID": "12",
    "OPPORTUNITY": "980000.00",
    "CURRENCY_ID": "RUB",
    "NAME": "Анна",
    "LAST_NAME": "Ли",
    "PHONE": [{ "VALUE": "+7 900 000-00-00" }],
    "EMAIL": [{ "VALUE": "anna@example.com" }],
    "COMMENTS": "Просила скидку, звонить после 17:00"
  }]
}
Агент получает с фильтром полей
{
  "result": [{
    "ID": "4182",
    "STATUS_ID": "IN_PROCESS",
    "ASSIGNED_BY_ID": "12",
    "OPPORTUNITY": "980000.00",
    "CURRENCY_ID": "RUB"
  }]
}

Если открываете агенту поле со свободным текстом, включите маску: e‑mail, телефоны с +, номера карт и IBAN превращаются в ****. Перед одобрением заявки вы видите строку «Агент увидит».

От чего защищает и от чего нет

Защищает

  • Ключи остаются на вашем сервере.Хранятся зашифрованными в AWS SSM или в файловом хранилище. Агент получает пропуск, ключ ему не выдаётся.
  • У каждого ключа своя политика.Всегда, спрашивать или запрещать, с нужными каналами и часами.
  • Ключи CRM и поддержки по умолчанию только на чтение.Запись получает 403 и не тратит лимит.
  • Ослабить правило можно только с новым кодом 2FA.Ужесточить можно без кода.
  • В журналах нет секретов.Значения ключей не попадают в журналы, адреса, ответы и ошибки.
  • При сбое доступ закрыт.Если недоступны хранилище или база, агент получает 503.

Не защищает

  • От root на сервере.Тот, у кого root или права администратора облака, может прочитать ключи.
  • От злоупотреблений внутри пропуска.В пределах лимитов агент может сделать любой вызов, который разрешает ключ. Давайте узкие ключи.
  • От сервиса, к которому идёт вызов.Он видит ключ и данные, которые вы отправляете.
  • От всех видов личных данных.Маска не находит имена и адреса, а также телефоны без +.
  • От взлома ваших аккаунтов.Кто завладел вашим Telegram или почтой, тот может одобрять заявки.

Полная модель угроз в SECURITY.md (на английском)

Подключается к агентам, которыми вы уже пользуетесь

Через MCP (Streamable HTTP с токеном в заголовке) или обычный HTTP. Подойдёт и любой скрипт, который умеет отправить HTTP-запрос.

  • Claude Code
  • Codex CLI
  • Cursor
  • Copilot в VS Code
  • Gemini CLI
  • Hermes Agent
  • OpenClaw

Установка на ваш сервер

Нужны Debian 12 или Ubuntu 24.04 и домен, направленный на сервер. Скрипт ставит Node.js 22, Caddy и службы systemd, потом печатает одноразовую ссылку для настройки.

curl -fsSL https://raw.githubusercontent.com/maximskorohod/agentkeygate/v1.0.1/scripts/setup.sh -o setup.sh
echo "40c9cc59c14ca795263b537325f624f709f3e2e670d93221d8e99ddd76147a15  setup.sh" | sha256sum -c -
sudo bash setup.sh --domain gw.example.com
# не в AWS добавьте: --vault file

Резервные копии, восстановление и подробная установка

Похожие инструменты

Прятать ключи от агентов умеют и другие проекты. Ниже то, что каждый пишет о себе на своих страницах.

AgentKeyGateOneCLITAPInfisical Agent Vault
ЛицензияApache-2.0Apache-2.0, папка ee/ под отдельной лицензиейApache-2.0Ядро MIT, часть функций платная
На своём сервереДаДа, есть и облакоДа, есть и хостингДа, есть и облако
Владелец одобряет заявкуКаждую, в Telegram или на сайтеДа, в чатеДа: панель, Telegram, Matrix, passkeyПравила задаются заранее
Лимит по числу вызововДа, и по времениНе описаноНе описаноСессии с ограниченным сроком
Фильтр полей и маска в ответеДа, для CRM и некоторых других сервисовНе описаноУбирает токен из ответовНе описано
ЦенаБесплатноЕсть бесплатный и платные тарифыНе указанаЦена отдельно

Проверено 7 ноября 2026. «Не описано» значит, что на их страницах мы этого не нашли.

Нужно настроить под вашу CRM?

Настраиваю ИИ-агентов для Bitrix24, amoCRM и других CRM на вашем сервере, ключи закрываю этим шлюзом.

Написать в Telegram