DeepSeek Harness: опыт использования, 4 режима сессий и живая счётность токенов

· 1 мин чтения
deepseek harness agentic-coding ai-agents tools
DeepSeek Harness: опыт использования, 4 режима сессий и живая счётность токенов

После успехов с Pro и Flash моделями DeepSeek зашла и в нишу агентных харнессов. DeepSeek Harness (по команде — dsh) — это открытый агентный харнесс с философией «всё — плагин», очень похожей на ту, что лежит в основе агента Pi. На момент обзора проект находится в developer preview, а команда прямо пишет об этом в README репозитория.

Что такое DeepSeek Harness

Каждая часть продукта — от адаптера модели и журнала сессии до самого агентного цикла — это плагин. Harness построен на фреймворке Cordis, поэтому у него нет ядра, которое нужно патчить: чтобы заменить компонент, достаточно смонтировать рядом другой плагин.

Возможности агента типовые для современного coding-агента: чтение и редактирование файлов в рабочем пространстве, запуск команд, делегирование задач субагентам и ведение плана по ходу работы.

Поставляется проект в основном как веб-интерфейс на http://127.0.0.1:3080, но это лишь один из способов использования: есть также headless-режим и Python SDK для программного доступа.

Установка из исходников

В репозитории на GitHub рекомендуют быструю установку одной командой:

npx @deepseek-ai/dsh web

Но в обзоре эта команда не сработала и упала с ошибками. Обходной путь — клонировать репозиторий и запускать из исходников:

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

Процесс занимает чуть больше минуты. В терминале появляется адрес http://127.0.0.1:3080; при первом открытии показывается предупреждение о внутреннем тестировании и предложение ввести официальный API-ключ DeepSeek или настроить его позже.

Настройка провайдера

Вопреки первому впечатлению, harness работает не только с официальным провайдером DeepSeek: поддерживаются почти все крупные провайдеры, а для любого OpenAI-совместимого эндпоинта можно добавить свой. Всё это настраивается в Settings > Models.

Автор обзора подключил ключ OpenCode Go и сразу получил внутри harness свои модели DeepSeek v4 Pro и Flash с теми же уровнями thinking. Ключ сохраняется в ~/.dsh/.credentials.yaml, а в файле настроек хранится только ссылка на него — интерфейс секрет обратно не показывает. Конфигурация выглядит так:

llm-pi-ai:
  providers:
    opencode-go:
      apiKeyEnv: OPENCODE_GO_API_KEY
agent-default-model:
  provider: opencode-go
  model: deepseek-v4-pro
  reasoningEffort: max

Любопытная деталь: ключ llm-pi-ai — это не случайность. Универсальный адаптер провайдеров построен на pi-ai — библиотеке работы с моделями от той же команды, что делает агент Pi. Так что harness и терминальный агент Pi разделяют не только плагинную философию. Изменения моделей применяются со следующего запроса — перезапуск сервера не нужен.

Работа с harness

Интерфейс очень похож на Codex app или веб-версию ChatGPT: слева список сессий, между которыми легко переключаться, в том числе между разными проектами. Дизайн и UX обзору понравились.

Первый реальный тест — глубокая read-only аудитория репозитория собственного сайта. Агент первым делом прочитал файл AGENTS.md, так что все правила проекта попали в контекст диалога, затем разбил аудит на шесть параллельных субагентов: один взял scripts/, другой — _data/, один прошёлся по всем 161 постам блога, другой — по 491 заметке, остальные — по шаблонам, CSS и контентным страницам.

Сильное впечатление произвела организация субагентов: у каждого — собственная сессия, а выпадающий список сверху показывает, сколько субагентов активно трудится и каков прогресс каждого. Отдельно отмечены «честные» метрики в нижней панели: tokens/sec, cache hit rate, число tool-вызовов, ходы и шаги. Ни одна из них не обязательна, но вся сессия от этого ощущается прозрачной.

