← К техническим практикам

AIAgent

DeepSeek Harness (dsh): 10 полезных плагинов, сцены AI Coding, сборки и стоимость

около 14 мин

Руки на клавиатуре серебристого MacBook

Проверено 18 сентября 2026 по официальному репозиторию DeepSeek Harness, Plugin Config Catalog, документации по упаковке и установке плагинов и странице цен API DeepSeek.

В каталоге конфигурации десятки пакетов @deepseek-ai/dsh-*. Первый порыв — включить всё, тогда Agent будто лучше пишет код. Обычно выходит наоборот. Имена инструментов забивают окно, процессы MCP крутятся голыми вне песочницы, журнал сессии раздувается, счёт приходит раньше, чем качество патча.

Сразу вывод. Слоган DeepSeek Harness (dsh) — Everything is a Plugin. Когда вы пишете код, покупаете не «число пакетов», а шесть умений: прочитать репозиторий, править файлы, прогнать тесты, подгрузить инструкцию по требованию, повторить сессию, измерить токены. Десять пакетов ниже закрывают эти шесть точек. Остальное — интерфейс, демо или сменный бэкенд. Их добавляют, когда сцена уже есть, не заранее.

В августе мы разбирали швы в разборе плагинов и процессов Agent Framework. В сентябре — практику Harness / Skill / Sandbox. Те тексты отвечают, зачем слой исполнения режут. Этот — про будни: dsh уже выбран для кода, какие пакеты класть в профиль, как их складывать и сколько примерно стоит месяц.

Не ставьте весь каталог: плагины — это сборка

Официально адаптер модели, реестр инструментов, журнал сессии и цикл Agent — сменные пакеты. Cordis складывает их в Profile. Точка установки — dsh plugin --profile web add <пакет>: команда уходит в pnpm каталога профиля и поднимает в стек только пакеты с dsh.bundle. Дальше перекрывают более поздний bundle, свой cordis.patch.yml профиля, патчи домашнего каталога и флаг --patch.

Для тех, кто пишет код, из этого следуют три правила.

  • Загружен — не значит показан модели. MCP-клиент вешает внешние инструменты как mcp__server__tool, например mcp__github__create_issue. В документации прямо: каждый MCP-сервер — доверенный исполняемый код вне песочницы. По умолчанию не открыт ни один.
  • Порядок слоёв решает, кто победит. Менять модель, песочницу или выключить один инструмент лучше патчем, а не копией ядра. dsh --profile web --dump-config печатает дерево, которое машина реально поднимает, — это точнее каталога в документации.
  • Репозиторий всё ещё developer preview. Ломающие изменения возможны. Как проверяемый слой исполнения — да. Как платформа с сертификатом продакшена — нет.

Значит, эти десять пакетов — не «самый полный магазин». Это минимальный набор, который в AI Coding встречается достаточно часто. Если цикл инструментов срывается, имена полей другие, картина отказа почти та же. Сначала остановить цикл, потом уже говорить о новых плагинах.

Десять плагинов, которые реально помогают в AI Coding

У каждого пакета только одно: какой класс срыва он держит. Имена — как в каталоге. Пары закрывают один шов: определение, провайдер или потребитель. Поставить половину — оставить шов открытым.

1. dsh-tool-fs + dsh-tool-fs-search: сначала увидеть репозиторий

Модель «рефакторит», ещё не прочитав каталог. Открыть файл и искать по символу или тексту — условие любой правки. Без этой пары точечная замена уверенно правит не тот путь.

2. dsh-tool-str-replace-editor: менять блок, не переписывать файл целиком

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

3. dsh-tool-bash + dsh-bash-sandbox: тесты должны бежать и уметь закрываться

Красные тесты, линтер, логи сборки в итоге уходят в оболочку. Официальный Process Sandbox закрывает только файловые эффекты дочернего процесса на том же хосте: read-only запрещает запись, workspace-write пускает писать лишь в рабочую область сессии, danger-full-access обходит изоляцию. Попросили клетку, а бэкенда нет — обязан упасть SANDBOX_UNAVAILABLE, голый проход запрещён. Сетевая изоляция в этот словарь не входит. Не ждите, что read-only обрежет исходящий трафик.

