Wczoraj uruchomiłeś zadanie w Hermesie. Dzisiaj uruchomiłeś to samo zadanie w dsh. Ten sam model, ten sam klucz API, ten sam laptop. Liczby użycia i tak wyszły inne.
Twoje oczy są w porządku. Nic nie zmieniło ceny z dnia na dzień.
Oto co pomija prawie każde porównanie DeepSeek Harness vs Hermes: harness to powłoka owinięta wokół modelu, a ta powłoka decyduje, ile kontekstu wychodzi na krok, ile narzędzi reklamuje, jak często próbuje ponownie i czy wysyła całą konwersację przy każdym wywołaniu. Zmień powłokę, zmień rachunek.
Więc zamknąłem zmienną modelu i zmierzyłem. Dwie powłoki, jeden endpoint, jeden deepseek-ai/deepseek-v4-pro, jedna instrukcja, jeden komputer, jedno popołudnie. To samo zadanie, obie je ukończyły, a jedna przesłała 8,4 razy więcej tokenów promptu niż druga.
Kluczowe wnioski
- Ten sam model, to samo zadanie, obie zaliczone: dsh zajęło 121 sekund, Hermes 780 sekund.
- Hermes przesłał 1 111 573 tokenów promptu wobec 132 600 dsh. To 8,4x w jednym zadaniu.
- Zanim którykolwiek agent cokolwiek zrobi, jego prompt systemowy kosztuje tokeny: dsh 10 898 vs Hermes 13 892 tylko po to, by odpowiedzieć „OK".
- dsh domyślnie ogranicza cię do 262 144 kontekstu, chyba że nadpiszesz
defaultContextWindow, odrzucając 75% okna V4.- Wybierz dsh do kodowania, Hermes do pamięci, cron i interfejsów czatowych. Albo uruchom oba.

Podzielony warsztat inżynieryjny z nagim blokiem silnika zaciśniętym w stalowej ramie testowej po lewej i mosiężnym automatem tokarskim po prawej, oba zasilane jedną miedzianą rurą paliwową
Jedna rura paliwowa, dwa stanowiska testowe. To cały eksperyment. Wygenerowano za pomocą openai/gpt-image-2.
DeepSeek Harness vs Hermes, ten sam model, to samo zadanie
Obie powłoki dostały to, słowo w słowo: zbuduj samodzielny klon Breakout w jednym pliku z paletką, 5 rzędami cegieł, licznikiem punktów na żywo, pauzą po klawiszu P oraz osadzonym autotestem, który sprawdza trzy niezmienniki fizyki i wypisuje PASS lub FAIL. Następnie uruchom go bezgłowo i naprawiaj, aż wszystkie trzy wypiszą PASS.
Żadnych bibliotek. Żadnego CDN. Żadnego etapu budowania.
Obie rzeczywiście to zrobiły. Oto dwa pliki, wyrenderowane w prawdziwej przeglądarce.

