Проверено 11 сентября 2026 по официальному репозиторию DeepSeek Harness, справочнику Skills и документации Process Sandbox.
Замена DeepSeek на Claude или Gemini может сделать чат приятнее. На проде падение остаётся тем же: модель вызывает инструменты, правит файлы, гоняет скрипты — и никто не скажет, зачем случился этот шаг, можно ли его воспроизвести, куда она записала и безопасен ли повтор. В 2026 узкое место Agent — уже не «кто отвечает глаже», а кто доводит задачу до конца без мусора.
Сразу вывод. Модель выбирает следующее намерение. Harness владеет циклом, сессией и сборкой плагинов. Skill подгружает повторную инструкцию по требованию, а не запихивает все регламенты в системный промпт. Sandbox решает, какие файлы может трогать именно этот дочерний процесс, и падает закрыто, если изоляцию нельзя обеспечить. Уберите слой — демо пройдёт, проверка нет.
Если вы уже сравниваете маленькие модели для локального запуска, железо и управление — разные счета. Обзор Tiny LLM 2026 отвечает, что влезет в память. Этот текст — про контур вокруг любой выбранной модели. Тот же разрыв «намерение / исполнение» разобран в гайде Gemini Agent по вызову инструментов.
Три сбоя, которые не лечит более крупная модель
«Более сильная модель» как план Agent обычно ломается сразу в трёх местах. Смена поставщика это не чинит.
Первое — цикл без памяти, которой можно верить. Настоящая задача несколько раз листит каталог, читает, правит, гоняет тесты. Если история живёт только в массиве процесса, перезапуск или обновление UI стирает рабочую память. Тому, кто разбирает сбой, не видно того же журнала событий — остаются скриншоты чата.
Второе — перегруз инструкциями. Регламент релиза, стиль и тикеты кладут в системный промпт. Окно забивается, шаги пропускаются, ещё одно «обязательно соблюдай» только повышает шум. Модель должна чаще видеть каталог и подгружать одно тело, когда работа действительно началась.
Третье — побочные эффекты без клетки. Оболочка может писать вне репозитория, тронуть файл секретов, оставить на диске недоделанный патч. Промпт «так не делай» — не плоскость управления.
Большее окно контекста это не лечит. Оно лишь даёт плохому регламенту жить дольше. Цикл и граница файлов остаются у слоя исполнения.
За что отвечает Harness
DeepSeek Harness (dsh) называет себя открытым agent harness, а не очередной оболочкой чата. Публичная формула — Everything is a Plugin: адаптеры модели, системные промпты, реестр инструментов, журналы сессии, интерфейс Agent и цикл по умолчанию идут сменными пакетами и собираются через Cordis. Репозиторий всё ещё в developer preview. Ломающие изменения возможны. Это не мешает понять, чем должен владеть слой исполнения.
На практике Harness берёт на себя три вещи, которые модель не умеет.
- Кто крутит следующий шаг. Стандартный
agent-loop— одна реализация контрактаAgent. Плагины должны зависеть от интерфейса, а не приваривать бизнес к драйверу по умолчанию. Открытый цикл — для размытых целей. Согласования — во внешний детерминированный поток. - Сессия, которую можно собрать заново. Следующий запрос модели должен выводиться из Session Log, а не из временного массива в одной функции. Сырые чанки оставляют для повтора, интерфейса и разбора.
- Сборка, которую можно патчить. Profile, Bundle и Patch складываются в дерево времени выполнения. Менять поставщика модели, бэкенд песочницы или UI лучше патчем, а не копированием ядра.
dsh --profile web --dump-configпечатает дерево, которое машина реально поднимает.
Значит, Harness не делает модель умнее. Он отвечает, кто исполняет следующий шаг, где лежит история и какой шов можно заменить. Без этого слоя у Skill нет стабильной точки вставки, а у Sandbox — стабильного вызывающего.
Зачем нужен Skill
Официально Skill — необязательная инструкция, не событие сессии. Обычно модель видит каталог: отсортированные name и экранированные, обрезанные description (потолок по умолчанию 500). Тела, пути, источники и подсказки маршрутизации в промпт заранее не попадают. Когда работа стартует, модель вызывает skill({ name }). Каркас находит победивший skill относительно cwd сессии и возвращает канонический ответ.
Локальные skill — в kebab-case. Допустим каталог с SKILL.md или плоский Markdown. Рекурсивный поиск **/SKILL.md не поддерживается. Локальный провайдер сканирует корни по рангу: сначала проектный .dsh/skills, затем .agents/skills, потом свои, пользовательские и упакованные. Корень проекта — ближайший корень Git; без него это сам cwd.
Этот слой отвечает: когда появляется регламент. Чеклист релиза или процедура патча теста в виде Skill грузится только для этой работы. Правка тела меняет следующие вызовы, не старые результаты инструментов. Каталог можно обновлять на лету, но неполное открытие не должно затирать последний годный каталог.
Skill — не система прав. Он говорит, как работать. Он не решает, можно ли писать за пределы рабочей области. Без Sandbox очень ясный «деплой-Skill» опаснее: опасные шаги становятся проще в исполнении.
Что ограничивает Sandbox
Process Sandbox закрывает файловые эффекты дочернего процесса на том же хосте. Сеть и видимость процессов вне этого словаря. Контейнеры, микроVM и удалённый запуск — соседние швы возможностей, не провайдеры ctx.sandbox. Локально: bwrap/Landlock на Linux, Seatbelt на macOS, ограниченный токен и ACL на Windows.
Режимов три. В изолирующий провайдер идут только первые два:
read-onlyзапрещает запись; POSIX-раннеры оставляют сток/dev/null, нужный оболочкам.workspace-writeразрешает писать в неизменяемый cwd сессии и во временную зону, обещанную бэкендом.danger-full-accessобходит изоляцию. Вызывающий запускает исходный argv и не ходит вctx.sandbox.
В лаборатории важнее всего закрытый отказ: попросили изоляцию, а бэкенда нет — кидаем SANDBOX_UNAVAILABLE. Тихий проход без клетки запрещён. Политика решается на каждый вызов: bash может быть только на чтение, пока дочерний агент пишет свой каталог состояния. Два отказа надо различать: раннер не стартовал — и изоляция сработала и заблокировала запись. Первое — инфраструктура. Второе значит, что Sandbox сделал работу.
Полнота принуждения бывает full или partial. Старые ABI Landlock и часть границ Windows ACL сейчас partial. Если нужна абсолютная гарантия, не считайте partial закрытым замком.
Как одна задача связывает все три слоя
Разверните «починить падающий тест и открыть патч» — деление перестаёт быть абстракцией.
- Harness собирает контекст из Session Log и вставляет видимый каталог skill (только имена и описания).
- Модель грузит что-то вроде
repo-test-patch, а не выдумывает шаги из памяти. - Инструмент
skillперечитывает тело для этого cwd и возвращает указания плюс относительные ресурсы. - Модель просит прочитать файлы или прогнать тесты. Harness ведёт конвейер инструментов. Sandbox оборачивает этот argv политикой данного вызова.
- Результаты возвращаются в Session Log. Следующий шаг выводится из журнала, а не из глобальной переменной «вроде уже сделали».
Без Harness нет стабильной вставки каталога и закрепления результатов. Без Skill системный промпт тонет в регламентах. Без Sandbox более ясный Skill — более ясное руководство по повышению прав. Три слоя дополняют друг друга; это не три имени одной функции.
Как запустить и написать первый Skill
Самый короткий официальный старт — npx @deepseek-ai/dsh web, веб-интерфейс по умолчанию на http://127.0.0.1:3080. Из исходников: клонировать, затем pnpm install && pnpm run build && pnpm dsh web. При SSH обычно печатается URL хоста, а проброшенный локальный адрес остаётся клиенту.
Первый проектный skill кладите в корень репозитория — туда локальный провайдер смотрит первым:
--- name: repo-test-patch description: Только чтобы чинить падающий тест минимальным патчем. --- # repo-test-patch 1. Проверить ветку в корне рабочей области. 2. Прогнать падающий тест до правок продакшен-кода. 3. Ограничить патч файлами, которых касается сбой. 4. Не писать вне рабочей области.
Имена — строго kebab-case. Используйте пакет SKILL.md; глубокая вложенность не находится. Ключи frontmatter disable-model-invocation и user-invocable решают, видят ли запись модель и человек. Оба выключены — загрузить может только доверенный ctx.skills.get().
После старта проверьте три факта: в сессии появилось сообщение каталога; вызов skill вернул тело, а не вклеил весь регламент в системный промпт; запись вне рабочей области в read-only отвергает бэкенд, а не только промпт. Нет изолирующего бэкенда — процесс должен упасть с ошибкой, а не продолжать «голым».
Считайте DeepSeek Harness образцом архитектуры для проверки, а не платформой с сертификатом продакшена. Принимаете цикл, каталог и путь confine — не рекламный ролик.
Когда стоит поднимать полный стек
| Ситуация | Делать | Почему |
|---|---|---|
| Один структурный запрос или один вызов функции | Полный Harness не брать | Хватит цикла function calling |
| Повторяемые правки, тесты, повтор | Harness + Session Log | Без собираемого журнала отладка — скриншоты |
| Одна процедура на много репозиториев | Выпустить Skill | Загрузка по требованию лучше раздутого промпта |
| Модель может запускать оболочку или писать | Sandbox, fail-closed | Промпт — не файловая политика |
| Фиксированные согласования и компенсации | Внешний детерминированный поток | Открытый цикл должен рассуждать только локально |
Против самодельного while и пары инструментов DeepSeek Harness покупает разделённые швы сборки, восстановления сессии и изоляции на вызов. Платите пониманием Cordis, поломками превью и тем, что Skill и Sandbox — разные вещи. Разделение окупается, если в этом году вы правда смените бэкенд модели, реализацию песочницы или раздадите каталог skill по репозиториям.
Коротко: устойчивый Agent в 2026 — не ещё одна чат-модель. Разведите суждение, цикл, регламент и файловую границу. Harness доводит прогон. Skill объясняет работу, когда нужно. Sandbox говорит, куда этот вызов может писать. Вместе демо становится задачей, которую можно проверить.
Частые вопросы
Чем Harness отличается от API модели?
API модели выдаёт следующее намерение или вызов инструмента. Harness крутит цикл, сохраняет сессию, собирает плагины и решает, когда вставить каталог и когда отдать их вызов в изоляцию.
Даёт ли Skill право на запись?
Нет. Skill — инструкция по требованию. В каталоге обычно только имя и описание. Можно ли писать, решает политика Sandbox этого вызова.
Блокирует ли Sandbox сеть?
Официальный словарь Process Sandbox закрывает только файловые эффекты. Сеть и видимость процессов вне темы. Для сетевой изоляции нужен другой шов. Не ждите, что read-only обрежет исходящий трафик.
Можно ли ставить это в прод сегодня?
Как образец архитектуры и хост прототипа — да. Как сертифицированную прод-платформу — нет. Официальный репозиторий всё ещё developer preview и может ломать совместимость.
Изолировать опыты с Agent на облачном Mac mini
На macOS песочница DeepSeek Harness идёт через Seatbelt, а Skill смотрят на cwd проекта. Гонять превью-агента на единственной прод-сборке значит сложить цикл, регламенты и файловую изоляцию на клиентскую работу. Единая память M4 Mac mini позволяет держать стабильную ветку сборки и одноразовый ящик dsh рядом. Около 4 Вт в простое делает реалистичным узел 24/7 «только Agent, никогда релизная ветка». Нативный Unix, Homebrew и SSH фиксируют корень рабочей области предсказуемее, чем удалённый стол на домашний Windows-ноутбук.
Если прототип Harness должен уйти с машины, которая отдаёт сборки, облачный Mac mini M4 от Kvmkit может добавить изолированный узел по запросу—смотреть тарифы, чтобы каталоги skill и режимы песочницы имели место, где можно безопасно упасть.