DeepSeek выложил не новую модель, а рантайм агента. Репозиторий deepseek-ai/DeepSeek-Harness на 26 августа 2026 около 195 тысяч звёзд. Каноническая страница: deepseek.com/harness. Короткое имя: dsh. Это не Claude Code и не Cursor. Это обвязка: модель, инструменты, сессия, песочница, цикл и UI собираются из плагинов. Для вайб-кодера вопрос простой: агент жрёт одни и те же system и tools каждый ход, а DeepSeek API дешёвый только когда префикс запроса совпал с кэшем. Если префикс пляшет, вы платите cache miss.
Про цену токена и результат уже есть: цена токена или результат. Про задержку первого токена: TTFT и инференс. Про лимиты чужого агента: лимиты Claude Code. Ниже только Harness и кэш префикса. Не курс и не обзор игр.
Что это официально
README репозитория: open-source agent harness от DeepSeek AI. Архитектура: everything is a plugin. Ядро композиции: Cordis. Лицензия MIT. Статус на 26 августа 2026: developer preview. Там прямо написано: будут ломающие совместимость изменения. Это не SLA и не ставьте в прод и забудьте.
На сайте тезис тот же. Модель, инструменты, навыки, сессия, песочница, хранение, цикл, планировщик и UI не зашиты в монолит. Их монтируют плагины. Cordis грузит, снимает и разруливает зависимости. Конкретной агентной логики в ядре нет. Конфиг выбирает, что подключить, без правки исходников Harness.
Документация по архитектуре (docs/architecture.md) раскладывает дерево. Профиль: именованная сборка бандлов плюс ваш cordis.patch.yml. Бандл: кусок конфига и код, который он монтирует. Базовый слой dsh-base даёт адаптеры моделей, инструменты, персистентность, песочницу, настройки и креды. dsh-web-app добавляет браузерный UI. dsh-headless гоняет один прогон без сервера. Посмотреть, что реально поднялось на машине: dsh --profile web --dump-config.
Как запустить
Официальный быстрый путь: поставить Node.js и выполнить пакет @deepseek-ai/dsh с командой web. Web UI по умолчанию слушает порт 3080 на localhost и открывает браузер. Если запускаете по SSH, команда печатает URL хоста и не открывает чужой браузер. Флаг no-open поднимает сервер без окна.
Плагины сообщества ищут по топику dsh-plugin. Баги пишут в Discussions репозитория. На 26 августа 2026 это preview для разработчиков обвязок.
Четыре режима
Сайт перечисляет пресеты. Не выдумывайте пятый.
- Стандартный. Полный кодирующий агент: файлы, shell, поиск, skills, план, цели, субагенты, воркфлоу.
- PTC. Те же способности, инструменты через Code Mode SDK. Модель пишет один TypeScript-кусок и им собирает несколько шагов.
- Минимальный. Два инструмента: постоянный bash и редактор замены строк. Для голого замера модели.
- Творческий. Полный набор плюс осмотр рантайма, плагины в памяти и сборка своего пресета.
Минимальный режим про честный замер: меньше обвязки, меньше помощи от харнесса. Бенчмарк агента часто измеряет не модель, а цикл. Если сравниваете модели, фиксируйте пресет. Иначе вы сравниваете два разных рантайма.
Журнал только на дописывание
Официальный тезис: всё, что увидела модель, попадает в журнал сессии только на дописывание. Системный промпт, цепочка рассуждений, вызовы инструментов и ответы, запуск субагентов, любая инъекция контекста. В Trajectory это разбирают по источнику. Восстановление, форк, поиск и реплей читают тот же поток.
В архитектуре инвариант: то, что увидела модель, должно быть в логе. Если кусок дошёл до запроса, его можно восстановить. Новый видимый модели вход требует нового типа события. История не переписывается с нуля каждый ход, а дописывается. Для кэша API это байты в начале запроса, не философия.
Что такое cache hit у DeepSeek
Это уже не фича Harness, а правило Context Caching в API DeepSeek (документация guides/kv_cache). Кэш на диске включён по умолчанию, отдельного флага нет. Попадает только совпавший префикс с нулевого токена. Совпадение куска в середине запроса кэша не даёт.
- Кэш пишется на границах запроса: в конце пользовательского входа и в конце ответа модели.
- Если несколько запросов делят общий префикс, система может сохранить этот префикс отдельным блоком.
- Длинный вход режут фиксированными интервалами, чтобы огромный префикс не висел без точки сохранения.
- Поля в usage: prompt_cache_hit_tokens и prompt_cache_miss_tokens.
- Попадание best-effort. Сто процентов вендор не обещает. Сборка кэша занимает секунды. Неиспользуемое чистят через часы или дни.
Цены смотрите на странице Models and Pricing в docs API, они меняются. На 26 августа 2026 для deepseek-v4-flash во внепиковые часы: cache hit 0.007 доллара за миллион входных токенов, cache miss 0.22, выход 0.66. Пик в два раза дороже. Пиковые окна: 01:00-04:00 и 06:00-10:00 UTC, понедельник-пятница. Для deepseek-v4-pro вне пика: hit 0.022, miss 0.66, выход 1.98. Hit примерно в 31 раз дешевле miss на входе Flash. Это не KPI продукта Harness. Это отношение двух колонок прайса.
Откуда тогда цифра 98.2 процента cache hits. Это не цифра с deepseek.com/harness. Так измеряют долю входных токенов, которые реально ушли в hit, когда голова запроса (system плюс определения инструментов) байт в байт та же, а диалог только дописывается. Если агент каждый ход пересобирает tools, вставляет свежую дату в начало system или переставляет блоки, префикс ломается с нулевого токена. Hit падает. Вы платите miss за весь хвост.
Что ломает префикс у вайб-кодера
Типичный самописный цикл делает три вещи, которые убивают кэш.
- В system каждый ход пишут сегодняшнюю дату, список открытых файлов или свободную память. Голова запроса новая. Hit ноль.
- Набор tools сериализуют в разном порядке или с новым description. Определения инструментов входят в голову. Перестановка одного ключа даёт новый префикс.
- Историю переписывают: суммаризуют сверху, выкидывают середину, подмешивают поиск в начало. Для DeepSeek это уже другой запрос с нуля.
Правило короткое. Стабильное кладите вперёд: system, схемы инструментов, длинный контекст репозитория. Переменное кладите в конец: реплика пользователя, свежий diff, результат последнего инструмента. Суммаризацию не вставляйте в голову: она должна идти после стабильного префикса. Harness как раз пытается держать журнал на дописывание, чтобы голова не плясала.
Проверяйте не ощущением, а полями ответа. Если prompt_cache_hit_tokens близко к нулю на втором ходе той же сессии, префикс уехал. Сначала чините сериализацию, не модель.
Как это стыкуется с вайб-кодом
Если вы сидите в Claude Code, Harness вам не обязателен. Это другой продукт: открытый цикл, который можно патчить плагином.
- хотите свой набор инструментов и свой интерфейс, не чужой закрытый агент;
- гоняете длинные сессии на API DeepSeek и видите, что miss съедает бюджет;
- сравниваете модели в минимальном режиме, без помощи жирного харнесса;
- нужен реплей: что именно модель видела на конкретном шаге.
Не имеет смысла, если нужен готовый редактор с лимитами подписки. Тогда читайте Claude Code Concise и Remote Control. Harness их не заменяет. Это слой агент равно модель плюс обвязка, который DeepSeek открыл, чтобы обвязку можно было менять.
В quick start API DeepSeek уже пишет, что Harness в developer preview, и что модели DeepSeek можно подставить в Claude Code, Copilot и OpenCode. Это про бэкенд-модель, не про то, что dsh живёт внутри Claude Code.
Что не утверждать
- Не писать, что 195 тысяч звёзд равны готовому проду. Preview сам предупреждает про ломающие изменения.
- Не писать, что 98.2 процента это официальный SLA Harness. Это наблюдаемый hit при стабильном префиксе, либо отношение цен hit к miss у Flash (около 97 процентов дешевле miss). Цифры разные.
- Не сравнивать звёзды за два дня с доказательством качества кода. Это сигнал внимания, не бенчмарк.
- Не обещать, что любой агент на DeepSeek начнёт попадать в кэш без правки сериализации.
Практический минимум на сегодня: поднимите локальный web-интерфейс dsh, посмотрите Trajectory на двух ходах, затем в своём цикле или в usage API сверьте hit. Если голова стабильна, miss остаётся на хвосте. Если нет, сначала чините префикс. Модель тут ни при чём.
