Anthropic usunął 80% promptu systemowego, który kieruje Claude Code, i nie odnotował spadku jego zdolności do pisania kodu. Eksperyment pokazuje, że w miarę jak duże modele językowe (LLM) stają się coraz bardziej zaawansowane, programiści mogą ograniczać obszerne „rusztowania”, których używają do trzymania modeli w ryzach, nie pogarszając ich wydajności.

Dlaczego ten prompt był początkowo ważny

Kiedy Claude Code debiutował, jego prompt systemowy zawierał dziesiątki reguł. Inżynierowie dodawali nowe linie za każdym razem, gdy pojawiał się błąd, ale rzadko usuwali cokolwiek, co wydawało się działać. Z czasem prompt urósł do postaci splątanego, statycznego dokumentu.

Luka modelowa się zmniejsza

Te dodatkowe reguły maskowały „lukę modelową” – różnicę między tym, co model potrafił zrobić, a tym, czego wymagała aplikacja. W 2024 roku programiści musieli określać ścisłe ograniczenia, aby powstrzymać model przed, na przykład, nadmiernym komentowaniem kodu. Dziś ten sam model potrafi wywnioskować pożądany styl z pojedynczej instrukcji, takiej jak „dopasuj do istniejącego stylu kodu”. Reguły zmieniły się z pomocy w szum.

Co zmienia się w inżynierii kontekstu

Przebudowa dokonana przez Anthropic odzwierciedla szerszą zmianę w sposobie, w jaki programiści strukturyzują prompty:

  • Jednorazowe krytyczne instrukcje – podaj regułę raz i pozwól modelowi ją zapamiętać.
  • Parametry sterowane narzędziami zamiast przykładów few-shot – opisz kształty wejść i wyjść w schemacie narzędzia i pozwól modelowi je uzupełnić.
  • Progresywne ujawnianie – podawaj tylko taki kontekst, który jest potrzebny na danym etapie, dodając więcej później, jeśli zajdzie taka potrzeba.
  • Przeniesienie statycznych wskazówek do opisów narzędzi – kwestie takie jak „używaj camelCase dla zmiennych” powinny znajdować się w specyfikacji narzędzia, a nie w prompcie systemowym.
  • Zastąpienie sztywnych reguł heurystykami – pozwól modelowi zdecydować, kiedy stosować regułę, zamiast wymuszać ją bezwarunkowo.

Te taktyki działają, ponieważ model zna już wiele konwencji, które dawniej wymagały wyraźnego wzmocnienia.

Ryzyko nadmiernego przycinania

To samo przycinanie, które przynosi korzyści modelom typu frontier, może zaszkodzić mniejszym modelom. Anthropic zauważa, że modele takie jak Haiku wciąż polegają na bogatszych promptach, aby trzymać się wytycznych. Usunięcie zbyt dużej ilości wskazówek z mniej zdolnego modelu może ponownie wprowadzić błędy, którym pierwotny prompt próbował zapobiec: niespójne nazewnictwo, nadmierne komentarze czy pominięte przypadki brzegowe.

Jak przeprowadzić audyt własnych promptów

Jeśli utrzymujesz potok (pipeline) generowania kodu, audyt promptu może ujawnić zbędny balast. Praktyczna lista kontrolna wygląda następująco:

  • Dostosuj gęstość instrukcji – dopasuj ilość wskazówek do modelu, którego faktycznie używasz.
  • Usuń powielone instrukcje – jeśli reguła pojawia się zarówno w prompcie systemowym, jak i w opisie narzędzia, zachowaj ją tylko raz.
  • Zamień gotowe przykłady na bogatsze schematy – zastąp konkretne przykłady wyliczonymi typami parametrów lub wyliczeniami (enums).
  • Wyeksportuj szczegóły sytuacyjne – przenieś duże bloki referencyjne do oddzielnych plików, które model może pobrać na żądanie.
  • Usuń reguły dotyczące wyeliminowanych zachowań – jeśli model nie dodaje już niechcianych komentarzy, usuń regułę „no-comment”.

Nie polegaj na intuicji. Użyj prostej „Zasady 3 Testów”: przeprowadź pięć realistycznych zadań programistycznych, porównaj wyniki przed i po każdym usunięciu oraz odnotuj wszelkie regresje.

  1. Baseline – zmierz wydajność przy pełnym prompcie.
  2. Delete – usuń wybraną linię lub blok.
  3. Re-run – wykonaj te same pięć zadań.

Jeśli wynik się zmienia, zidentyfikowałeś linię, która wciąż ma znaczenie. Jeśli nie, linię można bezpiecznie pominąć.

Na co programiści powinni zwrócić uwagę w przyszłości

Na razie wniosek jest jasny: prompt systemowy to żywy dokument. Traktuj każdą linię jako mającą ograniczony termin przydatności, przeprowadzaj regularne audyty i pozwól rosnącym kompetencjom modelu wykonać najcięższą pracę.

Source: dev.to/ialijr/your-system-prompt-has-a-shelf-life-maintaining-prompts-as-models-improve-cd9