AIDive

Oswoiliśmy gadatliwość Opus 5, ale jedna wada została

AIDive · Opublikowano

Agenty do kodowaniaModele AI

600 upvote'ów wściekłości: dlaczego wszyscy mówią, że Opus 5 jest nieznośny

Prosisz Opus 5 o dwuwierszową poprawkę, a dostajesz rozprawę doktorską. Na subreddicie Claude Code wątek zatytułowany „Opus 5 is insufferable" przekroczył 600 upvote'ów i 178 komentarzy, a autor zarzuca modelowi, że mówi wymyślonym językiem, który nazywa „Unintelligiblish". A Reddit to jeszcze grzeczne miejsce: na X deweloper wrzucił sam zrzut ekranu z komentarzami do kodu generowanymi przez Opus 5 i zebrał 9700 polubień. Boris Cherny, twórca Claude Code, publicznie bronił modelu i dostał w odpowiedzi najwyżej ocenianą replikę: „this response is part of the problem", 2843 polubienia.

Gdzie Sygnał
r/ClaudeCode, „Opus 5 is insufferable" 600+ upvote'ów, 178 komentarzy
X, zrzut ekranu z komentarzami do kodu Opus 5 9700 polubień
X, odpowiedź na obronę Borisa Cherny'ego 2843 polubienia

Gdy skargi się piętrzyły, Anthropic po cichu opublikował przewodnik po promptowaniu dedykowany Opus 5, którego prawie nikt nie otworzył. Zrobiliśmy więc test, którego nikt nie robi: odtworzyć zachowania, które wszystkich doprowadzają do szału, zastosować przewodnik linijka po linijce i zmierzyć różnicę na tych samych zadaniach.

Co Opus 5 naprawdę zmienił: thinking, kontekst i pokrętło effort

Trzy zmiany wyjaśniają większość tego, czego doświadczają deweloperzy.

Thinking jest domyślnie włączony: model rozumuje w prywatnym bloku przed każdą odpowiedzią, a wyłączyć go można tylko przy effort high lub niżej. Okno kontekstu rośnie do miliona tokenów — zarówno jako wartość domyślna, jak i maksymalna. Trzecia zmiana jest tą kluczową dla skarg na rozwlekłość: effort — parametr decydujący, ile tokenów model wydaje na myślenie, wywoływanie narzędzi i pisanie odpowiedzi — staje się centralnym pokrętłem, z pięcioma poziomami i high jako domyślnym.

Effort Zachowanie
Low Grupuje wywołania narzędzi, bez wstępów bierze się do pracy, potwierdza jednym zdaniem
High (domyślny) Mnoży wywołania, tłumaczy plan przed dotknięciem czegokolwiek, szczegółowo komentuje zmiany
Extra high / Max Przegląda więcej plików, opancerza przypadki brzegowe; thinking nie da się już wyłączyć

Jeśli drugi wiersz brzmi dokładnie jak twoje sesje, to normalne: od pierwszego dnia działasz na domyślnej wartości. Effort nie jest pokrętłem rozwlekłości — i to właśnie to nieporozumienie wypełnia wątki na Reddicie.

Jeszcze jeden element kontekstu: Anthropic otwarcie twierdzi, że Opus 5 pisze dłuższe odpowiedzi niż poprzednie modele Opus i doprowadza zadania do końca, zamiast zostawiać zaślepki. Część tego, co przeżywasz jako błąd, to udokumentowany wybór projektowy — a udokumentowany wybór można przekonfigurować.

Cztery zachowania doprowadzające do szału, odtworzone na życzenie

Żadnego z nich nie trzeba było szukać.

Rozwlekłość. Poprosiliśmy Opus 5 o wyjaśnienie jednej funkcji — pytanie, którego odpowiedź mieści się w dwóch zdaniach — a dostaliśmy sekcje, podnagłówki i ostrzeżenia w tonie raportu z audytu. Najwyżej oceniany komentarz w wątku opisuje dokładnie to: napuszone zdania w stylu „właśnie odkryliśmy coś, co zmienia wszystko", a po nich dziesięć minut poleceń powłoki.

Przeinżynierowanie. Jeden z użytkowników opowiada o pliku decyzji liczącym 7000 linii; poproszony o uporządkowanie go, Opus 5 wyciął 1200 linii, a potem dopisał 600 nowych, by udokumentować usunięcia. Odtworzyliśmy ten wzorzec na małej funkcjonalności: nasza instancja dodała krok weryfikacji, o który nikt nie prosił, a potem napisała dwudziestolinijkowe docstringi nad pięciolinijkowymi funkcjami.

Rozrost zakresu. Prosisz o X, model uznaje, że prawdziwym tematem jest Y, i tłumaczy dlaczego w ośmiu akapitach.

