SSD Nodes Learn Hosting plans →
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-10-11

Лучшие плагины для DeepSeek Harness: список и настройка

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

Какие плагины DeepSeek Harness стоит установить

Плагины DeepSeek Harness — это сторонний код, который выполняется внутри вашего агента с его привилегиями на оплачиваемой вами машине. В списке сообщества представлено более двадцати категорий и свыше тысячи записей. На арендованном виртуальном выделенном сервере (VPS) вам нужны пять: dsh-budget для ограничения расходов, dsh-permission-rules для контроля доступа к инструментам, dsh-defend для сканирования на предмет инъекций и утечек секретов, dsh-memory для хранения фактов, существующих дольше одной сессии, и dsh-web-lan-access — только после того, как вы определитесь со способом аутентификации.

Harness — это dsh, агентская среда с открытым исходным кодом от DeepSeek, архитектура которой полностью построена на плагинах. В её собственном README она названа предварительной версией для разработчиков и содержит предупреждение THERE WILL BE COMPATIBILITY-BREAKING CHANGES. Этот факт определяет каждый выбор, описанный ниже. Фиксируйте версии устанавливаемых плагинов, будьте готовы к тому, что обновление может нарушить их работу, и поддерживайте минимальный набор, который вы сможете полностью изучить. Если среда ещё не запущена, начните с установки DeepSeek Harness на VPS и вернитесь сюда. Если принципы работы компонентов, к которым подключаются эти плагины — цикл агента, его инструменты, память — всё ещё неясны, сначала изучите основы, так как каждое решение ниже будет проще оценить, когда вы поймёте назначение каждого уровня.

Как dsh устанавливает плагин и где размещается конфигурация

dsh собирается из плагинов Cordis, поэтому запущенный экземпляр представляет собой дерево плагинов, а не единую программу. Плагины встраиваются именно в это дерево, а не в модель DeepSeek, к которой оно обращается; если граница между ними пока размыта, посмотрите, чем dsh отличается от самой модели и её API. Профиль — это именованная композиция таких плагинов. Используются два шаблона: web и headless. $DSH_HOME по умолчанию имеет значение ~/.dsh, а профиль располагается в $DSH_HOME/profiles/<name>/, содержа в себе собственный package.json, манифест dsh.profile и cordis.patch.yml.

dsh plugin --profile web list
dsh plugin --profile web add dsh-budget
dsh plugin --profile web remove dsh-budget

Поддерживаются четыре формы источника: простое имя пакета npm, имя с областью видимости, например @towzai/dsh-memory, ссылка на GitHub, например github:PerryLink/dsh-budget#main, и локальный путь с использованием link: или ./. Рекомендуется использовать форму GitHub, так как вы можете заменить #main на хеш коммита и получить тот же код спустя месяц.

dsh plugin --profile web add "github:PerryLink/dsh-budget#461d478"

Слои применяются в фиксированном порядке: каждый пакет в порядке, указанном в профиле, затем cordis.patch.yml профиля, затем cordis.patch.yml на уровне домашнего каталога и, наконец, любой оверлей --patch. Порядок важен, так как последующий слой может перенастроить или отменить то, что было задано предыдущим. Поэтому, если плагин выглядит установленным, но не работает, откройте cordis.patch.yml профиля и проверьте две вещи: наличие блока вставки и отсутствие последующих слоев, которые его отключают.

По состоянию на 17 августа 2026 года пакет npm @deepseek-ai/dsh имел версию 0.1.0-rc.7, в то время как плагины ниже были собраны для ветки 0.1.0-rc. dsh-permission-rules и dsh-defend заявляют о совместимости с 0.1.0-rc.5 по 0.1.0-rc.6, dsh-budget заявляет только 0.1.0-rc.6, dsh-memory устанавливает только диапазоны peer-зависимостей, начинающиеся с ^0.1.0-rc.6, а dsh-web-lan-access вообще не объявляет версию dsh. На 10 октября 2026 года тег latest в npm соответствует 0.2.0-rc.2, поэтому разрыв сейчас больше, чем был на момент выбора этих версий. Такой разрыв — обычное явление для этой экосистемы, и это стандартная причина, по которой плагин перестает загружаться: инструментарий развивается быстрее, чем окружающие его плагины. Обновляйте инструментарий целенаправленно, а затем тестируйте плагины по одному.

Изучите плагин, прежде чем доверять ему

