Ключ доступа — это пропуск, который вы выдаёте человеку, программе или подрядчику. Через него они пользуются моделями, но не видят ваших ключей от поставщиков. У каждого ключа свои пределы расхода и свой список разрешённых моделей, поэтому одного взгляда на раздел «Ключи» достаточно, чтобы понять, кому что можно и сколько уже потрачено.
Зачем отдельные ключи
Можно было бы просто раздать всем ключ поставщика. Но тогда вы не узнаете, кто именно тратит деньги, и не сможете закрыть доступ одному человеку, не задев остальных. Свой ключ на каждого решает обе задачи:
- Главный ключ поставщика не уходит на сторону — он остаётся только на сервере.
- Доступ закрывается точечно — ключ подрядчика отзывается мгновенно, остальные продолжают работать.
- Расход считается по каждому — в списке видно, сколько потрачено за день, неделю, месяц и всего.
Как выглядит ключ
Ключ собирается из постоянного начала 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 знаков ключа — чтобы отличать ключи с похожими именами.
- Потрачено за день, неделю, месяц и всего.
- Ограничения — какие модели и каналы связи разрешены.
- Состояние — активен ключ или деактивирован, и когда он был перегенерирован.
Деактивация и удаление
Деактивация закрывает доступ сразу и окончательно — с первого же следующего запроса, — но ключ и его история остаются на месте. Если человек вернётся, его можно так же просто включить обратно: тот же самый ключ снова начнёт работать, выдавать новый не нужно.
Удаление убирает ключ насовсем вместе с его ограничениями. Записи в журнале запросов остаются и по-прежнему называют прежнее имя ключа — история не пропадает.
Дальше: как описать модели, к которым обращаются программы, — в разделе Модели и цены.