AI-разработка ·

DeepSeek Harness dsh: установка, Web, Headless и AI Coding

MacBook под потолочным светом на тёмном столе: сверху панель dsh workbench, снизу строки терминала

dsh уже умеет поднимать официальный рантайм Agent Coding от DeepSeek; в сентябре 2026 это всё ещё developer preview. Сначала откройте Web UI в изолированном каталоге или прогоните одну headless-задачу только на чтение — не отдавайте ему сразу весь проект на переписывание.

Репозиторий — deepseek-ai/deepseek-harness, CLI — dsh. Он собирает сессии, инструменты, права и рабочий стол в один рантайм. За 30 минут видно, встаёт ли он на вашей машине. Пробовать стоит; продакшен-агентом для кода его сейчас считать рано.

Что такое DeepSeek Harness dsh?

DeepSeek Harness — опенсорс-фреймворк рантайма агента от DeepSeek, лицензия MIT, командная строка dsh. На странице продукта: модель, инструменты, Skills, сессии, песочница, хранилище, цикл и UI — сменные плагины; снизу Cordis, слоган Everything is a plugin. (deepseek.com/harness)

Когда ищут «что такое DeepSeek Harness», нужно развести три вещи — а не ещё раз слушать протокол вызова функций.

API — двигатель, dsh — рантайм с рулём, ящиком инструментов и логикой езды. Свой while на chat/completions — другой путь; августовский гайд DeepSeek Harness по AI-агентам про свой цикл. Здесь принимаем только официальный стартер: как поставить, где открывается Web, когда первая задача на код считается пройденной.

Подход За что отвечает Кому подходит
DeepSeek API Модель, Tool Calling Кто сам пишет агента
dsh Рантайм, инструменты, сессии, права, UI Кто хочет сразу запустить официального агента
Свой цикл агента Своя архитектура цикла Кто хочет полностью контролировать устройство

На сайте перечислены несколько режимов. В первый раз хватит Web UI режима Standard: полноценный coding-агент, правки файлов, shell, поиск. Режим Code поверх этого даёт модели оркестрировать многошаговые вызовы инструментов на TypeScript — когда 3080 уже стабилен. Minimal почти только bash и редактор: удобно сравнивать модели, не как повседневная IDE. Creator — смотреть рантайм и пробовать плагины; первый час можно пропустить.

Что подготовить перед установкой dsh?

Нулевой путь из официального README — две фразы: поставить Node.js и выполнить npx @deepseek-ai/dsh web. В сообществах встречались Node ^22.19.0 или >=24.0.0; ориентир — тянет ли ваш локальный npx пакет @deepseek-ai/dsh. Системный Node не понижайте ради чужого поста.

Ключ CLI ищет так: окружение процесса → ~/.dsh/.credentials.yaml.env в текущем каталоге → ~/.dsh/.env. В первый раз один источник, не четыре копии, которые не сходятся:

zsh
export DEEPSEEK_API_KEY=sk-ваш-ключ
mkdir -p ~/.dsh
printf 'DEEPSEEK_API_KEY=sk-ваш-ключ\n' >> ~/.dsh/.env
chmod 600 ~/.dsh/.env

Официальный адаптер — deepseek-official, по умолчанию официальная маршрутизация моделей. Свой шлюз — второй шаг; сначала решите, нужен ли вообще OmniRoute на практике. В первый час Base URL не меняйте.

CLI считает workspace’ом каталог, из которого вы запускаете команду. Заведите пустой репозиторий или копию, например ~/work/dsh-first-run. SAFETY.md советует минимальные права и предпочитает одноразовую ВМ, контейнер или отдельную среду. Ключ и изолированный каталог не готовы — npx пока не запускайте: интерфейс без контроля хуже, чем неудачная установка.

Первый запуск
  • Отдельный workspace, не $HOME и не продакшен-репозиторий
  • Первая задача только на чтение; права по умолчанию, без danger-full-access
  • Ключ только в окружении или в ~/.dsh/.env; ~/.dsh/sessions/ оставьте, чтобы пересмотреть вызовы
По-прежнему developer preview
Может выполнять команды, менять файлы и загружать плагины. В первый раз — пустой репозиторий или отдельная машина. Официально: SAFETY.md.

Как установить DeepSeek Harness и открыть Web UI?

В первый раз клонировать не нужно. В изолированный каталог:

zsh
cd ~/work/dsh-first-run
npx @deepseek-ai/dsh web

Это вход установки из официального README. dsh web — псевдоним --profile web; при первом запуске ~/.dsh/profiles/web/ создаётся из шаблона. По умолчанию рабочий стол на http://127.0.0.1:3080; локально ещё открывается браузер по умолчанию. Через SSH печатается только URL хоста, локальный проброс делает SSH-клиент или редактор. На превью команды меняются; ориентир — README и справка CLI deepseek-ai/deepseek-harness на этот день.

