Wygenerowana karta tytułowa z napisem „Gdzie Jev 1.13 zawodzi” pod nagłówkiem „TypeSafe System One” i podtytułem „Własna lista producenta tego, czego model nie potrafi”, z trzema ułożonymi w stos kartami o treści „Bez liczenia, bez arytmetyki na datach, bez generowania”, „Pytania wyboru mają limit 255 opcji” i „Budżet żądania 64K – 32K z tego na stan”, oraz stopką „Można wywołać jako typesafe/jev-1.13”.
Engineering & Research

Gdzie Jev 1.13 zawodzi: własna lista ograniczeń TypeSafe

Autor

Elias Hawthorne

Data publikacji

Najnowsze modele · 20Zobacz wszystkie modele →
Benchmarki: Artificial Analysis · aktualizowane codziennie
Powrót do wszystkich wpisów

Jev 1.13 (typesafe/jev-1.13) został wydany 2026-09-15, co oznacza, że wypada dwa tygodnie poza ostatnie siedem dni, więc jego premiera nie jest tematem. Wydarzenie z datą to 2026-09-24: tego dnia OrcaRouter dodał typesafe/jev-1.13 do swojego katalogu i otworzył dla niego kartę modelu — pierwsze wsparcie dla serwowania Jev w bramie innej firmy, po dwóch tygodniach, w których jedynym sposobem na wywołanie go był własny endpoint TypeSafe. To ma tu znaczenie z jednego konkretnego powodu. Jev jest nietypowy, ponieważ jego dostawca publikuje listę sposobów, w jakie zawodzi, a lista, którą można tylko czytać, jest znacznie łatwiejsza do pominięcia niż model, który można faktycznie wywołać.

Ta strona to ta lista, ograniczona do tego, co mówi sam TypeSafe, plus limity operacyjne i rachunek.

TypeSafe publikuje własną listę nierówności

A screenshot of the TypeSafe documentation index at docs.typesafe.ai showing the Reference section with the page "Model jaggedness" and the entry "Jev 1.13", beside the Models, API reference, Agent skill, Legal, Client SDKs and Cookbooks sections.

docs.typesafe.ai zawiera stronę zatytułowaną Nierówności w Jev 1.13. Dotyczy ona wyraźnie jev-1.13, zawiera datę przeglądu 2026-09-17 i rozpoczyna się od własnego ujęcia dostawcy: „Jev nie jest doskonały. Oto kilka szorstkich krawędzi, których jesteśmy świadomi w jev-1.13. Wiele z nich zostanie poprawionych w późniejszych wersjach”. Dalej następuje dziewięć nazwanych trybów, każdy z konkretnym przypadkiem i rozwiązaniem „Zamiast tego:”. Nic poniżej nie zostało wywnioskowane i nic nie zostało złagodzone — sformułowania należą do TypeSafe, a tam, gdzie firma podaje własny przykład, liczby w nim są jej.

Dosłowne odczytanie: odpowiada na pytanie, które napisałeś.

Słowa określające zakres, przeczenia i warunki domyślne są odczytywane dosłownie. Na pytanie odpowiada się na podstawie słów zawartych w instrukcji, „podczas gdy człowiek mógłby odczytać intencję stojącą za instrukcjami”.

Diagnostyka od dostawcy jest użyteczną częścią: gdy patrzysz na błędną odpowiedź i przyłapujesz się na wyjaśnianiu, co tak naprawdę miałeś na myśli, to wyjaśnienie jest brakującą połową instrukcji. Środki zaradcze to podanie dokładnego warunku w instrukcjach, umieszczenie przypadków brzegowych w kryteriach, a tam, gdzie interpretacja jest naprawdę nieunikniona, rozbicie pytania na dwa dosłowne pytania i połączenie ich w kodzie.

Matematyka i liczby: to nie jest kalkulator

TypeSafe mówi wprost, aby implementować logikę matematyczną w kodzie. Pod tym kryją się trzy konkretne błędy:

• Zliczanie jest zawodne. Dotyczy to znaków w słowie, wystąpień terminu we fragmencie tekstu oraz elementów na długiej liście. „Model rozpoznaje kształt odpowiedzi, a nie prowadzi dokładnego rachunku, a błąd rośnie wraz z rozmiarem tego, co jest zliczane”. Własny test dostawcy pozwalający zdecydować, czy w ogóle pytać: jeśli wyrażenie regularne lub parser potrafi znaleźć jednostkę, zliczanie należy do kodu, a model nic nie wnosi.