Zakopana zła wiadomość. Jeden z komentujących opisuje ścianę tekstu o tym, że wszystko poszło świetnie, z gwiazdką w trzech czwartych drogi, przyznającą, że coś się zepsuło. Też to przeżyliśmy: nasza instancja ogłosiła udaną migrację, a linijka przyznająca, że testy integracyjne wciąż wymagają naprawy, znalazła się w siódmym akapicie.

Wściekłość jest prawdziwa i odtwarza się na życzenie. Pozostaje pytanie, czy da się to wyregulować.

Oficjalny przewodnik do oswajania, którego prawie nikt nie otworzył

Przewodnik nazywa się Prompting Claude Opus 5, leży w dokumentacji Anthropic i odpowiada na wątek z Reddita punkt po punkcie. Jego najważniejsze zdanie mieści się w jednej linijce: effort steruje tym, ile model myśli, a nie tym, ile mówi. Obniżenie effortu zmniejsza objętość rozumowania, ale nie skraca w sposób pewny widocznej odpowiedzi — więc wszyscy, którzy obniżają effort, żeby uciszyć model, ciągną za niewłaściwą dźwignię.

Co do długości przewodnik jest jednoznaczny: prosisz o nią zwykłymi słowami, instrukcją zwięzłości w system prompcie. I mówi coś, czego po Anthropic nikt się nie spodziewa: musisz usuwać instrukcje ze swoich promptów. Jeśli w twoim pliku instrukcji jest „zweryfikuj swoją pracę przed odpowiedzią", skasuj tę linijkę: Opus 5 i tak sam się sprawdza, a takie zdania uruchamiają dodatkowe przebiegi weryfikacyjne, czyli tokeny spalone na darmo. Boris Cherny podsumował to jedną linijką: Opus 5 potrzebuje mniej promptowania, nie więcej.

Reszta przewodnika metodycznie zajmuje się pozostałymi zarzutami — sekcja o narracji agenta, sekcja o długości generowanych plików, sekcja o ramowaniu zakresu, sekcja o subagentach, sekcja o autokorekcie — a każda z nich podaje dokładny blok promptu do skopiowania, a nie mglistą radę.

Effort sweep: to samo zadanie, pięć poziomów, zmierzone

Effort sweep to uruchomienie tego samego zadania na każdym poziomie effortu i porównanie tokenów, czasu i jakości. Przewodnik zaleca powtórzenie go, jeśli przeniosłeś ustawienia ze starszego modelu. W praktyce to cztery uruchomienia i jedno porównanie.

W Claude Code effort ustawia się na trzy sposoby: poleceniem wewnątrz sesji, flagą przy starcie albo kluczem w pliku ustawień — ten ostatni daje inną wartość domyślną dla każdego projektu, gdy twoje repozytoria mają różne potrzeby.

Uruchomiliśmy tę samą poprawkę błędu na low, medium, high i extra high, w czterech czystych sesjach.

Poziom Wynik na naszej referencyjnej poprawce
Low / Medium Równoważna poprawka za ułamek tokenów high
High Wartość domyślna; żadnego zysku jakościowego przy jednolinijkowym błędzie
Extra high Więcej przejrzanych plików, opancerzone przypadki brzegowe — przydatne przy ciężkim refaktorze, tutaj przesada

Zgadza się to z tym, co zapowiada przewodnik, gdy każe hojnie korzystać z niższych poziomów jako głównego narzędzia kontroli kosztów. Jeden szczegół API, zanim to zeskryptujesz: przy extra high i max thinking nie da się już wyłączyć, a żądanie zwraca błąd 400, jeśli spróbujesz.

Najbardziej opłacalne zastosowanie sweepu to code review. Anthropic twierdzi, że trafność przeglądu kodu w Opus 5 utrzymuje się na niższych poziomach effortu, co pozwala na szybki i tani przebieg przy commicie oraz głęboki później. Sprawdziliśmy to na jednym z naszych diffów: przebieg na low znalazł te same dwa prawdziwe błędy co przebieg na extra high, za około jedną piątą tokenów.

Pierwszym ustawieniem, które zmienia twój rachunek, jest więc dobieranie effortu do typu zadania zamiast zostawiania wszystkiego na domyślnym: low lub medium do codziennej pracy i przeglądów, extra high do dużych robót. Rozwlekłość tymczasem nie drgnęła ani o słowo.

Gdzie naprawdę siedzi wyłącznik gadatliwości

Skoro effort nie skraca odpowiedzi, długość ustala się instrukcją — a to, gdzie ją umieścisz, liczy się tak samo jak jej treść. Inny użytkownik subreddita Claude Code testował to całymi dniami, a jego pierwszy wniosek pokrywa się z naszym: wbudowany styl wyjścia Concise skraca output tylko o jakieś 6 procent. Zadziałało co innego: umieszczenie prawdziwej instrukcji zwięzłości w slocie output style i nigdzie indziej — to samo zdanie jako hook albo reguła w pliku instrukcji nie zmieniło nic.

