← Wszystkie wpisy

Uruchamianie agentowej AI na Macu z MLX

Na WWDC 2026 inżynier Apple poprosił lokalnego agenta na swoim Macu o pobranie ostatnich pull requestów z repozytorium MLX, podsumowanie zmian i wskazanie tego, co wymaga uwagi. Model przeprowadził rozumowanie, wywołał GitHub CLI, odczytał diffy i utworzył podsumowanie. Sieci dotknęły jedynie polecenia gita; model działał w całości na jego sprzęcie.1 Ta prezentacja stanowi całą tezę tego artykułu: pętla agentowa, czyli ta część, w której model podejmuje decyzję, wywołuje narzędzie, obserwuje wynik i decyduje ponownie, działa teraz lokalnie na Macu z MLX. Bez chmury, bez kluczy API, bez kosztu za token. A Apple dostarczyło wraz z tym resztę tej historii: jak przeskalować tę pętlę na wiele Maców, jak zabezpieczyć funkcje agentowe przed nową klasą ataków oraz jak debugować pętlę, gdy po cichu robi coś niewłaściwego.

Ten artykuł przechodzi przez cztery sesje WWDC 2026, które razem czynią z lokalnej agentowej AI na Macu prawdziwy obszar inżynierski, a nie demo technologiczne. Wszystko poniżej pochodzi bezpośrednio z tych sesji.

W skrócie

  • MLX uruchamia całą pętlę agentową lokalnie na Macu dzięki czterowarstwowemu stosowi: MLX u podstaw, MLX-LM dla modeli, MLX-LM Server jako serwer HTTP zgodny z OpenAI oraz, na samej górze, dowolny agent posługujący się protokołem chat completions OpenAI.1
  • Konfiguracja to trzy kroki: pip install MLX-LM, uruchomienie mlx_lm.server z modelem obsługującym wywoływanie narzędzi i skierowanie base URL agenta na localhost.1
  • Gdy jeden Mac nie wystarcza, MLX rozkłada model na kilka urządzeń przez Thunderbolt 5, wykorzystując RDMA oraz otwartoźródłową bibliotekę JACCL od Apple, uruchamiając modele o bilionie parametrów i przyspieszając wnioskowanie oraz fine-tuning około trzykrotnie w klastrze czterowęzłowym.2
  • Funkcje agentowe otwierają nową powierzchnię ataku: pośrednie wstrzykiwanie promptów. Strategia łagodzenia tego zagrożenia w Apple opiera się na deterministycznych zabezpieczeniach: potwierdzeniach .onToolCall i spotlightingu .historyTransform w Foundation Models, a także potwierdzeniach opartych na ryzyku i uwierzytelnianiu na ekranie blokady w App Intents.3
  • Instrument Foundation Models w Xcode 27 czyni pętlę obserwowalną: ścieżki dla poszczególnych żądań, widok drzewa łańcucha rozumowania modelu oraz metryki (Time to First Token, Tokens per Second, Total Latency) potrzebne do wychwytywania cichych awarii i wolnych wnioskowań.4

Lokalny stos agentowy (sesja 232)

Watch on Apple Developer ↗

Angelos z zespołu MLX omawia trzykrokową konfigurację, zaczynając od 2:42.

Doświadczenie czatu znane większości deweloperów przerzuca pracę z powrotem na człowieka. Jak ujmuje to sesja: „Wysyłasz prompt do modelu językowego. Model odsyła odpowiedź. Jeśli musisz zareagować na tę odpowiedź, uruchomić polecenie, sprawdzić plik czy poprawić błąd, to już twoja sprawa”.1 Agent zamyka tę lukę. Agent rozmawia z modelem, aby zdecydować, co zrobić, wywołuje narzędzia, by to wykonać, obserwuje wyniki i wraca do modelu po kolejny krok. Od użytkownika do agenta, od agenta do modelu, od agenta do narzędzi, w cyklu aż do ukończenia zadania.