• Reprezentacje liczbowe wypadają słabiej niż semantyczne. Pytania o kolory z użyciem wartości szesnastkowych są gorsze niż te same pytania z użyciem angielskich nazw kolorów; mając trójki RGB lub zapis szesnastkowy, Jev nie potrafi wiarygodnie ocenić, czy dwie wartości są blisko siebie. Ta sama luka ujawnia się przy kodzie niskopoziomowym — asemblerze lub instrukcjach zakodowanych binarnie — w zestawieniu z językami wysokiego poziomu. Konwertuj lub przypisuj do przedziałów w kodzie, a model zachowaj do tej części, która naprawdę jest osądem.

• Wyniki punktowe nie zawierają dokładnych wartości liczbowych. Dostawca stwierdza, że poziomy punktowe Jev są słabe pod względem kalibracji numerycznej. Oczekiwanie można wykorzystać do sprawdzenia, czy coś przekracza próg; nie można go użyć do odtworzenia liczby poprzez interpolację między dwoma najbliższymi poziomami. To stanowcze „nie” dla całej klasy nadużyć — odczytywania wyniku punktowego jako pomiaru.

Data i godzina: daty są odczytywane jako tekst, a nie jako ilości

Ustalanie kolejności dwóch dat, mierzenie odległości między nimi lub rozstrzyganie, czy jedna z nich mieści się w oknie czasowym, jest zawodne i pogarsza się jeszcze bardziej w przypadku mieszanych formatów, odwołań względnych oraz granic domenowych, takich jak kwartały, okna rozliczeniowe i okresy naliczania.

Zalecany podział jest czysty. Ekstrakcja jest osądem, więc powierz ją modelowi. Każdy składnik daty to mały zamknięty zbiór — dwanaście miesięcy, trzydzieści jeden możliwych dni, ograniczony zakres lat — co zamienia ekstrakcję w wybór spośród wyliczonych opcji, a nie swobodne parsowanie, i daje ci miejsce na jawne „nie podano”, dzięki czemu brakującą część można zgłosić, a nie zgadywać. Kod składa części i odpowiada za wszystko po tym, w tym kolejność, czas trwania, przesunięcie i dzień tygodnia.

Pośredniość: podwójne przeczenia i dodatkowe przeskoki kosztują dokładność

Na instrukcje zawierające podwójne przeczenia lub wielowarstwową pośredniość odpowiada się mniej niezawodnie. Pytanie o właściwość właściwości albo takie, które wymaga kilku przeskoków rozumowania, obniża dokładność. Środkiem zaradczym jest formułowanie instrukcji możliwie bezpośrednio oraz nazywanie istotnych części stanu, zamiast ich opisywania.

Duży stan pełen nieistotnych szczegółów kosztuje dokładność

Dokładność spada, gdy stan rośnie wraz z treścią niezwiązaną z decyzją. Niepowiązany szczegół działa jak czynnik rozpraszający, a duży stan utrudnia ustalenie, która część danych wejściowych doprowadziła do błędnej odpowiedzi. Samo przypomnienie TypeSafe w nocie końcowej brzmi bez ogródek: „Jev cierpi na rozpad kontekstu, więc niepowiązany materiał w stanie kosztuje cię dokładność.”

Najpierw pobierz i filtruj w kodzie, a wysyłaj tylko te pola, których potrzebuje pytanie. Tam, gdzie filtrowanie przed żądaniem nie jest możliwe, dostawca sugeruje użycie noul do filtrowania pod kątem istotności, a następnie ocenę tych, które przetrwały.

Wroga treść w stanie zmienia odpowiedź.

Stan to dane, a jev-1.13 domyślnie nie traktuje go jako wrogiego. Wstrzyknięta instrukcja, celowo wprowadzające w błąd ujęcie lub tekst, który opowiada się za własną klasyfikacją, mogą zmienić wynik. To jedyny tryb, w którym dostawca wprost przedstawia poprawkę jako przyszłe prace — „Oczekujemy, że poprawimy to w przyszłości” — a tymczasowa rada jest taka, by jasno określić kryteria i dokładnie przetestować integrację, zanim postawi się ją przed wieloma użytkownikami.

Sprzeczne instrukcje i kryteria mylą go.

