Архитектура

DeepSeek Harness (dsh) в 2026 году: архитектура, режимы, релизы и безопасная оценка

TTokenhot Team17 августа 2026 г.11 мин чтения
DeepSeek Harness (dsh) в 2026 году: архитектура, режимы, релизы и безопасная оценка

Обновлено 13 сентября 2026 года; это руководство основано на dsh-v0.1.5-rc.2.

DeepSeek Harness (dsh) полезно оценивать как среду выполнения агента, однако текущий ответ на вопрос «достаточно ли он стабилен для production?» — нет. DeepSeek называет его ПО developer preview, предупреждает о неизбежных несовместимых изменениях и сообщает, что оно не прошло аудит безопасности и не получило статуса готового к production. Это не делает dsh неинтересным. Это подсказывает, как его использовать: фиксируйте оцениваемую версию, изолируйте доступные ему ресурсы и измеряйте собственную нагрузку, прежде чем доверять ему ценные файлы или учётные данные.

В этом руководстве объясняется архитектура, отделяются пользовательские режимы dsh от его CLI-профилей и показан воспроизводимый путь оценки. Оно отражает тег репозитория и страницу релиза dsh-v0.1.5-rc.2, проверенные 13 сентября 2026 года. Документация в изменяющейся ветке может содержать работу, которой нет в устанавливаемом релизе.

Что такое DeepSeek Harness

Официальный репозиторий описывает dsh как open-source harness агента, разработанный DeepSeek AI. Модель обеспечивает рассуждение; harness обеспечивает runtime вокруг неё: адаптеры моделей, инструменты, сессии, доступ к файловой системе и подпроцессам, политику одобрений, настройки и цикл агента.

Проект построен на Cordis и его модели «всё является плагином». В документации архитектуры для этого тега плагины добавляют в общий контекст сервисы, типизированные события и обратимые эффекты. Адаптер модели, реестр инструментов, журнал сессии и цикл агента — всё это заменяемые части. Затем профиль собирает bundles и patch-файлы в определённом порядке.

Это различие имеет практический смысл. Можно сменить провайдера или добавить возможность через профиль и его патчи, а не форкать весь runtime. Но это не означает, что каждый компонент можно безопасно заменить во время любой задачи или что сбой плагина изолирован от всех данных, к которым имеет доступ процесс. Уведомление о безопасности для этого тега говорит, что сгенерированные моделью команды и сторонние плагины могут обращаться к доступным им файлам, процессам, сети и учётным данным.

Почему важен журнал сессии

dsh записывает долговечные события сессии в append-only журнал. Документы архитектуры называют журнал сессии источником, из которого выводится история модели, и утверждают, что видимый модели ввод должен быть восстанавливаем из него. Официальная страница DeepSeek также описывает replay, resume, search и fork как операции над тем же потоком событий.

Это даёт разработчику не расплывчатую функцию «памяти», а запись того, что было показано модели и какие события инструментов были зафиксированы. Тем не менее это не гарантирует детерминированный результат. На следующий запуск могут влиять модель, ответ провайдера, среда инструментов, набор плагинов и внешние системы. Считайте журнал средством аудита и отладки, затем проверяйте нужное вам поведение.

Изменения формата сессии также влияют на планирование обновления. В заметках о релизе v0.1.5-rc.1 описана миграция на формат сессии V3. Поддерживаемые старые журналы переносятся в новую версию с сохранением оригинала, однако заметки говорят, что обновлённую сессию нельзя прочитать пониженной версией. Иными словами, откат исполняемого файла не равен откату данных сессии. Скопируйте home Harness и протестируйте миграцию на одноразовых сессиях до обновления ценного рабочего пространства.

Четыре пользовательских режима

Официальная страница Harness DeepSeek называет четыре режима. Они описывают, как агент представлен пользователю:

