Cloudflare daje agentom AI wirtualny komputer w chmurze
Deweloperzy agentów AI ciągle natrafiają na ten sam problem. Modele są dobre w generowaniu kodu, ale potrzebują środowiska do prawdziwej pracy. Potrzebują dysku do zapisywania plików, konsoli do uruchamiania testów, możliwości instalacji pakietu przez npm lub kompilacji dokumentu. Udzielanie agentowi dostępu do lokalnej maszyny jest niebezpieczne. Tworzenie osobnego serwera wirtualnego dla każdego krótkiego zadania jest kosztowne i wolne.
Cloudflare rozwiązało ten problem w projekcie o zwięzłej nazwie computer. Deweloperzy stworzyli wirtualne środowisko wykonawcze zaprojektowane specjalnie dla agentów autonomicznych i agentów sieciowych.
Co w środku
Architektura opiera się na wirtualnym systemie plików. Zasadniczo jest to baza danych SQLite osadzona wewnątrz Cloudflare Durable Object. To rozwiązanie zachowuje stan plików między wywołaniami i trzyma dane blisko kodu.
Aby pracować z tym systemem plików, zespół zaproponował trzy różne środowiska wykonawcze.
Pierwsze środowisko uruchamia pełny kontener Linux. Wewnątrz kontenera działa demon computerd. Montuje on bazę danych jako zwykły dysk przez FUSE i wysyła zmiany przez protokół RPC capnweb. W tym trybie agent ma prawdziwego użytkownika Linux, dostęp do sieci i możliwość uruchamiania dowolnych plików binarnych.
Drugie środowisko wykonuje polecenia przez lekki interpreter just-bash bezpośrednio w izolowanym Workerze. Żaden kontener nie jest uruchamiany. Polecenia wykonują się szybko, a komunikacja z systemem plików odbywa się bezpośrednio.
Trzecie środowisko uruchamia kod JavaScript. Każde polecenie wykonuje się w osobnym Dynamic Workerze. Skrypt uzyskuje dostęp do systemu plików przez standardowy moduł node:fs/promises, a także gotowe narzędzia do pracy z Git i publikowania artefaktów.
Funkcje i benchmarki
Ciekawy szczegół wyszedł na jaw podczas testowania wirtualnego dysku. Deweloperzy przeprowadzili benchmarki porównujące montowanie FUSE computerd z fizycznym dyskiem NVMe.
Okazało się, że w przypadku operacji na metadanych wirtualny dysk jest szybszy niż prawdziwy dysk. Tworzenie tysięcy małych plików, odczytywanie katalogów i sprawdzanie uprawnień odbywa się błyskawicznie dzięki przechowywaniu struktury w RAM i SQLite. Jednak w przypadku sekwencyjnego odczytu i zapisu plików o rozmiarze gigabajtów FUSE ustępuje fizycznemu dyskowi.
W przypadku zadań agentów AI ta konfiguracja sprawdza się świetnie. Agenci częściej tworzą małe skrypty, edytują pliki konfiguracyjne i czytają kod źródłowy niż przetaczają przez siebie ciężkie wideo.
Przykłady użycia z repozytorium
W repozytorium znajdują się gotowe przykłady pokazujące, jak działa system.
W jednej prezentacji agent otrzymuje zadanie wygenerowania dokumentu PDF. Najpierw tworzy plik Markdown w wirtualnym katalogu. Następnie agent wywołuje przez kontener narzędzie pandoc, które konwertuje tekst na gotowy PDF.
Inny przykład pokazuje integrację z sieciami neuronowymi. Agent generuje obraz przez Workers AI, zapisuje wynikowy plik na wirtualnym dysku i udostępnia użytkownikowi publiczny link.
Jest też bardziej zaawansowany przypadek: agent wdraża projekt Cloudflare Worker, buduje go w wirtualnym środowisku i publikuje w rejestrze artefaktów.
Status projektu
Zespół Cloudflare wyraźnie zaznacza, że repozytorium ma status preview. Kod nadaje się do eksperymentów, hackathonów i prototypów, ale jest jeszcze zbyt wcześnie, aby uruchamiać na nim krytyczne usługi. Architektura i API mogą się w dowolnym momencie zmienić.
Na razie nie są przyjmowane otwarte pull requesty. Można uczestniczyć w rozwoju przez dyskusje w Issues.
Dla kogo to jest
Projekt jest przydatny dla osób piszących złożonych agentów w TypeScript i wybierających infrastrukturę do uruchamiania generowanego kodu. Połączenie SQLite, FUSE i Cloudflare Workers zapewnia lekkie i izolowane środowisko, które uruchamia się w milisekundach.
Powiązane projekty