Kiedy instrukcje i kryteria wymagają różnych rzeczy, model może się zdezorientować. Przykład TypeSafe to noul, w którym true mapuje się na „no”, a false na „yes”, co daje gorsze wyniki niż to samo pytanie sformułowane spójnie. Instrukcja mówi, aby traktować kryteria jako rozszerzenie instrukcji i dopasować oba do siebie w języku, który przeciętny człowiek mógłby przeczytać i zrozumieć.

Niezmienniki strukturalne, których nie gwarantuje

To tryb, który najprawdopodobniej zepsuje system zbudowany na założeniu, którego nikt nie zapisał. Jev jest niezwykle spójny w zwykłym sensie — semantycznie podobne dane wejściowe dają ilościowo podobne dane wyjściowe — ale nie ma gwarancji, że zachodzą tożsamości strukturalne, których można by oczekiwać. Dostawca publikuje dwa rozwiązane przypadki.

Jedno pytanie, dwa typy pytań. „Czy klient prosi o zwrot pieniędzy?” zadane jako noul i zadane jako wybór tak/nie, w zgłoszeniu „Nie jestem zadowolony z dopasowania. Jakie mam tutaj opcje?” zwraca noul 0,22 oraz wybór: tak 0,01, nie 0,99, pewność 0,97. To odpowiedzi na to samo pytanie.

• Pytanie i jego negacja. „Czy klient prosi o zwrot pieniędzy?” i „Czy klient prosi o coś innego niż zwrot pieniędzy?”, zadane jako dwa nouls w zgłoszeniu „Pobrano mi opłatę dwa razy za to samo zamówienie. Czy ktoś może to sprawdzić?”, zwracają 0,72 i 0,47. Sumują się do 1,19.

Środki zaradcze mają charakter operacyjny, a nie retoryczny: nie polegaj na oczekiwanej niezmienności strukturalnej, nie przenoś na wybór progu dostrojonego na noul i nie wymagaj od modelu tożsamości arytmetycznych między odrębnymi pytaniami. Powód jest taki, że wybór jest względny — rozstrzyga, którą opcję — podczas gdy każdy noul jest absolutny i może wypaść nisko dla nich wszystkich.

Generacja: nie została wytrenowana do pisania.

jev-1.13 nie jest trenowany do generowania tekstu. Możesz wymusić wyjście, łącząc wybory w łańcuch, a TypeSafe mówi wprost, że to „nie będzie działać dobrze i będzie bardzo wolne”. W przypadku ekstrakcji wskazówka jest taka, aby wyciągnąć wartości kandydujące za pomocą wyrażenia regularnego lub modelu generatywnego i pozwolić Jevowi wybrać właściwą, lub — gdy przestrzeń odpowiedzi jest ograniczona — przekształcić ekstrakcję w wybór spośród opcji, zamiast pytać o samą wartość.

Limit 255 opcji w pytaniach wyboru

A generated scoreboard titled "Jev 1.13 - seven days on OrcaRouter" listing six cards: "Median latency: 151 ms", "p95 latency: 247 ms", "Output throughput: 348 tokens/second", "Error rate over the window: 0.49%", "Tokens served over the window: 76.2 million" and "Daily median, last seven days: 175, 170, 163, 161, 170, 147, 143 ms", with a footer reading "Serving figures measured by OrcaRouter, seven days ending 2026-09-30. Limits per docs.typesafe.ai/models.md."

Pytanie o wybór: integracja z Jev nie jest postrzępioną krawędzią, lecz kształtem produktu. Warto je oddzielić, ponieważ żadna ilość pracy nad promptem ich nie zmienia:

• Brak generowania tekstu. Zwraca decyzję, a nie prozę. To jest zamierzone, a nie wada.

• Brak rozmowy. Jev to ustrukturyzowany model decyzyjny, a nie model czatu. Wysyłasz stan i zestaw nazwanych pytań; zwraca jedną ustrukturyzowaną odpowiedź na każde pytanie. Nie ma naprzemienności tur, wokół której trzeba by projektować.

• Brak wejścia multimodalnego. Wejście jest wyłącznie tekstowe — ciąg znaków, obiekt JSON lub tablica wartości tekstowych, bez obrazu, dźwięku ani wideo. Materiał nietekstowy musi zostać wstępnie przetworzony na tekst lub pola strukturalne, zanim stanie się częścią stanu.