Animowane zestawienie dwóch wersji Breakout grających: DeepSeek Harness (dsh) po lewej, Hermes Agent po prawej, obie odtwarzane automatycznie z identycznego promptu DeepSeek V4 Pro
Dwie wersje nagrane obok siebie i puszczone w trybie auto-play, abyś mógł zobaczyć, jak każda działa. Po lewej: dsh, którego gra uruchamia się automatycznie. Po prawej: Hermes, którego gra uruchamia się w stanie pauzy, a potem działa. Ten sam prompt jednego pliku, ten sam DeepSeek V4 Pro, dwie powłoki.
A teraz liczby, które faktycznie o tym decydują.
| Uruchomienie | Czas rzeczywisty | Wywołania narzędzi | Tokeny promptu (świeże + z cache) | Tokeny wyjściowe | Koszt według V4 Pro |
|---|---|---|---|---|---|
| dsh, runda 1 | 121,2 s | 8 | 14 840 + 117 760 = 132 600 | 5 231 | 0,24 $ |
| Hermes, runda 1 | 780 s | 35 | 49 685 + 1 061 888 = 1 111 573 | 19 317 | 1,93 $ |
| dsh, runda 2 | nieukończone | 11 przed limitem | 44 291 + 132 608 | 2 463 | nieukończone |
| Hermes, runda 2 | nieukończone | nieuruchomione | nieukończone | nieukończone | nieukończone |
Zmierzono 2026-08-21 na deepseek-ai/deepseek-v4-pro, jeden komputer, pusty katalog roboczy na uruchomienie. Liczby tokenów są odczytane maszynowo: dsh z dziennika sesji, Hermes z pliku JSON --usage-file. Należy pamiętać, że oba liczniki wywołań narzędzi nie pochodzą z tego samego źródła: 8 dsh jest liczone z jego dziennika (twierdził, że 6), podczas gdy 35 Hermesa to jego własny raport, a jego plik użycia rejestruje 38 wywołań API. Metoda kosztu jest opisana w ostatniej sekcji.
Dlaczego dwa puste wiersze? Runda 2 nigdy nie została uruchomiona, a powód jest najlepszym pojedynczym punktem danych w artykule. Sama runda 1 Hermesa przepchnęła 1,13 miliona tokenów przez konto, a w trakcie rundy 2 dsh endpoint odpowiedział:
plaintext1dsh: QUOTA: 429: {"code":"member_spend_limit_exceeded", 2"message":"Member day spend limit reached (set by your team admin); 3resets at 2026-08-22T00:00:00Z.","type":"insufficient_quota"}
Jeden agent, jedna gra Breakout, jeden dzienny limit budżetu. Nie wypełniam tych komórek szacunkami.
Jeszcze jeden szczegół wart odnotowania. dsh zgłosiło „Liczba użytych wywołań narzędzi: 6” w swojej końcowej odpowiedzi. Jego własny dziennik sesji rejestruje 8. Agenci są zawodnymi narratorami własnych wydatków, co jest właśnie powodem, dla którego ten test czyta dzienniki, a nie podsumowania.
Dlaczego większość porównań DeepSeek Harness vs Hermes jest zepsuta
Najpierw werdykt: prawie każda strona pozycjonująca się na to hasło mierzy niewłaściwą zmienną, a można to zauważyć w jednej linijce ich konfiguracji.
Model, a nie powłoka, jest tym, co te testy mierzyły
Przejdź do najlepszych wyników. Wzór się powtarza: uruchom dsh na modelu DeepSeek, uruchom Hermes na tym, na co Hermes był już ustawiony, a następnie przypisz całą różnicę powłoce.
To nie jest porównanie powłok. To jest porównanie modeli w etykiecie z napisem „powłoka".
Jeśli dsh jest na V4 Pro, a Hermes na czymś innym, różnica, którą mierzysz, to głównie dwa modele, a wkład powłoki jest pogrzebany nie do odzyskania. Dlatego ten test robi nudną, konieczną rzecz: obie powłoki wskazują na ten sam bazowy URL, ten sam identyfikator modelu, ten sam klucz.
Wybór powłoki sam w sobie zmienia liczby
Chcesz dowodu, że sama powłoka jest droga? Poproś każdą, by nic nie robiła.
Wysłałem obu tą samą trywialną instrukcję: Reply with exactly the word: OK. Żadnych narzędzi, żadnych plików, żadnego myślenia.
| Powłoka | Tokeny promptu, by powiedzieć „OK” | Tokeny wyjściowe | Czas rzeczywisty |
|---|---|---|---|
| DeepSeek Harness (dsh) | 10 898 | 2 | 5,6 s |
| Hermes Agent | 13 892 (+1 024 z cache) | 17 | 8,5 s |
Ten sam model. To samo pytanie. Różnica 2 994 tokenów przed rozpoczęciem jakiejkolwiek rzeczywistej pracy, ponieważ ta różnica to powłoka: jej prompt systemowy, jej schematy narzędzi, jej plik reguł. Hermes wnosi więcej powierzchni, więc Hermes wnosi więcej tokenów.
Teraz pomnóż to przez pętlę agenta z 38 wywołaniami, gdzie każde wywołanie ponownie wysyła całą dotychczasową rozmowę. Odczyty z cache stanowiły 88,8% tokenów promptu dsh i 95,5% Hermesa. To ponowne czytanie to rachunek.
Jeden endpoint, dwie powłoki: konfiguracja DeepSeek V4
Aby porównać powłoki, strona modelu musi pozostać idealnie nieruchoma. Nie tylko ta sama nazwa modelu: ten sam endpoint, ten sam limit szybkości, ta sama cena o 3:00 nad ranem, co o 15:00.
To ostatnie ma większe znaczenie, niż się wydaje. Jeśli twój dostawca pobiera stawki w godzinach szczytu i poza nimi, to „runda 1 w Hermesie o 09:00” i „runda 2 w dsh o 11:00” nie są porównywalne, i nigdy nie rozplączesz, ile różnicy pochodziło od powłoki, a ile od zegara.
Dlatego obie powłoki tutaj wskazują na jeden endpoint zgodny z OpenAI na stałej stawce w Atlas Cloud: https://api.atlascloud.ai/v1. Ta sama cena przez cały dzień, żadnego okna szczytu, żadnej osobnej kolejki dla powłoki, jeden klucz dla obu.
| Rola w teście | Identyfikator modelu | Kontekst / maks. wyjście | Cena za 1M wejście / wyjście |
|---|---|---|---|
| Główny silnik dla obu powłok | deepseek-ai/deepseek-v4-pro | 1 048 576 / 393 216 | 1,68 $ / 3,38 $ |
| Tania warstwa, rola „ramion" | deepseek-ai/deepseek-v4-flash | 1 048 576 / 393 216 | 0,14 $ / 0,28 $ |
| Długotrwała praca cron | deepseek-ai/deepseek-v3.2 | 163 840 / 163 840 | 0,26 $ / 0,38 $ |
Ceny odczytane ze stron modeli 2026-08-21. Żadna odznaka zniżki na rodzinę DeepSeek w tej chwili, więc nic tutaj nie jest stawką promocyjną, która wygaśnie w przyszłym tygodniu.
Drobna rzecz, którą łatwo przeoczyć: /v1/models raportuje deepseek-v4-pro i deepseek-v4-flash jako fp4, podczas gdy deepseek-v4-pro-0813 zwraca fp8. Chcesz wagi o wyższej precyzji? Przypnij datowany identyfikator.
Dobrze. Zbudujmy to.
Przeprowadź test DeepSeek Harness vs Hermes samodzielnie
Zapowiedź: siedem kroków, dwa pliki konfiguracyjne, jedna instrukcja, a skończysz z własną wersją tamtej tabeli, zamiast ufać mojej. Dowód, że działa: każda liczba powyżej pochodzi dokładnie z tych kroków na standardowym MacBooku, Node v24.15.0, dsh 0.1.0-rc.7, Hermes v0.20.4.
Zaczynajmy.
Krok 1: Uzyskaj endpoint, który się nie zmienia
Obie powłoki mocno polegają na wywoływaniu funkcji, więc przed instalacją czegokolwiek, sprawdź, czy endpoint obsługuje narzędzia:
plaintext1curl -s https://api.atlascloud.ai/v1/models \ 2 -H "Authorization: Bearer $ATLAS_API_KEY" \ 3 | jq '.data[] | select(.id|test("v4-pro$")) | {id, context_length, max_output_length, supported_features}'
Rzeczywiste wyjście z tego wywołania:
plaintext1{ 2 "id": "deepseek-ai/deepseek-v4-pro", 3 "context_length": 1048576, 4 "max_output_length": 393216, 5 "supported_features": ["json_mode", "tools", "structured_outputs"] 6}
tools na tej liście to rzecz, której szukasz. Brak narzędzi = brak pętli agenta, a obie powłoki zawiodą w mylący sposób, zamiast to powiedzieć.
Pobierz klucz ze strony modelu DeepSeek V4 Pro, a następnie export ATLAS_API_KEY=... przed każdym poleceniem poniżej.
Jeden haczyk po stronie Hermesa: odpowiedź opakowuje tablicę jako {"code":200,"msg":"succeed","data":[...]}. Hermes sondy /v1/models podczas konfiguracji i analizuje to poprawnie, ale jeśli piszesz własne narzędzia przeciwko niemu, nie oczekuj gołej listy.
Krok 2: Zainstaluj obu agentów
plaintext1# DeepSeek Harness 2npm install @deepseek-ai/dsh 3 4# Hermes Agent 5curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
Trzy notatki instalacyjne, które kosztowały mnie czas:
- dsh wymaga Node
^22.19.0 || >=24.0.0. Nie obsługuje 23.x. Większość poradników mówi „Node 20+", co jest po prostu błędne. - To
npm installściągnęło 453 pakiety i zajęło 8 minut. To nie jest mała zależność. - Hermes przynosi własnego Pythona 3.11 przez
uv, więc twój systemowy Python nie ma znaczenia (mój to 3.9). Jeśli instalator umrze w trakcie pobierania z powodu problemu z PyPI, uruchom ponownie synchronizację zależności, a nie cały skrypt.
Krok 3: Skieruj DeepSeek Harness na endpoint
Zapisz to w $DSH_HOME/settings.yaml (domyślnie ~/.dsh):
plaintext1llm-pi-ai: 2 providers: 3 atlas: 4 displayName: Atlas Cloud 5 apiKeyEnv: ATLAS_API_KEY 6 api: openai-completions 7 baseURL: https://api.atlascloud.ai/v1 8 defaultContextWindow: 1048576 9 defaultMaxTokens: 65536 10 compat: 11 thinkingFormat: deepseek 12 models: 13 - id: deepseek-ai/deepseek-v4-pro 14 name: DeepSeek V4 Pro 15 reasoningEfforts: 16 off: 17 high: high 18 - id: deepseek-ai/deepseek-v4-flash 19 name: DeepSeek V4 Flash 20 reasoningEfforts: 21 off: 22 high: high 23agent-default-model: 24 provider: atlas 25 model: deepseek-ai/deepseek-v4-pro
Trzy linijki zasługują na zdanie każda, ponieważ popełnienie którejkolwiek zmienia twój rachunek:
compat.thinkingFormat: deepseekto linijka, której nikt nie pisze. dsh odgaduje dialekt myślenia z adresu URL endpointu. Jego własny plik README adaptera jest w tym dosadny: adres URL prywatnej bramy nic nie mówi, więc nierozpoznany endpoint jest adresowany „tak, jakby był samym OpenAI". Twoja brama w dialekcie DeepSeek jest następnie obsługiwana w dialekcie OpenAI. Ten klucz istnieje tylko podapi: openai-completions.- Nadpisz
defaultContextWindow. Domyślne wartości na poziomie trasy to 262 144 kontekst i 32 768 maksymalnych tokenów. Ręczne zadeklarowanie modeli V4 bez dotknięcia tych wartości oznacza, że po cichu odrzucasz 75% okna 1 048 576. agent-default-modelprzyjmujeproviderimodeljako dwa osobne klucze. Napisaniemodel: atlas/deepseek-ai/deepseek-v4-projako jednego ciągu wygląda rozsądnie i nic nie robi. OtrzymujeszMISSING_CREDENTIAL: no API key for provider route "deepseek-official", i zaczynasz szukać problemu z kluczem, którego nie masz.
Zauważ, że apiKeyEnv to odniesienie do poświadczeń, a nie tajemnica. Żaden klucz nie trafia do tego pliku.
Krok 4: Skieruj Hermesa na ten sam endpoint
Ścieżka kreatora to hermes model, a następnie wybierz „Custom endpoint". Ścieżka skryptowa to pięć poleceń:
plaintext1hermes config set model.provider custom 2hermes config set model.default deepseek-ai/deepseek-v4-pro 3hermes config set model.base_url https://api.atlascloud.ai/v1 4hermes config set model.api_key "$ATLAS_API_KEY" 5hermes config set model.context_length 1048576
Co zapisuje ~/.hermes/config.yaml:
plaintext1model: 2 provider: custom 3 default: deepseek-ai/deepseek-v4-pro 4 base_url: https://api.atlascloud.ai/v1 5 api_key: apikey-... 6 context_length: 1048576
provider: custom to tutaj pełnoprawny dostawca, a nie alias, a bazowy URL musi kończyć się na /v1, ponieważ Hermes sam dodaje /chat/completions (dokumentacja Hermes Agent, Konfiguracja modeli, 2026).
Nie pomiń tej linijki api_key. Dokumentacja mówi, że klucz jest przejmowany z OPENAI_API_KEY, a w moim uruchomieniu wyeksportowanie tej zmiennej nie wystarczyło: Hermes wysłał żądanie bez poprawnego uwierzytelnienia, a Atlas odpowiedział HTTP 401: {"code":401,"msg":"unauthorized"}. Jawne ustawienie model.api_key naprawiło to przy następnej próbie, w 8,5 sekundy.
Krok 5: Uruchom rundę 1 na obu
Najpierw wyczyść katalog umiejętności Hermesa (~/.hermes/skills). Istniejąca umiejętność czyni rundę 1 nieuczciwą, a runda 2 to miejsce, gdzie chcesz obserwować, jak umiejętność jest tworzona, a następnie ponownie używana.
Następnie podaj obu powłokom to, bajt po bajcie:
plaintext1Create a single self-contained file game.html: a Breakout clone with paddle, 5 rows of bricks, 2a live score counter, and a P key that pauses. No external libraries, no CDN, no build step. 3Then append an inline <script id="selftest"> block that asserts three physics invariants 4(ball reflects on paddle hit, score increments exactly once per brick, ball never leaves the canvas) 5and prints PASS/FAIL to the console. Run it headlessly, fix anything that fails, and stop only 6when all three asserts print PASS. Report the number of tool calls you used.
Ustawienia: świeży pusty katalog na każdą powłokę, rozumowanie włączone, maksymalne wyjście co najmniej 32 768 i nic innego nie uruchomionego na komputerze, aby liczby czasu rzeczywistego miały znaczenie.
plaintext1# dsh, sesja jednorazowa z zapisem 2DSH_HOME=~/.dsh dsh --profile headless "$(cat prompt-r1.txt)" 3 4# Hermes, jednorazowo z raportem użycia czytelnym maszynowo 5hermes -z "$(cat prompt-r1.txt)" --yolo --usage-file hermes-r1-usage.json
Dwie rzeczy cię tutaj zaskoczą.
Po pierwsze, hermes -z nie wypisuje absolutnie nic, dopóki nie skończy. Żadnego banera, żadnego spinnera, żadnych podglądów narzędzi. Mój milczał przez 13 minut i wyglądał na zawieszonego; nie był, tylko przedzierał się przez 38 wywołań API. Sprawdź ps w poszukiwaniu podprocesu, jeśli potrzebujesz otuchy.
Po drugie, Hermes zignorował mój katalog roboczy i zapisał game.html w $HOME. Jeśli chcesz plik w miejscu, z którego uruchomiłeś, przekaż --no-restore-cwd lub --in DIR. Straciłem rundę przez to.
dsh tymczasem skończył w 121 sekund, a jego interfejs WWW odczyta tę samą sesję:

