DeepSeek Harness (dsh) — открытый агентный харнес (agent harness) от компании DeepSeek AI, представленный 13 августа 2026 года в статусе developer preview. Проект построен на радикальной идее, вынесенной в слоган: «Everything is a Plugin» — всё есть плагин. Модель, инструменты, навыки, сессии, песочницы, хранилища, сам цикл агента и даже пользовательский интерфейс реализованы как сменные плагины, которые можно смешивать, заменять и расширять без правки исходного кода. За первую неделю проект собрал около 180 тысяч звёзд на GitHub и стал главной темой обсуждения на Hacker News (745 очков, более 300 комментариев), а издание The Register назвало его пример того, как китайские ИИ-лаборатории переходят от конкуренции моделями к конкуренции инфраструктурой.
Формула проекта проста: Агент = Модель + Харнес. Модель отвечает за интеллект, а харнес — за способность действовать в реальной среде: понимать окружение, вызывать инструменты, управлять контекстом, соблюдать права доступа и не терять состояние между шагами. Разбираем архитектуру, возможности, установку и — главное — реальную практику использования.
Что такое агентный харнес и почему вокруг него идёт борьба
Харнес — это прослойка между большой языковой моделью и внешним миром: она управляет промптами, контекстным окном, оркестрацией инструментов, циклом агента (agent loop), состоянием сессии, обработкой ошибок, разрешениями и безопасностью. Типичные примеры: Claude Code у Anthropic, Codex у OpenAI, а также Aider, Cline, Goose, OpenCode, OpenHands и Pi.
Значение харнеса стремительно растёт по двум причинам. Во-первых, именно он формирует интерфейс, к которому привыкает разработчик, — а привычка сильнее цены подписки. Во-вторых, исследования показывают, что одна и та же модель в разных харнесах показывает разное качество и стоимость работы: сравните минималистичный системный промпт агента Pi (~200 токенов) с историческими ~10 000 токенов системного промпта Claude Code. Когда модели становятся взаимозаменяемыми, конкурентное преимущество смещается в обвязку — и DeepSeek решила закрепиться именно там.
Ключевые факты о проекте
| Параметр | Значение |
|---|---|
| Разработчик | DeepSeek AI |
| Репозиторий | github.com/deepseek-ai/deepseek-harness |
| Первый релиз | 13 августа 2026 (developer preview) |
| Лицензия | MIT |
| Стек | TypeScript / Node.js (+ Python SDK), монорепозиторий на pnpm |
| Ядро | Метафреймворк Cordis (~8 700 строк), поверх него ~226 пакетов и ~198 000 строк TypeScript |
| Установка |
npx @deepseek-ai/dsh web, сборка из исходников или pip install deepseek-harness-sdk
|
| Интерфейсы | Web UI (порт 3080), CLI-профили (web/headless/свои), ACP-сервер, JSON-RPC SDK |
| Сообщество |
GitHub Discussions, Discord, метка dsh-plugin для каталога плагинов
|
| Статус | Developer preview: возможны ломающие изменения совместимости |
Архитектура «всё есть плагин»: как устроен DSH
Ядро Cordis: сервисы, события и обратимые эффекты
В основе лежит Cordis — плагиновый метафреймворк, который DeepSeek встроила в проект и описала в отдельной научной работе «A Programming Paradigm for Spatiotemporal Composability» (~80 страниц). Идеи Cordis сводятся к пяти пунктам:
- Плагин — это сервис. Каждый плагин претендует на стабильный ключ в общем контексте:
ctx.tools,ctx.llm,ctx.sessions,ctx.fs,ctx.shellи т. д. Другие плагины находят сервис по ключу, а не импортом реализации. - Зависимости объявляются декларативно через
inject— порядок загрузки выводится из требований, а не задаётся жёсткой последовательностью запуска. - Общение — типизированные события с четырьмя режимами диспетчеризации: emit, waterfall (слушатель обязан вызвать
next()), parallel и serial. - Каждая регистрация — обратимый эффект. Всё проходит через
ctx.effect()илиctx.on(), и при выгрузке плагина система проигрывает инверсии изменений в обратном порядке — это «журнал отмены» (undo log) для живого процесса. - Привилегированного ядра нет. Даже цикл агента — обычный плагин: интерфейс
Agentзарегистрирован наctx.agents, а драйвер по умолчаниюctx.agentLoopможно заменить другой строкой конфигурации.
Именно последний пункт отличает подход DeepSeek от классических расширяемых систем. Авторы работы прямо противопоставляют её VS Code: из топ-100 расширений Marketplace 87 содержат исполняемый код и требуют перезапуска extension host для удаления. Для человека, ставящего расширение раз в неделю, это терпимо; но когда сами агенты монтируют новые способности посреди задачи, каждый перезапуск уничтожает состояние сессии, а сбойная самодоработка может отключить процесс, который должен был всё починить. Отсюда требование темпоральной composability (удаление компонента полностью обращает его эффекты) и пространственной composability (структурированное управление зависимостями в рантайме).
Профили и бандлы: композиция из конфигурации
Запущенный экземпляр DSH — это дерево плагинов, собираемое послойно. Профиль — именованная композиция в домашней папке Harness: список стэков бандлов плюс пользовательский файл cordis.patch.yml. Бандл — формат дистрибуции конфигурационных строк и кода. Из коробки поставляются шаблоны web (полноценный Web UI) и headless (одноразовый раннер без сервера); базовый слой dsh-base содержит адаптеры моделей, инструменты, персистентность, песочницы и политику одобрений. Посмотреть фактическое дерево своего запуска можно командой:
dsh --profile web --dump-config
Любую выведенную строку можно заменить собственным патчем — на этом механизме держится обещание «расширяем без правки исходников». Автор обзора-сравнения на dshplugin.online подтверждает: ему удалось заменить LLM-адаптер, не тронув ни одного файла в packages/.
Сессия как append-only журнал: «Model-visible means logged»
Второй столп архитектуры — журнал сессии. Всё, что видит модель, обязано быть записано в append-only лог событий: системные промпты, рассуждения, вызовы инструментов и их результаты, планирование субагентов, каждая инъекция контекста. Инвариант зафиксирован жирным шрифтом в документации: «Model-visible means logged» — то, что попадает в запрос к модели, должно реконструироваться из журнала, и рантайм-инвариант это проверяет. История для модели проецируется функцией deriveMessages(), а возобновление (resume), форк сессии, поиск, расшифровки и телеметрия — лишь производные представления одного событийного потока. В Trajectory-виде Web UI записи можно инспектировать по источнику.
Практическое следствие, которое отмечает и The Register: DSH отдаёт полные трассировки цепочек рассуждений (chain-of-thought) — в тот момент, когда крупные западные вендоры их суммируют или скрывают. Для тех, кто занимается исследованиями агентов, а не только продуктовой разработкой, это может стать решающим аргументом.
Швы возможностей (capability seams)
Сменные способности оформлены как «швы»: определение сервиса (интерфейс), провайдер (реализация) и потребитель (обычно инструмент для модели). Смысл конструкции в том, что одна замена провайдера меняет поведение всего продукта: например, файловая подсистема и запуск процессов разделяют общий мир исполнения — достаточно направить их на удалённую песочницу (например, E2B), и Bash, PTY и LSP переедут туда вместе, без единого форка провайдера.
Режимы работы и набор инструментов
Четыре режима рантайма
- Standard — полноценный кодинг-агент: редактирование файлов, shell, поиск по файлам и вебу, навыки, планирование, цели, субагенты и воркфлоу.
- Code Mode — все те же возможности, но инструменты доступны модели через Code Mode SDK: модель пишет одну TypeScript-программу, которая оркестрирует несколько вызовов инструментов сразу (инструмент
run_code). Это экономит токены и раунды обмена. - Minimal — двухинструментальный агент (персистентный bash + str_replace_editor). Режим создан специально для честного бенчмаркинга моделей в минимальной среде.
- Creator — режим для авторских пресетов: инспекция живого рантайма, эксперименты с плагинами в памяти и подсказки по созданию пресетов.
Модельные инструменты из коробки
| Группа | Инструменты | Назначение |
|---|---|---|
| Shell |
bash, pwsh, персистентные PTY-варианты, terminal_open/read/send/close/list/signal
|
Разовые команды и постоянные терминальные сессии; на Windows — PowerShell-диалект |
| Файлы |
read, write, edit, read_image, str_replace_editor, glob, grep
|
Правки и поиск; grep/glob используют упакованный ripgrep, установка в систему не нужна |
| Веб |
web_search, web_fetch
|
Поиск и загрузка страниц; провайдер выбирается за швом ctx.web
|
| Делегирование |
subagent, subagent_fork, send_message, interrupt_agent, list_agents, report
|
Фоновые и продолжаемые дочерние агенты, экспериментальные Agent Teams |
| Организация работы |
todo_write, exit_plan_mode, create_goal/update_goal/get_goal, schedule_create/delete/list
|
Списки задач, план-режим с ревью, внутрисеансовые цели и отложенные действия |
| Фоновые задачи |
job_list, job_output, job_kill
|
Единое управление фоновыми bash-командами, PTY-отправками и субагентами |
| Разработка |
lsp, skill, workflow, ralph, ask_user_question
|
Навигация по коду через Language Server, навыки, воркфлоу, вопросы к человеку |
| Самомодификация |
cordis_define/run/stop/undefine/inspect_*
|
Опциональный набор: агент пишет плагин, монтирует его в живой процесс и выгружает обратно — без перезапуска |
Отдельного упоминания заслуживает набор cordis_*: это «тезис, компилированный в код». Агент создаёт пакет, прогоняет синтаксическую проверку, запускает его в изолированной vm-песочнице, использует и выгружает — процесс не перезапускается. Авторы честно предупреждают: песочница изолирует глобалы, но не является границей безопасности, обращаться с набором следует как с доступом к bash. Динамические пакеты живут только в памяти процесса — превращение эксперимента в постоянный плагин остаётся человеческим рабочим процессом.
Установка и первый запуск
Быстрый старт через npm
Достаточно Node.js:
npx @deepseek-ai/dsh web
Команда поднимает Web UI на http://127.0.0.1:3080 и открывает браузер (флаг --no-open отключает автооткрытие; при запуске по SSH печатается только URL). Дальше три шага прямо в интерфейсе: открыть Settings → Models и ввести API-ключ DeepSeek с platform.deepseek.com, выбрать рабочую директорию (Choose workspace) и отправить первую задачу, например «Summarize this repository and identify its main packages».
Сборка из исходников
git clone https://github.com/deepseek-ai/deepseek-harness.git cd deepseek-harness pnpm install pnpm run build pnpm dsh web
CLI-режимы
dsh --profile headless "задача"— выполняет одну свежую сессию, печатает ответ и завершается; идеально для скриптов и CI.dsh --profile <имя>— загрузка собственного профиля из$DSH_HOME/profiles/<имя>.dsh plugin --profile <имя> ...— управление сторонними плагинами профиля через pnpm.- Диагностика композиции:
--dump-configи--dump-default-configпоказывают собранное дерево без запуска.
Python SDK
Для программной интеграции есть официальный SDK (Python 3.10+, Linux x64/arm64 или macOS 14+ на arm64; системный Node.js не требуется):
python -m pip install deepseek-harness-sdk
Минимальный пример:
from pathlib import Path
from deepseek_harness import DeepSeekHarness
with DeepSeekHarness(
provider="deepseek-official",
model="deepseek-v4-flash",
max_tokens=49_152,
cwd=str(workspace),
session_root=str(sessions),
cordis=str(config),
) as harness:
result = harness.run("Inspect the repository and fix the failing tests.",
session_id="example-001")
print(result.final_response)
Ключ передаётся переменной окружения DEEPSEEK_API_KEY; прокси OpenAI-совместимого вида подключается через DEEPSEEK_BASE_URL. Повторный вызов с тем же session_id продолжает разговор и сохраняет состояние постоянного bash (рабочую директорию, переменные, функции); сессии пишутся в JSONL-лог вместе со всеми собранными запросами и вызовами инструментов. Пресет из документации намеренно минимальный: только постоянный bash и редактор, без компакции контекста — и помечен как danger-full-access: запускать его стоит в одноразовом чекауте или контейнере.
Подключение других провайдеров
Помимо первичного DeepSeek, каталог поддерживает Anthropic, OpenAI, Bedrock, Vertex, Azure, Gemini и Codex, а также произвольные OpenAI-совместимые шлюзы («Add a custom provider»: ID, base URL, протокол, креденшел, модели). Ключи write-only: страница настроек получает только обезличенный дескриптор, секрет хранится в $DSH_HOME/.credentials.yaml. Практический нюанс, который часто всплывает при работе с корпоративными шлюзами: нестандартные эндпоинты могут отклонять запросы из-за формы — например, роль developer для reasoning-моделей или поле max_completion_tokens. Это лечится в settings.yaml переключателями совместимости маршрута:
llm-pi-ai:
providers:
my-gateway:
api: openai-completions
baseURL: https://gateway.example/v1
compat:
supportsDeveloperRole: false
maxTokensField: max_tokens
models:
- id: my-model
Безопасность: песочницы и разрешения
В отличие от многих минималистичных конкурентов, предлагающих «просто запустите в контейнере», DSH поставляет изоляцию уровня ОС в комплекте: backends bwrap (bubblewrap), Landlock (Linux), Seatbelt (macOS) и ACL Windows, а также группу плагинов одобрений: интерактивные подтверждения операций, permission-preset и инструмент ask_user_question для вопросов к человеку. Вызов инструмента проходит конвейер tools/pre-execute → tools/execute → tools/post-execute, где политики могут проверять и отклонять действия; отдельный guard-плагин следит за зацикливанием и дедлайнами выполнения.
Практика использования: что говорят разработчики
Проекту всего около недели, но объём отклика уже позволяет выделить устойчивые мнения — из треда Hacker News, освещения The Register, сравнительных обзоров (dshplugin.online) и первых сторонних проектов.
Где DSH хвалят
- Полная наблюдаемость. Возможность «Every Run is Traceable» — самая цитируемая функция: append-only лог с промптами, рассуждениями и вызовами инструментов, resume/fork/search/replay поверх одного потока событий. Исследователи агентов отмечают открытые CoT-трассировки как редкость на фоне скрытия reasoning у Anthropic и OpenAI.
- Горячая пересборка без рестарта. Разработчики, экспериментирующие с самоулучшающимися пайплайнами, отмечают, что плагины можно монтировать и выгружать на лету — там, где раньше приходилось периодически перезапускать Claude Code ради подхвата изменений.
- Замена всего из конфигурации. Подтверждено практикой: LLM-адаптер меняется патчем без правки исходников; агентный цикл — тоже просто строка в дереве конфигурации.
- Встроенные песочницы Landlock/Seatbelt/bwrap и система одобрений — заметно более серьёзная история безопасности, чем у минималистичных харнесов.
- Экономика. Часть пользователей уже встраивает связку dsh + дешёвые модели DeepSeek (например, v4-flash) в ежедневные agentic-воркфлоу как замену дорогим тарифам, отмечая неожиданно высокое качество пары «маленькая модель + хороший харнес».
- Научная база. Статью про Cordis называют «самым строгим текстом, опубликованным в этой области», полезным независимо от того, какой харнес вы выберете. Даже автор Pi Арон Ронахер сказал, что после выхода DSH впервые «вдохновился пересмотреть собственные решения».
За что критикуют
- Крутая кривая входа. До первого полезного плагина нужно освоить профили, бандлы, патч-слои, швы возможностей, четыре режима диспетчеризации событий и realm'ы изоляции. Реалистичная оценка из обзоров: первая расширка у конкурентов — за вечер, первый осмысленный плагин DSH — за выходные при знакомстве с DI-фреймворками.
- Developer preview — это всерьёз. README капсом предупреждает о ломающих изменениях; формат сессий имеет версию 0 без гарантий совместимости, бэкенды отвергают старые форматы на диске. Строить продукт на текущем формате сессий авторы обзоров не советуют.
- Экосистема ещё не созрела. Каталог плагинов — это пока GitHub-метка
dsh-plugin, а не реестр; зрелых сторонних пакетов на порядки меньше, чем у лидеров рынка. - Потребление ресурсов. В обсуждениях HN жалуются на память: простой сеанс может занимать ~500 МБ; Node.js-основа вызывает споры о производительности, хотя большинство операций упирается в сеть и инференс, а не CPU.
- Windows — второй сорт. PowerShell-инструменты существуют, но, например, эталонная composition для Python SDK требует POSIX-терминала и Windows-агентов не поддерживает.
- Спорность теории. Скептики замечают риск «dll hell» при версионировании зависимостей плагинов и напоминают, что идея живых плагинных систем стара как Eclipse/OSGi — новое здесь скорее формальное доказательство и применение к агентам, которые модифицируют систему чаще человека.
Складывающаяся экосистема
Несмотря на возраст, вокруг DSH уже появились сторонние проекты: каталоги плагинов dshplugin.app и dshplugin.online, настольная обёртка deepseek-harness-desktop, интеграция dsh-vscode, плагин LLM-as-a-Verifier для верификации результатов, оркестрационный инструментарий в духе n8n. Сообщество координируется через GitHub Discussions, Discord и метку dsh-plugin — именно так предлагается маркировать собственные плагины для обнаружения.
Как DSH соотносится с альтернативами
| Критерий | DeepSeek Harness | Claude Code / Codex | Pi |
|---|---|---|---|
| Философия | Нет привилегированного ядра; всё сменяемо из конфигурации | Продукт с фиксированным мнением и интегрированным воркфлоу | Маленькое ядро + ~20 хуков; «Primitives, not features» |
| Цикл агента |
Заменяемый плагин (ctx.agentLoop)
|
Неизменяемое ядро продукта | Ядро, не подлежащее замене |
| MCP | Есть, в виде плагина-клиента | Поддерживается | Осознанно отвергнут |
| Песочницы | Landlock, Seatbelt, bwrap, Windows ACL + approvals | Свои механизмы approvals | Нет; «запускайте в контейнере» |
| Трассировки reasoning | Полные, из append-only лога | Суммаризованные/скрытые | JSONL-лог сессий |
| Провайдеры моделей | DeepSeek, Anthropic, OpenAI, Bedrock, Vertex, Azure, Gemini, любые OpenAI-совместимые | Только свои модели | 15+ провайдеров, смена на лету |
| Зрелость | Developer preview, ломающие изменения | Production | Production |
Итоговый вывод сравнительных обзоров звучит трезво: если рабочий харнес нужен «ещё вчера», берите зрелый инструмент; если харнес — ваш продукт или предмет исследований, DSH стоит серьёзной оценки; а статью про Cordis стоит прочитать в любом случае. Ставка DeepSeek на самопишущихся агентов, изменяющих рантайм на частоте модели, пока не доказана — но инженерно проработана глубже всех.
Кому подойдёт DeepSeek Harness
- Инженерам команд агентов и платформенных команд, которым нужен встраиваемый рантайм с заменяемыми LLM-провайдерами, песочницами, ACP/JSON-RPC автоматизацией и headless-режимом для CI.
- Исследователям: полный доступ к трейсам, Minimal-режим для честных бенчмарков моделей, форк и реплей сессий как операции первого класса.
- Разработчикам плагинов, готовых к ломающим изменениям и желающих занять место в молодой экосистеме — сейчас удачное время для нишевых плагинов до появления реестра.
- Практикам экономного agentic-кодинга: связка dsh с недорогими моделями DeepSeek уже используется как повседневный рабочий инструмент вместо дорогих тарифных планов.
Тем, кому нужна простота «поставил и работаю» без погружения в DI-архитектуру, разумнее подождать стабилизации API либо остановиться на готовых продуктах класса Claude Code/OpenCode.
Частые вопросы
Что такое DeepSeek Harness простыми словами?
Это открытая обвязка для языковых моделей, превращающая их в полноценных ИИ-агентов: она даёт модели инструменты (терминал, файлы, поиск, веб), управляет контекстом, сохраняет ход работы в журнал и контролирует безопасность. Аналог Claude Code или Codex, но от DeepSeek и с полностью модульной архитектурой.
DeepSeek Harness бесплатный?
Да, код распространяется по лицензии MIT. Бесплатен именно харнес; за использование моделей через API DeepSeek или других провайдеров взимается стандартная оплата токенов.
Работает ли DSH только с моделями DeepSeek?
Нет. Помимо первичных эндпоинтов DeepSeek, поддерживаются Anthropic, OpenAI, Bedrock, Vertex, Azure, Gemini, Codex и любые OpenAI-совместимые шлюзы и локальные серверы — вплоть до тонкой настройки совместимости запросов (роль system prompt, поле лимита токенов, формат thinking).
Чем DSH отличается от Claude Code?
Claude Code — законченный продукт с фиксированным воркфлоу, привязанный к моделям Anthropic. DSH — конструктор: агентный цикл, модель, инструменты и UI заменяются конфигурацией, а каждая регистрация плагина обратима без перезапуска процесса.
Можно ли использовать DSH на Windows?
Частично. Есть PowerShell-инструменты и ACL-изоляция, однако часть эталонных конфигураций (например, Python SDK с постоянным PTY-bash) требует Linux или macOS. Наиболее предсказуемый путь для Windows сегодня — WSL или контейнер.
Насколько безопасно давать агенту выполнять команды?
DSH предоставляет изоляцию уровня ОС (Landlock/Seatbelt/bwrap/ACL) и систему одобрений операций, а динамические плагины исполняются в vm-песочнице. Но сами разработчики подчёркивают: песочница динамических пакетов — не граница безопасности. Запускайте агента в пределах одноразовых рабочих пространств и контейнеров, особенно в headless-режиме.
Что такое Cordis?
Это плагиновый метафреймворк, на котором построен DSH: плагины предоставляют сервисы и типизированные события общему контексту, а все регистрации являются обратимыми эффектами с автоматически применяемыми инверсиями при выгрузке. Концепция описана в статье DeepSeek «A Programming Paradigm for Spatiotemporal Composability».
DeepSeek Harness — самый концептуально амбициозный проект в категории агентных харнесов на сегодняшний день. Он не пытается выиграть удобством «из коробки»: его ставка в том, что будущие агенты будут сами расширять свою среду, и тогда динамическая, формально доказанная обратимость изменений станет не роскошью, а необходимостью. Пока это developer preview с ломающими изменениями, скромной экосистемой и крутой кривой входа — но уже с производственным качеством отдельных решений: append-only журналом сессий, песочницами уровня ОС, мультипровайдерностью и четырьмя режимами рантайма. Следить за проектом стоит каждому, кто строит продукты на агентах; пробовать — уже можно, начиная с одной команды npx @deepseek-ai/dsh web.
Источники и ссылки
- Официальный сайт: deepseek.com/harness
- Репозиторий: github.com/deepseek-ai/deepseek-harness (README, docs/architecture.md, docs/tool-catalog.md)
- Статья про Cordis: A Programming Paradigm for Spatiotemporal Composability
- The Register, 14.08.2026: DeepSeek's innovative harness treats everything as a plug-in
- Hacker News: DeepSeek Harness developer preview (745 очков, 310 комментариев)
- Сравнительный разбор DSH vs Pi: dshplugin.online
- Каталог плагинов сообщества: GitHub topic dsh-plugin