To, co czyni tę pętlę interesującą na Apple silicon, to fakt, że wszystko działa lokalnie. MLX przedstawia tę możliwość jako cztery warstwy, od dołu do góry: MLX, „nasz otwartoźródłowy framework tablicowy stworzony specjalnie dla Apple silicon”, który zajmuje się obliczeniami, akceleracją Metal i pamięcią; MLX-LM do ładowania, uruchamiania, kwantyzacji i fine-tuningu modeli z Hugging Face; MLX-LM Server, „zgodny z OpenAI serwer HTTP, który udostępnia twój lokalny model przez standardowe API”, z ustrukturyzowanym wywoływaniem narzędzi i obsługą modeli rozumujących; a na samej górze dowolny agent posługujący się protokołem chat completions OpenAI, czy to Xcode, OpenCode, agent Pi, czy własny skrypt.1 Standardowy interfejs to wybór, na którym wszystko się opiera: „dowolny framework agentowy działa od razu”, a narzędzia takie jak Ollama, LM Studio i vLLM już są zbudowane na MLX i MLX-LM.1

Konfiguracja to trzy kroki. Zainstaluj MLX-LM jednym poleceniem pip install. Uruchom serwer z modelem obsługującym wywoływanie narzędzi:

mlx_lm.server --model <a-tool-calling-model>

Następnie skieruj agenta na lokalny serwer, ustawiając jego base URL na localhost. Jak zauważa sesja: „agent nie wie i nie obchodzi go, że model działa na twoim Macu, a nie w chmurze”.1 W OpenCode oznacza to zdefiniowanie lokalnego providera, którego URL to localhost, a nazwa modelu odpowiada temu, czego oczekuje serwer, a następnie polecenie OpenCode, by używał tego lokalnego modelu do wszystkiego.

Najciekawsze jest to, jak MLX zarabia na siebie właśnie przy obciążeniach agentowych. Sesja wymienia trzy wyzwania. Pierwszym jest przetwarzanie promptu: „Sesje agentowe zwykle obejmują setki tysięcy tokenów, a większość z nich nie jest generowana”.1 Za każdym razem, gdy model otrzymuje wynik z narzędzia, przetwarza cały ten nowy kontekst, zanim będzie rozumować dalej, a koszt ten powtarza się przez całą pętlę. Dedykowane Neural Accelerators w chipie M5 sprawiają, że mnożenie macierzy jest czterokrotnie szybsze niż na M4, a wraz ze wyspecjalizowanymi kernelami MLX „przekłada się to niemal dokładnie na przyspieszenie przetwarzania promptu”, bez żadnych specjalnych argumentów ani zmian w kodzie.1 Drugim wyzwaniem jest współbieżność: agenci tworzą subagentów, a MLX-LM Server obsługuje jednoczesne żądania dzięki ciągłemu batchowaniu, dynamicznie je grupując, tak aby subagenci „nie utknęli w oczekiwaniu w kolejce”.1 Trzecim wyzwaniem jest rozmiar modelu, i to właśnie tu pałeczkę przejmuje kolejna sesja.

Angelos zakończył demonstracją wykraczającą poza odczytaj-i-zgłoś: zaczynając od pustego projektu Xcode, poprosił agenta o zbudowanie aplikacji do rysowania w SwiftUI na iPada. Agent zbadał katalog, ułożył plan, napisał kod i użył xcodebuild, aby skompilować i poprawić własne błędy, tworząc działającą aplikację w około dwie minuty, a następnie iterując, by na żądanie dodać zaokrąglone zakończenia.1 Ostatnia demonstracja podłączyła ten sam działający serwer MLX do ustawień Intelligence w Xcode jako lokalnie hostowanego providera czatu, dzięki czemu sam Xcode mógł znaleźć i naprawić wprowadzony błąd. „Lokalna AI oznacza, że twój kod nigdy nie opuszcza twojego Maca”.1