Interfejs WWW DeepSeek Harness pokazujący ukończoną sesję Breakout, trzy asercje PASS, 9 kroków i 133K tokenów wejściowych na DeepSeek V4 Pro
Interfejs WWW dsh na 127.0.0.1:3080. Zwróć uwagę na pasek stanu: 9 kroków, trafienie cache 89%, wejście 133K tokenów, a selektor modeli odczytujący DeepSeek V4 Pro z konfiguracji z kroku 3.
--usage-file po stronie Hermesa jest naprawdę przydatne i niedoceniane: zapisuje tokeny wejściowe, wyjściowe, odczyty z cache, tokeny rozumowania, api_calls i szacowany koszt do JSON, i zapisuje ten plik nawet wtedy, gdy uruchomienie się nie powiedzie.
dsh nie ma równoważnej flagi, ale nie potrzebuje jej. Jego dziennik sesji dołączający zawiera wszystko, z jedną pułapką. Dziennik w $DSH_HOME/sessions/<encoded-cwd>/session-<uuid>/session.jsonl.zstd to strumień zstd wieloramkowy, jedna ramka na opróżnienie. zlib.zstdDecompressSync(buf) zwraca tylko pierwszą ramkę, więc 150KB dziennika dekoduje się do kilkuset bajtów i wygląda na pusty. Rozdziel na magicznych bajtach samodzielnie:
plaintext1const MAGIC = [0x28, 0xb5, 0x2f, 0xfd], offs = []; 2for (let i = 0; i < buf.length - 4; i++) 3 if (MAGIC.every((m, j) => buf[i + j] === m)) offs.push(i); 4const text = offs 5 .map((o, k) => zlib.zstdDecompressSync(buf.subarray(o, offs[k + 1] ?? buf.length)).toString()) 6 .join('');
Użycie znajduje się na zdarzeniach assistant/chunk, gdzie data.chunk.type === 'usage', jeden poziom głębiej, niż byś się spodziewał (data.chunk.usage.inputTokens). Wywołania narzędzi pochodzą z bloków treści assistant/message typu tool-call. A request/header.data.header.config pokazuje model i maxTokens, które faktycznie poszły na łącze, co jest sposobem na udowodnienie, że konfiguracja z kroku 3 zadziałała, zamiast mieć nadzieję.
Krok 6: Runda 2, prośba o zmianę
Ten sam katalog, game.html już tam z rundy 1. Teraz poproś obie o zmianę:
plaintext1Add a falling power-up: when a brick in the top row breaks, drop a token that widens the paddle 2for 10 seconds. Keep all three selftest asserts passing and add a fourth assert for the power-up 3timer. Same file, no libraries.
To jest runda, która oddziela dwa projekty. Hermes zapisuje umiejętności po złożonych zadaniach i utrzymuje trójwarstwową pamięć, więc runda 2 to miejsce, w którym umiejętność z rundy 1 albo się opłaca, albo nie. dsh nie ma żadnej długoterminowej pamięci, ale ma dołączany dziennik sesji, który możesz rozwidlić i odtworzyć od połowy uruchomienia, zamiast zaczynać od nowa.
Bądź ze sobą szczery co do budżetu, zanim to zaczniesz. Moja runda 2 zmarła po 11 wywołaniach narzędzi na dziennym limicie wydatków, dlatego powyższa tabela ma dwa puste wiersze zamiast dwóch wymyślonych. Własny panel Hermesa pokazuje dlaczego:

