Desktopový AI agent Sojuz: open source přístup s prioritou bezpečnosti
Vývojáři vydali do open source desktopového agenta „Sojuz“, zaměřeného na bezpečnost a předvídatelnost provozu. Na rozdíl od nástrojů s rozšířenou funkcionalitou projekt minimalizuje rizika tím, že se vyhýbá mnohomluvným protokolům jako MCP. Agent pracuje lokálně, bez VPN a složitých nastavení, podporuje modely Gigachat a Anthropic.
Zdrojový kód je k dispozici ke studiu a vylepšení. Projekt vznikl ze zkušeností z hackathonů a mobilních agentů na Kotlin Multiplatform.
Zrození myšlenky: od jednoduchých agentů k desktopovým řešením
V červenci 2025 autor publikoval návod k vytváření agentů na Kotlinu. V té době se desktopoví agenti již integrovali do pracovních procesů přes API OpenAI a Anthropic. Automatizovali rutinu: hlasové ovládání, interakci s UI.
Na hackathonu ve Sberu tým odmítl univerzální řešení jako Claude Code. Místo toho vytvořili agenta pro nevidomé uživatele: rozpoznávání obrazovky, ovládání klávesnice a myši bez UI. Zkušenost s Clojure knihovnou Robot a DSL pro automatizaci pomohla realizovat prototyp za týden.
Agent prošel kvalifikační fází, demonstrující hlasové příkazy pro otevírání souborů, webů, klikání a klávesové zkratky. Před finále nastaly problémy s cenzurou Gigachat – přidali podporu Anthropic přes VPN, což snížilo výkon.
Restart: framework na Kotlin Multiplatform
Po hackathonu se projekt přeorientoval na mobilní aplikace. Použili Kotlin Multiplatform (KMP) pro křížovou platformnost na iOS, Android a desktopu. Vyvinuli vlastní framework agentů založený na grafech, bez externích závislostí.
Klíčové publikace:
- Agent na Kotlinu bez frameworků: implementace přes grafy stavů.
- KMP a Xcode: zkušenost s portováním agentů na 4 platformy.
Tento stack se stal základem pro „Sojuz“, zajišťující jednotný kód a kontrolu nad bezpečností.
Bezpečnost na prvním místě: odmítnutí MCP
Pro masové publikum – běžné uživatele – musí agent fungovat ihned po spuštění, bez VPN, kryptografie nebo karet. Požadavky:
- Autonomie: žádná nastavení.
- Dostupnost: podpora lokálních modelů a Gigachat bez prostředníků.
- Ochrana: minimalizace zranitelností.
MCP byl odmítnut kvůli mnohomluvnosti: popisy nástrojů jako Notion nafouknou kontext až na 45k znaků, snižují efektivitu Gigachat a lokálních LLM. Výzkum odhalil 16 zranitelností v MCP. Příklad Notion MCP tools demonstruje problém:
[
{
"fn": {
"name": "Mcp_notion_notion_search",
"description": "[MCP:notion] Proveďte vyhledávání přes:\n- \"internal\": Sémantické vyhledávání v Notion pracovním prostoru...",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Sémantický vyhledávací dotaz přes celý váš Notion pracovní prostor..."
}
}
}
}
}
]
Podobné konstrukce zabíjejí výkon. „Sojuz“ používá zjednodušený stack: pevnou sadu nástrojů, grafy úloh, lokální provádění.
Architektura a technologický stack
Projekt je postaven na KMP pro desktop (Compose Multiplatform). Hlavní komponenty:
- Jádro agenta: grafy stavů pro plánování úloh.
- Nástroje: snímek obrazovky, OCR, simulace vstupu (klávesnice/myš).
- Modely: Gigachat (hlavní), Anthropic (náhradní), lokální LLM.
- Bezpečnost: sandboxing nástrojů, validace promptů, absence síťových volání bez výslovného souhlasu.
Grafy umožňují předvídat chování: agent nepřekračuje rámec plánu, minimalizuje tokeny. Úspora kontextu – až 70 % ve srovnání s MCP.
Pro middle/senior vývojáře je stack zajímavý jako alternativa k LangChain nebo AutoGen: plná kontrola, KMP integrace, zaměření na desktopovou automatizaci.
Co je důležité
- Open source: zdrojové kódy na GitHubu, licence MIT pro volné použití.
- Bezpečnost: odmítnutí MCP, pevné nástroje, lokální spuštění.
- Dostupnost: funguje s Gigachat bez VPN, podpora hlasu a obrazovky.
- KMP stack: křížová platformnost, grafy místo řetězců promptů.
- Úspora zdrojů: kontext do 4k tokenů místo 45k+ v MCP.
— Editorial Team
Zatím žádné komentáře.