Плагин dsh не изолирован от основной среды (harness). Он загружается в то же дерево Cordis, в тот же процесс, от имени того же пользователя операционной системы, имея доступ к тем же учетным данным модели и той же рабочей директории. Установка плагина ближе к запуску чужого скрипта с помощью sudo, чем к добавлению расширения для браузера. Это тот же вопрос доверия, который поднимают плагины Claude Code, и ответ на него аналогичен: изучите код или не устанавливайте его.

Четыре аспекта, которые необходимо проверить в указанном порядке:

  • Точки расширения, которые использует плагин. tools/pre-execute означает, что он видит каждый вызов инструмента и может его заблокировать. agent/pre-step означает, что он видит ваши сообщения. webServer.tapIndex означает, что он переписывает страницу, передаваемую в ваш браузер. Плагин, не использующий ни одну из этих точек, имеет крайне ограниченные возможности; плагин, использующий их все, является вашей границей безопасности.
  • Взаимодействие с сетью. Выполните поиск в исходном коде по fetch, http и любым жестко закодированным именам хостов. Счетчик затрат, который отправляет данные на внешний сервер, передает ваши шаблоны использования сторонним лицам.
  • Чтение учетных данных. Любой код, обращающийся к credentials.* или ключу провайдера, должен иметь обоснование в файле README.
  • Лицензия и дата последнего коммита. Плагин без лицензии, который не обновлялся месяцами в экосистеме, меняющейся еженедельно, представляет собой угрозу безопасности.

Устанавливайте плагин по конкретному коммиту, а не по ветке, и изучите блок конфигурации, который установщик добавил в cordis.patch.yml. Этот блок содержит идентификатор плагина и зарегистрированную им конфигурацию — это краткое и честное описание того, что вы только что добавили. Ограничивайте доступ плагина к ключам провайдеров там, где это позволяет среда, следуя принципам защиты секретов от AI-агентов.

dsh-budget: как ограничить расходы агента в ночное время?

Агент на VPS работает без присмотра. В этом заключается смысл его размещения на сервере, но в этом же кроется и риск. dsh-budget отслеживает токены и расчетную стоимость для каждой модели, сессии и дня, а также применяет лимиты к этим суммам.

dsh plugin --profile web add "github:PerryLink/dsh-budget#461d478"

Значения по умолчанию довольно высокие: 10 USD за сессию, 50 в день и 500 в месяц. Они подходят для финансируемой команды. Для личного сервера они слишком велики, поэтому бесконечный цикл успеет завершиться до срабатывания лимита. Уменьшите их в первый же день.

Графикdsh-budget default caps and a lower starting point for one small VPS (USD)
Данные, на которых построен график
[
  {
    "label": "Per session",
    "plugin_default_usd": 10,
    "suggested_start_usd": 2
  },
  {
    "label": "Per day",
    "plugin_default_usd": 50,
    "suggested_start_usd": 5
  },
  {
    "label": "Per month",
    "plugin_default_usd": 500,
    "suggested_start_usd": 40
  }
]

Предлагаемый столбец — это отправная точка для одного оператора на одной машине, а не фиксированный стандарт. Увеличивайте значения, когда реальный месяц использования покажет необходимость. Месячный лимит в 40 USD с лимитом сессии в 2 позволяет быстро выявить проблему, что и требуется, пока вы изучаете аппетиты инструмента.

- id: budget
  config:
    budgets:
      session: 2
      daily: 5
      monthly: 40
    warnRatio: 0.8
    overLimit: block

Настройка, определяющая поведение машины, — overLimit. По умолчанию установлено alert: система выводит предупреждение, но продолжает расходовать средства, поэтому изначально плагин работает как информационная панель. Установите значение block, и система будет отклонять дальнейшие вызовы моделей при достижении лимита. Это значит, что ночная задача остановится, а не будет расходовать бюджет до утра. degrade — третий режим: он блокирует вызов и предлагает использовать более дешевую модель из карты degradation. Это удобно, если задачу нужно завершить, но не обязательно использовать самую мощную модель. warnRatio по умолчанию имеет значение 0.8, поэтому вы получите уведомление при достижении 80 процентов от лимита.

