Skip to content
Na zdjęciu autor artykułu: Jakub FRS FreislerJakub FRS Freisler

Ostatnia aktualizacja:

skills-npm: Porządny sposób na dystrybucję i utrzymanie agent skilli

Nie ma co owijać w bawełnę – tempo rozwoju AI potrafi wykończyć. Mam wrażenie, że co tydzień pojawia się zupełnie nowy paradygmat! A mimo to, nasz codzienny workflow dostarczania skilli stał w miejscu przez długie miesiące.

Choć paczka skills od Vercela pozwoliła nam na jakieś zarządzenie skillami, to ta metoda nie do końca się sprawdza, gdy zarządzasz czymś więcej niż tylko kilkoma projektami. Budujemy zaawansowane systemy agentowe, a wciąż traktujemy ich "mózgi" jak zbiór luźnych plików. Przez lata wypracowywaliśmy w branży sposób współdzielenia kodu przez npm, a w temacie AI skilli wciąż trochę błądzimy po omacku.

Problem: Utrzymanie w stylu "Dzikiego Zachodu"

Pomyśl, jak aktualnie ogarniasz aktualizacje skilli swojego agenta. Masz pakiet skills, który tworzy foldery, symlinki, albo (co gorsza) ręcznie kopiujesz z repozytorium na GitHubie za każdym razem, gdy zmienisz choćby przecinek w prompcie.

Obecne podejścia traktują umiejętności trochę po macoszemu, jak efekty uboczne. To po prostu kawałki tekstu pływające w katalogach, bez żadnej struktury czy wersji. Jeśli budujesz coś na poważnie, takie podejście to tykająca bomba. Chcesz przewidywalności, jaką daje lockfile. Chcesz świętego spokoju, jaki gwarantuje npm update.

skills-npm: Skille jako obywatele pierwszej kategorii

skills-npm przecina ten węzeł gordyjski, traktując każdą umiejętność dokładnie tak, jak kawałek produkcyjnego kodu. Dzięki zamknięciu w strukturze zgodnej z npm, skille stają się wreszcie porządnymi, wersjonowanymi zależnościami.

Dlaczego to podejście wygrywa na polu dystrybucji i wersjonowania?

  • Dystrybucja przez npm: Po co wyważać otwarte drzwi? Wykorzystując rejestr npm, dostajesz mechanizm dystrybucji za darmo. Możesz publikować skill z własnym package.json, kompletnym grafem zależności i dokumentacją.
  • Wersjonowanie: To jest prawdziwy game-changer. Gdy traktujesz skilla jak paczkę npm, możesz określić konkretną wersję, która jest używana. Gdy pojawi się update, który psuje delikatną logikę promptów Twojego agenta – bez paniki. Po prostu zostajesz na wersji, która działa.
  • Potęga grafów: Skoro skille to standardowe pakiety, możesz je dowolnie zagnieżdżać. Potrzebujesz skilla code-review, która polega na konkretnym skillu linting? Wystarczy npm install. Koniec ze spaghetti kodem i ręcznym polowaniem na ścieżki.
  • Ręczne zarządzanie (jak w paczce skills): Klonowanie skilli z repozytoriów Git dodaje tylko niepotrzebne kroki do każdego projektu.
  • Brak narzutu przy udostępnianiu: Zespoły nie muszą ani commitować sklonowanych pliki, ani powtarzać konfiguracji na każdej maszynie.

Praca z skills-npm

Zobaczmy w jaki sposób możesz użyć skills-npm w swoim projekcie.

Konfiguracja (jednorazowa)

Zainstaluj skills-npm w projekcie i dodaj go do skryptu prepare w package.json:

bash
npm install --save-dev skills-npm
json
// package.json
{
    // ...
    "scripts": {
        "prepare": "skills-npm"
    }
}

Jeśli potrzebujesz dodatkowej konfiguracji, stwórz plik skills-npm.config.ts, żeby np. celować w konkretne agenty:

ts
import { defineConfig } from 'skills-npm';

export default defineConfig({
    // Skonfiguruj używa pod konkretnych agentów (domyślnie paczka sama wykrywa, jakie systemy są w użyciu)
    agents: ['cursor', 'windsurf'],
});

Więcej szczegółów w readme paczki.

Użycie

bash
# Dodaj wybraną umiejętność jako devDependency w swoim package.json
npm install --save-dev @my-org/skill-database-optimizer

Gdy już zainstalujesz swoje umiejętności, skills-npm automatycznie podlinkuje je dla Twojego agenta. Agent po prostu zagląda do folderu node_modules, czyta wersjonowany package i działa. Tylko tyle i aż tyle 😃

Więcej informacji

Szczegółowe informacje o tym, jak publikować i korzystać z tej paczki, znajdziesz w [readme skills-npm](https://www.google.com/search?q=https://www.npmjs.com/package/skills-npm%3FactiveTab%3Dreadme). Polecam - jest zwięzłe i przechodzi od razu do rzeczy!

Jeśli interesuje Cię szersze tło, koniecznie rzuć okiem na PROPOSAL napisany przez samego Anthony'ego Fu.