Главное Авторские колонки Пресс-релизы Промо Вакансии Вопросы
134 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

DeepSeek Harness: агент, который целиком собран из плагинов

Открытая платформа, где модель, песочница и даже хранение сеансов — заменяемые модули. Разбираем, как собрать агента под задачу и не потерять контроль.
Мнение автора может не совпадать с мнением редакции

DeepSeek Harness (dsh) — открытый агентский харнесс от DeepSeek AI. Выглядит как ещё одна утилита для запуска моделей, но по сути это конструктор: плагинами здесь выступают и хранение сеансов, и песочница, и сжатие контекста, и сама модель.

Всё есть плагин

Харнесс построен на Cordis, а архитектура описана в работе про пространственно-временную композируемость. Мысль такая: приложение собирается из слоёв-патчей, а не пишется кодом. Профиль — это перечень бандлов плюс ваш cordis.patch.yml, и каждый следующий слой может отменить или дополнить предыдущий. Поэтому команда dsh —dump-config печатает собранное дерево целиком, чтобы было видно, какой бандл что добавил.

Профили вместо режимов

Одна команда умеет разное, и разница задаётся профилем, а не флагом:

  • dsh web — локальный веб-интерфейс на http://127.0.0.1:3080;
  • dsh —profile headless «задача» — один свежий сеанс, ответ в вывод и выход: удобно для CI;
  • dsh —profile sdk — JSON-RPC для внешних клиентов;
  • dsh —profile acp — тот же агент внутри редактора.

Профиль лежит в отдельной папке, а патчи перезагружаются на лету: правка плагина подхватывается без перезапуска. Свой набор ставится командой dsh plugin —profile web add.

Агенты внутри агента

Самое интересное — харнесс умеет запускать других агентов, и это не одна кнопка:

  • субагенты работают в фоне, у каждого свой контекст: родитель продолжает работу и получает результат, когда тот готов;
  • наследник контекста — субагент, который видит уже состоявшийся разговор, для задач «продолжи и проверь»;
  • workflow — JavaScript-сценарий, который сам раскидывает десятки субагентов по фазам, конвейером или с барьером: оркестрация описана кодом, а не диалогом;
  • ralph — цикл свежих агентов по одному неизменному заданию, где рабочая папка служит долговременной памятью.


Схема: профиль, плагины, агент и суб-агенты

Инструменты под задачу

Базовый набор тоже собран из плагинов, и каждый можно выключить: чтение и правка файлов, поиск по репозиторию, фоновые задания, веб-поиск и загрузка страниц, подключение внешних серверов по MCP, «скиллы» — папки с инструкциями, которые агент подгружает по надобности.

Песочница и сеансы

Файловые операции ограничены песочницей: workspace-write пускает только в рабочую папку. Отказ выглядит не как падение, а как честная пометка «доступ запрещён» — её можно показать человеку и попросить прав побольше. Границу при этом называют заранее: где-то агент спрашивает на каждое опасное действие, а где-то действует сам.

История сеанса пишется в файл и переживает перезапуск: сеанс можно возобновить, сжать, посмотреть, сколько он съел токенов. Долгая цель живёт в состоянии сеанса, а не в голове модели.

Что это меняет для команд

Для небольшой команды DSH снимает вопрос «свой агент или готовый сервис»: готовые сервисы дают фиксированный набор функций, а харнесс — конструктор. Можно начать с одного профиля, а потом добавлять плагины по мере появления задач: сегодня — публикация статей, завтра — разбор конкурентов, послезавтра — автоматическая выгрузка метрик.

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

Наконец, DSH не заставляет переезжать целиком. Профиль можно собрать под одну задачу и держать рядом с привычными инструментами: агент по ключу ходит в ваш сервис, забирает результат и возвращает его туда, где вы работаете.

Как это выглядит на практике

Мы собрали цепочку из четырёх плагинов:


FrameFactory: бриф и структура

Prompt-Polish: улучшение запроса

Detector-Remover: снятие AI-отпечатков

Четыре шага: от брифа до человеческого текста

  1. FrameFactory формирует бриф: темы, заголовки, план статьи и чек-лист.
  2. Prompt-Polish переписывает черновой запрос, убирая повторы и делая формулировки короче.
  3. Improve-Prompt показывает diff до отправки — важные термины и ссылки остаются нетронутыми.
  4. Detector-Remover добавляет разговорные обороты и лёгкую стилистическую неровность, чтобы текст реже срабатывал на AI-детекторах.

С чего начать

Если хочется попробовать DSH на одной задаче, порядок такой. Сначала ставится сам харнесс и запускается dsh web — этого достаточно, чтобы увидеть базовый набор плагинов. Потом добавляется один-два плагина под задачу: например, для работы с текстом — генерация брифа и полировка запроса. И только после этого имеет смысл думать про субагентов и workflow: они раскрываются там, где задач уже много и они повторяются.

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

И ещё одно: DSH не прячет модель. Если вам нужен конкретный провайдер или конкретная модель, это тоже плагин. Значит, можно сравнить два варианта на одной и той же задаче, не переписывая агента.

Зачем это нужно

DSH — не «CLI для LLM», а среда, где агент собирается под задачу: свои инструменты, свои политики, свои профили. Самое ценное здесь — не набор готовых функций, а то, что любую из них можно заменить своей: харнесс не диктует, как устроен агент, а даёт его собрать. Проект открыт под MIT и находится в developer preview — ломающие изменения обещаны прямо в README.

Код и документация: github.com/deepseek-ai/DeepSeek-Harness.

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.