aamp to aplikacja hosta do uruchamiania agentów AI, która zatrzymuje istotne mechanizmy kontroli po stronie hosta. Sekrety zostają na hoście. Egzekwowanie polityk zostaje na hoście. Logowanie i audyt zostają na hoście. Agent dostaje możliwości, host zachowuje władzę.
Rozdzielenie jest strukturalne, nie koncepcyjne. Każda warstwa ma własną odpowiedzialność, własne rekordy i własną ścieżkę audytu.
Deterministyczna automatyzacja po stronie hosta: wywołania helperów, wywołania capabilities, transformacje, a model wywoływany jako jeden ograniczony krok, a nie element napędzający cały program.
Każde wywołanie capability to osobny proces z własnymi limitami. Dostęp do systemu plików jest ograniczony do jawnie wskazanych ścieżek odczytu, zapisu i wykonania; proces działa z no_new_privs, filtrowaniem seccomp i ograniczeniami Landlock.
Helpery i umiejętności są katalogowane i podłączane przez host, więc agent otrzymuje kontrakt narzędzia, a nie poświadczenie. To, do czego agent ma dostęp, jest decyzją zapisaną przez Ciebie, a nie czymś, co agent sam odkrywa.
Cały ruch sieciowy gościa przechodzi przez proxy kontrolowane przez host. Reguły domen obsługują tryb domyślnie-dozwolony lub domyślnie-zablokowany, a host.internal udostępnia tylko te trasy, na które wyrazisz zgodę.
Czternaście domen logów rejestrujących rozliczenie tokenów, decyzje firewalli, ruch przez proxy i wyszukiwanie na poziomie dokumentów — powstają jako efekt uboczny działania systemu, a nie jako osobny projekt integracyjny.
Jeden plik binarny Go, bez cgo i bez usług zewnętrznych. Wdrożenie na hoście Linux z /dev/kvm.
Lokalna baza SQLite z wyszukiwaniem FTS5 w trybie WAL. Kopia zapasowa to jeden plik i dwa katalogi.
Firecracker microVM do zadań ryzykownych — sterowanie przeglądarką, renderowanie dokumentów, indeksowanie RAG.
Dowolny endpoint zgodny z OpenAI: vLLM, Ollama, LocalAI, TGI lub hostowany dostawca modeli frontier.
Zbiory danych DataLake na DuckDB i Parquet — wersjonowane, klasyfikowane i odpytywane przez agentów tylko do odczytu.
Trzy role z uprawnieniami per zasób oraz zabezpieczenia wejściowe i wyjściowe na każdym interfejsie.
14 domen logów: rozliczenie tokenów, decyzje firewalli, ruch przez proxy i wyszukiwanie na poziomie dokumentów.
Zabezpieczenie działa, zanim wiadomość użytkownika dotrze do modelu agenta. Treść bezpieczna przechodzi dalej; niebezpieczna zatrzymuje żądanie i zwraca ustawiony przez Ciebie komunikat odmowy. Nieudana ocena nie przechodzi po cichu — mechanizm domyślnie blokuje.
Zabezpieczenia to wielokrotnie używane polityki, podłączane per interfejs: czat wewnętrzny, WebWidget, API i endpoint zgodny z OpenAI, oraz przetwarzanie treści, które sprawdza niezaufane dane wyjściowe narzędzi przed ich powrotem do pętli.
Klasyfikator wewnętrzny działa w zarządzanym przez platformę sidecarze w Rust: wagi INT8 ONNX przez RTen, wyłącznie CPU z kernelami AVX2 i AVX-512, nakładające się okna powyżej kontekstu 512 tokenów, bez zależności sieciowych w czasie działania. Każda decyzja jest zapisywana wraz z uzasadnieniem, kategoriami, oceną ryzyka i czasem wykonania.
Co weszło do promptu, co zostało wyszukane, co zwrócił model, które narzędzia się uruchomiły i ile to kosztowało — zapisane jako efekt uboczny działania systemu.
Obowiązki informacyjne z artykułu 50 wchodzą w życie 2 sierpnia 2026. Obowiązki dla systemów wysokiego ryzyka z załącznika III obowiązują do grudnia 2027, co oznacza, że budujesz architekturę, a nie kupujesz łatkę.
Pod tym wszystkim trzy role. Admin konfiguruje i administruje. Operator widzi cały system i rozmawia z każdym agentem, ale nie zmienia konfiguracji istotnej dla bezpieczeństwa. Użytkownik ma dostęp tylko do jawnie przypisanych agentów i przyznanych baz wiedzy.
Decyzje są egzekwowane na serwerze dla każdej chronionej trasy, nie przez ukrywanie przycisków. Zmiana uprawnień unieważnia sesje danego użytkownika, ostatniego aktywnego administratora nie można zdegradować ani usunąć, a każda zmiana zapisuje rekord autoryzacji z podmiotem, akcją, celem i wynikiem.
no_new_privs, brak zrzutów stanu procesu, filtrowanie seccomp, ograniczenia Landlock, limity zasobówhost.internal udostępnia tylko trasy, na które wyrazisz zgodęFiltr wyjściowy działa po wygenerowaniu odpowiedzi, a przed jej dostarczeniem, zamieniając wykryte identyfikatory na jawne znaczniki — [REDACTED_EMAIL], [REDACTED_PERSON_NAME] — zachowując sens i strukturę odpowiedzi.
Przy aktywnym filtrze odpowiedź jest buforowana, a nie strumieniowana, więc żaden nieprzefiltrowany fragment nie wydostaje się wcześniej. Dostarczany, zapisywany i audytowany jest wyłącznie oczyszczony tekst. Jeśli filtr zawiedzie, dostarczenie zostaje zablokowane.
Filtrowanie danych osobowych to środek ograniczania ryzyka, nie certyfikacja. Jakość detekcji zależy od języka, kontekstu i treści wejściowej, a mechanizm ten powinien działać obok minimalizacji danych, kontroli dostępu i polityki retencji.
Agent, który zużywa tokeny za cztery dolary, żeby zaoszczędzić piętnaście minut pracy, nie jest zyskiem produktywności. Koszt na efekt to jedyna uczciwa metryka i pozostaje niewidoczny, dopóki warstwa orkiestracji go nie mierzy.
Zużycie tokenów logowane per agent, per proces i per model. Wiesz, które zastosowanie jest drogie, wcześniej niż dział finansowy.
Zapytania do DataLake i wywołania Data Products są logowane tak samo, powiązane z wersją i buildem zbioru danych — koszt rekomendacji jest więc równie łatwy do wyśledzenia jak koszt jednej tury czatu.
Kieruj rutynową większość ruchu do modeli małych lub lokalnych, a możliwości modeli frontier zachowaj dla tej części zadań, która to uzasadnia. Raportowane łączne oszczędności routingu warstwowego wynoszą od 40 do 80 procent wobec pracy wyłącznie na modelach frontier.
Ogranicz liczbę wywołań modelu na zadanie. Wymuś podsumowanie i zatrzymanie po N turach. To w pętli agentowej giną budżety.
Tokeny rozumowania rozliczane są jak wyjściowe. Ustaw limit per agent, zamiast odkrywać go na fakturze.
aamp mówi w API zgodnym z OpenAI, więc każdy dostawca, który robi to samo, jest jedno przypisanie dalej. Modele open-weight dorównują dziś zamkniętym modelom frontier w wielu benchmarkach — suwerenność nie kosztuje już utraty możliwości.
Dostawca i model przypisują się do agenta, procesu i capability — nie do globalnego ustawienia. Klasyfikacja danych decyduje, który model może wywołać dany agent, a to samo przypisanie reguluje, którzy agenci mogą odpytywać zbiór danych DataLake lub Data Product.
Uruchamiaj modele open-weight na własnym sprzęcie obok hostowanych modeli frontier, za jedną granicą polityk. Dowolny endpoint zgodny z OpenAI: vLLM, Ollama, LocalAI lub TGI.
Drugi dostawca to skonfigurowane rozwiązanie awaryjne, a nie incydent, przez który improwizujesz w trakcie awarii.
Deterministyczna automatyzacja po stronie hosta z wywołaniami helperów, wywołaniami capabilities, transformacjami i opcjonalnymi decyzjami modelu.
Zarządzane przez host wczytywanie i wyszukiwanie dokumentów. Wyszukiwanie odbywa się po stronie hosta, nie w środowisku gościa.
Endpointy czatu zgodne z OpenAI, z trwałą historią sesji, przypisaniami modeli i podłączanymi politykami.
Wielokrotnie używane integracje zarządzane przez host — wyszukiwanie, HTTP, SSH, odczyt stron, automatyzacja przeglądarki, tymczasowy system plików.
Skatalogowane umiejętności hosta, instalowane w kontekście agenta, część eksportuje ustrukturyzowane definicje capabilities.
Ograniczone wykonanie narzędzi z walidacją schematu argumentów oraz jawną kontrolą ścieżek, sieci i sandboxa.
Harmonogram w stylu cron dla procesów i promptów agentów, z historią uruchomień.
Dane tabelaryczne pod tym samym nadzorem hosta co bazy wiedzy i sekrety. Zbudowane na DuckDB, DuckLake i Parquet: zbiory danych mają slug SQL i historię wgrywania, a każda opublikowana wersja pozostaje możliwa do odpytania.
Na tym opierają się Data Products — na przykład silnik rekomendacji powiązań — podłączane do agenta, żeby mógł je odpytywać w trakcie rozmowy, bez wynoszenia danych z hosta.
Jeden plik binarny Go, baza SQLite i lokalny stan plikowy. Zacznij na jednym węźle. Rozwijaj rygor operacyjny bez konieczności wdrażania najpierw rozproszonej warstwy kontroli.
/dev/kvm)Wymagania podajemy wprost i od razu. Nieudana instalacja to stracony klient; uczciwa lista wymagań wstępnych nie jest.