Усі статті
2 хв читання#agents#api#reliability

Ліміти, повтори і один заголовок, що робить їх безпечними

Ліміт — це не покарання. Це причина, з якої безплатний сервіс може одночасно лишатися безплатним і відкритим для програм.

Що обмежено і чим

Ліміти — це фіксовані вікна, що рахуються або за адресою, або за акаунтом. Програма без ключа може створити десять сторінок на добу з однієї адреси; з ключем — десять сторінок за годину на тому акаунті, якому ключ належить. У валідації, завантаження картинок за URL, імпорту, claim-посилань і MCP-ендпоїнта свої вікна: щедрі для справжньої роботи і вузькі для циклу.

Адреси ніколи не зберігаються в сирому вигляді: лічильник ключується солоним хешем — так само, як статистика відвідувачів. Рядок лімітера — це запис, а сторінка про приватність обіцяє, що сира адреса не записується ніколи; ця обіцянка включає і його.

  1. Коли вікно вичерпано, приходить 429 з кодом rate_limited.
  2. У тілі лежить retryAfter у секундах, те саме значення — у заголовку Retry-After.
  3. Стільки й зачекайте. Не повторюйте одразу і не розмазуйте ту саму роботу по кількох адресах.
  4. Якщо потрібного більше, ніж дозволяє вікно, — це привід поговорити, а не шукати обхід.

Чому ключ ідемпотентності кращий за цикл повторів

  • Створення, яке відвалилося за таймаутом, могло все-таки пройти. Сліпий повтор дає другий акаунт на імені, яке тепер зайняте.
  • Надішліть зі створенням заголовок Idempotency-Key — і повтор поверне першу відповідь замість того, щоб щось створювати.
  • Ключ прив’язаний до того, хто викликає, тож два клієнти не прочитають відповіді одне одного, і живе він добу.
  • Підійде будь-який унікальний рядок: ідентифікатор задачі, хеш запиту, адреса плюс позначка часу.

Обмеження, які не про швидкість

Є ще дві стелі, і вони з іншої причини. Програма може створити десять сторінок на одному акаунті — людина, що додає сторінки руками, не обмежена взагалі, бо людина, яка натискає кнопку, не цикл. І сторінка тримає вісімдесят блоків: значно більше, ніж варто мати, і значно менше, ніж згенерує генератор, якщо його не спинити.

Сторінки, зроблені програмою і ніким не забрані, підмітаються: знімаються з публікації через тридцять днів, якщо їх ніхто жодного разу не відкривав, і видаляються через шістдесят. Один-єдиний візит звільняє сторінку від цього назавжди.

Читати далі