Короткий ответ
DeepSeek Harness (dsh) по умолчанию отправляет запросы в официальный API DeepSeek. Перенаправить их в TeamoRouter можно двумя способами; оба мы проверили на dsh 0.2.1-rc.3 2 ноября 2026 года:
- Добавить TeamoRouter как провайдера (рекомендуем). OpenAI-совместимый провайдер прописывается в
~/.dsh/settings.yaml, ключ — в~/.dsh/.env. Вы сами выбираете, какие модели показывает dsh и какая из них по умолчанию. - Две переменные окружения (быстро).
DEEPSEEK_API_KEYиDEEPSEEK_BASE_URLперенаправляют встроенного провайдера DeepSeek на TeamoRouter. Доступны только два официальных имени моделей DeepSeek, по умолчаниюdeepseek-flash.DEEPSEEK_DEFAULT_MODELв dsh 0.2.x не действует.
У нового аккаунта баланс $0 — пополните его до первого запроса. Пополнить можно от $5. Если запрос возвращает 402 (в формате OpenAI — 400) с текстом «wallet balance is insufficient», значит, баланс пуст, а base URL и ключ настроены правильно. Пополните баланс и повторите запрос.
Способ 1: TeamoRouter как провайдер
1. Получите ключ. Создайте API-ключ (sk-teamo-...) в консоли TeamoRouter.
2. Сохраните провайдера в ~/.dsh/settings.yaml:
llm-pi-ai:
providers:
teamorouter:
displayName: TeamoRouter
apiKeyEnv: TEAMOROUTER_API_KEY
api: openai-completions
baseURL: https://api.teamorouter.com/v1
models:
- id: deepseek-v4-pro
name: DeepSeek V4 Pro
- id: deepseek-flash
name: DeepSeek V4.1 Flash
- id: deepseek-flash-free
name: DeepSeek V4.1 Flash Free
agent-default-model:
provider: teamorouter
model: deepseek-v4-pro
Любой другой ID модели со страницы цен можно добавить в models и вызывать тем же ключом.
3. Запишите ключ в ~/.dsh/.env:
echo 'TEAMOROUTER_API_KEY=ваш-ключ-sk-teamo' >> ~/.dsh/.env
chmod 600 ~/.dsh/.env
4. Запустите dsh:
npx @deepseek-ai/dsh web
При первом запуске dsh 0.2.x переносит settings.yaml в запускаемый профиль (здесь ~/.dsh/profiles/web/cordis.patch.yml) и переименовывает файл в settings.yaml.imported. Откройте http://127.0.0.1:3080, создайте сессию и выберите модель TeamoRouter.
Перенос происходит один раз и только в следующий запущенный профиль; другой профиль, например dsh headless, его не видит. Либо передайте ему файл профиля web:
dsh headless --patch ~/.dsh/profiles/web/cordis.patch.yml "Reply with one word: pong"
либо заново создайте settings.yaml перед запуском этого профиля. В инструкции по подключению DeepSeek Harness есть скрипт, который создаёт оба файла одной командой.
Способ 2: две переменные окружения
export DEEPSEEK_API_KEY="ваш-ключ-sk-teamo"
export DEEPSEEK_BASE_URL="https://api.teamorouter.com/v1"
npx @deepseek-ai/dsh web
Что при этом происходит в dsh 0.2.1-rc.3, по нашей проверке:
- dsh остаётся на встроенном провайдере
deepseek-officialи отправляет запросы в формате Anthropic на$DEEPSEEK_BASE_URL/messages, то есть наhttps://api.teamorouter.com/v1/messages. TeamoRouter их принимает. - Имя модели — официальное имя DeepSeek: по умолчанию
deepseek-flash, а если выбрать в веб-интерфейсе —deepseek-v4-pro. Других моделей TeamoRouter в списке нет. DEEPSEEK_DEFAULT_MODELигнорируется: с этой переменной, равнойdeepseek-v4-pro, запрос всё равно шёл кdeepseek-flash. Чтобы сменить модель по умолчанию, используйте способ 1.
Зачем направлять dsh на TeamoRouter
- Без аккаунта DeepSeek. Ключ и баланс — в TeamoRouter, регистрироваться и пополнять platform.deepseek.com не нужно. Как платит сама DeepSeek — в статье «Как оплатить DeepSeek API из России».
- Один ключ — много моделей. Со способом 1 модели DeepSeek, GPT, Gemini, Kimi и GLM можно держать в одном списке и переключать прямо в dsh.
- Оплата по токенам в рублях. Подписки нет. В окне пополнения нажмите «Оплатить» и выберите СБП, Т-Банк, ЮMoney или SberPay; минимум — $5. Можно оплатить и USDT, USDC или ETH (пошагово). Актуальные цены — на странице цен.
Типичные ошибки
MISSING_CREDENTIAL ... deepseek-official?
dsh всё ещё на встроенном провайдере и не находит ключ. Со способом 1 запущенный профиль не перенёс settings.yaml (см. выше про перенос) или в ~/.dsh/.env нет TEAMOROUTER_API_KEY. Со способом 2 переменная DEEPSEEK_API_KEY не экспортирована в той оболочке, из которой запущен dsh.
404 или ошибка соединения?
В обоих способах base URL должен заканчиваться на /v1. Способ 1 добавляет /chat/completions, способ 2 — /messages; полный путь в обоих случаях начинается с https://api.teamorouter.com/v1/.
Ошибка авторизации 401?
Ключ неверный, скопирован не полностью или удалён в консоли. Проверьте, что он начинается с sk-teamo- и без лишних пробелов: в ~/.dsh/.env для способа 1 или командой echo $DEEPSEEK_API_KEY для способа 2.
Можно ли менять модель в отдельной сессии?
Да. В веб-интерфейсе модель меняется для каждой сессии среди тех, что показывает провайдер: ваши models в способе 1 или deepseek-flash и deepseek-v4-pro в способе 2.
Можно ли хранить ключ в .env репозитория?
Не стоит. Держите его в ~/.dsh/.env или в профиле оболочки, вне репозитория, чтобы он не попал в коммит.
Дальше: установка DeepSeek Harness или DeepSeek Super-agent на том же провайдере.