Назад в блог

Инструменты и интеграцииИнструкция

DeepSeek Harness и CheapTokens: свой провайдер в настройках

Как добавить свой OpenAI-совместимый провайдер в DeepSeek Harness, указать адрес CheapTokens и запустить первую задачу. И что проверить, если не идёт.

Автор: CheapTokens TeamОпубликовано 5 мин чтения

Обложка: DeepSeek Harness подключён к CheapTokens через свой провайдер
Содержание
  1. Что мы подключаем
  2. Проверьте ключ до того, как открывать Harness
  3. Заполняем форму своего провайдера
  4. Выбираем модель и запускаем первую задачу
  5. Почему для агентного цикла подходит недорогая модель
  6. Если не работает
  7. Перед тем как закрыть вкладку

Чтобы работать в DeepSeek Harness через CheapTokens, откройте Settings → Models, переключите карточку на Custom model API, укажите адрес https://api.cheaptokens.dev/v1, протокол OpenAI Chat Completions, вставьте ключ CheapTokens и добавьте модель deepseek-ai/DeepSeek-V4-Flash-0731. Выберите её в списке моделей, и следующая сессия пойдёт через неё.

Вот и весь фокус. Дальше на странице: точная форма, быстрая проверка ключа (чтобы не ругать приложение зря) и короткий список, куда смотреть, если шлюз отвечает отказом.

Настройки ниже взяты из документации Harness на 24 октября 2026 года. Проект в публичном превью, а в README прямо сказано, что совместимость будет ломаться, так что если подпись переехала, верьте экрану и руководству по провайдерам.

Что мы подключаем#

DeepSeek Harness — открытый агент от DeepSeek (лицензия MIT, построен на архитектуре плагинов Cordis). Есть десктопное приложение для macOS на Apple silicon и для 64-битной Windows, а ещё веб-интерфейс: npx @deepseek-ai/dsh web (нужен Node.js). По умолчанию он открывается на http://127.0.0.1:3080.

Из коробки он просит ключ DeepSeek. Но на том же экране Models есть карточка для всего, чего нет в каталоге: ретранслятор, корпоративный шлюз, другой провайдер. Её и используем.

Со стороны CheapTokens нужны два пункта: ключ и баланс. Если ключа ещё нет, первый запрос к API CheapTokens займёт пару минут, а что такое API-ключ и как его хранить подскажет, где его хранить.

Проверьте ключ до того, как открывать Harness#

Один запрос из терминала покажет, в порядке ли ключ, баланс и id модели. Если он проходит, а Harness нет, дело в форме, а не в аккаунте.

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-ai/DeepSeek-V4-Flash-0731",
    "messages": [{"role": "user", "content": "Say hi in five words."}]
  }'

В ответ придёт JSON с массивом choices и блоком usage, где посчитаны входные и выходные токены. Ошибка вроде Invalid API key — про ключ; сообщение про баланс — пора пополнить баланс.

Заполняем форму своего провайдера#

Откройте Settings → Models и переключите карточку провайдера на Custom model API. Поля такие:

Поле Что ввести
Provider ID cheaptokens (строчными; потом не изменить, так что выберите имя по душе)
Display name CheapTokens
Base URL https://api.cheaptokens.dev/v1
API protocol OpenAI Chat Completions
Credential ваш ключ CheapTokens
Models deepseek-ai/DeepSeek-V4-Flash-0731

Два места, где обычно спотыкаются. Первое: адрес — https://api.cheaptokens.dev/v1, ровно как в curl выше, только без /chat/completions. Второе: id модели нужен полный, с префиксом deepseek-ai/. Короткое имя вроде deepseek-v4-flash API не принимает. Про base_url и как его менять — в статье что такое base_url в OpenAI-совместимом API.

Есть ещё кнопка Fetch available models. По документации она запрашивает GET /models, а id всегда можно ввести руками. Вводите руками — так надёжнее.

Карточка Custom model API в DeepSeek Harness: пустая форма превращается в заполненный провайдер CheapTokens
Иллюстрация: карточка Custom model API до и после заполнения

Выбираем модель и запускаем первую задачу#

Откройте список моделей и выберите модель CheapTokens. Выбор там делает её моделью по умолчанию для новых сессий, повторять не придётся.

