# Wtyczki i umiejętności ## Wtyczki ### Czym są wtyczki? Wtyczki to moduły TypeScript, które rozszerzają funkcjonalność Neotask w czasie wykonywania. Mogą dodawać nowe kanały komunikacyjne, narzędzia agentów, metody RPC, polecenia CLI, usługi w tle i umiejętności. ### Oficjalne wtyczki **Kanały komunikacyjne:** - Microsoft Teams, Matrix, Nostr, Zalo, Feishu/Lark, LINE, Nextcloud Talk, Mattermost, Tlon, Twitch **Funkcje:** - **Połączenia głosowe** -- Obsługa telefonii SIP dla przychodzących/wychodzących połączeń głosowych - **Pamięć (LanceDB)** -- Długoterminowa pamięć z wyszukiwaniem podobieństwa wektorowego - **MCP Native** -- Integracja serwera Model Context Protocol do łączenia zewnętrznych narzędzi **Dostawcy uwierzytelniania:** - Google Antigravity OAuth, Gemini CLI OAuth, Qwen OAuth, Minimax OAuth, VS Code Copilot Proxy ### Możliwości wtyczek Wtyczki mogą rejestrować: - **Metody RPC** -- Niestandardowe metody WebSocket dla klientów do wywoływania - **Handlery HTTP** -- Niestandardowe punkty końcowe HTTP na bramie - **Narzędzia agentów** -- Nowe narzędzia z typowanymi schematami, które agenci mogą wywoływać - **Polecenia CLI** -- Dodatkowe polecenia wiersza poleceń - **Usługi w tle** -- Długo działające procesy zarządzane przez bramę - **Umiejętności** -- Katalogi umiejętności dołączone do wtyczki - **Polecenia automatycznej odpowiedzi** -- Polecenia wykonywane bez udziału agenta AI ### Bezpieczeństwo wtyczek Neotask sprawdza wtyczki na kilku poziomach, zanim zostaną uruchomione: - **Podpisane i zweryfikowane.** Pakiety w publicznym katalogu Construct publikuje Neotask; przed wydaniem są automatycznie sprawdzane i podpisywane kluczem wydań Neotask. Przed instalacją Neotask sprawdza podpis za pomocą kluczy wbudowanych w Neotask i weryfikuje skrót SHA-256 pobranego pliku. - **Brak skryptów instalacyjnych.** Pakiety Construct zawierają swoje zależności, więc instalacja nigdy nie uruchamia menedżera pakietów ani skryptu instalacyjnego. Gdy inna instalacja wtyczki korzysta z npm, skrypty instalacyjne są wyłączone. - **Skanowanie podczas instalacji.** Wtyczki instalowane spoza Construct są skanowane pod kątem niebezpiecznego kodu, a krytyczne wyniki blokują instalację. - **Licencja na wydanie.** Wtyczka Construct ładuje się tylko wtedy, gdy Twoje konto ma ważne uprawnienie do tego wydania. Wycofane wydania się nie ładują. - **Zatwierdzanie działań agenta.** Wywołania narzędzi przez agenta, w tym narzędzi dodanych przez wtyczki, są sprawdzane względem Twojej zasady zatwierdzania, a działania wymagające Twojej zgody czekają na nią. Oprogramowanie, które agent chce zainstalować poza wbudowanymi przepisami instalacji Neotask, zawsze pokazuje dokładne polecenie i czeka na Twoją zgodę. - **Opcjonalny sandbox.** Możesz uruchamiać narzędzia agenta w izolowanym kontenerze Docker zamiast bezpośrednio na swoim komputerze. Sandbox jest domyślnie wyłączony; aby go włączyć, zobacz [Bezpieczeństwo](security.md). Natywne wtyczki działają w procesie bramy, więc wtyczka zainstalowana spoza Construct to kod, który sam decydujesz się uruchomić. Użyj `plugins.allow`, aby wskazać wtyczki, które mogą się ładować. --- ## Umiejętności ### Czym są umiejętności? Umiejętności to modułowe możliwości, które uczą agentów nowych przepływów pracy. Każda umiejętność to plik markdown (`SKILL.md`) z instrukcjami, które są wstrzykiwane do kontekstu agenta, gdy są istotne. ### Lokalizacje umiejętności (kolejność priorytetów) 1. **Umiejętności przestrzeni roboczej** -- `/skills/` (najwyższy priorytet) 2. **Zarządzane umiejętności** -- `~/.neotask/skills/` 3. **Umiejętności dołączone** -- Dostarczane z Neotask 4. **Umiejętności wtyczek** -- Umiejętności spakowane z zainstalowanymi wtyczkami 5. **Dodatkowe katalogi** -- Dodatkowe skonfigurowane ścieżki (najniższy priorytet) Gdy wiele umiejętności ma tę samą nazwę, wygrywa lokalizacja o najwyższym priorytecie. ### Funkcje umiejętności - **Wywoływalne przez użytkownika** -- Wyzwalaj umiejętności bezpośrednio za pomocą poleceń slash (np. `/docker-build`) - **Wywoływalne przez model** -- Umiejętności, które agent może wywoływać samodzielnie, gdy są istotne - **Wysyłanie poleceń** -- Umiejętności mapowane na konkretne narzędzia - **Bramkowanie wymaganiami** -- Umiejętności ładują się tylko wtedy, gdy spełnione są ich wymagania (wymagane binaria, klucze konfiguracyjne, zmienne środowiskowe, wtyczki) ### Tworzenie umiejętności Utwórz plik `SKILL.md` z frontmatter YAML definiującym metadane i instrukcje umiejętności: **Pola frontmatter:** - `name` -- Identyfikator umiejętności - `description` -- Co robi umiejętność - `homepage` -- Link do dokumentacji - `user-invocable` -- Czy użytkownicy mogą ją wyzwalać bezpośrednio - `disable-model-invocation` -- Zapobiegaj autonomicznemu wywoływaniu przez agenta - `command-dispatch` -- Narzędzie do wysyłania - `metadata.neotask.requires` -- Wymagania wstępne (binaria, konfiguracja, środowisko, wtyczki) **Treść:** Instrukcje w Markdown uczące agenta, jak korzystać z umiejętności, w tym przykłady i wytyczne. ### Katalog umiejętności Przeglądaj dostępne umiejętności w [katalogu umiejętności](/skills). ### Kategorie umiejętności Umiejętności obejmują szeroki zakres możliwości: | Kategoria | Przykłady | |-----------|----------| | **Produktywność** | Zarządzanie emailem, kalendarz, generowanie dokumentów | | **Programowanie** | Operacje Git, CI/CD, Docker, przegląd kodu | | **Komunikacja** | Komunikacja, powiadomienia, ogłoszenia | | **Media** | Przetwarzanie obrazów, edycja wideo, transkrypcja audio | | **AI i modele** | Przełączanie modeli, zarządzanie promptami, RAG | | **Inteligentny dom** | Sterowanie urządzeniami IoT, wyzwalacze automatyzacji | | **Narzędzia** | Konwersja plików, transformacja danych, scrapowanie sieciowe |