DeepSeek Harness: установка, возможности и первый запуск

Написано

в

DeepSeek Harness, или сокращённо dsh, — это открытая обвязка для AI-агентов от DeepSeek AI. Если модель отвечает на вопросы, то harness даёт ей руки: читает и правит файлы, запускает команды, держит сессии, показывает траекторию выполнения и позволяет расширять себя плагинами. Проект распространяется под лицензией MIT и находится в публичном preview.

Главная идея DeepSeek Harness сформулирована как «everything is a plugin» — буквально «всё является плагином». На этом построен весь продукт: адаптеры моделей, реестр инструментов, журнал сессий, интерфейс и даже сам агентный цикл. В основе лежит фреймворк Cordis, поэтому разработчик может не просто добавить новую команду, а заменить поведение агента целиком, не форкая ядро.

Работать с dsh можно несколькими способами: через локальный веб-интерфейс, через настольное приложение, из командной строки в режиме headless или из Python SDK. Ниже — установка, первый запуск и обзор возможностей.

Что понадобится

Для веб-интерфейса и CLI нужен Node.js. Требования у проекта строгие:

  • Node.js 22.19.0 или новее в линейке 22.x.
  • Node.js 24.0.0 или новее в линейке 24.x.
  • Node.js 23.x не поддерживается ни в одном патче: эта линейка не LTS и уже снята с поддержки.

Кроме Node.js понадобится API-ключ DeepSeek. Он создаётся в личном кабинете на platform.deepseek.com. Настольному приложению Node.js не нужен — там среда уже упакована.

Проверить версию можно командой:

node -v

Установка через npx

Самый быстрый способ познакомиться с проектом — вообще ничего не устанавливать глобально. Достаточно запустить:

npx @deepseek-ai/dsh web

Команда скачает пакет @deepseek-ai/dsh из npm, поднимет локальный веб-сервер и откроет интерфейс в браузере. По умолчанию он слушает адрес:

Если браузер открывать не нужно, например на удалённой машине, добавьте флаг —no-open:

npx @deepseek-ai/dsh web --no-open

При запуске через SSH dsh печатает адрес, но не пытается открыть браузер: локальным адресом владеет клиент SSH или редактор.

Глобальная установка

Если инструмент нужен постоянно, удобнее поставить его глобально. Пакет предоставляет бинарник dsh:

npm install -g @deepseek-ai/dsh
dsh web

После этого команда dsh доступна из любого каталога. Обновление выполняется обычным способом:

npm install -g @deepseek-ai/dsh@latest

Настольное приложение

Для тех, кто не хочет держать терминал и Node.js, DeepSeek выпускает настольные сборки. Они доступны на официальной странице загрузки:

  • macOS — Apple silicon, macOS 13 или новее, формат DMG.
  • Windows — 64-битная сборка, формат EXE.

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

Сборка из исходников

Если нужен полный контроль над кодом, свои патчи или разработка плагинов, проект собирается из репозитория. Понадобится pnpm, причём репозиторий фиксирует конкретную версию, поэтому сначала стоит включить Corepack:

corepack enable
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

Команда pnpm run build готовит артефакты пакетов и фронтенда, а pnpm dsh web запускает уже собранную версию без повторной сборки. Для разработки есть режим pnpm run dev:web: он собирает, запускает сервер и пересобирает клиентские бандлы при изменении исходников.

Первый запуск

После старта веб-интерфейса порядок действий такой.

Сначала откройте Settings → Models и введите API-ключ DeepSeek. Ключ сохраняется в файл $DSH_HOME/.credentials.yaml, а в настройках остаётся только ссылка на него. Страница настроек получает уже замаскированное описание секрета, поэтому прочитать ключ обратно из интерфейса нельзя. Изменения моделей применяются со следующего запроса, перезапускать сервер не нужно.

Затем выберите рабочую папку через Choose workspace. Пока workspace не выбран, поле ввода задачи остаётся недоступным. Это сделано намеренно: агент должен понимать, в каких границах ему разрешено читать и менять файлы.

После этого можно отправить первую задачу. Например:

Summarize this repository and identify its main packages.

Агент прочитает проект, составит план, вызовет нужные инструменты и покажет результат. Операции, которые требуют подтверждения по текущей политике доступа, dsh спросит перед выполнением.

Модели и провайдеры

DeepSeek подключается в один шаг: карточка провайдера в настройках содержит только поле для API-ключа. Дополнительно можно добавить сторонние сервисы. Встроенный каталог знает идентификаторы вроде anthropic, openai, moonshotai для Kimi и zai для GLM.