Дайте ей что-нибудь небольшое и проверяемое. Допустим, в проекте падает тест:

text
Run the tests, find why test_parse_date fails and fix it. Show me the diff.

Хорошая картина: агент запускает тесты, читает упавший файл, правит его, снова гоняет тесты и показывает diff. Если так, подключение готово, и цикл оплачивается с вашего баланса.

Почему для агентного цикла подходит недорогая модель#

Агент отправляет не один вопрос. На каждом шаге он снова шлёт всю переписку, списки файлов и вывод инструментов, поэтому сессия почти целиком состоит из входных токенов. Из-за этого счета за агентов и удивляют (почему длинный чат дороже — механика, а как оценить стоимость ИИ-агента — метод оценки).

Допустим, в сессии 200 шагов, на каждом уходит около 30 000 токенов контекста и возвращается около 600. Получаем 200 × 30 000 = 6 000 000 входных и 200 × 600 = 120 000 выходных токенов. На DeepSeek-V4-Flash такая сессия обойдётся в $0.102 по сегодняшним ценам, и в сумме, с учётом входа и выхода, это дешевле OpenRouter. В таблице — та же нагрузка для всех наших моделей:

Модель Стоимость OpenRouter
GLM-5.3-Flash $0.125 $0.257
DeepSeek-V4-Flash $0.102 $0.304
MiniMax-M2.7 $0.318 $1.94

6 000 000 входных и 120 000 выходных токенов всего. Цены за 1M токенов актуальны и меняются вместе с нашими тарифами; столбец OpenRouter показывает справочные цены для той же нагрузки.

Для долгих сессий у DeepSeek-V4-Flash контекст 380K, до 32 768 токенов в одном ответе и одна цена в любое время суток, без пиковых наценок. Баланс общий для всех моделей CheapTokens, так что менять модель в Harness можно без нового пополнения. Актуальные тарифы — на странице цен, а про линейку DeepSeek — на странице модели.

Хотите сессию полегче? Добавьте в тот же провайдер zai-org/GLM-5.3-Flash (контекст 390K, до 8 192 токенов в ответе) или MiniMaxAI/MiniMax-M2.7 (контекст 180K, до 8 192 токенов в ответе) как дополнительные id. В одном провайдере может быть несколько моделей, а переключаться между ними можно в списке.

Если не работает#

Документация Harness называет обычных подозреваемых. Вот они и что делать:

  • Шлюз отказывает на все запросы, хотя ключ и адрес верны. Форма запроса отличается от той, что ждёт endpoint. У Harness есть настройки совместимости для каждой модели, например какая роль у системного промпта или как называется поле лимита выходных токенов. Они лежат в $DSH_HOME/profiles/<profile>/cordis.patch.yml и подхватываются без перезапуска. Точные ключи берите из руководства по провайдерам, не угадывайте.
  • Для введённой руками модели нет меню effort. Harness показывает уровни рассуждения только у моделей, которые их объявили. У модели, добавленной вручную, ничего не объявлено, поэтому меню пустое. Уровни объявляются в том же файле настроек модели.
  • 401 при загрузке списка моделей. Проверьте ключ или не нажимайте кнопку и введите id сами.
  • Ответ обрывается на полуслове. Это лимит токенов, а не обрыв соединения; см. почему ответ ИИ обрывается.
  • 401 или 403 в логе с первого запроса. Повторите проверку curl с тем же ключом. Если curl работает, введите ключ в поле Credential заново: лишний пробел в конце — классика.

Если вы уже работаете в другом агенте с тем же ключом, подключение OpenCode устроено так же, а все endpoint-ы перечислены в документации CheapTokens. Ещё один инструмент, а баланс всё тот же.

Перед тем как закрыть вкладку#

  • Адрес: https://api.cheaptokens.dev/v1
  • Протокол: OpenAI Chat Completions
  • Id модели: deepseek-ai/DeepSeek-V4-Flash-0731
  • Ключ: из вашего аккаунта CheapTokens, не на скриншотах и не в репозитории

Запустите задачу с падающим тестом один раз и посмотрите, сколько списалось с баланса. Этот прогон покажет, во сколько обходятся ваши собственные сессии.