Существует два важных ограничения. Стоимость вычисляется на основе встроенной таблицы цен, объединенной с вашими данными, при этом разработчик предупреждает, что встроенные цены могут меняться. prices по умолчанию пуст. В зафиксированном коммите 461d478, defaultPrice (резервное значение для модели, отсутствующей в обеих таблицах) составляет 1.0 USD за миллион входных токенов и 3.0 за миллион выходных. В текущей версии main, проверенной 10 октября 2026 года, значение по умолчанию равно нулю, и модель отображается как не имеющая цены. Внесите реальные цифры для ваших моделей, иначе панель управления будет лишь приблизительной оценкой. Во-вторых, в 461d478 плагин агрегирует данные в запущенном процессе из потока событий сессии, поэтому суммы сбрасываются при перезапуске системы. Цикл сбоев или супервизор, перезапускающий dsh, сбрасывает дневной лимит. Текущая версия main по умолчанию сохраняет дневные и месячные показатели (persistence.enabled: true, снимки делаются каждые 10 секунд) и восстанавливает их при запуске. Таким образом, перезапуск больше не сбрасывает дневной или месячный лимит, если система предоставляет домен хранения; без него агрегация остается локальной для процесса. main также ориентирован на строку системы 0.2, поэтому изменение фиксации означает и изменение системы. В любом случае, рассматривайте dsh-budget как защитный механизм от ваших собственных задач, а лимит расходов на стороне провайдера — как основной потолок. Это более подробно обсуждается в контроле расходов на AI-агентов на VPS.

Для повседневной работы используйте /budget для общего обзора, /budget models для детализации по моделям и /budget unblock <scope>, чтобы снять блокировку, если вы решили продолжить работу.

Правила разрешений dsh: какие вызовы инструментов никогда не должны выполняться?

dsh-permission-rules применяет декларативные правила к каскаду tools/pre-execute, поэтому правило оценивается до запуска инструмента. Существует три действия. allow пропускает вызов, deny блокирует его и возвращает причину, которую может прочитать модель, а ask направляет его в официальный узел утверждения.

dsh plugin --profile web add "github:PerryLink/dsh-permission-rules#b30b4fb"

Правила находятся в .dsh/rules.yaml относительно рабочей директории сессии, с глобальным fallbackPath и опциональным searchUp для перемещения вверх к корню файловой системы. Сопоставление охватывает шаблоны имен инструментов, шаблоны ключей и значений параметров, шаблоны путей относительно рабочей области, селекторы агентов, такие как main или subagent, а также сетевые цели.

rules:
  - match: { tools: [bash], params: { command: "rm -rf*" } }
    action: deny
    reason: "No recursive deletes"
  - match: { tools: [edit, write], paths: ["**/.env*", "**/secrets/**"] }
    action: ask
    reason: "Secret files need confirmation"
  - match: { tools: ["mcp__*"] }
    action: ask
    reason: "MCP tools need confirmation"

При оценке побеждает первое совпадение, поэтому широкий allow в начале списка незаметно отменяет все более узкие правила под ним. Сначала записывайте запреты, а в конце — разрешающие правила. Шаблон имени инструмента охватывает mcp__*, что позволяет ограничивать инструменты, полученные с сервера Model Context Protocol (MCP), а не из самой среды исполнения, что важно, как только вы запускаете MCP-серверы на VPS.

Поведение, которое следует учитывать: ask требует отвечающего. В профиле headless за процессом может никто не наблюдать, а неотвеченный ask не ждет появления пользователя: если отвечающий не настроен, цепочка утверждений среды исполнения закрывается, и в вызове отказывается. Поэтому на unattended-сервере правило ask ведет себя как deny, который вы не писали намеренно. Используйте deny для всего, что вы никогда не одобрите, сохраняйте ask для профиля, за которым вы работаете, а если вы хотите, чтобы утверждения работали без присмотра, вам нужен реальный путь ответа, что является темой ограничение действий ИИ-агентов с помощью утверждений.

dsh-defend: как насчет prompt injection и утечек секретов?

dsh-defend выполняет сканирование в трех точках: входящие сообщения в agent/pre-step, аргументы инструментов в tools/pre-execute (включая защиту от деструктивного удаления) и результаты работы инструментов в tools/post-execute. Последний пункт наиболее важен, так как именно здесь содержимое, полученное с веб-страницы, проверяется перед тем, как модель начнет с ним работать.

dsh plugin --profile web add "github:PerryLink/dsh-defend#7ba3427"