Skalowanie na wiele Maców (sesja 233)

Watch on Apple Developer ↗

Tatiana buduje klaster czterech Maców krok po kroku, zaczynając od 2:21.

W końcu jednej maszynie zaczyna brakować miejsca. Jak ujęła to Tatiana, naukowczyni badawcza z zespołu MLX: „W końcu pamięć, moc obliczeniowa lub przepustowość pojedynczej maszyny staje się ograniczeniem”.2 Sztandarowym przypadkiem z sesji 232 jest model, który po prostu się nie mieści: najnowszy model DeepSeek „ma bagatela 1,6 biliona parametrów i wymaga ponad 800 GB pamięci na same wagi”.1 Sesja 233 to dogłębne omówienie tego, jak rozłożyć tę pracę na Maki, które już posiadasz.

Stos leżący u podstaw rozproszonego MLX ma trzy elementy. Połączenie międzywęzłowe i transport: począwszy od macOS 26.2 Remote Direct Memory Access (RDMA) jest obsługiwany przez Thunderbolt 5, przenosząc dane bezpośrednio z pamięci jednej maszyny do pamięci drugiej, „omijając przy tym większość narzutu CPU i systemu operacyjnego”.2 Backend komunikacyjny: JACCL, „otwartoźródłowa biblioteka komunikacji zbiorczej zbudowana przez Apple”, która działa na RDMA przez Thunderbolt i udostępnia prymitywy zbiorcze bez konieczności zarządzania transportem, a przy tym „nie ogranicza się do uczenia maszynowego” i „może zostać zbudowana bez MLX”, udostępniając API w C++ dla dowolnego obciążenia rozproszonego.2 MLX znajduje się na wierzchu, wykorzystując JACCL do koordynacji o niskim opóźnieniu w całym klastrze.

Tatiana zbudowała klaster z czterech M3 Ultra. Topologia ma znaczenie, ponieważ czas komunikacji dzieli się na opóźnienie (stały koszt na operację) i czas transferu (rosnący wraz z rozmiarem komunikatu). JACCL obsługuje siatkę, w której „każda maszyna łączy się bezpośrednio z każdą inną” dla najniższego opóźnienia, oraz pierścień, w którym każdy węzeł łączy się z dwoma sąsiadami, zwalniając porty, by poprowadzić wiele kabli na sąsiada i uzyskać większą przepustowość. Okablowany jako siatka, JACCL „automatycznie wybiera najlepszą topologię w zależności od rozmiaru komunikatu i operacji komunikacyjnej: siatkę, gdy liczy się opóźnienie, pierścień, gdy liczy się przepustowość”.2 RDMA włącza się w Ustawieniach, a następnie uruchamia zadania poleceniem mlx.launch wskazującym na plik hostów w formacie JSON; skrypt pomocniczy mlx.distributed_config generuje ten plik hostów, a z flagą --auto-setup sam konfiguruje sieć Thunderbolt.2

Uruchomienie modelu w całym klastrze jest niemal identyczne z uruchomieniem go na jednej maszynie. To samo polecenie mlx_lm.chat opakowuje się w mlx.launch --hostfile, a „MLX LM shardiuje model i koordynuje za ciebie rozproszone wnioskowanie”.2 W bezpośrednim porównaniu Qwen 3.6 o 27 miliardach parametrów generował tokeny „w tempie niemal trzykrotnie wyższym niż pojedyncza maszyna” na czterech M3 Ultra.2 MLX obsługuje dwie strategie shardowania: równoległość potokową (według głębokości, prosta komunikacja, ale bez przyspieszenia) oraz równoległość tensorową (według szerokości, wszystkie maszyny przetwarzają ten sam token naraz, co daje przyspieszenie kosztem częstej komunikacji na każdej warstwie, „dlatego właśnie topologia siatki jest kluczowa”).2 Równoległość tensorowa jest domyślna. Podczas sesji uruchomiono w klastrze Kimi 2.6 o bilionie parametrów (około terabajt wag w 8 bitach, co „nie mieści się na pojedynczym M3 Ultra, ale może się zmieścić na czterech”).2 To samo podejście przyspiesza fine-tuning: trening LoRA z równoległością danych za pomocą mlx_lm.lora przeniósł pojedynczy M3 Ultra z około 180 tokenów na sekundę do około 600 w klastrze, „ponad 3-krotne przyspieszenie”.2 MLX udostępnia te same prymitywy przez Python, Swift i C++, aby osadzać rozproszone przepływy pracy w aplikacjach.