• Odpowiedzi niestrumieniowe. Istnieje jedna ustrukturyzowana odpowiedź i brak trybu strumieniowania. Powód, dla którego ten przypadek nie ma znaczenia, jest tym samym powodem, dla którego warto go przytoczyć: nie ma nic do strumieniowania. Typowana decyzja — wartość logiczna z prawdopodobieństwem, jedna etykieta ze zbioru albo poziom na skali — nie ma częściowej formy, którą warto ujawniać token po tokenie.

• Angielski jest językiem podstawowym. Inne języki, w tym pisma CJK, są obsługiwane, ale nie równie dobrze. TypeSafe zaleca przetestowanie własnych treści przed poleganiem na Jev w przypadku zadań nieangielskich oraz opieranie się na poziomie pewności podczas routingu.

Limit 255 opcji w pytaniach wyboru

Pytanie wyboru wybiera jedną z maksymalnie 255 oznaczonych opcji, a ten limit jest twardy. TypeSafe wyjaśnia również, dlaczego duże zestawy opcji działają wolniej, w słowach samego dostawcy: „W przypadku wyborów o większej liczności stosujemy dwuetapowy system: niezależne ocenianie, a następnie dokonanie wyraźnego wyboru, stąd sporadyczne spowolnienie”. Zatem koszt opóźnienia dużego zestawu opcji jest strukturalny, a nie przypadkowy, i to dostawca mówi ci, skąd on wynika.

Nasze własne okno serwowania dla typesafe/jev-1.13, odczytane z karty modelu w dniu 2026-09-30, pokazuje, jak wygląda to w praktyce w ciągu siedmiu dni naszego własnego ruchu: mediana 151 ms i p95 247 ms, 348 tokenów wyjściowych na sekundę oraz wskaźnik błędów 0,49% w przypadku 76,2 mln obsłużonych tokenów. Dzienne mediany mieszczą się w wąskim przedziale — 175, 170, 163, 161, 170, 147 i 143 ms od 2026-09-24 do 2026-09-30 — ale dzienne p95 dla 2026-09-28 wynosi 2 448 ms, czyli około dziesięć razy więcej niż w dniach po obu jego stronach. Nie możemy przypisać tego jednodniowego odstępstwa do kardynalności wyborów i nie zamierzamy tego robić; uczciwa interpretacja jest taka, że ogon istnieje, a przepływ pracy wrażliwy na opóźnienia powinien być projektowany z myślą o ogonie, a nie o medianie.

Rachunek wejściowy to cały rachunek

Wyjście jest rozliczane po zerowej stawce w Jev, co bywa odczytywane jako „Jev jest darmowy”. Tak nie jest, ponieważ wejście jest mierzone, a duży stan nie jest darmowy tylko dlatego, że po stronie wyjścia nie ma nic. Cena dostawcy wynosi 0,042 USD za milion tokenów wejściowych — ta sama liczba, którą TypeSafe podaje jako 42 USD za miliard — a OrcaRouter przekazuje cenę katalogową dostawcy bez marży (0%), więc obniżka ceny dostawcy trafia tutaj tego samego dnia.

Oto, co to robi z realistycznym kształtem, przy użyciu własnej stawki dostawcy:

• Niewielkie żądanie. Zgłoszenie do wsparcia o długości 1200 tokenów plus około 300 tokenów kryteriów oceny i pytań to 1500 tokenów wejściowych, co daje 0,000063 USD za wywołanie.

• Duże żądanie. Kontrakt na 55 000 tokenów plus pytania, które zwiększają żądanie do 60 000 tokenów, to 40 razy więcej tokenów, więc 0,0025 USD za wywołanie — wciąż niewielka kwota za wywołanie i 40 razy większa niż w pierwszym przypadku za tę samą jedną odpowiedź.

• Przy dużym wolumenie. 60 000 tokenów na wywołanie i 10 000 wywołań dziennie to 600 milionów tokenów wejściowych dziennie, czyli 0,6 miliarda, a więc 25,20 USD dziennie i około 756 USD w ciągu 30-dniowego miesiąca. Ta sama liczba wywołań w przypadku żądania o rozmiarze 1500 tokenów to 15 milionów tokenów dziennie: 0,63 USD dziennie, około 18,90 USD miesięcznie.

Odstęp między tymi dwiema ostatnimi liniami to nie sztuczka cenowa, lecz stan rozliczany zużyciowo. Dlatego właśnie porada dotycząca filtrowania w sekcji o degradacji kontekstu nie jest wyłącznie środkiem poprawiającym dokładność — przycinanie stanu to także jedyna dźwignia, która zmienia rachunek.