Настройки по умолчанию скорее осторожные, чем строгие: detection.injectionAction, detection.jailbreakAction и detection.secretAction имеют значение ask, в то время как detection.secretBlockCritical имеет значение true, поэтому критический секрет блокируется независимо от других настроек. На сервере, работающем без присмотра, измените важные для вас действия на block, так как ask при отсутствии пользователя, у которого можно спросить, не является решением.

Архитектура аудита заслуживает внимания. События defend/detection фиксируют ID правила, семейство, категорию, уровень серьезности, принятое решение и факты сканирования, но никогда не сохраняют совпавший текст; секреты записываются только по их типу. Таким образом, включение журнала аудита не создает вторую копию учетных данных, которые вы пытаетесь защитить.

Четко понимайте, что именно вы получаете. Обнаружение основано на правилах, и в README прямо сказано, что новые формулировки и многошаговые атаки могут обойти защиту. Это снижает частоту очевидных атак. Это не делает агента безопасным при работе с недоверенным контентом, поэтому сохраняйте правила доступа на уровне ниже.

dsh-memory: что агент помнит на следующий день?

Существует два разных плагина с названием dsh-memory, о чем стоит знать перед вводом команды установки. Устанавливайте их, явно указывая источник, чтобы получить именно тот вариант, о котором вы читали.

Тот вариант, который я бы установил на небольшой сервер, — это сборка на базе SQLite. Она регистрируется как memory, хранит один файл по пути $DSH_HOME/memory/memory.db, общий для всех профилей, и предоставляет команды memory_write, memory_search и memory_forget. Поиск выполняется по ключевым словам в сохраненном тексте и тегах. Здесь нет сервиса эмбеддингов, нет API-ключа и нет дополнительных фоновых процессов.

dsh plugin --profile web add "github:ben7am1n/dsh-memory#def7c6a"

Конфигурация, которую вам предстоит настроить, невелика: path для файла базы данных, promptRecentCount (по умолчанию 10) для количества внедряемых незакрепленных воспоминаний и promptMaxChars (по умолчанию 2000) для бюджета отрисовки. Плагин опирается на node:sqlite, который в Node 22 и 24 все еще помечен как экспериментальный, поэтому обновление Node — это то, что нужно тестировать, а не принимать как должное.

Вот что на самом деле меняет этот плагин в работе машины: внедренные воспоминания добавляются в системный промпт при каждом обращении. promptMaxChars — это верхний предел для отрисованного раздела, а не фиксированный объем, но как только сохраненные воспоминания заполняют его, бюджет в 2000 символов превращается в несколько сотен дополнительных входных токенов на каждый запрос, постоянно. Это реальная статья расходов в вашем счете, и именно поэтому dsh-budget должен быть установлен на сервере раньше, чем dsh-memory. Держите promptMaxChars в строгих рамках и очищайте базу с помощью memory_forget, вместо того чтобы позволять файлу бесконтрольно расти.

Альтернативная сборка хранит воспоминания в YAML-файле и выполняет поиск по эмбеддингам с автоматическим внедрением в промпт; устанавливается через dsh plugin --profile web add github:towzai/dsh-memory. Для поиска по эмбеддингам требуется локальный экземпляр ollama и модель эмбеддингов, по умолчанию qwen3-embedding:0.6b, которую можно переопределить через DSH_MEMORY_EMBED_MODEL; без ollama поиск переключается на обычный поиск по ключевым словам. Семантическое извлечение работает лучше, чем поиск по ключевым словам. Однако это означает наличие второго сервиса и набора весов модели, постоянно занимающих место на том же сервере, что на тарифах с малым объемом ресурсов отнимает память у тех задач, ради которых вы арендовали сервер. Выбирайте этот вариант, если у вас есть свободная оперативная память. Общий компромисс между качеством извлечения данных и потреблением ресурсов описан в локальная память для агентов.

dsh-web-lan-access: должен ли веб-интерфейс слушать запросы вне loopback?

npx @deepseek-ai/dsh web предоставляет интерфейс на 127.0.0.1:3080. Браузеры предоставляют доступ к crypto.randomUUID() только в защищенном контексте, поэтому загрузка этой же страницы по обычному HTTP с другого компьютера завершается ошибкой. dsh-web-lan-access решает эту проблему, используя webServer.tapIndex для внедрения небольшого полифила, и переключает привязку сервера на 0.0.0.0.