Режим Что говорит официальное описание Полезный вопрос для оценки
Standard Полный coding-агент с редактированием файлов, Shell, получением файлов и Web, Skills, планами, целями, субагентами и workflows. Способны ли политика одобрения и инструментов сдержать задачи, которые вы намерены запускать?
PTC Возможности Standard, предоставленные через Code Mode SDK, чтобы модель могла собрать несколько операций инструментов в TypeScript-программе. Улучшает ли пакетирование операций ваш workflow, не усложняя ревью?
Minimal Официальный обзор продукта описывает persistent bash и str_replace_editor. Может ли небольшая явная поверхность инструментов выполнить задачу для benchmark?
Creator Режим для изучения runtime, экспериментов с плагинами Cordis в памяти и создания пользовательских presets агента. Можно ли прототипировать preset, не считая его production-политикой?

Старую метку «Code Mode» легко неверно понять. Официальное описание продукта называет этот режим PTC и поясняет, что он использует Code Mode SDK. Это не отдельный широко документированный runtime-профиль с именем code.

Обзор продукта и поставляемые профили rc.2 используют «Minimal» на разных уровнях. В справочнике поведения CLI rc.2 web preset minimal собирает только persistent shell платформы; остальные плагины, видимые модели, отсутствуют. Поэтому str_replace_editor требует явного включения в этом Web-профиле. Заметки к rc.1 указывают тот же default для Web minimal и Python sdk-minimal. Существующая ниже заметка Python guide относится к отдельному дереву sdk-minimal и его opt-in редактору. Не выводите наличие редактора только из обзора четырёх режимов.

Режимы и CLI-профили — разные слои

У командной строки своя модель профилей. CLI-справочник @deepseek-ai/dsh для rc.2 говорит, что dsh — поддерживаемый launcher Node-приложения, и перечисляет поставляемые профили:

Запуск CLI Роль
dsh web Web UI; псевдоним dsh --profile web.
dsh --profile headless "job" Одна новая сохранённая сессия, печатающая итоговый ответ и завершающаяся.
dsh --profile sdk JSON-RPC-сервер для SDK-клиентов через stdio.
dsh --profile sdk-minimal SDK-сервер с автономным деревом minimal-агента.
dsh --profile acp Клиенты автоматизации через ACP stdio.

Профили — это упорядоченные слои plugin-bundle. Web-профиль может использовать live patch reload; headless, SDK, SDK-minimal и ACP применяют слои при старте, поскольку замена зависимостей после того, как одноразовое или stdio-приложение владеет работой, сделала бы его lifecycle недействительным. Следовательно, имя профиля говорит, как dsh запускает и собирает runtime. Оно не сопоставляется один к одному с четырьмя продуктовыми режимами.

Руководство Python SDK rc.2 делает это различие ещё важнее. Его пример sdk-minimal использует автономное дерево с persistent shell, без runtime context или compaction и с несжатыми JSONL-журналами сессий. str_replace_editor в этом профиле opt-in. Руководство также описывает профиль как danger-full-access для видимых путей, поэтому требует изолированного workspace или контейнера. Более короткий список инструментов не является автоматически более сильной границей безопасности.

Что изменилось в последних записях релизов

На проверенной странице релиза кандидат — v0.1.5-rc.2, помеченный тегом dsh-v0.1.5-rc.2 и статусом Pre-release. GitHub показывает его выпуск 10 сентября в 15:09. Заметки rc.2 содержат улучшения UI для отправки feedback и карточек доставленных файлов.

Предыдущий кандидат v0.1.5-rc.1, выпущенный 10 сентября в 03:09, содержит более крупный набор изменений. В его заметках указаны новая запись адаптера модели DeepSeek, произвольная загрузка файлов, управляемые продолжаемые субагенты, динамические обновления system prompt, когда модель заявляет поддержку, улучшения обнаружения моделей, обработка proxy environment, формат сессии V3, блокировка сессии, изменения default-инструментов и множество исправлений, включая продолжение streaming tool-call и поведение Web reconnect.

Эти заметки говорят, что изменилось. Они не дают процент uptime, частоту сбоев, среднее время восстановления или результат production-надежности. Длинный список исправлений — повод прочитать заметки и выполнить регрессионные задачи, а не статистика стабильности. Также отделяйте в документации теста три вещи: выбранные релиз и тег GitHub, commit master, который вы могли изучить, и версию, фактически установленную в вашей среде.

Безопасная воспроизводимая первая оценка

Используйте один закреплённый source path для оценки. Приведённые ниже команды следуют README rc.2 и справочнику CLI rc.2. Это документированные точки входа, а не команды, запущенные для этой статьи.