Strona sesji panelu Hermes Agent z listą uruchomienia Breakout przy 76 wiadomościach na deepseek-v4-pro
Hermes v0.20.4 odczytujący własne sesje. Ukończone uruchomienie Breakout to 76 wiadomości, wszystkie na deepseek-v4-pro przez endpoint Atlas.
Krok 7: Odczytaj rachunek
Dwie liczby na uruchomienie, z własnego dziennika powłoki, nigdy z podsumowania agenta:
plaintext1# Hermes 2jq '{input_tokens, output_tokens, cache_read_tokens, api_calls}' hermes-r1-usage.json 3 4# dsh: zagreguj zdekodowany dziennik sesji 5node dsh-stats.js "$DSH_HOME/sessions/<encoded-cwd>"
Następnie sprawdź krzyżowo ze stroną użycia swojego dostawcy. Gdy dziennik powłoki i dostawca są w sprzeczności, zaufaj dostawcy: to jest liczba, którą płacisz.
Warto odnotować, że własny pasek stanu dsh zgadzał się z moim parserem dziennika co do zaokrągleń (133K tokenów wejściowych, 89% trafień cache wobec moich wyliczonych 132 600 i 88,8%). Narzędzia są uczciwe. Angielskie podsumowania agentów nie są.
Poza DeepSeek Harness vs Hermes: Uruchom oba jako mózg i ramiona
Oto odpowiedź, której nikt w debacie „który wybrać" nie udziela: nie musisz wybierać.
Oba projekty zawodzą w przeciwnych kierunkach, co czyni je niezwykle dobrymi partnerami.
| Możliwość | DeepSeek Harness (dsh) | Hermes Agent |
|---|---|---|
| Uruchomienia kodowania | Mocne, to jest docelowy projekt | Ukończył to samo zadanie w 6,4x czasu |
| Pamięć długoterminowa | Brak | Trójwarstwowa, zarządzana przez agenta |
| Umiejętności samodoskonalące | Brak | Tak, zgodne z agentskills.io |
| Rozwidlenie / odtworzenie dziennika sesji | Tak, dołączany JSONL | Wyszukiwanie sesji z podsumowaniem LLM |
| Wbudowany cron | Nie | Tak, harmonogramy w języku naturalnym |
| Powierzchnie czatowe | Nie | Telegram, Discord, Slack, WhatsApp, Signal |
| Interfejs | Web UI, TUI, headless | TUI, CLI, panel, gateway |
| Środowisko uruchomieniowe | Node 22.19+/24+ | Python 3.11 (w pakiecie) |
| Dojrzałość | Podgląd programisty 0.1, zmiany łamiące zgodność | Wydany luty 2026, v0.20.4 |
| Licencja / gwiazdki | MIT, 176,5k | MIT, 233,6k |
Liczby gwiazdek odczytane z obu repozytoriów 2026-08-21 (deepseek-ai/deepseek-harness przy 176,5k gwiazdek i 19,2k forków, NousResearch/hermes-agent przy 233,6k gwiazdek i 46,8k forków). Obserwuj trajektorię, a nie sumy: dsh miało 144 361 gwiazdek, gdy sprawdzałem 2026-08-17, więc dodało około 32 000 w ciągu czterech dni.
Trzy sposoby ich połączenia:
- Mózg i ramiona. Hermes na V4 Pro trzyma pamięć, harmonogram i wątek Telegramu. Deleguje rzeczywiste kodowanie do dsh na taniej warstwie. Jeden klucz pokrywa oba, więc nie zarządzasz dwoma relacjami rozliczeniowymi.
- Tania warstwa dla pętli, droga warstwa dla decyzji. Cykliczna praca cron działa na
deepseek-v3.2lub DeepSeek V4 Flash; trudne wywołanie eskalowane do Pro. - Bezgłowo oba. dsh
--profile headlessi Hermes-zoba przyjmują instrukcję i wypisują jedną odpowiedź, więc każdy nadaje się do skryptu powłoki lub kroku CI bez TUI.
Uczciwe ostrzeżenie o prawdziwych słabościach, ponieważ porównanie, które wymienia tylko zalety, jest reklamą. dsh to podgląd programisty 0.1 i mówi o tym w swoim własnym interfejsie: będzie się psuć między wersjami, nie ma pamięci, nie ma natywnego kanału przesyłania wiadomości i zaniża własne wywołania narzędzi. Hermes jest bardziej dojrzałym projektem o szerokim marginesie, ale jest cięższy na token o czynnik 8, milczał przez 13 minut nad zadaniem, które dsh ukończyło w 2, i zapisał mój plik wyjściowy w niewłaściwym katalogu.
Co DeepSeek Harness vs Hermes faktycznie kosztuje na zadanie
Teraz arytmetyka, z otwartymi założeniami.
Atlas publikuje jedną stawkę wejściową dla V4 Pro (1,68 $ za 1M) bez osobnej stawki za trafienie cache na stronie modelu. Dlatego wyceniam każdy token promptu według pełnej stawki wejściowej, włączając odczyty z cache. To konserwatywny sufit, a nie domysł udający pomiar.
Przykład obliczeniowy, dsh runda 1:
- Prompt: 14 840 świeżych + 117 760 z cache = 132 600 tokenów. Przy 1,68 $/1M to 0,2228 $.
- Wynik: 5 231 tokenów. Przy 3,38 $/1M to 0,0177 $.
- Razem: 0,2404 $ za zadanie.
Ta sama metoda dla rundy 1 Hermesa: 1 111 573 tokenów promptu to 1,8674 $, plus 19 317 tokenów wyjściowych po 0,0653 $, co daje 1,9327 $. Własny --usage-file Hermesa oszacował 0,2817 $ za to uruchomienie, co implikuje, że zakłada stawkę za wejście z cache blisko 0,125 $ za 1M. Jeśli twój dostawca rzeczywiście tak mocno dyskontuje odczyty z cache, obie liczby poniżej spadają razem, a stosunek między nimi ledwo się zmienia.
| Scenariusz | Na zadanie na V4 Pro | Na zadanie na V4 Flash | 20 zadań/dzień, 30 dni (Pro) |
|---|---|---|---|
| dsh runda 1 | 0,24 $ | 0,02 $ | 144,27 $ |
| Hermes runda 1 | 1,93 $ | 0,16 $ | 1 159,64 $ |
| Runda 2, dowolna powłoka | nieukończone | nieukończone | nieukończone |
Z tej tabeli rzucają się w oczy dwie rzeczy.
Wybór powłoki jest wart 8x. Ten sam model, to samo zadanie, ten sam wynik, a jedna powłoka kosztuje osiem razy więcej niż druga. To nie jest różnica zaokrągleń, którą optymalizujesz później.
Warstwa modelu jest warta dodatkowe 12x. Dlatego podział na mózg i ramiona nie jest chwytem: dsh na Flash ląduje na dwóch centach za zadanie, a Hermes na Pro na prawie dwóch dolarach za identyczną grę Breakout.
A najtańszą optymalizacją ze wszystkich jest nadal ta z kroku 3. Trasa dsh pozostawiona na domyślnym 262 144 wykonuje więcej pracy kompresji w większej liczbie kroków, aby zmieścić to samo zadanie, i płacisz za każdy z nich.
To jest prawdziwa odpowiedź na DeepSeek Harness vs Hermes: zmierz własną powłokę, zanim pójdziesz na zakupy po tańszy model.
FAQ DeepSeek Harness vs Hermes
Czy Hermes Agent i DeepSeek Harness mogą używać tego samego modelu i klucza API?
Tak, i to jest jedyny uczciwy sposób ich porównania. Oba komunikują się z punktami końcowymi zgodnymi z OpenAI. dsh potrzebuje trasy dostawcy llm-pi-ai z api: openai-completions plus baseURL; Hermes potrzebuje provider: custom plus base_url kończącego się na /v1. Jeden klucz, obie powłoki, obie warstwy cenowe. Pełne konfiguracje są w krokach 3 i 4.
Czy DeepSeek Harness jest lepszy od Hermesa do kodowania?
W tym teście zdecydowanie tak: 121 sekund wobec 780, 8 wywołań narzędzi wobec 35 i jedna ósma wydatku na tokeny, przy czym obie zaliczyły wszystkie trzy autotesty. Ale „lepszy do kodowania" nie oznacza „lepszy". Jeśli potrzebujesz zaplanowanego zadania, które raportuje do Telegrama każdego ranka i pamięta, czego nauczyło się w zeszłym tygodniu, dsh nic z tego nie ma, a Hermes ma to wszystko.
Czy DeepSeek Harness i Hermes są darmowe i open source?
Oba są na licencji MIT i darmowe do pobrania. To, za co płacisz, to tokeny, i jak pokazuje powyższa tabela, nie jest to błąd zaokrąglenia. Warto powtórzyć, że dsh jest wyraźnie podglądem programisty w wersji 0.1 i ostrzega przed zmianami łamiącymi zgodność we własnym interfejsie, więc przypnij swoją wersję, jeśli ma trafić gdziekolwiek blisko produkcji.
Dlaczego to samo zadanie kosztuje więcej w jednej powłoce?
Cztery powody, mniej więcej w kolejności wielkości:
- Ponowne odczytywanie rozmowy. Tokeny promptu z cache stanowiły 88,8% sumy dsh i 95,5% Hermesa. Każdy dodatkowy krok ponownie wysyła wszystko, co było przed nim.
- Prompt systemowy i schematy narzędzi. Zmierzone powyżej: 10 898 vs 13 892 tokenów przed rozpoczęciem jakiejkolwiek pracy.
- Liczba kroków. 8 wywołań narzędzi i 9 kroków wobec 35 wywołań narzędzi w 38 wywołaniach API.
- Ograniczone okno. dsh cofające się do 262 144 zamiast 1 048 576 wymusza dodatkową pracę kompresji przy długich zadaniach.
Czy mogę uruchomić DeepSeek Harness i Hermes w tym samym czasie?
Tak. Dzielą tylko twój klucz API: różne środowiska wykonawcze, różne katalogi konfiguracyjne, różne magazyny sesji, różne porty (domyślnie 3080 i 9119). Typowy wzorzec to Hermes jako zawsze włączony mózg na drogiej warstwie i dsh jako ramiona kodujące na taniej warstwie.
Czy DeepSeek Harness działa tylko z własnym API DeepSeek?
Nie, i to jest najczęstsze błędne przekonanie na jego temat. Każda brama zgodna z OpenAI działa przez api: openai-completions i baseURL. Pamiętaj tylko o compat.thinkingFormat: deepseek, ponieważ dsh wnioskuje dialekt myślenia z adresu URL, a adres URL bramy innej firmy nic mu nie mówi.