Zabezpieczanie pętli (sesja 347)

Watch on Apple Developer ↗

Willy wprowadza pośrednie wstrzykiwanie promptów o 4:01; Akshay omawia API frameworków, zaczynając od 11:55.

Danie modelowi możliwości wywoływania narzędzi otwiera pewne drzwi. Jak ujął to Willy: „LLM-y wprowadzają do twojej aplikacji nowy probabilistyczny silnik, który jest zarazem potężny, ale ryzykuje, że zostanie oszukany”.3 Nowym ryzykiem jest pośrednie wstrzykiwanie promptów, które sesja definiuje jako „instrukcje osadzone w dodatkowym kontekście przekazanym modelowi z zamiarem przekierowania przepływu sterowania”.3 Przykładowa aplikacja z sesji, Loose Leaf, dodaje funkcję „Zorganizuj przyjęcie herbaciane”, która odczytuje twój kalendarz i feed znajomych oraz może zamawiać herbaty. Atak wygląda tak: użytkownik prosi o zaplanowanie przyjęcia z dołączonym kalendarzem, ale wydarzenie w kalendarzu zawiera wstrzykniętą instrukcję nakazującą modelowi, by zamiast tego usunął wrażliwe dane użytkownika.3

Wstrzyknięcie wywołuje dwa efekty. Zatrucie danych, „atakujący wpływający na parametry wykonywanej akcji”, zamienia wiadomość przeznaczoną dla twojej mamy w wiadomość wysłaną do atakującego. Zatrucie akcji, gdzie atakujący „wpływa na to, jaka akcja ma zostać wykonana”, przekierowuje prośbę o podsumowanie tego e-maila w otwarcie złośliwego URL-a z dołączonym e-mailem.3 Sesja osadza to zagrożenie w Lethal Trifecta Simona Willisona: użytkownik jest najbardziej narażony, gdy system agentowy łączy dostęp do prywatnych danych, ekspozycję na niezaufaną treść i zdolność do komunikacji na zewnątrz, co uogólnia się do „ryzyka akcji z jakimkolwiek efektem ubocznym”.3 Ujęcie jest uczciwe: „rozwiązanie problemu pośredniego wstrzykiwania promptów to aktywny obszar badań”, dlatego realistycznym celem jest zrozumienie ryzyka swojej aplikacji i jego ograniczenie.3

Metodą jest ćwiczenie z modelowania zagrożeń. Najpierw analiza przepływu danych wszystkiego, co zasila prompt, oznaczając jako niezaufane „wszelkie dane wejściowe pochodzące od zewnętrznego podmiotu”, co dla Loose Leaf oznacza treść kalendarza i feed znajomych.3 Po drugie, inwentaryzacja akcji agenta i ich efektów ubocznych: narzędzie do zamawiania herbaty niesie ryzyko finansowe, narzędzie do publikowania w feedzie niesie ryzyko eksfiltracji danych, a nawet niewinnie wyglądający minutnik do parzenia jest ryzykowny, ponieważ jego opcjonalna etykieta „mogłaby pozwolić wstrzyknięciu promptu zapisać kolejne instrukcje na potrzeby późniejszych ataków”.3 Deklarowanym wyborem Apple jest, by „skupić się na deterministycznych mechanizmach łagodzących jako podstawie, ponieważ ich gwarancje bezpieczeństwa łatwiej audytować i analizować”, z nałożonymi na to mechanizmami probabilistycznymi.3