Opublikowane limity operacyjne, żeby nikt nie musiał zgadywać.

A screenshot of the OrcaRouter model page for TypeSafe Jev 1.13 showing the title "Jev 1.13" with the 65k context badge, the id typesafe/jev-1.13, the release date 2026-09-24, input text, a p50 latency of 151 ms, and the description "Served via POST /v1/systemone; non-streaming; up to ~64K input tokens; text in, structured JSON out."

Strona modeli TypeSafe publikuje konkretne liczby, więc planista nie musi ich wywnioskowywać:

• Przepustowość i szybkość. 100K tokenów na sekundę i 40 żądań na sekundę, zgodnie z docs.typesafe.ai/models.md. Żądanie przekraczające którykolwiek z tych limitów zwraca 429 Too Many Requests; klienckie zestawy SDK dostawcy domyślnie ponawiają próby z backoffem i respektują nagłówek retry-after, gdy odpowiedź go zawiera.

• Limity się zmieniają. Dostawca podaje, że limity szybkości są dostosowywane dynamicznie i „mogą ulec zmianie bez powiadomienia" w miarę uruchamiania nowych mocy, a wyższe limity są dostępne w planach niestandardowych i Enterprise. 100K/40 traktuj jako aktualną wartość, a nie zapis umowny.

• Budżet kontekstu. Budżet żądania wynosi około 64 000 tokenów łącznie dla połączonego stanu i wszystkich pytań — karta modelu podaje 65 536 — a strona modeli dostawcy osobno ogranicza stan plus pojedyncze najdłuższe pytanie do 32 000 tokenów. Ta druga liczba to budżet stanu, a nie mniejsza wersja pierwszego; obie są prawdziwe i żadna nie przeczy drugiej.

• Aliasy zmieniają się pod twoimi stopami. jev-latest i jev-preview wskazują dziś na jev-1.13.0, a dostawca informuje, że obecnie nie ma dostępnej kompilacji zapoznawczej. Alias zmienia się, gdy pojawia się nowe wydanie, więc jeśli dostroiłeś progi ufności względem konkretnej wersji, przypnij identyfikator wersji i aktualizuj według własnego harmonogramu.

Jak musi wyglądać Twój przypadek użycia

Przeczytana od deski do deski, własna lista dostawcy opisuje wąskie, użyteczne narzędzie. Jev pasuje, gdy osąd jest ograniczony, a arytmetyka nie jest zadaniem modelu: czy ten rekord jest zgodny z polityką, która z tych czterdziestu etykiet ma zastosowanie, jak to się prezentuje w pięciostopniowej skali — pytania zadawane o stan, który samodzielnie odfiltrowałeś, z dosłowną instrukcją i kryteriami, które są z nią zgodne, oraz z każdym zliczeniem, porównaniem i pomiarem daty wykonanymi w kodzie wokół niego.

To się nie nadaje, gdy zadanie wymaga liczenia, porządkowania lub arytmetyki na datach, gdy wymaga kilku przeskoków w rozumowaniu, gdy materiał wejściowy nie jest tekstem, gdy stan jest stogiem siana, a pytanie igłą, albo gdy cokolwiek dotyczące źródła jest wrogie. To nie są luki w prompcie; to miejsca, w których model nie działa, a TypeSafe jest podmiotem, który to mówi.

Jeszcze jedna rzecz warta poznania, zanim to podłączysz: szczera różnica w sposobie wywoływania Jev. W OrcaRouter katalog dociera do Jev przez dedykowany endpoint systemone, POST /v1/systemone, a nie przez format OpenAI chat-completions. To realna różnica w zapytaniu, które piszesz, i to właściwa wersja starszego twierdzenia, że Jev „mówi własnym formatem zapytań”. Wszystko inne jest takie samo jak w przypadku każdego innego modelu na koncie — jeden klucz do ponad 200 modeli, bez opłat za token od nas i automatyczne przełączanie awaryjne, jeśli trasa zawiedzie. TypeSafe usunął listę oczekujących 2026-09-21; strona główna dostawcy wciąż opisuje Jev jako we wczesnym dostępie, a jego własna strona z benchmarkami wciąż jest oznaczona jako oczekująca, więc jedyne dane dotyczące wydajności na tej stronie to liczby serwowania, które zmierzyliśmy sami, oraz twierdzenia samego dostawcy, oznaczone jako jego.