Прочитайте предупреждение перед установкой. В коммите, упомянутом здесь, e27e909, в README было указано, что привязка к 0.0.0.0 делает агент доступным без аутентификации для любого пользователя в той же локальной сети (LAN), а на сервере с публичным IP-адресом — для всего интернета. При этом небольшой список чувствительных методов (settings.*, credentials.*, llm.discoverModels) был жестко привязан к loopback и возвращал 403 при запросах извне. Ситуация изменилась. Текущие сборки harness, проверенные 10 октября 2026 года, требуют аутентификации браузера: токен запуска в выведенном URL обменивается на подписанный сессионный cookie, который требуется для каждого маршрута Host API и потока. В текущем README плагина trustedHosts называется защитой Origin/Host, а не идентификацией; там сказано, что привязка к 0.0.0.0 открывает поверхность аутентификации на всех доступных интерфейсах и теперь включает настройки на базе Host для аутентифицированной удаленной страницы. Таким образом, в текущих сборках авторизованный удаленный браузер может получить доступ и к настройкам Host. Риск не исчез, а сместился: любой, кто может подключиться к порту, может протестировать вход, сам выведенный URL является учетными данными, а при использовании обычного HTTP этот токен передается по сети в открытом виде.

В большинстве случаев этот плагин вообще не нужен. Вместо этого используйте проброс порта через SSH.

ssh -N -L 3080:127.0.0.1:3080 you@your-server

Затем откройте http://127.0.0.1:3080 в локальном браузере. Harness продолжает слушать только loopback, поэтому ничего не выставляется наружу, а поскольку браузеры считают 127.0.0.1 защищенным источником, crypto.randomUUID() доступен и полифил не требуется. Одна команда, никаких плагинов, никакой новой поверхности атаки.

Устанавливайте плагин только тогда, когда проброс порта не подходит, например, если к интерфейсу должен обратиться телефон из той же сети. Если вы это делаете, привязывайте его к частному сетевому интерфейсу, настройте правило брандмауэра, разрешающее доступ только с этого интерфейса, и укажите имена, которые будете использовать, в trustedHosts в записи web-runtime. Для полноценного многопользовательского доступа существует dsh-passwords, который добавляет права подпользователей, почасовые токены и дневные квоты времени для каждого подпользователя, автоматические сертификаты TLS (transport layer security) через Let's Encrypt и зашифрованный журнал аудита. Оценивайте его как платформу, а не как плагин: он требует порты 80 и 443, поставляется с собственным установщиком, а документированный быстрый способ установки предполагает передачу shell-скрипта из сети напрямую в bash. Предпочитайте npm install -g dsh-passwords с последующим dsh-passwords install, чтобы код сохранялся на диске, где вы сможете прочитать его перед запуском.

Как корректно удалить плагин

Процесс удаления состоит из двух этапов, однако второй часто пропускают.

dsh plugin --profile web remove dsh-budget
dsh plugin --profile web list

list больше не должен отображать его. Затем откройте $DSH_HOME/profiles/web/cordis.patch.yml и удалите все оставшиеся блоки вставки, ссылающиеся на этот плагин, так как именно эта запись загружает его в дерево. Перезапустите harness, чтобы дерево было перестроено; уже загруженный плагин останется в памяти до тех пор, пока вы этого не сделаете. Наконец, помните, что данные существуют дольше, чем код. $DSH_HOME/memory/memory.db и .dsh/rules.yaml сохраняются после удаления. Удалите их вручную, если целью удаления была очистка данных.

Что я читал и когда

Каждая ссылка здесь указывает на конкретный коммит, а не на ветку, поскольку к моменту прочтения вами этого текста код в main изменится. Я изучил всё это 17 августа 2026 года, а сам инструментарий на тот момент находился в версии 0.1.0-rc.7 в npm. Я повторно проверил описанные выше значения по умолчанию и поведение по первоисточникам 10 октября 2026 года, когда тег latest в npm соответствовал 0.2.0-rc.2.

Точные коммиты, на которых основан этот список
  • Список сообщества плагинов на коммите f2918fb, 17 августа 2026 года. Ссылка приведена один раз намеренно. Это каталог, а каталог не является рекомендацией.
  • dsh-budget на коммите 461d478, 17 августа 2026 года. Лицензия Apache 2.0. Заявляет совместимость с dsh 0.1.0-rc.6, Node 22.19 или 24 и выше.
  • dsh-permission-rules на коммите b30b4fb, 17 августа 2026 года. Лицензия Apache 2.0. Заявляет совместимость с dsh 0.1.0-rc.5 по 0.1.0-rc.6.
  • dsh-defend на коммите 7ba3427, 17 августа 2026 года. Лицензия Apache 2.0. Заявляет совместимость с dsh 0.1.0-rc.5 по 0.1.0-rc.6.
  • dsh-memory на коммите def7c6a, 13 августа 2026 года. Лицензия MIT. Сборка SQLite. Поле совместимости с dsh отсутствует, указаны только диапазоны зависимостей от ^0.1.0-rc.6.
  • dsh-web-lan-access на коммите e27e909, 16 августа 2026 года. Лицензия MIT. Поле совместимости с dsh отсутствует.