Następnie Akshay pokazał API. W Foundation Models modyfikatory zdarzeń cyklu życia to „callbacki, które deterministycznie uruchamiają się w określonych punktach cyklu życia wykonania sesji”, użyteczne jako punkty kontroli bezpieczeństwa. Modyfikator .onToolCall uruchamia się, zanim executor uruchomi narzędzie, a „jeśli ten callback rzuci błąd, narzędzie nigdy nie zostaje wykonane”, co „czyni z niego idealne miejsce do wymuszania potwierdzeń”: sprawdzenie, czy bieżące narzędzie jest tym finansowym, i jeśli tak, zażądanie najpierw potwierdzenia od użytkownika.3 Modyfikator .historyTransform „uruchamia się, zanim transkrypcja zostanie wyrenderowana modelowi do wnioskowania”, pozwalając owinąć niezaufany wynik narzędzia w ograniczniki spotlightingu i zredagować dane osobowe, zastępując wrażliwe fragmenty symbolem zastępczym [REDACTED], zanim model je zobaczy.3 Jedno zastrzeżenie: te transformacje „obejmują wyłącznie bieżącą iterację wnioskowania”, dlatego stosuje się je ponownie przy każdym wywołaniu albo używa adnotacji @SessionProperty do transformacji, które mają być trwałe.3

Dla aplikacji integrujących się z Siri przez App Intents obowiązują dwa systemowe zabezpieczenia. Potwierdzenia są „oparte na ryzyku” i „kontekstowe”: gdy intent przyjmuje schemat, dziedziczy metadane ryzyka tego schematu (usuwanie zdjęć jest destrukcyjne, eksfiltracja danych jest ryzykowna), a system oceny ryzyka łączy te statyczne metadane z „dynamicznym stanem systemu”, aby zdecydować, czy zapytać użytkownika przed wykonaniem.3 Drugim jest uwierzytelnianie na ekranie blokady: ponieważ Siri jest dostępna na zablokowanym urządzeniu, właściwość authenticationPolicy intentu ustawia się na .requiresAuthentication, aby destrukcyjne akcje nie mogły się wykonać przy zablokowanym ekranie; domyślną politykę schematu można nadpisać „wyłącznie tak, by uczynić ją surowszą”, a słabsze nadpisanie powoduje błąd kompilacji.3

Debugowanie pętli (sesja 243)

Watch on Apple Developer ↗

Erik diagnozuje cichą awarię agentową w swojej aplikacji Craft, zaczynając od 1:58.

Elastyczność pętli jest zarazem jej problemem podczas debugowania. Jak powiedział Erik, inżynier narzędzi AI: „Tradycyjny kod jest przewidywalny. LLM-y są niedeterministyczne; to samo wejście może dać różne wyjścia”.4 Wymienił trzy wyzwania nieobecne w tradycyjnym programowaniu: probabilistyczne wyjście (przez co „standardowe testy jednostkowe przestają działać”, a zamiast nich ocenia się jakość i intencję), komunikację model-model oraz obserwowalność, „gdy coś się psuje w wielomodelowym potoku, bardzo trudno może być stwierdzić, gdzie poszło nie tak”.4 Instrument Foundation Models w Xcode 27 istnieje, by odpowiedzieć właśnie na to ostatnie.

