От AutoGPT нужны ровно два значения:
base_url = "https://speshu.ai/api/v1" и API-ключ в заголовке Authorization: Bearer. Дальше агент ходит в /chat/completions обычным OpenAI-совместимым запросом. Ключ создаётся в разделе API-ключей на speshu.ai/profile, подробности — в разделе Аутентификация.Ключ и идентификатор модели
1
Положите ключ в переменную окружения
Ключ не зашивайте в конфиг AutoGPT — он попадает в бэкап, логи и скриншоты. Положите его в
.env рядом с запуском или в переменную окружения оболочки:2
Проверьте ключ запросом баланса
Запрос баланса не стоит токенов и не обращается к моделям — это самый дешёвый способ убедиться, что ключ принят.
cURL
3
Возьмите идентификатор модели из каталога
Идентификаторы текстовых моделей не зашивайте в код: состав каталога меняется, и зашитый в конфиг идентификатор начинает падать с
404 model_not_found без предупреждения.cURL
.data[0] — первый элемент, чтобы пример можно было запустить. Выбирайте по context_length, цене и наличию зрения; провайдера конкретной модели видно в поле owned_by того же ответа. Формат ответа разобран в разделе Модели и цены и в Каталоге моделей.Настройка
Визуальная платформа
Откройте настройки агента или платформы и найдите раздел конфигурации LLM — в разных версиях он называется AI Settings, LLM Settings или AI Configuration. В нём выберите провайдера типа OpenAI, Custom или Third-party (OpenAI-compatible) и заполните три поля:
Названия полей — самые версионно-чувствительные места во всём AutoGPT: они переезжают между релизами. Если в вашей версии поле называется иначе, ищите в настройках модели адрес шлюза или адрес шлюза OpenAI-совместимого провайдера — это устойчивая точка входа, а не конкретный ключ в JSON.
Классическая версия
В версииautogpt из репозитория AutoGPT те же значения задаются в файле .env в корне проекта. Имена переменных в этой линии развития:
v0.4.x; в более поздних они частично переименованы (OPENAI_BASE_URL), поэтому сверяйтесь со шаблоном .env из вашей сборки. Запуск после правки:
Не передавайте ключ аргументом командной строки: он попадёт в историю оболочки и в список процессов, который читается любым пользователем системы.
Первый работающий пример
Проверьте, что шлюз отвечает
Прежде чем запускать агента, убедитесь, что сам шлюз работает с вашим ключом и идентификатором:cURL
Проверьте, что всё работает
1
Соберите минимальный блок
Создайте агента с одной узкой целью и одним блоком LLM-вызова. Цель вроде «Ответь одним предложением: что такое контекстное окно?» — достаточна, чтобы отличить проблему конфигурации от проблемы модели.
2
Ограничьте бюджет итераций
У агентного цикла нет естественного конца: каждая итерация — платный запрос. Ограничьте число итераций и верхнюю границу
max_tokens в настройках модели до первого запуска.3
Запустите и посмотрите журнал вызовов
Ищите в логе успешные ответы Расход за один ответ лежит в поле
/chat/completions без ошибок авторизации. Списания видны по остатку:cURL
usage.cost.total_cost ответа — в рублях; это единственное поле, по которому стоит считать деньги. Подробности — в разделе Тарификация и оплата и в гайде по учёту средств.Что доступно через этот шлюз
- Потоковая передача. Блоки LLM умеют разбирать SSE, но в логах AutoGPT поток обычно сводится к готовому тексту — инкрементального вывода в интерфейсе не будет. Формат кадров,
[DONE]и кадр со списанием разобраны в гайде Потоковая передача. - Вызов функций. Протокол совпадает с обычным чатом: схема инструмента уходит в поле
tools, выбранный инструмент возвращается вchoices[0].message.tool_calls. Полный цикл, разбор аргументов и обработка параллельных вызовов — в гайде Вызов функций. - Изображения во входе. Блок, который отдаёт модели картинку, работает, если выбранная модель принимает зрение. Требования к ссылке и все четыре типа блоков контента — в гайде Медиаввод.
- Генерация медиа. Медиа API асинхронное и не OpenAI-совместимое: задача создаётся отдельным вызовом, оплата идёт при создании, результат приходит по опросу. Из агента вызывайте его через блок HTTP-запроса, а не через LLM-блок. Формат конверта и цикл опроса — в Создании задачи и Статусе задачи.
cURL
GET /api/v1/media/models публичный, и его значения допустимо писать литералом.
Про векторную память
Два честных варианта. Вариант A — эмбеддинги у другого провайдера. Это отдельная конфигурация, к SpeShu.AI она отношения не имеет. В классической версии это отдельные переменные в.env:
Типичные проблемы
404 на запросе, хотя ключ и модель верны
404 на запросе, хотя ключ и модель верны
Проверьте адрес: без завершающего слэша и без потерянного
/v1. https://speshu.ai/api и https://speshu.ai/api/v1/ — обе частые причины, обе дают 404. Базовый адрес API разобран в разделе Введение в API.401 invalid_api_key на первом же вызове
401 invalid_api_key на первом же вызове
Ключ не подхватился из окружения или в конфигурации остался ключ другого провайдера. Проверьте значение командой
echo "$SPESHU_API_KEY" | wc -c — в нём не должно быть кавычек и переносов строк. Формат ключа и его отзыв — в разделе Аутентификация.404 model_not_found после обновления каталога
404 model_not_found после обновления каталога
В настройках модели зашит идентификатор, которого больше нет в
GET /api/v1/models. Замените его на $SPESHU_MODEL и перезапустите агента. Подробности — в разделе Модели и цены.402 insufficient_quota после нескольких итераций
402 insufficient_quota после нескольких итераций
Агентный цикл съел остаток быстрее, чем вы рассчитывали: платный запрос идёт на каждую итерацию. Ограничьте число итераций и верхнюю границу
max_tokens, пополните баланс в профиле. Проверка баланса идёт до обращения к модели, деньги за отказ не списываются.Агент стартует и сразу падает на векторной памяти
Агент стартует и сразу падает на векторной памяти
Это не проблема шлюза: эндпоинта
/embeddings у SpeShu.AI нет, и хранилище памяти получает 404. Уберите векторный шаг или переведите эмбеддинги на отдельный провайдер — оба варианта описаны выше.Что дальше
Начало работы
Полный маршрут от ключа до медиа-задачи
Модели и цены
Как выбрать идентификатор и на что смотреть
Вызов функций
Как агент вызывает инструменты
Запрос чату
Поля запроса и формат ответа