Перепроверяйте эти фиксации версий перед тем, как копировать команду. В экосистеме, находящейся на стадии предварительного просмотра для разработчиков, номер версии с указанием даты — единственный показатель, имеющий смысл.

FAQ

Какие плагины DeepSeek Harness нужно установить на VPS в первую очередь?

Установите dsh-budget и dsh-permission-rules до всего остального. Бюджет с overLimit: block не даст автоматизированному процессу расходовать средства всю ночь, а файл .dsh/rules.yaml предотвратит вызов инструмента, который вы бы никогда не одобрили. Добавьте dsh-defend, как только агент начнет считывать данные из публичного интернета, и dsh-memory, когда заметите, что вставляете один и тот же контекст в каждую сессию. Пропустите темы оформления и статусные индикаторы: они добавляют код, который выполняется с привилегиями вашего агента, не меняя при этом функциональность системы.

Изолированы ли плагины dsh от самой среды harness?

Нет. Плагин загружается в то же дерево Cordis, что и harness, в том же процессе, от имени того же пользователя операционной системы, с теми же учетными данными модели и в той же рабочей директории. Плагин, использующий tools/pre-execute, видит и может блокировать любой вызов инструмента; плагин, использующий agent/pre-step, видит ваши сообщения. Поэтому читайте исходный код, проверяйте лицензию и дату последнего коммита, а также устанавливайте плагины по хешу коммита, а не по ветке, чтобы код не изменился без вашего ведома.

Остановит ли dsh-budget агента на самом деле или только выдаст предупреждение?

Это зависит от overLimit. По умолчанию используется alert, который выдает предупреждение при достижении warnRatio и продолжает расходовать средства. block запрещает дальнейшие вызовы модели после достижения лимита, а /budget unblock <scope> снимает его, когда вы решаете продолжить работу. degrade блокирует выполнение с рекомендацией использовать более дешевую модель из карты degradation. Важен один нюанс: на зафиксированном коммите 461d478 общие суммы суммируются в рамках запущенного процесса, поэтому перезапуск harness сбрасывает их, и цикл перезапусков позволит обойти суточный лимит. Текущие версии main по умолчанию сохраняют данные о расходах за день и месяц между перезапусками. В любом случае, установите лимит расходов в учетной записи провайдера в качестве основного ограничителя.

Как полностью удалить плагин dsh?

Выполните dsh plugin --profile web remove <package-name>, подтвердите действие через dsh plugin --profile web list, затем откройте $DSH_HOME/profiles/web/cordis.patch.yml и удалите оставшийся блок вставки для этого плагина, так как именно эта запись отвечает за его загрузку. Перезапустите harness, чтобы дерево плагинов было перестроено. Данные, записанные плагином, остаются на диске: $DSH_HOME/memory/memory.db и .dsh/rules.yaml сохраняются после удаления, пока вы не удалите их вручную.

Безопасно ли открывать веб-интерфейс dsh в сеть?

Сам по себе — нет. dsh web слушает 127.0.0.1:3080, а dsh-web-lan-access меняет этот привязку на 0.0.0.0. На момент указанного здесь коммита в README было сказано, что это делает агента доступным без аутентификации для любого пользователя в той же сети, при этом только settings.*, credentials.* и llm.discoverModels привязаны к loopback. В текущих сборках harness, проверенных 10 октября 2026 года, сессия браузера аутентифицируется с помощью токена запуска в URL и подписанного сессионного cookie, но интерфейс входа при этом доступен на всех сетевых интерфейсах, а обычный URL HTTP передает этот токен в открытом виде. Используйте SSH-проброс портов, ssh -N -L 3080:127.0.0.1:3080 you@your-server или поместите порт за частный сетевой интерфейс с правилом брандмауэра, а также обязательно используйте TLS для всего, что доступно извне.