Erik zademonstrował to w swojej aplikacji Craft, gdzie funkcja burzy mózgów używa dwóch zestawów instrukcji, burzy mózgów i generowania samouczka, przy czym zestaw burzy mózgów udostępnia GenerateCraftIdeaTool i SwitchToTutorialModeTool.4 W śladzie funkcja zawiodła: wciąż proponowała pomysły zamiast przełączyć się na samouczek. Ścieżka Instructions od razu opowiedziała tę historię, pokazując, że „przez całą sesję aktywny był tylko jeden zestaw instrukcji, podczas gdy funkcja miała używać dwóch, więc coś poszło nie tak podczas przekazania”.4 Widok drzewa, który porządkuje wszystko w „sesje, żądania, wnioskowania modelu, instrukcje, prompty i odpowiedzi”, ujawnił przyczynę źródłową: „Prompt odwołuje się do narzędzia switchToTutorialMode, ale to narzędzie w rzeczywistości nie jest skonfigurowane z tą instrukcją”.4 Model wciąż wykonywał wywołania narzędzi bez rzucania błędu: „to była cicha awaria”, najtrudniejszy do wychwycenia rodzaj.4 Dodanie brakującego narzędzia do zestawu narzędzi rozwiązało problem, a ponowny ślad pokazał dwa odrębne aktywne zestawy instrukcji, z przekazaniem zachodzącym poprawnie po wywołaniu narzędzia switchToTutorialMode.4

Instrument czyni też czytelną wydajność. Ścieżka Model Inference używa żółtych słupków dla przetwarzania promptu wejściowego i pomarańczowych dla generowania odpowiedzi.4 Optymalizację napędzają trzy metryki: Time to First Token („wysokie Time to First Token oznacza, że ludzie wpatrują się w pusty ekran; aby je zmniejszyć, skróć prompt”), Tokens per Second (aby „porównywać wydajność między różnymi konfiguracjami promptu i wychwytywać regresje po zmianach”) oraz Total Latency, „liczba, którą ludzie odczuwają najbardziej bezpośrednio”, redukowana w odbiorze przez wcześniejsze strumieniowanie częściowych wyników.4 Jedna uwaga operacyjna: instrument „przechwytuje dane promptu i odpowiedzi z twojego urządzenia, które mogą zawierać informacje wrażliwe”, dlatego logowanie jest wyłączone w produkcji, ale włączone na czas trwania śladu, a pliki śladów przechowuje się w bezpiecznym miejscu.4

Jak zacząć

Cztery sesje składają się w sekwencję, którą można przejść na sprzęcie, który już posiadasz:

  1. Postaw lokalną pętlę. Wykonaj pip install MLX-LM, uruchom mlx_lm.server najpierw z małym modelem obsługującym wywoływanie narzędzi, aby zweryfikować konfigurację, i skieruj base URL agenta na localhost. Zacznij od zadań typu odczytaj-i-zgłoś, zanim pozwolisz agentowi zapisywać pliki czy uruchamiać buildy.1
  2. Skaluj dopiero, gdy jeden Mac nie wystarcza. Jeśli model nie mieści się w pamięci lub wnioskowanie jest zbyt wolne, połącz Maki przez Thunderbolt 5, włącz RDMA w Ustawieniach, wygeneruj plik hostów za pomocą mlx.distributed_config i uruchom te same polecenia pod mlx.launch. Po prędkość sięgnij po równoległość tensorową (domyślną), a po niskie opóźnienie, którego ona wymaga, po topologię siatki.2
  3. Przeprowadź modelowanie zagrożeń przed wdrożeniem funkcji agentowych. Wypisz każde niezaufane źródło kontekstu i efekty uboczne każdej akcji. Dodaj potwierdzenia .onToolCall na narzędziach z efektami ubocznymi oraz spotlighting i redakcję .historyTransform na niezaufanym wyniku narzędzi; w przypadku App Intents przejrzyj metadane ryzyka każdego intentu i ustaw authenticationPolicy, aby destrukcyjne akcje wymagały odblokowanego urządzenia.3
  4. Sprofiluj, zanim mu zaufasz. Sprofiluj swoją funkcję Foundation Models w instrumencie Xcode 27, odczytaj ścieżki Instructions i Model Inference pod kątem cichych awarii i użyj Time to First Token, Tokens per Second oraz Total Latency, aby znaleźć wolne kroki.4

