Desktopowy agent AI Sojuz: podejście open source z priorytetem bezpieczeństwa
Deweloperzy udostępnili w open source desktopowego agenta „Sojuz”, skupiającego się na bezpieczeństwie i przewidywalności działania. W przeciwieństwie do narzędzi o rozbudowanej funkcjonalności, projekt minimalizuje ryzyka, unikając rozwlekłych protokołów takich jak MCP. Agent działa lokalnie, bez VPN i skomplikowanych konfiguracji, obsługuje modele Gigachat i Anthropic.
Kod źródłowy jest dostępny do analizy i modyfikacji. Projekt powstał z doświadczeń zdobytych na hackathonach i podczas pracy nad mobilnymi agentami w Kotlin Multiplatform.
Narodziny pomysłu: od prostych agentów do rozwiązań desktopowych
W lipcu 2025 roku autor opublikował przewodnik po tworzeniu agentów w Kotlin. W tym czasie agenty desktopowe były już integrowane z przepływami pracy poprzez API OpenAI i Anthropic. Automatyzowały one rutynę: sterowanie głosowe, interakcję z interfejsem użytkownika.
Na hackathonie w Sberze zespół zrezygnował z uniwersalnych rozwiązań takich jak Claude Code. Zamiast tego stworzyli agenta dla niewidomych użytkowników: rozpoznawanie ekranu, sterowanie klawiaturą i myszą bez interfejsu. Doświadczenie z biblioteką Robot w Clojure i DSL do automatyzacji pomogło zrealizować prototyp w tydzień.
Agent przeszedł etap eliminacyjny, demonstrując komendy głosowe do otwierania plików, stron internetowych, kliknięć i skrótów klawiszowych. Przed finałem pojawiły się problemy z cenzurą Gigachat – dodano obsługę Anthropic przez VPN, co obniżyło wydajność.
Restart: framework w Kotlin Multiplatform
Po hackathonie projekt został przekierowany na aplikacje mobilne. Wykorzystano Kotlin Multiplatform (KMP) dla wieloplatformowości na iOS, Android i desktop. Opracowano własny framework agentów oparty na grafach, bez zewnętrznych zależności.
Kluczowe publikacje:
- Agent w Kotlin bez frameworków: implementacja poprzez grafy stanów.
- KMP i Xcode: doświadczenia z przenoszeniem agentów na 4 platformy.
Ten stos technologiczny stał się podstawą dla „Sojuza”, zapewniając jednolitą bazę kodu i kontrolę nad bezpieczeństwem.
Bezpieczeństwo przede wszystkim: rezygnacja z MCP
Dla szerokiej publiczności – zwykłych użytkowników – agent musi działać od razu po uruchomieniu, bez VPN, kryptografii czy kart. Wymagania:
- Autonomia: brak konfiguracji.
- Dostępność: obsługa lokalnych modeli i Gigachat bez pośredników.
- Ochrona: minimalizacja podatności.
MCP odrzucono z powodu rozwlekłości: opisy narzędzi takich jak Notion rozdymają kontekst do 45k znaków, obniżając efektywność Gigachat i lokalnych LLM. Badania wykazały 16 podatności w MCP. Przykład Notion MCP tools ilustruje problem:
[
{
"fn": {
"name": "Mcp_notion_notion_search",
"description": "[MCP:notion] Perform a search over:\n- \"internal\": Semantic search over Notion workspace...",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Semantic search query over your entire Notion workspace..."
}
}
}
}
}
]
Podobne konstrukcje zabijają wydajność. „Sojuz” wykorzystuje uproszczony stos: stały zestaw narzędzi, grafy zadań, wykonanie lokalne.
Architektura i stos technologiczny
Projekt zbudowano na KMP dla desktopa (Compose Multiplatform). Główne komponenty:
- Rdzeń agenta: graf stanów do planowania zadań.
- Narzędzia: zrzut ekranu, OCR, symulacja wprowadzania (klawiatura/mysz).
- Modele: Gigachat (główny), Anthropic (zapasowy), lokalne LLM.
- Bezpieczeństwo: sandboxing narzędzi, walidacja promptów, brak wywołań sieciowych bez wyraźnej zgody.
Grafy pozwalają przewidywać zachowanie: agent nie wykracza poza plan, minimalizując tokeny. Oszczędność kontekstu – do 70% w porównaniu z MCP.
Dla programistów middle/senior stos jest interesujący jako alternatywa dla LangChain czy AutoGen: pełna kontrola, integracja z KMP, skupienie na automatyzacji desktopowej.
Co jest ważne
- Open source: kod źródłowy na GitHub, licencja MIT do swobodnego wykorzystania.
- Bezpieczeństwo: rezygnacja z MCP, stałe narzędzia, uruchomienie lokalne.
- Dostępność: działa z Gigachat bez VPN, obsługa głosu i ekranu.
- Stos KMP: wieloplatformowość, grafy zamiast łańcuchów promptów.
- Oszczędność zasobów: kontekst do 4k tokenów zamiast 45k+ w MCP.
— Editorial Team
Brak komentarzy.