4. dsh-tool-lsp + dsh-lsp-stdio: рот компилятора — в цикл

«Типы вроде сходятся» и диагностика language server — разные вещи. stdio LSP делает переход к определению, диагностики и поиск символов инструментами. Имеет смысл на TypeScript, Go, Rust. Скриптовый репозиторий или чисто документную задачу можно оставить без этой пары и не тратить раунд имён инструментов.

5. dsh-tool-skill + dsh-skill-filesystem: инструкция появляется по требованию

Стиль, чеклист релиза, вход в тесты пишут как Skill. Модель обычно видит каталог и вызывает skill({ name }), когда работа началась. В корне проекта .dsh/skills старше .agents/skills. Skill — не система прав: чем яснее регламент, тем опаснее без песочницы. Подробности — в сентябрьской практике; здесь важно одно: в коде эта пара заменяет стопку «обязательно соблюдай» в системном промпте.

6. dsh-mcp-client: подключить GitHub и такие же внешние инструменты

Один экземпляр — один MCP-сервер. Через stdio можно подтянуть @modelcontextprotocol/server-github; модель видит ограниченные имена вроде mcp__github__create_issue. Это для комментариев к PR, списка issue и checks. Это не повседневный ящик для каждой правки. Секреты — в переменные окружения. Процесс живёт вне песочницы. Ещё один сервер — ещё одна поверхность доверия.

7. dsh-plan-mode: сначала план, потом рабочая область

Сквозной рефактор, публичный API, скрипты миграций — модель не должна писать, пока думает. Plan mode делает «перечислить шаги и дождаться взгляда» поведением плагина, а не просьбой в промпте. Один упавший тест можно чинить без него. Как только задеты три каталога или больше — открывать первым.

8. dsh-tool-todo: многошаговую задачу прибить в сессии

«Починить flaky, дописать регресс, обновить README», оставленное памяти чата, часто теряет последний шаг. Todo делает список объектом, который сессия умеет обновлять. Он не подменяет Skill (как делать) и не подменяет Plan (делать ли и в каком порядке).

9. dsh-compaction-tool-result-pruner + dsh-token-meter: сначала резать результаты, потом менять модель

Счёт за AI Coding редко умирает на первом круге. Он умирает на десятом, потому что полные логи тестов, весь diff и целая страница HTML всё ещё в окне. Pruner выбрасывает выводы инструментов, на которые уже никто не ссылается. Счётчик токенов показывает, сколько съел каждый круг. Без измерения не понять: дорогая модель или плагины закормили окно.

10. dsh-session-persistence-sqlite: сессию можно повторить, а не только держать в RAM

Рестарт процесса, смена вкладки, разбор другим человеком: следующий круг должен собраться с диска. JSONL тоже пишет; SQLite удобнее спрашивать по сессии и потом понять, почему сдвинулась именно эта строка. Без этого слоя у девяти плагинов сверху остаются только скриншоты.

Стек плагинов AI Coding: чтение и правка, изолированный запуск, план и список, MCP и учёт
Сначала чтение, правка и изоляция. План, MCP и учёт приходят со сценой. Стоимость сидит в токенах и контексте, не в числе плагинов.

Четыре сцены кода и какой набор открывать

Одни и те же десять пакетов не обязаны быть открыты в каждой задаче. Выбирать по работе дешевле, чем по тому, «как солиднее выглядит».

Сцена A: починить красный тест. Минимум — fs / search, str-replace, bash+sandbox. Прочитать лог падения, сузить правку, прогнать тот же тест. Skill стоит грузить, только если в репозитории есть жёсткое «сначала вот эта команда». Plan и MCP здесь шум.