Создайте checkout, одноразовый workspace и новый Harness home до первого запуска. Пример использует синтаксис POSIX shell и предполагает, что Git, Node.js и pnpm уже доступны, как требует README rc.2; он не предписывает непроверенные версии runtime:

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
git checkout dsh-v0.1.5-rc.2
pnpm install
pnpm run build
export DSH_HOME="$(mktemp -d)"
EVAL_WORKSPACE="$(mktemp -d)"
printf '%s\n' 'Disposable dsh evaluation workspace.' > "$EVAL_WORKSPACE/README.md"
printf 'DSH_HOME=%s\nEVAL_WORKSPACE=%s\n' "$DSH_HOME" "$EVAL_WORKSPACE"

Сохраните два напечатанных абсолютных пути в заметках запуска. Используйте показанный путь EVAL_WORKSPACE в file chooser Web UI и вставьте показанный путь DSH_HOME во второй shell, а не ожидайте наследования переменной. Храните DSH_HOME только для этой оценки. Там rc.2 создаёт profile files, settings, credential references и sessions. Временный workspace отделён от source checkout. Не кладите туда учётные данные и уберите чувствительные файлы из всего, что процесс может видеть, до старта. Если задаче нужна OS-level изоляция, поместите checkout, home и workspace в одноразовую VM или контейнер; workspace picker и approval prompt dsh не дают этой OS-границы.

Запустите Web UI из source root, используя source entry point на всём пути:

pnpm dsh web --no-open

README rc.2 документирует http://127.0.0.1:3080 как локальный адрес по умолчанию. В браузере откройте Choose workspace и выберите точный путь, напечатанный выше. Не оставляйте source checkout рабочим пространством задачи только потому, что он был invoking directory. Затем откройте Settings → Models, настройте модель и выполните безвредную задачу, не затрагивающую секреты или production-файлы.

В ходе первого испытания надо понимать и вторую границу. В rc.2 новые сессии в base-backed профилях по умолчанию используют workspace-write: изменения Bash и файловой системы ограничены workspace сессии и platform temporary roots, тогда как чтение и сетевой доступ этим preset не ограничены. Включённые public HTTP fetches выполняются без per-call approval prompt. Сохранённые General permission settings применяются к последующим Web-сессиям, не к уже открытой. После изменения проверьте настройку в новой сессии. Это детали политики dsh, а не OS-изоляция; держите чувствительные ресурсы вне досягаемости до запуска.

До запуска другого профиля или сравнения patch изучите ту же композицию с тем же source checkout и home:

pnpm dsh --profile web --dump-config

Web-процесс занимает первый terminal. Остановите сервис и активную сессию перед копированием home или изучением финального состояния; если вместо этого откроете другой shell, явно export сохранённый путь $DSH_HOME и вернитесь к source checkout перед запуском команды. Справочник CLI rc.2 говорит, что команда инициализирует отсутствующие profile files, печатает собранное дерево и не загружает Web app. Запишите тег, source checkout, профиль, patch files, model identifier, $EVAL_WORKSPACE, $DSH_HOME и результат задачи. CLI/help и заметки релиза описывают поведение; это не доказательство успешности локальной команды.

Тщательно настройте модель или gateway

Страница Models Web UI поддерживает встроенных и custom providers. Руководство провайдера rc.2 требует для custom provider ID, base URL, API protocol, credential и хотя бы одну модель. Поддерживаемые имена протоколов: openai-completions, openai-responses и anthropic-messages. Model discovery — только удобство: если endpoint не показывает поддерживаемую форму listing, введите model ID вручную.

Даже OpenAI-compatible gateway может отклонить запрос, если его request shape отличается от отправляемого dsh. Руководство провайдера отдельно отмечает совместимость system-prompt role и поля output-token и говорит, что декларации image или reasoning описывают endpoint, а не тестируют его. Считайте успешное сохранение ключа прогрессом настройки, а не доказательством работы реальной задачи.