Для собственного шлюза, корпоративного прокси или локального сервера есть режим Custom model API. В нём задаются:

  • постоянный идентификатор провайдера;
  • отображаемое имя;
  • базовый адрес API;
  • протокол: OpenAI Chat Completions, OpenAI Responses или Anthropic Messages;
  • ключ и список моделей.

Протокол важен: один провайдер говорит на одном протоколе. Если шлюз поддерживает и OpenAI, и Anthropic, его придётся описать двумя провайдерами. Для моделей можно указать размер контекстного окна, максимальное число выходных токенов и поддерживаемые типы входных данных, включая изображения.

У моделей DeepSeek доступны уровни рассуждения off, low, high и max. Уровень выбирается в меню Effort рядом с моделью. Для рутины в репозитории достаточно быстрой модели, а для сложных архитектурных задач имеет смысл поднять усилие или взять модель старшего класса.

Плагины и Creator mode

Плагины — главная особенность DeepSeek Harness. Через них добавляются инструменты, навыки, элементы интерфейса и целые приложения. В интерфейсе есть менеджер плагинов с официальными и экспериментальными наборами: команды агентов, автоподтверждение, запланированные задачи, голосовой ввод, терминал, субагенты.

Отдельно стоит Creator mode. В этом режиме можно попросить агента написать плагин прямо в чате. Он загрузит навык разработки Cordis-плагинов, создаст структуру пакета, напишет код, установит плагин и проверит его состояние. На официальной странице проекта есть пример, где таким образом собирается плавающий Pomodoro-таймер.

Плагины можно ставить и из командной строки. Для веб-профиля команда выглядит так:

dsh plugin --profile web add some-dsh-plugin

Поддерживаются npm-пакеты, ссылки вида github:owner/repo, локальные каталоги и tgz-архивы. После установки полезно проверить, что слой плагина действительно попал в конфигурацию:

dsh --profile web --dump-config

Команда печатает собранное дерево плагинов без запуска сервера. Если нового слоя нет, пакет, скорее всего, не объявил манифест dsh.bundle и установился как обычная библиотека, а не как включаемый плагин.

В экспериментальных настройках есть Custom plugin markets. Это индексный JSON-файл со списком плагинов, их версий, иконок и источников. Включив набор, вы получаете вкладку Discover на странице плагинов и возможность подключать сторонние маркеты. Как и любой сторонний источник, такой маркет стоит добавлять только если вы доверяете его авторам.

Траектория и аудит

На каждую сессию dsh пишет append-only журнал событий — Trajectory. В нём сохраняются системный промпт, рассуждения, вызовы инструментов и их результаты, планирование субагентов и вставки контекста. На этом журнале построены возобновление сессий, форки, поиск и воспроизведение.

Практическая польза в том, что разговор перестаёт быть чёрным ящиком. В интерфейсе можно открыть траекторию и посмотреть, какие инструменты вызывались, сколько занял каждый шаг, какие файлы менялись и сколько токенов ушло на запрос. Если агент повёл себя странно, причина обычно видна именно здесь, а не в коротком ответе в чате.

Сессии лежат в ~/.dsh/sessions в виде JSONL-логов. Их можно читать, искать по ним и строить собственную аналитику. Это же делает возможным аккуратный подсчёт расхода и кэш-хитов, которые не видны в обычном счёте за API.

Фоновые задачи и расписания

DeepSeek Harness умеет работать не только в режиме «спросил — получил ответ». Задачи можно запускать в фоне и ставить на расписание. Например, попросить агента каждую пятницу в 17:00 собирать недельный отчёт из заметок проекта. В интерфейсе такие задачи видны отдельно: можно проверить статус, посмотреть историю и открыть детали выполнения.

Для автоматизации есть headless-профиль. Он запускает одну сессию, печатает финальный ответ и завершается:

dsh --profile headless "run the tests"

Этот режим удобен для CI, cron и скриптов, где не нужен веб-интерфейс. Кроме headless доступны профили sdk и acp: первый обслуживает SDK-клиенты по JSON-RPC, второй — клиенты автоматизации по ACP stdio.

Субагенты, MCP и навыки

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

Через MCP подключаются внешние инструменты и источники данных. В документации есть отдельный гид по memory MCP, а также интеграции вроде GitHub review sessions. Навыки (skills) описывают повторяемые процедуры, которые агент подгружает по мере необходимости, вместо того чтобы держать все инструкции в системном промпте постоянно.

Профили, бандлы и патчи

Конфигурация dsh собирается из трёх слоёв. Bundle — это набор конфигурационных строк и кода плагинов, то есть готовый кусок функциональности. Profile — именованная композиция бандлов, которая хранится в $DSH_HOME/profiles/<name>. Patch — YAML-файл, который меняет уже загруженные строки по идентификатору, отключает их или добавляет новые.