Wszystko z sesji 232 jest „otwartoźródłowe i dostępne już teraz”.1

FAQ

Czy naprawdę mogę uruchomić agenta AI w całości na moim Macu?

Tak. Sesja 232 z WWDC 2026 demonstruje pełną pętlę agentową działającą lokalnie dzięki MLX: model rozumuje, wywołuje narzędzia, obserwuje wyniki i iteruje, a poza maszynę wychodzą jedynie te wywołania narzędzi, które naprawdę potrzebują sieci. Stos to MLX, MLX-LM, zgodny z OpenAI MLX-LM Server oraz, na samej górze, dowolny agent posługujący się protokołem chat completions OpenAI.1

Jak połączyć agenta z lokalnym modelem MLX?

Trzy kroki. Zainstaluj MLX-LM za pomocą pip, uruchom mlx_lm.server z modelem obsługującym wywoływanie narzędzi i ustaw base URL frameworka agentowego na adres lokalnego serwera na localhost. Agent traktuje lokalny serwer dokładnie tak, jak traktowałby chmurowe API LLM, ponieważ MLX-LM Server to gotowy do użycia, zgodny z OpenAI serwer HTTP.1

Co, jeśli model jest zbyt duży na jeden Mac?

MLX rozkłada model na wiele Maców połączonych przez Thunderbolt 5, wykorzystując RDMA (obsługiwany od macOS 26.2) i otwartoźródłową bibliotekę komunikacyjną JACCL od Apple. Zadania uruchamia się poleceniem mlx.launch i plikiem hostów; MLX shardiuje model automatycznie. Podczas sesji Apple uruchomiono model o bilionie parametrów na czterech M3 Ultra i odnotowano około trzykrotne przyspieszenie wnioskowania oraz fine-tuningu w porównaniu z pojedynczą maszyną.2

Jakie jest główne nowe ryzyko bezpieczeństwa dla agentowych aplikacji na Maca?

Pośrednie wstrzykiwanie promptów: złośliwe instrukcje ukryte w niezaufanym kontekście (wydarzenie w kalendarzu, feed społecznościowy, wynik narzędzia), które przekierowują model do akcji, o które użytkownik nigdy nie prosił, takich jak usunięcie danych czy ich eksfiltracja. Apple zaleca przejście przez modelowanie zagrożeń wraz z deterministycznymi zabezpieczeniami: potwierdzeniami .onToolCall oraz spotlightingiem i redakcją danych osobowych przez .historyTransform w Foundation Models, a także potwierdzeniami opartymi na ryzyku i uwierzytelnianiem na ekranie blokady w App Intents.3

Jak debugować agenta, który zawodzi po cichu?

Użyj instrumentu Foundation Models w Xcode 27. Przechwytuje on każde wnioskowanie modelu, zestaw instrukcji, prompt i odpowiedź na ścieżki osi czasu i do widoku drzewa, dzięki czemu możesz dokładnie zobaczyć, jakie narzędzia były dostępne na każdym kroku i gdzie przekazanie poszło nie tak, nawet gdy model nigdy nie rzuca błędu. Pokazuje też Time to First Token, Tokens per Second i Total Latency na potrzeby strojenia wydajności.4


Uruchamianie własnego modelu na Apple silicon to fundament, na którym opiera się ta pętla: zobacz MLX na Apple Silicon: gdy potrzebujesz własnego modelu, a nie modelu Apple oraz uruchamianie modeli na Apple silicon z Core AI. Rozróżnienie między runtime’em a oprzyrządowaniem, które kształtuje to, jak agenci dotykają aplikacji w Swift, znajdziesz w agentowym przepływie pracy Foundation Models. Gdy pętla już działa, kolejnym krokiem jest mierzenie jej jakości, omówione w frameworku Evaluations od Apple. Centrum całej serii to Apple Ecosystem Series, a szerszy kontekst budowania znajdziesz w iOS Agent Development guide.