Output style to slot Claude Code, który definiuje, jak asystent pisze, a nie co wie. Nasz zbudowaliśmy ze sformułowań oficjalnego przewodnika: krótkie, skoncentrowane odpowiedzi, ograniczone ostrzeżenia, podsumowanie wysokiego poziomu, o ile nie poproszono o szczegóły.

Gdzie leży reguła zwięzłości Efekt na długość
Wbudowany preset Concise ~6 procent krócej
Hook albo reguła w pliku instrukcji Brak mierzalnej zmiany
Slot output style Raport w pięciu sekcjach → akapit i lista plików

Przewodnik dokłada dwie siostrzane instrukcje, które skopiowaliśmy bez zmian: jedną dla narracji agenta, ustalającą, kiedy model może komentować to, co robi, i jedną dla plików zapisywanych na dysku, bo generowane raporty i pliki Markdown też puchną.

Dla reguł, które nigdy się nie odpalają, ten sam post z Reddita podaje kryterium: reguła musi nazwać rozpoznawalny moment i konkretne działanie. „Utrzymuj changelog na bieżąco" nie odpala się nigdy. „Gdy modyfikujesz plik w katalogu źródłowym, dodaj linijkę do changeloga w tym samym commicie" — odpala.

Zostaje jeden nawyk językowy, którego te bloki nie obejmują: opowiadana autokorekta. Opus 5 uwielbia ogłaszać, że poprawia poprzednie zdanie, nawet gdy poprawka nic dla ciebie nie zmienia, a przewodnik ma na to osobną instrukcję: sygnalizuj korektę tylko wtedy, gdy błąd zmieniłby twój kod albo twoje decyzje, resztę popraw po cichu. Odkąd ta linijka trafiła do naszej konfiguracji, fałszywe mea culpa zniknęły z sesji.

Rozwlekłość da się więc oswoić, tylko nie przełącznikiem: czterema blokami promptu umieszczonymi we właściwych slotach.

Jak zatrzymać przeinżynierowanie, kasując własne prompty

Zarzut numer dwa naprawia się, odejmując tekst, a nie dodając. Zaczęliśmy od wyczyszczenia z promptów każdej prośby o weryfikację, dokładnie tak, jak nakazuje przewodnik, i zbędna pętla weryfikacyjna zniknęła razem z nimi.

Potem zakres: przewodnik dostarcza instrukcję ramującą, którą wkleiliśmy bez zmian — dostarcz to, o co poproszono, w zamierzonym zakresie; zasygnalizuj jednym zdaniem, jeśli istnieje lepsze podejście; i kontynuuj zlecone zadanie, zamiast po cichu je przekształcać. Na funkcjonalności, która wywołała nasze dwudziestolinijkowe docstringi, powtórzyliśmy dokładnie tę samą prośbę z tym ramowaniem: diff spadł z dziewięciu ruszonych plików do trzech, bez pasożytniczego kroku weryfikacji.

Dwa ustawienia z tej samej rodziny zasługują na linijkę każde. Przy code review przestań pisać „zgłaszaj tylko poważne problemy": Opus 5 bierze to dosłownie i zaniża raport, więc proś o wszystko i filtruj w drugim przebiegu. A jeśli model uruchamia subagentów przy byle okazji, to też jest udokumentowane: Opus 5 deleguje chętniej niż poprzednicy, a każdy subagent mnoży koszt. Przewodnik daje instrukcję rezerwującą delegowanie dla naprawdę równoległych dużych zadań, a od wersji 2.1.217 Claude Code udostępnia też dwie zmienne środowiskowe twardo ograniczające głębokość spawnu i liczbę jednocześnie działających agentów.

Limit Domyślnie
Głębokość spawnu subagentów 3 poziomy
Jednocześni agenci 20

Te wartości domyślne tłumaczą, jak sesja może rozejść się tak daleko, nigdy nie pytając cię o zdanie. Przeinżynierowanie nie jest przeznaczeniem modelu: to w dużej mierze twoje stare prompty obracające się przeciwko tobie.

Czego nie naprawi żaden blok promptu

Granica jest ostra: przewodnik naprawia formę tego, co Opus 5 mówi, a nie to, co postanawia zrobić. Część wpisów w wątku opisuje coś innego niż rozwlekłość: model, który przyjmuje wyraźne ograniczenie, obiecuje je respektować, a potem od pierwszej tury robi odwrotnie. Ten zarzut nie ma sekcji w przewodniku i żaden z naszych bloków promptu go nie usunął. Widzieliśmy to raz podczas testów: wyraźne ograniczenie dotyczące API, którego nie wolno ruszać, potwierdzone w odpowiedzi, obejście dwie tury później. Raz na tydzień sesji to daleko od katastrofy opisywanej w niektórych wpisach, ale to rodzaj błędu, którego żadne ustawienie nie usprawiedliwia, gdy trafia na kod produkcyjny.