Порядок применения такой: сначала бандлы в порядке профиля, затем патч профиля, затем общий патч $DSH_HOME/cordis.patch.yml и в конце оверлеи, переданные через —patch. Это значит, что почти любую настройку можно переопределить, не трогая исходники бандла. Посмотреть итоговое дерево можно командой:

dsh --profile web --dump-config

Стандартный веб-профиль называется web, профиль без сервера — headless. Их файлы настроек живут в $DSH_HOME/profiles/web/cordis.patch.yml и $DSH_HOME/profiles/headless/cordis.patch.yml. Именно туда dsh записывает изменения, сделанные через интерфейс настроек.

Python SDK

Для Python-проектов есть официальный SDK. Он ставится в виртуальное окружение и приносит с собой нативный runtime, так что системный Node.js для обычной работы не нужен:

python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install deepseek-harness-sdk

Минимальный пример запуска выглядит так:

from pathlib import Path

from deepseek_harness import DeepSeekHarness

workspace = Path("C:/work/disposable-workspace").resolve()
dsh_home = Path("C:/work/example-dsh-home").resolve()

with DeepSeekHarness(
    provider="deepseek-official",
    model="deepseek-v4-flash",
    max_tokens=49_152,
    cwd=str(workspace),
    dsh_home=str(dsh_home),
    profile="sdk-minimal",
) as harness:
    result = harness.run(
        "Inspect the repository and fix the failing tests.",
        session_id="example-001",
    )

print(result.final_response)

SDK запускает bundled-процесс dsh с профилем sdk-minimal и переиспользует его до выхода из контекстного менеджера. Профиль minimal намеренно ограничен: в нём есть bash или pwsh, чтение изображений и рабочая директория, но нет веб-инструментов, субагентов и части файловых инструментов. Для одноразовых задач это плюс: меньше поверхности, которую нужно контролировать.

На что обратить внимание

DeepSeek Harness — это developer preview версии 0.1.0-rc.x. В README прямо предупреждают, что совместимость будет ломаться. Для экспериментов, личных проектов и автоматизации это нормально, но для процесса, который приносит деньги прямо сейчас, стоит взвесить риск и держать запасной вариант.

Второй момент — Node.js. Если у вас стоит 22.18 или 23.x, установка упадёт или поведёт себя непредсказуемо. Проверьте версию заранее: проект использует node:sqlite и встроенное стирание типов TypeScript, которым нужна свежая ветка.

Третий момент — песочница и права. По умолчанию агент работает в политике, близкой к workspace-write: он может менять файлы в выбранной папке, а потенциально опасные операции требуют подтверждения. Режим danger-full-access даёт больше свободы, но и риск становится выше. Перед экспериментами с реальным репозиторием полезно сделать коммит или бэкап.

Четвёртый момент — стоимость. Сам dsh бесплатный, но за инференс вы платите провайдеру по токенам. На длинных сессиях большое значение имеет кэширование префикса: dsh составляет запросы так, чтобы история и схемы инструментов как можно дольше оставались неизменными. Если счёт оказался больше ожидаемого, смотрите не только на цену за токен, но и на долю кэш-хитов в траектории.

Стоит ли пробовать

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

Если же нужен стабильный инструмент для ежедневной оплачиваемой работы, сейчас разумнее относиться к dsh как к второму агенту рядом с основным: попробовать на личном проекте, сравнить стоимость и качество на своих задачах и только потом переносить в рабочий процесс.

Ссылки

https://www.deepseek.com/harness/
https://www.deepseek.com/download/
https://github.com/deepseek-ai/deepseek-harness
https://deepseek-harness.github.io/deepseek-harness/en/guide/quickstart
https://deepseek-harness.github.io/deepseek-harness/en/guide/providers
https://deepseek-harness.github.io/deepseek-harness/en/guide/python-sdk
https://platform.deepseek.com/

Источники

https://github.com/deepseek-ai/deepseek-harness/blob/master/README.md
https://github.com/deepseek-ai/deepseek-harness/blob/master/apps/cli/README.md
https://deepseek-harness.github.io/deepseek-harness/en/guide/quickstart
https://deepseek-harness.github.io/deepseek-harness/en/guide/providers
https://deepseek-harness.github.io/deepseek-harness/en/guide/python-sdk
https://deepseek-harness.github.io/deepseek-harness/en/guide/plugin-market
https://dshdocs.com/getting-started/installation/
https://dshdocs.com/concepts/profiles-bundles-patches/
https://dshdocs.com/guides/dsh-vs-claude-code/

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

DemensDeum
Обзор конфиденциальности

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