Частые параметры
npx @deepseek-ai/dsh web --no-open
npx @deepseek-ai/dsh web --port 8080

По умолчанию слушает только loopback. Удалённый UI — через SSH local forward; в первый день не выставляйте интерфейс в LAN. В официальном руководстве workspace выбирают селектором каталога в Web UI, не флагом CLI. Когда 3080 открылся, убедитесь, что текущий каталог — изолированный репозиторий, и только потом шлите задачу.

Конфиг лежит в ~/.dsh/: домашний каталог пусть создаст сам; sessions/ — чтобы пересмотреть вызовы инструментов; в .env только ключ, права 600; profiles/web/ в первый день руками не патчьте.

Клонировать имеет смысл в трёх случаях: держаться конкретного коммита, менять плагин, или npx не тянет пакет и нужны артефакты сборки. Тогда git clone официального репозитория, pnpm install, pnpm run build, pnpm dsh web. pnpm dsh web берёт артефакты и не собирает заново. В дереве исходников следуйте AGENTS.md; демо-команды из README в продакшен-скрипты не копируйте.

Как пользоваться dsh Headless?

dsh run убрали. Разовые задачи — через headless: новая сессия, последний непустой текст ассистента в stdout, затем выход.

zsh
cd ~/work/dsh-first-run
npx @deepseek-ai/dsh --profile headless "Перечислите имена файлов в текущем каталоге и не изменяйте никакие файлы"

Это первая практика, которую стоит записать: код выхода, есть ли финальный ответ в stdout, появился ли в ~/.dsh/sessions/ журнал, который можно пересмотреть. Задача должна быть только на чтение. Официально есть ещё профили sdk / sdk-minimal / acp, чтобы другой процесс подключался по JSON-RPC или ACP — это вторая неделя, не параллелите в первый час.

Как делать AI Coding в DeepSeek Harness?

Если Web или headless уже «разговаривают», это ещё не значит «можно отдать репозиторий на перепись». По официальным возможностям Standard он умеет менять файлы, запускать shell, искать и поднимать субагентов; превью плюс модель, которая пишет команды, требуют первой задачи на код, которую вы сверите с git diff. Это не бенчмарк, а проверка: меняет ли dsh нужную функцию в выбранном вами каталоге.

Сделайте маленький репозиторий, где верное и неверное видно глазами: greet.ts нарочно возвращает hi Ada, тест ждёт Hello, Ada. Вам не нужно, чтобы модель «звучала убедительно».

zsh
mkdir -p ~/work/dsh-first-run && cd ~/work/dsh-first-run
git init
printf '%s\n' 'export function greet(name: string): string {' '  return "hi " + name' '}' > greet.ts
printf '%s\n' 'import { greet } from "./greet.ts"' 'if (greet("Ada") !== "Hello, Ada") {' '  throw new Error("unexpected greeting")' '}' > greet.test.ts
git add . && git commit -m "chore: isolated dsh first-run repo"
  1. Только чтение: Прочитайте greet.ts и greet.test.ts и объясните, почему тест падает. Не изменяйте никакие файлы. Успех: указывает на расхождение возврата и теста, git status чистый.
  2. Один файл: Измените только greet.ts, чтобы greet("Ada") возвращал Hello, Ada. Тест не трогайте и не делайте commit. Потом сами прогоните тест; без раннера посмотрите возврат функции и сделайте git diff. Успех: diff только в greet.ts, возврат совпал с тестом.
  3. Если тест снова падает, верните вывод и дайте править тот же файл. Перед commit смотрите diff сами. Если задача на код провалилась, откройте ~/.dsh/sessions/ или Trajectory на сайте: не тот инструмент, невалидные аргументы, вы отклонили approval, или workspace — вовсе не этот каталог.

В первый раз — инструменты Standard / native. Когда однофайловая задача стабильна, можно смотреть DSH_TOOLS_MODE=code или both, чтобы модель оркестрировала несколько шагов на TypeScript. В официальной справке процессный запасной вариант DSH_PERMISSION_MODE близок к workspace-write; danger-full-access почти не спрашивает разрешения — список первого запуска его исключает. Застряли на JSON-аргументах инструмента — сначала JSON Schema и AI Agent, потом уже меняйте модель. Слишком большая задача и чехарда правок: воркфлоу AI Coding — dsh отвечает только на вопрос, есть ли официальный рантайм.

Установка DeepSeek Harness прошла?

«Практика» в заголовке — не таблица результатов, а получасовой чеклист. Все пять строк должны сойтись, прежде чем говорить «dsh на этой машине работает». Чего-то нет — вернитесь к шагу, не расширяйте правки файлов.