Сцена B: рефактор через границы файлов. К A добавляют plan-mode, todo, LSP. Модель пишет, какие символы сдвинутся и какие тесты должны остаться зелёными, — и только потом дают писать. Без плана публичное имя часто меняется наполовину, а вызывающие держат старое.

Сцена C: ревью или патч напротив GitHub. MCP-клиент, ровно один сервер. Им тянут diff PR, checks и комментарии. Файлы по-прежнему идут через editor + sandbox. Создать issue, смержить, удалить ветку не кладут в тот же список по умолчанию, что повседневный редактор.

Сцена D: длинная сессия, много кругов исследования. Compaction и token-meter, сессия в SQLite. Модель прочитала двадцать файлов, а выводы инструментов не режут — каждый следующий круг снова платит за уже протухшие логи. Более сильная модель раздутое окно не лечит.

Три сборки: повседневная, командная, экономная

Сцены удобно свернуть в три копируемых Profile. Так меньше шансов каждый раз руками гнуть cordis.yml.

СборкаПо умолчанию открытоПока не открыватьКому
Повседневный кодfs / search, editor, bash+sandbox, skillMCP, дочерние агенты, полный веб-поискОдин человек, баги, небольшие функции
Командаповседневная + plan + todo + SQLite + один GitHub MCPвторой MCP, danger-full-accessНужен повтор и работа напротив PR
Экономияповседневная + token-meter + обрезка результатов + FlashPro по умолчанию, длинные логи без обрезкиДесятки циклов каждый день

Веб-поиск и дочерние агенты не запрещены. По умолчанию они дорогие и широкие по отказу. В официальном каталоге есть dsh-web-search-deepseek, dsh-tool-web и несколько реализаций subagent. Документацию посмотреть или вынести исследование только на чтение — открывать патчем, не писать в повседневный bundle.

При установке держать порядок слоёв: сначала @deepseek-ai/dsh-base, затем dsh plugin --profile <имя> add для ваших пакетов, в конце патч профиля прячет инструменты, которые модели видеть не надо. Исходный плагин с GitHub со скриптом prepare pnpm 10 остановит; следовать официальной подсказке и разрешить точечно, а не выдавать глобальные опасные права.

Стоимость деплоя: токены, машина, налог

У самих плагинов почти нет лицензии. Платите токены модели, машину, которая не засыпает, и каждый внешний процесс вне песочницы.

Токены — главный счёт. Официальная карта сентября 2026 считает за миллион токенов: deepseek-flash (V4.1-Flash) попадание в кэш около 0,003 / 0,006 доллара, промах 0,15 / 0,30, выход 0,60 / 1,20 (тихие часы / пик); deepseek-v4-pro промах 0,66 / 1,32, выход 1,98 / 3,96. Пик — понедельник–пятница UTC 01:00–04:00 и 06:00–10:00: в Москве это примерно 04:00–07:00 и 09:00–13:00, в Пекине два рабочих блока. Тихие часы — половина цены. Прогон «прочитать 8 файлов + два лога тестов + небольшой патч» легко съедает десятки тысяч входных токенов. Без обрезки десятый круг снова платит за логи первых девяти.

Грубая повседневная оценка: 30 циклов в день, в среднем 20 000 входа (промах кэша) плюс 1 000 выхода. На Flash в тихие часы около 0,11 доллара в день, примерно 3 доллара в месяц. Та же частота с Pro по умолчанию и полными выводами тестов в окне легко уходит в несколько десятков долларов. Экономить в таком порядке: сначала резать результаты инструментов и попадать в кэш, потом решать, нужен ли Pro на эту задачу — не наоборот.

Машина — второй счёт. npx @deepseek-ai/dsh web по умолчанию открывает интерфейс только на 127.0.0.1:3080. Днём писать, вечером гасить — нормально. Если сессии SQLite, каталоги Skill и политика песочницы должны быть доступны 24/7, нужен узел, который не спит. Крышка ноутбука, домашний NAT, который плывёт: удалённый коллега ту же сессию не увидит. Облачный Mac mini не делает Harness умнее API. Он снимает превью с машины, которая отдаёт сборки. Seatbelt, юниксовый инструментарий и фиксированный cwd предсказуемее, чем Windows-ноутбук, который уходит в сон.

