Открытая агентная оболочка DeepSeek AI: ядро без встроенной логики, интерфейс и инструменты — плагинами. Разбираем запуск одной командой, архитектуру профилей, экосистему и то, почему в прод это пока не ставят.
DeepSeek Harness (dsh) — открытая агентная оболочка от DeepSeek AI, построенная по принципу «всё — плагин»: даже интерфейс подключается плагином. Запуск — одна команда npx @deepseek-ai/dsh web, после которой поднимается локальный Web UI на 127.0.0.1:3080. Ниже — что внутри, как поставить, какие есть подкоманды и почему проект пока нельзя считать продакшен-решением.
dsh в отдельное окружение и читайте SAFETY.md перед запуском.dsh — не «ещё один чат в терминале», а каркас (harness), в который агент собирается из независимых плагинов. Ядро отвечает только за загрузку и связывание компонентов; модель, инструменты, память, интерфейс и даже desktop-оболочка подключаются как плагины.
Формальная основа — библиотека Cordis и статья её авторов о «пространственно-временной композируемости» (arXiv 2608.25512): временная композируемость — способность полностью откатить побочные эффекты компонента при его удалении, пространственная — реактивное управление связями между компонентами.
@deepseek-ai/dshПрактическое следствие такой архитектуры: набор возможностей определяется не версией ядра, а профилем — упорядоченным стеком плагин-бандлов и ваших патчей поверх него. Это удобно для экспериментов и неудобно для тех, кто ждёт «поставил и забыл».
Профиль — это точка входа. Команда dsh --profile <name> загружает профиль из $DSH_HOME/profiles; шаблоны поставляются вместе с пакетом, а --from-default-profile пересоздаёт пользовательский профиль из свежего шаблона. Патчи накладываются поверх профиля повторами --patch <path>, а --dump-config печатает итоговое дерево конфигурации — так удобно искать, какой слой переопределил параметр.
dsh --profile web --dump-config # итоговое дерево профиля # пересоздать профиль из шаблона и запустить dsh rescue --from-default-profile web # наложить свой слой поверх профиля dsh tui --patch ./extra.yml
--dump-config и --dump-default-config снимают этот вопрос без чтения исходников.node -v
npx @deepseek-ai/dsh web
npx @deepseek-ai/dsh web --no-open
git clone https://github.com/deepseek-ai/deepseek-harness.git cd deepseek-harness pnpm install && pnpm run build pnpm dsh web
| Параметр | Значение | Комментарий |
|---|---|---|
| Пакет npm | @deepseek-ai/dsh | CLI: запуск профилей, плагины, инспекция конфигурации |
| Версия | 0.2.0-rc.2 (npm tag latest) | Альфа-ветка 0.2.1-alpha.3 в репозитории |
| Node.js | ^22.19.0 || >=24.0.0 | Из engines в package.json репозитория |
| Порт по умолчанию | 3080 | Web UI на 127.0.0.1 |
| Профили | $DSH_HOME/profiles | Пользовательские слои и патчи |
| Лицензия | MIT | Свободное использование и модификация |
127.0.0.1. Не выставляйте порт 3080 в интернет до того, как разберётесь с моделью доступа: агентная оболочка умеет запускать команды и читать файлы, то есть публичный доступ к её UI — это фактически удалённый доступ к машине.Список подкоманд собирается из официальной справки CLI. Одно и то же ядро запускается в разных режимах, а «приложение» каждый раз — отдельный плагин интерфейса.
| Команда | Что делает | Когда брать |
|---|---|---|
| dsh web | Web UI на 127.0.0.1:3080 | Основная работа: диалог, файлы, инструменты в браузере |
| dsh tui | Полноэкранный терминальный интерфейс | Работа на удалённом сервере без браузера |
| dsh headless | Одна задача — печать результата — выход | Скрипты, CI, автоматизация |
| dsh plugin | Управление плагинами профиля (pnpm-аргументы) | Установка и удаление расширений |
| dsh acp | Профиль под Agent Client Protocol | Подключение к IDE-клиенту по ACP |
| dsh sdk / sdk-minimal | Профили для программного запуска агента | Свои интеграции и бенчмарки |
dsh headless "run the tests" отвечает на одну задачу, печатает результат и завершает работу — удобно для CI и «разовых» прогонов в изолированном контейнере.Модель «всё — плагин» сработала как приглашение к форку: вокруг пакета выросла отдельная экосистема, включая альтернативные десктоп-оболочки и каталоги плагинов. Для контрибьюторов предусмотрен топик dsh-plugin, обсуждения ведутся в GitHub Discussions (раздел Issues в репозитории отключён), есть Discord-сообщество.
| Репозиторий | ★ | Форки | Что это |
|---|---|---|---|
| deepseek-ai/deepseek-harness | 249 632 | 30 005 | Ядро и CLI |
| anywhere-labs/dsh-desktop | 30 828 | 1 440 | Сторонний desktop-клиент для плагинной экосистемы |
| awesome-dsh-plugin | 18 769 | 4 155 | Курируемый каталог плагинов |
| Ebony-Vinyl/dsh-our-free-model | 16 068 | 309 | Плагин, подключающий внешние модели без своего ключа |
awesome-dsh-plugin = запуск чужого кода в вашем окружении. Ставьте расширения из исходников, которые можете прочитать, и держите оболочку в отдельной виртуалке или контейнере.Документ SAFETY.md в репозитории честнее большинства: проект прямо назван экспериментальным, не проходившим аудит безопасности, и не рекомендован для продакшена. Перечислю, что именно признают авторы.
| Ситуация | Разумный выбор | Почему |
|---|---|---|
| Нужен зрелый агент для ежедневной работы | Codex CLI или Claude Code | Стабильные релизы, документация и Predictable-поведение важнее гибкости ядра |
| Хочется собрать агента под свои процессы | dsh | Плагинная архитектура и патч-слои вместо форка чужого монолита |
| Нужен агент в CI или скрипте | dsh headless либо SDK-профиль | Одна задача, печать результата, без интерфейса |
| Продакшен с реальными данными | Пока не dsh | Developer preview, ломающие изменения, без аудита безопасности |
| Нужен агент в IDE по ACP | dsh acp или профильный агент IDE | Один протокол — разные клиенты |
Полезно помнить про сам критерий: harness — это про то, как агент собирается и управляется, а не про качество модели. Если задача — «сделать фичу сегодня», выигрывают зрелые агенты; если задача — «встроить агента в свой контур и менять его поведение без форка» — плагинная оболочка даёт заметно больше рычагов.
npx @deepseek-ai/dsh web и откройте 127.0.0.1:3080. На удалённой машине добавьте --no-open, если браузера нет. Сборка из исходников — pnpm install && pnpm run build && pnpm dsh web.