W tym tygodniu język programowania o nazwie Bend znalazł się na szczycie Hacker News, zdobywając 278 punktów i wywołując debatę na pierwszej stronie, której tematem było bezpośrednio nawiązanie do ery kodowania sztucznej inteligencji: języka, który matematycznie uniemożliwia agentowi sztucznej inteligencji wysyłanie kodu naruszającego Twoje zasady.
Witryna internetowa projektu opisuje Bend jako „szybki język, który blokuje błędy sztucznej inteligencji poprzez dowód”, obiecując niezwykłą kombinację cech: natywną kompilację z szybkością C, automatyczną równoległość pomiędzy rdzeniami procesora i procesorami graficznymi obsługującymi CUDA, formalne dowody w stylu Lean i składnię przypominającą Pythona. Więcej kontekstu na ten temat znajdziesz w naszych wiadomości AI.
Innymi słowy, Bend nie stara się być lepszym językiem do pisania dla ludzi. Stara się być lepszym językiem do pisania dla agentów AI – takim, którego strzeże sam kompilator.
Argument: podpowiedzi są niejednoznaczne, a dowody nie
Ramka na stronie głównej projektu niezwykle szczerze mówi o kierunku rozwoju oprogramowania.
„W gospodarce po AGI ludzie w końcu przestaną pisać i czytać kod, ale nadal potrzebujemy pozbawionego dwuznaczności sposobu, aby poinformować sztuczną inteligencję budującą świat wokół nas, czego chcemy, aby zostało zrobione” – argumentuje strona. „Dzięki prawom nasze intencje mogą być znacznie bardziej precyzyjne niż język naturalny. Dzięki dowodom możemy sprawdzić, czy sztuczna inteligencja poprawnie zaimplementowała nasze podpowiedzi. A szybki kompilator działa z dużą szybkością”.
Teza ta odwraca zwykłą relację między programistą a narzędziami. Zamiast traktować kod wygenerowany przez sztuczną inteligencję jako wynik, który należy przejrzeć wiersz po wierszu, Bend prosi człowieka o zadeklarowanie właściwości, które muszą zawsze posiadać — i sprawia, że maszyna udowadnia, że działa, zanim będzie można cokolwiek połączyć.
Jak działa LAWS.bend
Centralnym elementem projektu jest plik o nazwie LAWS.bend, w którym programiści deklarują niezmienniki, które musi spełnić projekt. Hasło witryny dotyczące tej koncepcji: „LAWS.bend to AGENTS.md poparte dowodami”. Tam, gdzie pliki AGENTS.md instruują agentów kodujących AI zasady języka naturalnego, które można po cichu zignorować, prawa Benda są egzekwowane przez sam moduł sprawdzania typów.
„Odtąd żadna sztuczna inteligencja nie będzie już w stanie wysłać ani jednej linijki, która je łamie” – twierdzi witryna.
Towarzyszący plik PROOF.bend zawiera sprawdzony maszynowo argument, zgodnie z którym opiera się każde prawo, a w szczególności dowód został napisany przez sztuczną inteligencję, a nie przez człowieka. Deweloper stwierdza, co musi być prawdą; agent konstruuje dowody.
Projekt ilustruje tę ideę za pomocą zabawkowej gry, w której prawo stanowi, że wygrana jest niemożliwa. W demonstracji nowa prośba o nową funkcję — „zawiń planszę” — wprowadza błąd, który pozwala graczowi wygrać. Bez LAWS.bend błędny kod łączy się i błąd zostaje opublikowany. Po zastosowaniu LAWS.bend zmiana zostaje odrzucona, a sztuczna inteligencja musi ponawiać próby, dopóki nie wygeneruje implementacji z prawidłowym dowodem. Jak to ujmuje strona: „Scalanie błędu jest matematycznie niemożliwe: jest to twierdzenie”.
Prędkość jest czynnikiem umożliwiającym
Formalna weryfikacja to stary pomysł. Tym, co powstrzymuje go od codziennego tworzenia oprogramowania, są koszty: asystenci sprawdzający, tacy jak Lean i Rocq, mogą poświęcić kilka minut na sprawdzenie bazy kodu średniej wielkości, co jest tolerowane w przypadku kryptografii lub jąder systemu operacyjnego, ale niepraktyczne dla agenta AI dokonującego dziesiątek zmian na godzinę.
Odpowiedzią Benda jest uczynienie samego modułu sprawdzania typów narzędziem sprawdzającym, które działa w ciągu sekundy lub krócej. Witryna twierdzi, że oznacza to, że „agent AI może sprawdzić każdą zmianę” – zmieniając weryfikację z ciężkiej ceremonii zakończenia projektu w lekką bramkę przy każdej pojedynczej edycji.
Twierdzenia dotyczące wydajności, oparte na testach porównawczych opublikowanych na stronie projektu (działających na Apple M4 Max), są ogólnie ambitne:
- Bend kompiluje się do kodu natywnego i działa „prawie tak szybko jak C” na jednym rdzeniu.
- To samo skalowanie binarne na szesnaście rdzeni lub na procesor graficzny, gdzie witryna zapewnia prędkość do 100 razy większą niż pojedynczy rdzeń.
- Równoległość jest automatyczna — „żadnych wątków, żadnych blokad, żadnych jąder do zapisania” — przy czym środowisko wykonawcze dzieli pracę na każdy znaleziony rdzeń i łączy wyniki.
Rozpoczęcie pracy jest celowo bezproblemowe: jednowierszowy skrypt instalacyjny plus fragment przeznaczony do wklejenia do pliku AGENTS.md instruujący agenta, aby uruchomił „przewodnik po zginaniu”, zachowywał ważne reguły w LAWS.bend i uruchamiał „bend PROOF.bend” przed zatwierdzeniem.
Dlaczego to teraz rezonuje
Odpowiedź Hacker News – setki punktów w ciągu kilku godzin – odzwierciedla rosnący niepokój społeczności programistów. Agenci kodujący AI sprawili, że tworzenie kodu stało się prawie bezpłatne, ale jego weryfikacja nie stała się tańsza w tym samym tempie. Przegląd kodu, testowanie i zapewnianie jakości to w dalszym ciągu procesy, które zasadniczo wykonują ludzie, a zespoły coraz częściej zgłaszają, że wąskie gardło przesunęło się z pisania oprogramowania na zaufanie do niego.
Bend zakłada, że problem zaufania można lepiej rozwiązać w języku niż w przepływie pracy. Jeśli kompilator odmówi przyjęcia kodu, który narusza podany niezmiennik, rozmowa przeglądowa ulega zmianie: ludzie przestają polować na błędy, które maszyna już wykluczyła, i zaczynają skupiać się na tym, czy same przepisy uwzględniają to, czego faktycznie potrzebuje firma.
Ostrzeżenia
Jak w przypadku każdego projektu promującego się poprzez własne standardy, niezależna weryfikacja jest kolejnym oczywistym pytaniem. Dane dotyczące wydajności pochodzą ze strony internetowej projektu, a demonstracja jest celowo prostym przykładem. Bazy kodu w świecie rzeczywistym charakteryzują się nieuporządkowanym stanem, systemami zewnętrznymi i wymaganiami odpornymi na ostrą formalizację — najtrudniejszą częścią metod formalnych nigdy nie było sprawdzanie, ale specyfikacja.
Istnieje również przeszkoda kulturowa. Przekonanie programistów do przyjęcia nowego języka jest niezwykle trudne; Przekonanie ich, aby zakodowali zasady swojego projektu w postaci przepisów możliwych do sprawdzenia maszynowego, to wciąż większe wyzwanie, nawet jeśli większość pisania zajmują agenci sztucznej inteligencji.
Jednak podstawowe założenie — że język zaprojektowany z myślą o epoce kodu generowanego przez sztuczną inteligencję powinien zapewniać poprawność jako właściwość czasu kompilacji — stanowi poważną odpowiedź na problem, z jakim boryka się obecnie branża na dużą skalę. Niezależnie od tego, czy Bend zwycięży w tej argumentacji, czy też zwycięży jakiś następca, kierunek rozwoju wydaje się jasny: kiedy maszyny piszą kod, poręcze muszą wsunąć się w maszynę.
Aby uzyskać więcej informacji na temat narzędzi zmieniających sposób tworzenia oprogramowania, śledź najnowsze wiadomości dotyczące sztucznej inteligencji i nasze bieżące relacje na temat ekosystemu rozwoju sztucznej inteligencji.
---
Bądź na Bieżąco z AINajnowsze wiadomości, analizy i przełomy w dziedzinie AI — wszystko w jednym miejscu.
Czytaj więcej wiadomości AI →