Ключи доступа

Ключ доступа — это пропуск, который вы выдаёте человеку, программе или подрядчику. Через него они пользуются моделями, но не видят ваших ключей от поставщиков. У каждого ключа свои пределы расхода и свой список разрешённых моделей, поэтому одного взгляда на раздел «Ключи» достаточно, чтобы понять, кому что можно и сколько уже потрачено.

Зачем отдельные ключи

Можно было бы просто раздать всем ключ поставщика. Но тогда вы не узнаете, кто именно тратит деньги, и не сможете закрыть доступ одному человеку, не задев остальных. Свой ключ на каждого решает обе задачи:

  • Главный ключ поставщика не уходит на сторону — он остаётся только на сервере.
  • Доступ закрывается точечно — ключ подрядчика отзывается мгновенно, остальные продолжают работать.
  • Расход считается по каждому — в списке видно, сколько потрачено за день, неделю, месяц и всего.

Как выглядит ключ

Ключ собирается из постоянного начала proxyagent-, имени, которое вы задали (строчными буквами, пробелы заменены дефисами), и 24 случайных знаков. Например, для ключа с именем «Claude Code» получится что-то вроде proxyagent-claude-code-a1b2c3d4e5f6g7h8i9j0k1l2.

Ключ показывается один раз

Готовый ключ виден ровно один раз — в момент создания и при перегенерации. В базе хранится только его необратимый отпечаток (сумма SHA-256) и последние 8 знаков для опознания. Это значит, что посмотреть ключ задним числом нельзя: если он потерян, остаётся только перегенерировать.

Перегенерация мгновенно отзывает прежний ключ: как только выдан новый, старый перестаёт работать в ту же секунду. Прежние записи в журнале при этом сохраняются — они по-прежнему показывают имя ключа.

Пределы расхода

У ключа можно задать до четырёх пределов расхода — все в долларах, все необязательные. Пока предел не задан, расход ничем не ограничен.

  • День — с начала текущих суток.
  • Неделя — с понедельника.
  • Месяц — календарный месяц.
  • Всего — за всё время существования ключа.

Перед каждым запросом продукт смотрит на уже потраченное и проверяет пределы по порядку: день, неделя, месяц, всего. Первый достигнутый даёт отказ с понятным текстом, например Spend limit exceeded: daily $12.50 of $10.00. Предел, равный нулю, блокирует всё — это удобный способ мгновенно «выключить» ключ, не удаляя его.

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

Ограничение по моделям

Ключу можно разрешить не все модели, а конкретный список. Пока список пуст, разрешено всё. Если в нём есть хотя бы одна модель, запрос к любой другой отклоняется с отказом Access to model '{имя}' is not allowed for this keyбез замены на другую модель: подставленная «похожая» модель тут не появится.

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

Ограничение каналов связи

Отдельный список задаёт, какими каналами связи ключ может пользоваться для обычного трафика через прокси-службу. Пока список пуст, ограничений нет. Если в нём есть каналы, ключ пользуется только ими, а когда ни один не работает — не выходит в интернет напрямую, а просто получает отказ. Это защита от случайного «света» вашего адреса: ограниченный ключ никогда не идёт мимо указанных каналов.

Что видно про ключ в списке

  • Имя и последние 8 знаков ключа — чтобы отличать ключи с похожими именами.
  • Потрачено за день, неделю, месяц и всего.
  • Ограничения — какие модели и каналы связи разрешены.
  • Состояние — активен ключ или деактивирован, и когда он был перегенерирован.

Деактивация и удаление

Деактивация закрывает доступ сразу и окончательно — с первого же следующего запроса, — но ключ и его история остаются на месте. Если человек вернётся, его можно так же просто включить обратно: тот же самый ключ снова начнёт работать, выдавать новый не нужно.

Удаление убирает ключ насовсем вместе с его ограничениями. Записи в журнале запросов остаются и по-прежнему называют прежнее имя ключа — история не пропадает.

Дальше: как описать модели, к которым обращаются программы, — в разделе Модели и цены.

← Оглавление документации