Если вы оцениваете Tokenhot как маршрут провайдера, его сохранённый Quick Start документирует https://api.tokenhot.ai/v1 и Bearer Token/API key authentication для API-настройки. В Web UI используйте Settings → Models → Add a custom provider, введите этот документированный base URL, выберите протокол, который действительно предоставляет выбранный маршрут Tokenhot, и добавьте проверенный model ID. Настройки провайдера относятся к $DSH_HOME/settings.yaml этой оценки; Web UI хранит credential в $DSH_HOME/.credentials.yaml, а в settings — только его ссылку. Вводите ключ через UI или документированный environment mechanism, никогда не в одноразовый workspace и не в source control.

Используйте openai-completions только если выбранный маршрут Tokenhot документирует или подтверждает этот протокол. Проверяйте model ID и request shape со своим аккаунтом и нагрузкой. Доступные для этой статьи материалы Tokenhot не подтверждают текущую доступность моделей, цены, задержку, uptime или успешный запрос dsh, поэтому пример ничего подобного не обещает.

Проверки обновления и отката

Перед переходом от одного кандидата к другому остановите Web-процесс и активную сессию, затем скопируйте точный использованный выше $DSH_HOME и одноразовый workspace, держа копии рядом с записью версии. Этот home содержит профиль, настройки, ссылки на учётные данные и сессии, которые делают сравнение воспроизводимым. Прочтите notes релиза об изменениях формата сессии, default tools, provider adapters и plugin APIs. Запустите одну и ту же небольшую задачу в старой и новой средах, затем сравните:

  1. Могут ли Web UI или headless-профиль стартовать с нужными workspace и моделью?
  2. Показываются ли одобрения инструментов там, где их ожидает ваша политика?
  3. Можно ли возобновить задачу, и содержит ли журнал нужные для изучения видимые модели вводы и результаты инструментов?
  4. Загружаются ли ваши плагины и патчи без ошибок конфигурации?
  5. Можно ли восстановить скопированный home и продолжить использовать старые файлы сессии, если новый запуск не удастся?

Не перезаписывайте единственную копию сессии при тестировании миграции. Если новый релиз пишет более новый формат, сохраните оригинал рядом и проверьте downgrade на копии. Если новый source checkout неудачен, восстановите скопированные $DSH_HOME и workspace вместе; откат только исполняемого файла может оставить данные сессии в формате, который старая версия не читает. Продвигайте версию в ценную среду только после успешных проверок на собственных файлах, провайдерах, инструментах и политике одобрений.

Часто задаваемые вопросы

DeepSeek Harness — официальное ПО?

Проект опубликован в организации deepseek-ai/deepseek-harness, на него ссылается официальная страница DeepSeek Harness, а лицензия — MIT. Репозиторий и официальная страница — подходящие источники для текущего поведения и статуса релиза.

dsh — это LLM?

Нет. Это runtime вокруг модели: провайдеры, инструменты, сессии, циклы агента, политики и профили приложения. Всё равно нужны совместимый endpoint модели и credential.

Какой запуск использовать для CI?

Начните с документированного профиля headless для одноразовой команды. Дайте ему одноразовый workspace и явный Harness home, закрепите версию и протестируйте точные провайдер и задачу, которые собираетесь автоматизировать. Headless execution — точка входа, а не гарантия детерминированного или безопасного для production поведения.

Доказывает ли список исправлений релиза стабильность?

Нет. Notes релиза описывают изменённое поведение и исправления. Они не измеряют надёжность по популяции или нагрузке. Используйте их для выбора регрессионных случаев, затем собирайте собственные результаты.

Можно ли направить dsh через Tokenhot?

Возможно, если выбранный endpoint Tokenhot предоставляет один из поддерживаемых dsh протоколов, а model ID и request shape совместимы. Документированная API-настройка Tokenhot даёт base URL и шаблон Bearer Token; реальный результат совместимости требует запроса с credential и находится вне этого руководства.

С чего начать?

Прочтите README репозитория rc.2, выберите изолированный workspace и запустите Web UI или headless-профиль на безвредной задаче. Если для эксперимента с провайдером нужны документированные API-поля Tokenhot, следуйте Quick Start и проверьте модель и протокол до вывода.

Краткое содержание

dsh остаётся developer preview: различайте режимы и профили, фиксируйте версию, изолируйте доступные ресурсы и проверяйте безопасность и совместимость на собственной нагрузке.

Похожие статьи

Похожие модели

WhatsApp