Bibliografia


  1. Apple, WWDC 2026 sesja 232, Run local agentic AI on the Mac using MLX. Źródło dla czterowarstwowego stosu (MLX, MLX-LM, MLX-LM Server, agent), trzykrokowej konfiguracji (pip install, mlx_lm.server, ustawienie base URL), definicji pętli agentowej, demonstracji podsumowania PR oraz aplikacji do rysowania w SwiftUI, integracji z kartą Intelligence w Xcode, a także trzech wyzwań sprzętowych: przetwarzania promptu (Neural Accelerators w M5, czterokrotnie szybsze mnożenie macierzy niż na M4), współbieżności (ciągłe batchowanie) oraz rozmiaru modelu (model DeepSeek o 1,6 biliona parametrów wymagający ponad 800 GB pamięci na wagi). 

  2. Apple, WWDC 2026 sesja 233, Explore distributed inference and training with MLX. Źródło dla RDMA przez Thunderbolt 5 (macOS 26.2), biblioteki komunikacji zbiorczej JACCL, topologii siatka kontra pierścień, przepływu pracy mlx.launch / mlx.distributed_config i pliku hostów w formacie JSON, równoległości tensorowej kontra potokowej, wyników klastra czterech M3 Ultra (Qwen 3.6 w tempie niemal trzykrotnie wyższym niż pojedyncza maszyna; Kimi 2.6 o bilionie parametrów działający na czterech maszynach; fine-tuning LoRA od ~180 do ~600 tokenów na sekundę) oraz API w Pythonie, Swift i C++. 

  3. Apple, WWDC 2026 sesja 347, Secure your app: mitigate risks to agentic features. Źródło dla pośredniego wstrzykiwania promptów, zatrucia danych i zatrucia akcji, ujęcia Lethal Trifecta, ćwiczenia z modelowania zagrożeń (niezaufane źródła kontekstu i efekty uboczne akcji) oraz API łagodzących: modyfikatorów zdarzeń cyklu życia Foundation Models .onToolCall (potwierdzenia) i .historyTransform (spotlighting i redakcja danych osobowych, ograniczone do jednej iteracji wnioskowania, z @SessionProperty dla trwałości), a także kontekstowych potwierdzeń opartych na ryzyku w App Intents oraz authenticationPolicy (.requiresAuthentication, nadpisywalnej wyłącznie na surowszą politykę). 

  4. Apple, WWDC 2026 sesja 243, Debug and profile agentic app experiences with Instruments. Źródło dla trzech wyzwań rozwoju z LLM-ami (probabilistyczne wyjście, komunikacja model-model, obserwowalność), instrumentu Foundation Models w Xcode 27 (ścieżki Instructions i Model Inference, widok drzewa sesja/żądanie/wnioskowanie), diagnozy cichej awarii w aplikacji Craft (narzędzie przywołane w promptcie, ale brakujące w zestawie narzędzi instrukcji), uwagi o prywatności dotyczącej logowania śladów oraz trzech metryk wydajności: Time to First Token, Tokens per Second i Total Latency. 

Powiązane artykuły

Foundation Models z poziomu Pythona: narzędzie fm CLI

macOS 27 dostarcza narzędzie wiersza poleceń fm oraz SDK Foundation Models dla Pythona, dzięki czemu można skryptować dz…

11 min czytania

Game Porting Toolkit 4: agentowe portowanie gier na Maca

Game Porting Toolkit 4 dostarcza agentowe skille do portowania jako plugin Claude Code oraz narzędzia CLI gpucapture i g…

12 min czytania

Warstwa porządkowa to prawdziwy rynek agentów AI

Charlie Labs zmieniło kierunek z budowania agentów na sprzątanie po nich. Rynek agentów AI przesuwa się z generowania w …

11 min czytania