Sofia är en avancerad, kontextmedveten AI-assistent och multi-agent-orkestrerare skriven i Go. Designad för att fungera som en fullstack-utvecklare, systemarkitekt och projektledare. Genom att integrera direkt i den lokala utvecklingsmiljön kan Sofia läsa/skriva filer, exekvera terminalkommandon, schemalägga uppgifter och delegera arbete till specialiserade sub-agenter.
- 🛠️ Autonom Verktygsanvändning: Kan läsa/redigera filer, köra bash-kommandon, interagera med Google CLI (Gmail/Calendar) och hämta data från webben.
- 🧠 Persistens & Minne: Upprätthåller ett långtidsminne och för dagliga anteckningar i en delad SQLite-databas (
~/.sofia/memory.db) för att aldrig tappa kontexten över tid. - 🤖 Multi-Agent Orkestrering: Kan starta bakgrundsprocesser (
spawn) och delegera komplexa uppgifter till parallella agenter. - 🌐 Brett AI-stöd: Inbyggt stöd för 16 olika AI-leverantörer inkl. OpenAI, Anthropic, Gemini, DeepSeek, Grok, MiniMax och fler via ett enkelt webbgränssnitt.
- 📚 Antigravity Kit (Skill System): Bestyckad med unika "skills" (expert-personas och kunskapsmoduler) för domänspecifik expertis inom allt från frontend-arkitektur till penetrationstestning.
- 💬 Gateway Mode: Inbyggt stöd för chattplattformar som Telegram och Discord via
sofia gateway.
Sofias konfiguration och arbetsyta finns under ~/.sofia/:
~/.sofia/
├── config.json # Huvudkonfiguration (modeller, kanaler, inställningar)
├── memory.db # Delad SQLite-databas för minne och sessionshistorik
├── antigravity-kit/ # Bundlat Antigravity Kit (installeras via sofia onboard)
└── workspace/ # Sofias arbetsyta
├── IDENTITY.md # Basidentitet: ton, roll och hur Sofia ska presentera sig
├── SOUL.md # Kärnprinciper: beteende, värderingar och beslutsstil
├── AGENT.md # Agent-specifik systemprompt
├── USER.md # Användarkontext och preferenser
├── HEARTBEAT.md # Instruktioner för bakgrundsagenten
├── skills/ # Lokala skills/expert-personas
│ ├── github/
│ ├── hardware/
│ ├── skill-creator/
│ ├── summarize/
│ ├── tmux/
│ ├── weather/
│ └── ...
├── cron/ # Schemalagda jobb (jobs.json)
└── state/ # Persistent runtime-state
Innan du bygger från källkod behöver du ha Go installerat (rekommenderat: Go 1.26 eller senare). Du kan ladda ner Go från go.dev/dl.
git clone https://github.com/grasberg/sofia.git
cd sofia
make deps
make buildDen kompilerade binären hamnar direkt i projektets rotmapp som ./sofia.
- Initiera konfiguration och workspace:
sofia onboard- Starta Gateway (för chatt/webb-gränssnitt):
sofia gateway- Öppna Sofias kontrollpanel:
Surfa till
http://127.0.0.1:18795i din webbläsare. Gå till fliken Models för att lägga till din leverantör och API-nyckel.
Sofia stödjer workspace-restriktioner för att förhindra oavsiktlig modifiering av systemfiler.
Via Web UI:
- Öppna Sofias Web UI → Settings.
- Klicka på fliken Security.
- Aktivera Restrict to Workspace — fil- och kommandoverktyg begränsas då strikt till den konfigurerade workspace-sökvägen.
- Inställningen sparas automatiskt.
Sofia kan automatiskt utföra uppgifter i bakgrunden enligt ett schema.
Via Web UI:
- Öppna Sofias Web UI → Settings.
- Klicka på fliken Heartbeat.
- Aktivera Enable Heartbeat och ange hur ofta agenten ska köra (i minuter).
- Ange Active Hours i formatet
09:00-17:00— lämna tomt för 24/7. - Välj Active Days — lämna tomt för att köra varje dag.
- Inställningarna sparas automatiskt.
Sofias beteende, ton och personlighet styrs av två filer: IDENTITY.md och SOUL.md. Du kan enkelt redigera dem direkt i webbgränssnittet:
- Starta Sofia:
sofia gateway - Öppna webbläsaren: Surfa till
http://127.0.0.1:18795 - Gå till Settings i vänstermenyn.
- Redigera IDENTITY.md (vem Sofia är) och SOUL.md (hur Sofia beter sig) direkt i textrutorna.
- Klicka Save prompt files — ändringarna träder i kraft omedelbart utan omstart.
Definierar Sofias roll, namn, och grundläggande kontext. Exempel:
# Identity
- Name: Sofia
- Role: Personal AI assistant
- Running: 24/7 on the user's own hardwareDefinierar personlighet, språk, värderingar och beslutslogik. Exempel:
# Soul
- Svara alltid på svenska
- Var proaktiv och självgående
- Använd torr humor och driv
- Prioritera handling framför att fråga om lov💡 Tips: Du kan ge Sofia vilken personlighet du vill — formell, avslappnad, sarkastisk, pedagogisk, eller helt skräddarsydd för ditt arbetsflöde.
För att ge Sofia full kraft kan du koppla samman henne med externa tjänster.
Sofia använder gogcli för att interagera med Google Services.
- Installera gogcli: Se till att
gogfinns i din PATH. - Autentisera: Kör följande i terminalen och följ instruktionerna:
gog login din.email@gmail.com
- Aktivera i Sofia: Lägg till följande i din
~/.sofia/config.json:{ "tools": { "google": { "enabled": true, "binary_path": "gog", "allowed_commands": ["gmail", "calendar", "drive"] } } }
För att Sofia ska kunna hantera repon, skapa PRs och pusha kod behöver hon en åtkomsttoken.
- Skapa en Personal Access Token (PAT): Gå till GitHub Settings -> Developer Settings -> Personal Access Tokens (Fine-grained rekommenderas). Ge behörighet för
contents,pull requestsochmetadata. - Konfigurera i Sofia: Du kan antingen sätta en miljövariabel i din
.env-fil:Eller lägga till det iGITHUB_TOKEN=your_token_here
config.jsonunderenv_vars:{ "env_vars": { "GITHUB_TOKEN": "your_token_here" } } - Git-identitet: Se till att din lokala git är konfigurerad så att Sofia kan committa i ditt namn:
git config --global user.name "Ditt Namn" git config --global user.email "din.email@example.com"
Sofia kan kopplas till Telegram och svara på meddelanden direkt i chatten.
Via Web UI (rekommenderat):
- Skapa en bot via BotFather i Telegram. Kör
/newbotoch följ instruktionerna. - Kopiera bot-tokenen som BotFather ger dig.
- Öppna Sofias Web UI → Channels.
- Aktivera Telegram, klistra in din bot-token.
- Under Allow From kan du begränsa vilka Telegram-användare som får prata med Sofia (frivilligt, lämna tomt för alla).
- Klicka Save Settings och starta om Sofia.
💡 Tips: Om du kör Sofia bakom en brandvägg eller VPN kan du ange en proxy under Proxy-fältet i Channels-sidan.
Sofia kan även vara aktiv i Discord-servrar och DM:s.
Via Web UI (rekommenderat):
- Gå till Discord Developer Portal och skapa en ny applikation.
- Under Bot → klicka Add Bot → kopiera din Bot Token.
- Under OAuth2 → URL Generator — välj
botscope och ge den behörigheter att läsa/skicka meddelanden. Bjud in boten till din server via den genererade länken. - Öppna Sofias Web UI → Channels.
- Aktivera Discord, klistra in din bot-token.
- Allow From — ange Discord-användarnamn som får interagera med Sofia (frivilligt).
- Mention Only — om aktiverat svarar Sofia bara när hon @-nämns, annars svarar hon på alla meddelanden i kanaler hon har tillgång till.
- Klicka Save Settings och starta om Sofia.
💡 Tips: Sätt
mention_onlytilltrueom Sofia är i en aktiv kanal med många användare — annars svarar hon på allt.
Byggd för att accelerera utveckling. Din lokala AI-kollega.