Microsoft wydał 15 lipca stabilną wersję frameworku Agent Skills dla języka Python. Pozwala on programistom pobierać możliwości tylko wtedy, gdy agent sterowany przez LLM faktycznie ich potrzebuje. Zamiast korzystać z jednego, stale rosnącego promptu systemowego, podejście to stosuje ładowanie umiejętności na żądanie, co zmniejsza rozmiar promptu, obniża koszty tokenów i sprawia, że proces rozumowania agenta jest wyraźniejszy.
Dlaczego prompty puchną i dlaczego ma to znaczenie
Agenci LLM polegają na „prompcie systemowym”, który zawiera polityki, instrukcje postępowania (runbooks) oraz materiały referencyjne, które model powinien widzieć w każdej turze. Dodanie kilku dokumentów z politykami powoduje, że prompt puchnie do kilku tysięcy tokenów. Większe prompty zwiększają koszty wnioskowania (inference) – za każdy przetworzony przez model token naliczana jest opłata – oraz osłabiają sygnał instrukcji, co sprawia, że odpowiedzi agenta stają się mniej precyzyjne. W procesach triage'u incydentów lub sprawdzania zgodności (compliance), niejasny prompt może zmienić pomocnego asystenta w źródło dezinformacji.
Wzorzec Agent Skills: progresywne ujawnianie
Nowy framework zastępuje monolityczny prompt czterostopniowym przepływem pracy:
- Ogłoszenie umiejętności – lekki wpis metadanych, który informuje warstwę routingu o nazwie umiejętności.
- Ładowanie instrukcji – zwięzły opis, który agent czyta, aby zdecydować, czy umiejętność odpowiada zapytaniu.
- Odczyt zasobów – opcjonalne pliki z politykami lub materiałami referencyjnymi, pobierane dopiero po wybraniu umiejętności przez agenta.
- Uruchamianie skryptów – wykonywanie kodu realizującego działanie, ograniczone wymogiem wyraźnej zgody.
W głównym prompcie znajduje się tylko krótki plik SKILL.md. Wszystkie większe dokumenty i skrypty znajdują się w pakiecie umiejętności opartym na plikach, który środowisko uruchomieniowe pobiera na żądanie. Struktura katalogów pozostaje prosta:
SKILL.md– krótki, czytelny dla człowieka opis.references/– pliki z politykami lub wytycznymi.scripts/– wykonywalny kod.
Ponieważ agent nigdy nie widzi pełnej zawartości katalogów references/ ani scripts/, dopóki nie uzna, że dana umiejętność jest odpowiednia, główny prompt pozostaje zwięzły, niezależnie od liczby zarejestrowanych umiejętności.
Mechanizmy bezpieczeństwa wbudowane w framework
Framework zakłada, że ładowanie umiejętności może być ryzykowne i wymusza przestrzeganie zasad przez programistów:
- Ogłoszenie nazwy umiejętności – automatyczne, używane wyłącznie do routingu.
- Ładowanie instrukcji – automatyczne dla wyselekcjonowanych list; niezweryfikowane instrukcje mogą nieumyślnie zmienić zachowanie agenta.
- Odczyt polityk – automatyczny, gdy dane nie są wrażliwe; materiały wrażliwe należy chronić dodatkowymi mechanizmami kontroli dostępu.
- Wykonanie skryptu – zawsze wymaga wyraźnej zgody. Skrypt przenosi agenta ze stanu „sugestii” do stanu „działania”, dlatego konieczna jest interwencja człowieka lub sprawdzenie zgodności z polityką.
- Wywołania systemów zewnętrznych – muszą odbywać się poprzez oddzielne narzędzia o ograniczonych uprawnieniach; sama umiejętność nie jest mechanizmem autoryzacji.
Zasady te skłaniają programistów do rozpoczynania od przepływów typu „tylko do odczytu” (np. triage incydentów, sprawdzanie polityk, zapytania o status), zanim podejmą próby działań typu „zapis” (np. aktualizacje baz danych czy wdrażanie kodu).
Higiena operacyjna: logowanie i wersjonowanie
Podczas działania umiejętności framework zachęca (a wiele wdrożeń wręcz nakazuje) do logowania:
- Pierwotnego zapytania i wybranego identyfikatora (ID) umiejętności.
- Wersji użytego pakietu umiejętności.
- Informacji, czy agent załadował tylko opis, czy pobrał również plik zasobów.
- Decyzji o zatwierdzeniu wykonania skryptu.
- Wszystkich przekazanych argumentów narzędzi oraz zwróconych wyników.
Jeśli agent wybierze niewłaściwą umiejętność, potraktuj ten błąd jako przypadek testowy. Pozwala to na przeprowadzenie testu regresji, zanim umiejętność trafi na produkcję.
Traktuj każdą umiejętność jako wersjonowaną zależność o wyraźnych granicach, a nie jako luźny folder z promptami. Wersjonowanie pozwala na wycofanie wadliwego skryptu bez zakłócania pozostałej bazy wiedzy agenta.
Rozpoczęcie pracy: pragmatyczna lista kontrolna
- Wybierz przepływ typu „tylko do odczytu” – np. „sprawdź najnowsze wytyczne dotyczące incydentów bezpieczeństwa”.
- Pakuj instrukcje i skrypty oddzielnie – trzymaj
SKILL.mdw krótkiej formie; duże pliki z politykami umieszczaj wreferences/. - Zadbaj o katalog – prowadź listę zatwierdzonych umiejętności i wymuszaj obowiązkową zgodę na każdy skrypt.
- Ustaw limity piaskownicy (sandbox) – zdefiniuj ograniczenia procesora, pamięci i sieci dla wykonywania skryptów; loguj każde uruchomienie.
- Przeprowadź benchmark względem starego „mega-promptu” – porównaj zużycie tokenów, opóźnienia (latency) i współczynnik sukcesu, aby potwierdzić oszczędności kosztów.
Co dalej
Wydanie Microsoftu jest obecnie stabilną implementacją w języku Python.
Podsumowanie
Agent Skills umożliwiają asystentom opartym na LLM zachowanie lekkości przy jednoczesnym dostępie do stale rozszerzającej się biblioteki polityk i skryptów. Dzięki wczytywaniu jedynie opisu na wstępie i pobieraniu wymagających zasobów dopiero w razie potrzeby, prompty pozostają krótkie, koszty wnioskowania spadają, a proces rozumowania agenta pozostaje skoncentrowany.