Налог на плагины — третий счёт. Ещё один MCP-сервер — ещё один процесс вне песочницы и набор секретов. LSP держит language server тёплым. Веб-выгрузка заливает в контекст целую HTML-страницу. Этого нет на карте DeepSeek, но дешёвое преимущество Flash оно съедает. У повседневной четвёрки налог почти ноль. Командная сборка с одним GitHub MCP обычно всё ещё окупается. Поиск, дочерние агенты и второй MCP, открытые по умолчанию, уводят стоимость из токенов в эксплуатацию.

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

Когда плагин добавлять, а когда нет

Ваш случайДелатьПочему
Одна функция, один тестПовседневная четвёркаPlan, MCP и LSP — лишние имена инструментов
Публичный API или больше трёх каталоговДобавить plan + todo + LSPСначала согласовать шаги, потом писать
Работа по комментариям или checks PRРовно один GitHub MCPВнешний инструмент — поверхность доверия, не складывать
Десятки кругов, счёт дёргаетсяmeter + обрезка + FlashСначала увидеть, чем забито окно, потом менять модель
Skill и Sandbox ещё путаютсяПлагины не расширятьЧем полнее регламент, тем опаснее голая запись

Против самодельного while и пары инструментов dsh покупает уже разрезанные швы порядка слоёв, сессии и изоляции. Цена — поломки превью и привычка не вычищать каталог до дна. Эти десять пакетов окупаются, если в этом году вы правда смените бэкенд модели, песочницу или разнесёте один каталог Skill по нескольким репозиториям. Просто проверить, умеет ли модель болтать, полный стек не нужен.

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

Частые вопросы

Надо ли ставить все десять плагинов сразу?

Нет. Сначала fs / search, editor, bash+sandbox и skill. Plan, LSP, MCP, обрезку и SQLite добавляют по сцене. Остальные пакеты каталога чаще сменные бэкенды или интерфейс, а не обязательный набор для кода.

Безопасен ли плагин MCP?

Официально каждый MCP-сервер — доверенный код вне песочницы, по умолчанию не включён ни один. Открывайте только тот, который нужен, секреты в переменных окружения, не в одном списке по умолчанию с повседневным редактором.

Почему не писать код на модели Pro по умолчанию?

Деньги уходят в многокруговые результаты инструментов, а не в то, что «модель недостаточно умная». Официально выход Flash в тихие часы около 0,60 доллара за миллион токенов, Pro около 1,98. Сначала резать логи и попадать в кэш, потом решать, нужен ли Pro на эту задачу.

Можно ли ставить это как прод-платформу для кода?

Как образец слоя исполнения для проверки и изоляции — да. Как уже сертифицированную платформу — нет. Официальный репозиторий всё ещё developer preview. Развести превью и машину, которая отдаёт сборки, полезнее спора «можно ли в прод».

Одноразовый узел dsh на облачном Mac mini

Стек AI Coding хочет фиксированный cwd, постоянные сессии SQLite и Seatbelt на macOS. Гонять превью-dsh и GitHub MCP на единственной машине выдачи сборок — сложить цикл, регламенты и внешние процессы на клиентскую работу. Единая память M4 Mac mini держит стабильную ветку сборки и ограничиваемый, откатываемый ящик Harness рядом. Около 4 Вт в простое, нативный Unix и SSH прибивают каталог Skill и песочницу к машине, которая не засыпает.

Если повседневный узел кода и релизную сборку надо развести, облачный Mac mini M4 от Kvmkit может добавить изолированную машину по запросу—смотреть тарифы, чтобы сборка плагинов и опыты с токенами имели место, не нагружая машину, которая отдаёт сборки.

Нужен узел, который крутит только dsh?

Держите превью-стек отдельно от машины, которая отдаёт сборки. Тарифы — на страницах цен и помощи.