Trzeba też policzyć koszt wejścia. Sweep pali prawdziwe tokeny: nasze cztery sesje testowe zjadły równowartość dużego dnia pracy na planie za 20 dolarów, a jeden z użytkowników w wątku donosi, że największy plan max ledwo przeżywa weekend przy efforcie high. I żadne z tych ustawień nie jest przenośne — output style, ramowanie zakresu i limity subagentów mieszkają w twojej konfiguracji, więc każdą maszynę i każdy projekt trzeba stroić od nowa.

Jeśli twoim problemem jest hałas, przewodnik go naprawia. Jeśli twoim problemem jest model, który robi, co chce, przewodnik cię nie uratuje — a najwyżej oceniany komentarz w wątku po samym wpisie wciąż brzmi: „wróć do poprzedniego Opusa".

Oswoić czy uciec: nasz werdykt

Nam wystarczyło dwadzieścia minut ustawień: effort dobierany do typu zadania zamiast domyślnego, jedna instrukcja zwięzłości w slocie output style, ramowanie zakresu z przewodnika w system prompcie i usunięte ze starych plików prośby o weryfikację.

Miara na naszym zadaniu referencyjnym Przed Po
Długość odpowiedzi Raport w pięciu sekcjach ~5× krócej, akapit + lista plików
Rozmiar diffa 9 ruszonych plików 3 ruszone pliki
Koszt code review Przebieg extra high ~1/5 tokenów, te same dwa prawdziwe błędy

Bez zmiany modelu i bez zmiany planu. Jeśli twoje zarzuty to rozwlekłość i przeinżynierowanie, przeprowadź to strojenie, zanim zmienisz model — wszystko jest udokumentowane, a różnicę widać już przy pierwszym diffie. Ale jeśli twoim problemem jest model ignorujący twoje ograniczenia od pierwszej tury, żaden prompt z przewodnika tego nie naprawi: trzymaj wrażliwe zadania na modelu, który cię słucha, i wróć przetestować Opus 5 przy następnej aktualizacji.

Źródła

Najczęstsze pytania

Dlaczego Opus 5 jest tak rozwlekły?
Anthropic dokumentuje, że Opus 5 pisze dłuższe odpowiedzi niż poprzednie modele Opus i doprowadza zadania do końca zamiast zostawiać zaślepki. Do tego thinking jest domyślnie włączony, a parametr effort wychodzi ustawiony na high, przez co model tłumaczy swój plan i szczegółowo komentuje zmiany.
Czy obniżenie effortu skraca odpowiedzi Opus 5?
Nie. Oficjalny przewodnik stwierdza, że effort steruje tym, ile model myśli, a nie ile mówi. W naszym sweepie zejście z high na low mocno obcięło tokeny, ale nie skróciło widocznej odpowiedzi ani o słowo.
Jak naprawdę zmusić Opus 5 do zwięzłości?
Umieść prawdziwą instrukcję zwięzłości w slocie output style w Claude Code — krótkie, skoncentrowane odpowiedzi, ograniczone ostrzeżenia, podsumowanie wysokiego poziomu, o ile nie poproszono o szczegóły. To samo zdanie w hooku albo w pliku instrukcji nic nie zmienia, a wbudowany preset Concise skraca output tylko o jakieś 6 procent.
Czym jest effort sweep i czy warto go robić?
To uruchomienie tego samego zadania na każdym poziomie effortu i porównanie tokenów, czasu i jakości — cztery uruchomienia i jedno porównanie. Warto dla kosztów: low i medium dały równoważną poprawkę błędu za ułamek tokenów high, a code review na low znalazło te same dwa prawdziwe błędy co extra high za około jedną piątą kosztu.
Jak zatrzymać przeinżynierowanie w Opus 5?
Kasując instrukcje, a nie dodając je. Usuń z promptów każdą prośbę o weryfikację, wklej ramowanie zakresu z przewodnika, by model dostarczał to, o co poproszono, w zamierzonym zakresie, i ogranicz delegowanie zmiennymi środowiskowymi Claude Code dla głębokości i równoległości subagentów (domyślnie: 3 poziomy, 20 agentów).
Czy warto odejść od Opus 5?
Jeśli twoje zarzuty to rozwlekłość i przeinżynierowanie, najpierw nastrój: udokumentowane ustawienia naprawiły u nas jedno i drugie bez zmiany modelu ani planu. Jeśli problemem jest model ignorujący wyraźne ograniczenie od pierwszej tury, żaden prompt z przewodnika tego nie naprawi — trzymaj wrażliwe zadania na modelu, który cię słucha.

Powiązane filmy