Для ИИ-агентов
Агенту, который пишет код под Souz API, сначала нужна выжимка https://api.souz.ai/llms.txt:
адрес, ключ, задачи, ошибки, роутинг и каналы на одной странице. Поля запроса — из карточки
модели, подробности — на страницах руководства.
Где документация для агента
| Что | Адрес |
|---|---|
| коротко для агента — начать отсюда | https://api.souz.ai/llms.txt |
| оглавление сайта со ссылками на Markdown-страницы | https://souz.ai/llms.txt |
| всё руководство одним файлом | https://souz.ai/llms-full.txt; с приложенной спецификацией — https://api.souz.ai/llms-full.txt |
| любая страница документации в Markdown | адрес страницы плюс .md, например https://souz.ai/docs/quickstart.md |
| страница модели в Markdown | https://souz.ai/models/<id>.md |
| контракт | https://api.souz.ai/openapi.json, https://api.souz.ai/openapi.yaml |
Порядок работы
GET /v1/models/{id}—input_schemaкакparametersинструмента.- Статистика:
stats_7dвGET /v1/models, по часам —GET /v1/models/{id}/stats. - Отправьте запрос: синхронно (картинки, музыка, транскрибация, речь) или с
Prefer: respond-asyncиcallback_url(видео и долгие модели). СтавьтеIdempotency-Keyна каждый запрос, который можете повторить. - Скачайте результат в течение суток: ссылки и
file_…живут 1 день.
Настройки аккаунта сервер применяет сам; поля запроса главнее; "routing_options": {} —
без каналов из настроек.
Как выбрать и закрепить канал
GET /v1/models/{id}/channels— сравните каналы: ставки (rates), задержка (metrics.latency_p50_ms), скорость чата (metrics.throughput_p50), стабильность (history.success_rate),limitsиavailable.null— мало данных, не ноль.POST /v1/models/{id}/routing/previewс параметрами иrouting_options— порядок попыток и цена каждого канала, бесплатно.- На один запрос —
"routing_options": {"only": ["blue"]}. Для всего аккаунта — ключом управления:GET /v1/settings, добавьте модель вrouting_optionsи отправьте карту целиком вPATCH /v1/settings. - Проверьте
channelв ответе или задаче — это канал, который выполнил запрос.
Как вести себя при ошибках
Ветвитесь по error.type: invalid_request_error — правьте запрос по error.detail[];
rate_limit_error и model_error — ждите Retry-After и повторяйте; billing_error —
остановитесь и сообщите человеку. 402 key_spend_limit_exceeded при
spend_limit_reset: "none" ждать бесполезно — Лимиты.
Цена или скорость
| Нужно | Поля запроса |
|---|---|
| дешевле, даже если медленнее | "routing": "cheap" |
| самый быстрый канал | "routing": "fast" |
| не дороже цены пресета в N раз | "max_price_multiplier": 1.5 — каналы дороже не пробуются |
| ответ не дольше Y секунд | "routing_options": {"preferred_max_latency_ms": 20000} — каналы с медианной задержкой (metrics, сутки или 7 дней) не больше 20 с первыми, остальные остаются запасными |
| самый быстрый в пределах бюджета | "routing_options": {"sort": "latency", "max_price": {"request": 3000000}} — каналы с оценкой запроса дороже 3 ₽ не пробуются, остальные — по задержке |
| свой канал, но с запасными | "routing_options": {"order": ["red"]} — сначала красный, затем остальные; only и "allow_fallbacks": false запасные отключают |
Задержка — metrics.latency_p50_ms канала (у чата — до первого токена); канал без замера в
число быстрых не попадает. Следующий канал может стоить дороже: итог может превысить цену
пресета.
Агенту, который ведёт аккаунт
Выдача ключей субагентам, баланс и расходы — ключ управления.