
DeepSeek Harness и OpenAI-совместимый API: кэширование
Интеграция DeepSeek Harness с OpenAI-совместимым API: выбор Flash или Pro, проверка вызовов инструментов и расчёт стоимости кэшированных агентских циклов.
DeepSeek Harness может использовать OpenAI-совместимую конечную точку, когда плагину провайдера заданы четыре значения: базовый URL, API ключ, ID модели и путь Chat Completions. Для reAPI базовый URL — https://api.reapi.ai/v1, текущие ID моделей — deepseek-v4-flash и deepseek-v4-pro.[1][2]
Проект Harness всё ещё помечен как preview для разработчиков, поэтому названия команд и конфигурация могут измениться. Стабильная часть — контракт провайдера. Настроите её сначала, потом проверьте обычное сообщение и один вызов инструмента перед установкой дополнительных плагинов.
Четыре значения для маппинга
| Параметр провайдера Harness | Значение reAPI |
|---|---|
| Тип провайдера | OpenAI-совместимый |
| Базовый URL | https://api.reapi.ai/v1 |
| API ключ | Ключ reAPI из переменной окружения |
| Модель | deepseek-v4-flash или deepseek-v4-pro |
Не вставляйте ключ прямо в файл репозитория. Плагин провайдера должен читать его из переменной окружения или хранилища секретов, поддерживаемого текущим релизом Harness.
На уровне HTTP запрос должен разрешиться в:
POST https://api.reapi.ai/v1/chat/completions
Authorization: Bearer YOUR_API_KEY
Content-Type: application/jsonЭтого минимального тела достаточно для проверки доступа к модели вне Harness перед отладкой поведения агента:
{
"model": "deepseek-v4-flash",
"messages": [
{ "role": "user", "content": "Reply with exactly: provider ok" }
],
"stream": false,
"max_tokens": 64
}Если прямой запрос не работает, Harness — не причина. Сначала исправьте URL, ключ, ID модели, баланс или сетевой доступ.
Начните с Flash, сложные шаги переводите на Pro
Оба текущих варианта DeepSeek V4 предоставляют окно контекста в 1М токенов, до 384K выходных данных, использование инструментов, режим thinking, ввод изображений и кэширование контекста на маршруте reAPI.[2] Их цена и предназначенная нагрузка различаются кардинально.
| Модель | Вход без кэша / 1M | Вход с кэшем / 1M | Выход / 1M | Первая работа Harness |
|---|---|---|---|---|
| DeepSeek V4 Flash | $0.14 | $0.0028 | $0.28 | поиск по файлам, резюме, обычные правки |
| DeepSeek V4 Pro | $1.74 | $0.0145 | $3.48 | архитектура, сложная отладка, длинные планы |
Цикл агента повторяет инструкции, контекст репозитория и схемы инструментов. Это делает поведение кэша необычайно важным. Вход Flash с кэшем в 50 раз дешевле, чем без кэша; вход Pro с кэшем в 120 раз дешевле.
Используйте Flash по умолчанию при подключении агента. Направьте шаг на Pro только если требование к рассуждениям оправдывает примерно 12,4 раза большую ставку входа без кэша и выходных данных.
Сохраняйте стабильный префикс
Кэширование контекста наиболее полезно, когда начало последовательных запросов остаётся идентичным. В агенте кодирования этот префикс часто содержит:
- системные инструкции;
- политику репозитория;
- определения инструментов и JSON схемы;
- неизменный документ архитектуры;
- предыдущий диалог перед новейшим результатом инструмента.
Переупорядочение инструментов, добавление временных меток в верхнюю часть или переформирование тех же инструкций с небольшими изменениями формулировок может предотвратить повторное использование префикса. Поместите изменяемое состояние после стабильного блока.
Например, цикл Pro с 200 000 стабильных входных токенов, 10 000 новых входных токенов и 8 000 выходных токенов стоит примерно:
200 000 кэшированных входных × $0.0145 / 1 000 000 = $0.0029
10 000 новых входных × $1.74 / 1 000 000 = $0.0174
8 000 выходных × $3.48 / 1 000 000 = $0.02784
-------
$0.04814Без попадания кэша те же 210 000 входных токенов обходились бы в $0.3654 перед выходными данными. Макет контекста агента может иметь большее значение, чем обрезание нескольких сотен токенов из последнего сообщения.
Проверьте вызовы инструментов перед добавлением плагинов
Успешный ответ чата не доказывает, что агент может действовать. Запустите безобидный тест вызова инструмента дальше:
{
"model": "deepseek-v4-flash",
"messages": [
{ "role": "user", "content": "What files are in the current directory?" }
],
"tools": [
{
"type": "function",
"function": {
"name": "list_files",
"description": "List files in the current working directory",
"parameters": { "type": "object", "properties": {} }
}
}
],
"tool_choice": "auto"
}Модель должна вернуть структурированный вызов инструмента. Harness выполняет локальную функцию и предоставляет результат в следующий ход. Если модель печатает «я бы перечислил файлы» как прозу, проверьте, передал ли плагин провайдера tools и вернул ли поля вызова инструмента помощника нетронутыми.
Пять точек отказа, выглядящих как проблемы модели
| Симптом | Проверьте сначала |
|---|---|
| Ответ 401 | Ключ отсутствует или Harness не унаследовал переменную окружения |
| Ответ 404 | Базовый URL или путь /v1/chat/completions был дублирован/пропущен |
| Модель не найдена | Используйте точный ID deepseek-v4-flash или deepseek-v4-pro |
| Агент говорит но не действует | Адаптер провайдера потерял определения инструментов или выходные данные вызова |
| Ответ обрывается до конца | Thinking использовал бюджет выходных; увеличьте max_tokens |
Thinking включён по умолчанию на текущем маршруте DeepSeek V4. Токены рассуждений учитываются в использовании выходных данных, поэтому малый лимит выходных может завершить план инструмента перед видимым для пользователя ответом.[2]
Протестируйте полный цикл агента с помощью одноразового репозитория
После прохождения проб сообщения и вызова инструмента дайте Harness небольшой репозиторий, созданный для тестирования интеграции. Он должен содержать читаемый файл, неудачный тест, один защищённый путь и безобидную команду. Попросите агента диагностировать тест, предложить исправление, запустить узкую проверку и остановиться перед любым коммитом или внешним действием.
Это выявляет четыре отказа интеграции, которые тест JSON вызова инструмента не может:
- относительные пути разрешаются вне предполагаемого рабочего каталога;
- выходные данные команды усекаются перед тем, как модель увидит ошибку;
- инструмент патча изменяет окончания строк или кодировку файла;
- граница утверждения применяется в интерфейсе, но не в плагине.
Повторите ту же задачу после перезагрузки Harness. Восстановление сеанса имеет значение в агенте кодирования, потому что долгие прогоны терпят неудачу в обычных границах: спящий ноутбук, перезагрузка процесса, тайм-аут провайдера или неправильный результат инструмента. Работающий первый ход — недостаточно.
Логируйте достаточно, чтобы отделить отказы времени выполнения и модели
Как минимум сохраняйте ID запроса, выбранную модель, использование токенов, токены попадания кэша, причину завершения, имя инструмента, длительность инструмента и очищенную ошибку. Не логируйте API ключи или неограниченное содержимое файлов.
Когда агент останавливается, эти поля отвечают на разные вопросы:
| Наблюдение | Вероятный уровень |
|---|---|
| HTTP 401/404 перед любыми выходными данными модели | Конфигурация провайдера |
finish_reason: length | Бюджет выходных |
| Действительный вызов инструмента, но нет выполнения | Runtime Harness/плагина |
| Инструмент выполнен, результат никогда не достигает модели | Сериализация цикла |
| Повторённый полный вход с нулевыми попаданиями кэша | Конструкция контекста |
| Модель выбирает рискованную команду несмотря на правильную схему | Модель/промпт/политика утверждения |
Без этого разделения команды часто переключают модели для исправления отсутствующей переменной окружения или переписывают промпты для исправления потерянного результата инструмента.
Не передавайте скрытые рассуждения как историю диалога
Ответ DeepSeek V4 может содержать содержимое рассуждений отдельно от финального ответа. Документация API рекомендует удалять предыдущее содержимое рассуждений перед следующим ходом.[2] Сохраняйте то, что необходимо для выставления счёта и отладки в соответствии с политикой продукта, но не добавляйте скрытые рассуждения к следующей истории пользователя/помощника, как если бы это было обычным содержимым.
Диалог должен сохранять видимый ответ помощника, структурированные вызовы инструментов и результаты инструментов, требуемые протоколом. Это сохраняет следующий запрос действительным и предотвращает рост контекста с материалом, который конечная точка не ожидает получить обратно.
Безопасность плагина принадлежит настройке, а не её следствиям
Предпросмотр Harness поддерживает плагины, что означает, что код третьих сторон может получать промпты, файлы, выходные данные инструментов или доступ в сеть. Перед включением:
- прочитайте исходный код плагина и поверхность разрешений;
- запустите Harness в одноразовом репозитории или песочнице;
- начните с инструментов файловой системы только для чтения;
- заблокируйте файлы секретов и родительские каталоги;
- потребуйте подтверждения для shell, установки пакетов, git push и внешних сообщений.
Конечная точка модели не может исправить чрезмерно разрешённый локальный плагин. Эта граница принадлежит агентному runtime.
Текущий контракт модели и примеры SDK находятся в документации API DeepSeek V4, с текущими ценами на странице модели DeepSeek V4.
References
- DeepSeek, "deepseek-harness" official repository, developer preview, accessed August 23, 2026.
- reAPI DeepSeek V4 API documentation, accessed August 23, 2026.
- DeepSeek Harness official product page, accessed August 23, 2026.
Автор

Категории
Ещё статьи

Промпты для Dreamina Seedance 2.5: референсы и тайминг
Как писать точные промпты для Seedance 2.5: официально описанные лимиты референсов, 30-секундные этапы, тайминг, монтаж, продление и ключевые кадры.


Сравнение цен Wan 3.0 API: 480P, 720P и 1080P
Сравниваем официальный API Wan 3.0 с reAPI и рассчитываем стоимость видео длительностью 5, 10 и 30 секунд при разрешениях 480P, 720P и 1080P.


Claude Fable 5.1 vs GPT-6 Astra: выбор по типу задачи
Сравниваем Claude Fable 5.1 и GPT-6 Astra по контексту, инструментам, кешированию, хранению данных и цене — затем проверьте оба на своей нагрузке.
