Короткий ответ
deepseek harness vs opencode — это столкновение двух совершенно разных open-source философий: dsh доводит до предела принцип «всё есть плагин», а OpenCode — принцип минимализма. Выбор сводится к тому, что вам нужно: фреймворк, который можно перестроить, или терминальный агент, который работает из коробки.
- DeepSeek Harness (dsh): open-source агентский harness от DeepSeek (Что такое DeepSeek Harness). Всё есть плагин; 54 npm-пакета; адаптер модели, реестр инструментов, журнал сессии и агентский цикл заменяются через конфигурацию; работающий агент может даже на лету определить новый плагин и изменить самого себя.
- OpenCode: open-source агент для программирования, написанный на Rust, ориентированный на терминал и поддерживающий множество моделей. Один файл
opencode.jsonзадаёт провайдера — и агент работает с любой моделью: установил и поехал. - Стоимость: оба не привязаны к конкретной модели. С DeepSeek V4 оба стартуют примерно от $0.14 / $0.28 (за миллион входных/выходных токенов), а один ключ TeamoRouter обслуживает оба.
Вердикт в одну строку: нужна глубокая кастомизация и хочется строить агента как фреймворк — берите dsh; нужен минималистичный лёгкий инструмент из коробки под полным вашим контролем — берите OpenCode. Сравнение четырёх агентов — в статье DeepSeek Harness vs Claude Code / Codex / OpenCode; здесь же — очное сравнение только этих двух.
Различия с первого взгляда
| Параметр | DeepSeek Harness (dsh) | OpenCode |
|---|---|---|
| Позиционирование | Open-source агентский фреймворк (harness) | Open-source терминальный агент |
| Философия архитектуры | Всё есть плагин (Cordis) | Минималистичная модульность |
| Реализация | TypeScript (~591K строк) | Rust |
| Модель по умолчанию | Семейство DeepSeek V4 | Любая (мультимодельность) |
| Установка | npx @deepseek-ai/dsh web |
Глобальная установка одной командой |
| Конфигурация | Переменные окружения + плагины | Провайдер в opencode.json |
| Кастомизация | Предельная (заменяется любой стык) | Высокая (провайдеры / инструменты) |
| Экосистема | 54 пакета + Python SDK + ACP | Мультимодельные провайдеры, активное сообщество |
| Порог входа | Средний (рассчитан на разработчиков фреймворков) | Низкий (установил и поехал) |
| Стоимость | DeepSeek V4 от ~$0.14/$0.28 | Зависит от модели; с V4 те же $0.14/$0.28 |
| Статус | Developer preview (интерфейсы меняются) | Стабилен и пригоден к работе |
Философия архитектуры: «всё есть плагин» против минималистичной модульности
Это самое глубокое расхождение между ними.
dsh: никакого привилегированного ядра, а агент может перестроить сам себя
В основе dsh лежит плагинный фреймворк, вендоренный из Cordis. Его самое контринтуитивное решение: здесь нет привилегированного ядра, которое нужно патчить — файловая система, shell, адаптер модели, журнал сессии и даже сам агентский цикл являются плагинами. Выгрузите один — и его побочные эффекты откатятся; любой сервис можно целиком заменить через конфигурацию.
Ещё смелее — его самореферентный набор инструментов: cordis_define / cordis_run / cordis_stop / cordis_undefine. Проще говоря, работающий агент может на лету определить новый плагин Cordis, внедрить его в живой рантайм, и зарегистрированные им инструменты сразу станут видны модели. Используешь фреймворк → определяешь фреймворк внутри фреймворка → меняешь собственный набор инструментов → продолжаешь работу. Почти ни один другой проект не открывает модели такой цикл метапрограммирования в полном объёме.
Добавьте к этому инвариант рантайма «журнал сессии — единственный источник истины»: fork / resume / сжатие контекста / replay — всё выводится из журнала, и всё, что видит модель, восстанавливается из него. Отсюда же технически растут утверждения о том, что «dsh экономит токены».
OpenCode: минималистичная модульность, установил и поехал
OpenCode идёт противоположным путём: никакого тяжёлого слоя harness — просто «агент в терминале», сделанный аккуратно. На Rust, с приоритетом терминала, мультимодельный. Вся конфигурация — один файл opencode.json: задали провайдера, вписали base URL и ключ, перезапустили — и можно переключаться между моделями.
Его тоже можно кастомизировать (пользовательские провайдеры, инструменты по необходимости), но способ кастомизации здесь — «конфиг», а не «написать плагин и смонтировать его в рантайм». Для большинства это как раз плюс: не нужно изучать абстракции фреймворка — после установки это просто инструмент.
Одной фразой: dsh продаёт идею «фреймворк можно переписать», OpenCode — идею «инструмент достаточно прост».
Порог входа и установка
С OpenCode начать проще. Одна команда ставит его глобально; запустите и пишите инструкции на естественном языке прямо в терминале — агент читает репозиторий, правит файлы, выполняет команды. Чтобы подключить свою модель, добавьте OpenAI-совместимого провайдера в opencode.json. Кривой обучения по сути нет.
У dsh планка выше. Сама установка проста:
npx @deepseek-ai/dsh web
Одна команда поднимает веб-интерфейс по адресу http://127.0.0.1:3080. Но чтобы по-настоящему раскрыть мощь подхода «всё есть плагин», нужно разобраться в плагинной модели Cordis, объявлениях зависимостей через inject и режимах диспетчеризации событий: он спроектирован для разработчиков, которые хотят построить собственного агента. Если вы просто хотите пользоваться инструментом из коробки, абстракции фреймворка dsh — лишний багаж.
Кастомизация
- dsh: заменяется любой стык. Хотите, чтобы у агента были только терминал и файловые операции, без сети? Готово. Хотите целиком перенести Bash / PTY / LSP в удалённую песочницу? Измените одно объявление провайдера. Нужен инструмент, который вызывает API вашей внутренней системы? Смонтируйте плагин. Хотите заменить поведение всего агентского цикла? Журнал, контекст и реестр инструментов заменяются через конфигурацию. За такой глубиной OpenCode не угнаться.
- OpenCode: кастомизация на уровне конфига. Смена провайдеров, добавление моделей и настройка поведения агента — всё делается в
opencode.json. Для подавляющего большинства сценариев этого достаточно, но до уровня «внедрить плагин в живой рантайм, чтобы перестроить самого себя» вы не дотянетесь.
Экосистема
dsh опирается на инженерные вложения DeepSeek: 20K+ звёзд за первый час, 28K–31K к концу первого дня; 12 293 коммита, 54 npm-пакета, ~591K строк TypeScript, 1 386 заметок по разработке агентов. Каталог инструментов включает bash / run_code / terminal_* (PTY) / edit / read / write / glob / grep (со встроенным ripgrep) / subagent / goal / todo / schedule / job / skill / lsp / web_fetch / session_search / ask_user, а также Python SDK (deepseek_harness) и интерфейсы ACP / JSON-RPC — он не привязывает вас к собственному UI.
Экосистема OpenCode строится вокруг мультимодельности: один инструмент, который работает с любым провайдером, активное сообщество и конфигурация, которую достаточно просто подложить. Такого большого каталога плагинов, как у dsh, у него нет, зато он выигрывает простотой и нулевой зависимостью от вендора.
Стоимость
Оба не привязаны к модели, так что стоимость определяется моделью. Подключите оба к DeepSeek V4 Flash ($0.14/$0.28 за миллион токенов) — и они будут работать по одинаково низкой цене; подключите к флагманским Claude / GPT — и они обойдутся так же, как любой другой инструмент.
Разница — в настройках по умолчанию и в направлении оптимизации:
- dsh относится к DeepSeek V4 как к модели первого класса и строит всю архитектуру вокруг экономии токенов (журнал сессии как единственный источник, хранилище
spill, которое сбрасывает слишком объёмный вывод инструментов на диск и передаёт модели только указатель). Его стратегическая ставка: агентский фреймворк, достаточно дешёвый, чтобы реально работать в масштабе. - OpenCode не отдаёт предпочтения ни одной модели — стоимость целиком определяется выбранным провайдером.
Для команд, у которых агенты работают весь день, dsh + DeepSeek V4 Flash обычно самая дешёвая связка; OpenCode, направленный на тот же V4, выходит на ту же цену.
Как выбрать — в зависимости от того, кто вы
- Нужна глубокая кастомизация и свой агентский фреймворк: выбирайте dsh. Можно урезать поверхность возможностей, менять провайдеров, писать плагины и даже позволить агенту перестраивать себя — ценой кривой обучения и статуса developer preview.
- Нужен минималистичный лёгкий инструмент из коробки под полным контролем: выбирайте OpenCode. Установил и поехал, чистый конфиг, никаких абстракций фреймворка.
- Важна стоимость, агенты используются часто: подойдёт любой — направьте на DeepSeek V4 Flash; dsh агрессивнее экономит токены.
- Важна долгосрочная стабильность: OpenCode — более надёжный выбор; dsh прямо заявлен как developer preview, интерфейсы будут меняться, и строить на нём продакшен-зависимости мы бы не стали.
Один ключ на оба инструмента
Оба работают по OpenAI-совместимому протоколу, поэтому один ключ TeamoRouter обслуживает оба — единый биллинг, никаких отдельных регистраций и пополнений:
# dsh: environment variables
export DEEPSEEK_BASE_URL="https://api.teamorouter.cn/v1"
export DEEPSEEK_API_KEY="sk-teamo-your-key"
# OpenCode: provider in opencode.json
# {
# "provider": {
# "teamorouter": {
# "options": {
# "baseURL": "https://api.teamorouter.cn/v1",
# "apiKey": "sk-teamo-your-key"
# },
# "models": {
# "deepseek-v4-flash": { "name": "DeepSeek V4 Flash" },
# "deepseek-v4-pro": { "name": "DeepSeek V4 Pro" }
# }
# }
# }
# }
Так можно делать повседневную быструю работу в OpenCode, а тяжёлые задачи с глубокой кастомизацией отдавать dsh — с одним и тем же ключом sk-teamo- и одним счётом. Полная настройка dsh — в статье Подключение DeepSeek Harness к TeamoRouter; отдельное знакомство с OpenCode — Что такое OpenCode.
FAQ
dsh и OpenCode — конкуренты?
Их позиционирование пересекается, но друг другу они не мешают. OpenCode — это «минималистичный терминальный агент», dsh — «агентский фреймворк, где всё есть плагин». Можно жить в OpenCode изо дня в день, можно взять dsh как фреймворк и построить своего агента — а можно поставить оба и выбирать под задачу.
Можно ли кастомизировать OpenCode так же, как dsh?
На уровне конфига — да: провайдеры, модели, инструменты. На глубине «внедрить плагин в живой рантайм» — нет. Если вам нужен агент, способный перестроить себя на лету, это умеет только dsh.
Готов ли dsh к продакшену?
Пока это developer preview — интерфейсы будут меняться. Подходит для личной разработки, изучения архитектуры агентов и дешёвых запусков агентов, но строить продакшен, зависящий от конкретных деталей API, мы бы не стали.
Оба направлены на DeepSeek V4 — кто экономит больше токенов?
Журнал сессии как единственный источник плюс выгрузка на диск через spill дают dsh больше экономии в длинных сессиях и при слишком объёмном выводе инструментов. OpenCode такой оптимизацией не занимается. При одинаковой цене ($0.14/$0.28) то, кто сэкономит токены, зависит от характера ваших задач.
Чтобы недорого сравнить оба open-source агента на практике, получите ключ в TeamoRouter, подключите и dsh, и OpenCode — и сравнивайте в процессе работы.