1. Главная
  2. Блог
  3. Разработка ИИ-агентов
  4. DeepSeek Harness (DSH): экспертный обзор агентного харнеса, где «всё есть плагин»

DeepSeek Harness (DSH): экспертный обзор агентного харнеса, где «всё есть плагин»

22 августа 2026
1

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.

Источники и ссылки