Проверка Успех Если нет — сначала
Процесс npx @deepseek-ai/dsh web держится на переднем плане Проверить Node, кэш npx, порт
Интерфейс Открывается 127.0.0.1:3080 --no-open и зайти вручную; сверить --port
Ключ Нет сообщения об отсутствии credentials official provider Оставить одну рабочую DEEPSEEK_API_KEY
Задача только на чтение Headless печатает ответ и выходит, нового diff нет Сжать задачу
Траектория В ~/.dsh/sessions/ можно пересмотреть этот вызов Проверить DSH_HOME

Не хватает любой из пяти — не переходите к «автоматически править десятки файлов». Превью быстро ломает совместимость. Запишите команду, версию Node, версию пакета dsh и дату: на следующей неделе отличите сдвиг своей среды от breaking change сверху.

Частые ошибки dsh и что делать

npx падает или очень медленный. Первый запуск тянет @deepseek-ai/dsh. Сеть нестабильна — собирайте из исходников или сначала проверьте npm registry. Полупустой кэш — это не «уже установлено».

3080 не открывается. Добавьте --no-open и зайдите сами; порт занят, или вы передали --port, а открываете всё равно 3080.

Интерфейс есть, модель молчит. Чаще всего слой ключа. Окружение процесса важнее, ~/.dsh/.env только запасной. После правки перезапустите web-процесс; ключ на горячую не подхватывается.

Поправили не тот каталог. Смотрите текущий каталог при запуске и репозиторий, выбранный в Web UI. Самая частая ошибка — взять домашний каталог как workspace.

Всё ещё dsh run, или headless не выходит. В руководстве пользователя подкоманда снята; разовые задачи — --profile headless. Сожмите задачу до одной инструкции только на чтение, убедитесь, что процесс не ждёт approval, затем смотрите, на каком шаге застрял журнал сессии.

dsh — не оболочка Claude Code или Codex. Издатели — DeepSeek, Anthropic и OpenAI; у dsh свой рантайм плюс Web / headless, у остальных свои CLI. Каталоги конфигурации не общие: dsh живёт в ~/.dsh. Первая приёмка: 3080 или одна headless-задача; остальные стеки — своими официальными смоками. Ставить рядом можно; ключи, права и сессии общими не считайте. Сводить три потока в один вход — только когда шлюз реально нужен; в первый день доведите до работы сам dsh.

Как продакшен-рантайм сейчас не годится. README прямо пишет developer preview и ломающие изменения. SAFETY.md жёстче: без аудита; выполняет команды модели, грузит сторонние плагины, трогает сеть и файлы, которые вы ему отдали. Песочница и approval снижают риск, но это не единственный контроль. Сейчас подходит: приёмка установки в изолированном каталоге, AI Coding на уровне одной функции, опыты по логам сессий. Сейчас не подходит: высокие права на продакшен-репозитории, безнадзорная перепись монорепо, preview во внешнем SLA.

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

Что такое dsh?

dsh — командная строка опенсорс-фреймворка агента DeepSeek Harness. Она ведёт сессии, инструменты, права и веб-интерфейс, это не Chat API.

Как установить dsh?

Сначала Node.js, затем в изолированном каталоге npx @deepseek-ai/dsh web. Клонируйте и запускайте pnpm run build только если меняете плагин, держитесь коммита или сверяете артефакты сборки.

Нужен ли dsh API-ключ?

Да. Без ключа интерфейс откроется, задачи на код не пойдут. Положите DEEPSEEK_API_KEY в окружение процесса или запишите ~/.dsh/.env и chmod 600.

Есть ли у dsh веб-интерфейс?

Да. npx @deepseek-ai/dsh web по умолчанию открывает рабочий стол на http://127.0.0.1:3080. Чтобы не всплывал браузер — --no-open; если порт занят — --port.

Может ли dsh делать AI Coding?

Может менять файлы, запускать shell и искать, но в сентябре 2026 это всё ещё developer preview. В первый раз в изолированном репозитории: анализ только на чтение, одна функция, тесты, git diff — и только потом расширять.

Чем dsh отличается от Claude Code?

dsh — отдельный рантайм DeepSeek, конфиг в ~/.dsh. Ключи и сессии с Claude Code и Codex не общие. Ставить рядом можно; в первый день доведите до работы сам dsh.

Чтобы гонять dsh дольше, вынесите тестовую среду

dsh трогает workspace, API-ключ, сессию и выполнение команд. Закрыли крышку ноутбука — 3080 и headless-сессии останавливаются. Держать preview-агента в каталоге, который можно снять в снимок и у которого можно отозвать права, проще сбросить, чем постоянно занимать свой домашний каталог.

Когда локальные задачи только на чтение и diff одной функции уже прошли, и нужна отдельная macOS-среда, доступная круглосуточно, тогда смотрите облачный узел — это ближе к повторяемому эксперименту, чем сразу отдавать продакшен-репозиторий preview-софту. Смотреть тарифы облачных Mac mini ZekVPS

Ограниченное предложение