Для каждой сессии есть вкладка Trajectory, показывающая всю сессию в виде таймлайна: каждый ход, шаг, tool-вызов и вложенный tool-вызов — со своими токенами и временем исполнения. Клик по запросу открывает его вход, выход и тайминги. Автор называет это самым прозрачным агентским интерфейсом из тех, что ему попадались.

Безопасность тоже на высоте: всё происходит внутри рабочего пространства, а перед действиями, требующими одобрения, интерфейс явно спрашивает разрешения.

Четыре режима сессий

Режим сессии фиксируется при её создании — переключиться на лету нельзя, для другого режима нужна новая сессия:

  1. Standard mode — полный coding-агент: редактирование файлов, shell, файловый и веб-поиск, навыки, планирование, цели, субагенты и workflow. Режим по умолчанию.
  2. Code mode — все возможности Standard, но инструменты подаются через Code Mode SDK: вместо одного tool-вызова на действие модель пишет единую TypeScript-программу против сгенерированного SDK и запускает её одним заходом. Последовательность, которая заняла бы пять round-trip'ов, превращается в один.
  3. Minimal mode — противоположный полюс: всего два инструмента — постоянная bash-оболочка и файловый редактор str_replace_editor. Без поиска, навыков, субагентов и планирования. Максимально маленький coding-агент.
  4. Creator mode — для создания собственных пресетов: все возможности Standard плюс инструменты, позволяющие инспектировать работающий harness, экспериментировать с плагинами и собирать собственные пресеты. Любой встроенный пресет можно продублировать и сделать своим — или попросить агента начерновить собственный прямо в Creator mode.

Пресеты живут в разделе Agent presets, и там же можно задать режим по умолчанию для новых сессий.

Что понравилось

  • Всё — плагин, по-настоящему. Ядра для патчинга нет, в отличие от большинства инструментов, где вы получаете ровно то, что поставил вендор. Проект полностью открыт под MIT — никакая компания не решает, какие фичи вам доступны.
  • Чистый веб-интерфейс. Сессии слева, workspace, ощущение Codex/ChatGPT/Gemini — без отказа от локальных файлов.
  • Субагенты с живым прогрессом. Параллельный аудит в один поток занял бы вечность: шесть агентов, один выпадающий список и живой прогресс по каждому.
  • Честная статистика внизу. tokens/sec, cache hit rate, вызовы, ходы, шаги. Хотелось бы, чтобы больше инструментов показывали такие цифры.
  • Любой провайдер. Подключение OpenCode Go заняло минуту, ключи остались в ~/.dsh/ на своей машине.
  • Безопасно по умолчанию. Песочница в границах workspace и запрос на одобрение перед рискованными операциями.

Что не понравилось

  • Установка через npx не заработала, пришлось запускать из исходников. Не критично, но заявленный «одной командой» путь должен работать.
  • Запуск не мгновенный: нужно поднять сервер из терминала и открыть localhost-адрес в браузере. Это больше трения, чем команда pi в терминале.
  • Нет уведомлений о завершении задачи: ни звука, ни пуш-нотификации — harness просто ждёт во вкладке браузера. Для долгих задач приходится периодически переключаться и проверять, закончил ли агент.
  • DeepSeek-модели текстовые, поэтому вставка изображения в harness не работает. В Pi автор использует пакет vision-handoff, который описывает картинки отдельной vision-моделью, и аналога в harness он пока не нашёл.

Итог

DeepSeek Harness — это «GUI-образный» плагинный агент, которого автор не знал, что хочет. Pi остаётся его терминальным агентом для сайд-проектов и экспериментов, а harness — сильным дополнением, но пока не заменой: философия «всё — плагин» из Pi, OMP и им подобных явно распространилась, и DeepSeek поставляет её версию с настоящей полировкой.

Если что-то сломается — сообщать об этом принято в GitHub Discussions и на Discord-сервере репозитория.

Источник: https://deepakness.com/blog/deepseek-harness/