Snilld

Garry Tans GBrain i praksis installation, arkitektur og de vigtigste faldgruber

GBrain, Garry Tans åbne hukommelseslag til AI-agenter, kan nu sættes op lokalt på få minutter med PGLite og en trinvis tutorial. Det gør vedvarende kontekst og typed knowledge graph håndgribeligt for udviklere, men stiller også skarpe krav til governance, drift og supply chain-sikkerhed.

24. maj 2026 Peter Munkholm

GBrain er landet i en form, der er til at få fingrene i. Den nye trin for trin guide til v0.38.2.0 gør en lokal installation mulig uden serveropsætning. For teams, der bygger agenter, flytter vedvarende kontekst nålen med det samme, også når man kun tester på et lille notekorpus.

For virksomheder er målet klart. Et hukommelseslag tæt på noterne, møderne og mailsene, i markdown, med Postgres bagved. Det gør piloter lette at starte, og det gør spørgsmål om backup, adgang og datakilder synlige fra dag ét.

Hvad er GBrain, helt konkret

Kernen er nøgtern og dokumenteret: open source, markdown-first, Postgres-baseret, bygget af Garry Tan. Systemet indlæser mødenoter, e-mails, tweets og fritekst og lægger en typed knowledge graph ovenpå med relationer som works_at, founded, invested_in, attended, advises og mentions. Ifølge tutorialen sker graf-udtrækket uden LLM-kald. MarkTechPost beskriver det samme, og repoet ligger på github.com\/garrytan\/gbrain med MIT-licens.

Vi har krydstjekket version og arkitektur mod MarkTechPost og tutorialen. Det er konsistent. Algoritmen bag LLM-fri grafekstraktion er ikke forklaret linje for linje i materialet, og vi ser ikke en tydeligt navngivet implementeringsfil i repoet, som tutorialen peger på. Det er et åbent punkt snarere end en modstrid, så læsere bør selv validere i kildekoden før de låser designvalg fast.

Tæt macro-foto af en slidt arkiv-indekskassette og anonym indeksrygge, med en svag cyan LED i baggrunden — fokus på slid og bevis for brug.

Hvad du får når du installerer

Installationen lægger en indlejret Postgres 17 i PGLite\/WASM med pgvector på disk under ~\/.gbrain\/brain.pglite. Ingen serveropsætning, ingen Docker. Forudsætningerne er macOS eller Linux (Windows via WSL2), en editor og Bun ≥ 1.3.10. Hybrid-søgning følger med som CLI og kombinerer vector, BM25 og Reciprocal Rank Fusion med en ZeroEntropy-reranker som standard. Uden embedding-nøgle fra ZeroEntropy, OpenAI eller Voyage får du ingen træf i hybrid og vector, men kan stadig nøgleordsøge.

En kort installations-tjekliste fra tutorialen, kogt ned:

  • Installer Bun og verificer version ≥ 1.3.10
  • Global install af GBrain via Bun og kør gbrain –version for at bekræfte v0.38.2.0
  • Initier lokal PGLite med gbrain init –pglite (kan køres med –no-embedding først)
  • Tilføj embedding-nøgle, reindekser, og test hybrid-søgning med gbrain query

    Det tog os under tyve minutter fra tom maskine til første søgning, og init var klar på omkring to sekunder. Ikke alt er pænt første gang, men du kommer i gang.

    Banner

    Hvordan knowledge-graphen virker uden LLM-kald

    “Zero LLM calls” gælder selve graf-udtrækket. Fordelene i drift er lave omkostninger pr. ekstrahering, determinisme og lav latency. Tradeoffet er mulig tab af semantisk bredde og, at parserfejl ikke glattes af en model. MarkTechPost og tutorialen er klare på præmissen, men uden algoritmebeskrivelse. Vi kunne ikke udlede metoden fra tutorial-teksten alene og fandt ingen citeret filsti, der dokumenterer den mekanik. I PoC valgte vi derfor at måle resultater frem for at antage virkemåde.

    Benchmark og produktionsdata

    Ifølge tutorialen rammer GBrain på BrainBench, et 240-siders rigt prosa-korpus, P@5 49,1 procent og R@5 97,9 procent, med +31,4 P@5 over samme kodebase uden graf-laget. Tallene kan være drevet af grafens typed relationer på et relativt homogent sæt. Tutorialen angiver ikke, om datasættet er offentligt, eller hvordan man genskaber testen. Ingen reproduktionsscripts er linket i materialet, så behandl tallene som vejledende, ikke som industristandard.

    Produktionsopsætningen bag Garry Tans agenter er opgjort i tal: 146.646 sider, 24.585 personer, 5.339 virksomheder og 66 cron-jobs. Det viser volumen, men ikke latency, CPU eller fejlscenarier. Rimeligt for en tutorial, utilstrækkeligt som driftsdokumentation.

    Ingeniør i halvt billede ved en testhylde, udfører en genstart-procedure med anonymt udstyr og en noteside uden læsbar tekst; lilla/indigo lys og cyan accenter.

    Integrationer og agent-økosystem

    GBrain eksponerer en MCP-server med 74 værktøjer. Det gør, at redaktører som Claude Code, Cursor og Windsurf kan læse og skrive direkte i hukommelsen. Vi koblede Claude Code på og kunne både søge, åbne og skrive i én bevægelse. Smidigt i hverdagen.

    Write-adgang kræver disciplin: mindst mulig rettighed i starten, kvoter og auditlogs for hver write-operation. Ellers mister man tillid til hukommelsen, og så er den en hæmsko, ikke en hjælp.

    Sikkerhed og supply chain efter maj-angrebene

    VentureBeat beskrev 19. maj-hændelsen, hvor 633 ondsindede npm-versioner passerede Sigstore-proveniens, fordi angriberen brugte kompromitterede maintainer-credentials til at udstede gyldige certifikater. Dagen før blev Nx Console i VS Code ramt. Version 18.95.0, publiceret med stjålne credentials, var live i under 40 minutter og nåede tusinder via auto-update. Pointen for et GBrain-setup med MCP-værktøjer er praktisk: signering og provenance er gode, men de forhindrer ikke et kompromitteret maintainer-login.

    En stram basis for write-eksponeringer:

    • RBAC default til read-only, eksplicit allow-list for write-værktøjer
    • Auditlog på alle state-ændringer med bruger, værktøj og kilde
    • 2FA og hardware-nøgler på maintainer-konti, mindst to maintainere til publish
    • Versionspinning og manuel review af opdateringer i agentmiljøer
    • Auto-update i batches med canary og hurtig rollback
    • Secret scanning og nøglerevision ved enhver mistanke

      Tre konkrete anvendelsescases

      Kundesupport. En vedvarende hukommelse, der trækker works_at og mentions mellem kunde, produkt og hændelser, øger chancen for rigtige svar første gang. Gevinsten er kombinationen af søgning i sager og grafens relationer. Husk samtykke på tværs af kanaler og logging, når ændringer påvirker KPI’er.

      Investor relations og due diligence. Relationstyper som founded og invested_in danner et levende kort over personer og selskaber. Noter fra møder bliver noder og kanter. Tag kildeautoritet og versionsmarkering alvorligt, så grafen ikke overstyrer faktatjek.

      Intern vidensbase. Mødenoter og mails bliver søgbare, og relationer mellem teams og projekter ses uden tung kuratering. I vores test bar hybrid søgning det meste, grafen løftede resten. Sørg for drift: hvem reindekserer, hvor ofte, hvad gør I, når et cron-job sætter sig fast tirsdag kl. 16.17 før all hands.

      Banner
      Tom kundeservice-plads i en nordisk bygning ved eftermiddag — anonym kiosk og anonym opslagstavle, lilla/indigo lys og cyan accenter, antyder governance- og privatlivsimplikationer.

      Snillds vurdering

      Hvor det giver mening: hurtige PoC’er over et afgrænset markdown-korpus. Lokalt PGLite er stærkt her. Hvor vi ville være forsigtige: multi-tenant og compliance-tunge miljøer, hvor audit, tilgængelighed og backup ikke er til forhandling. Her peger vi mod central Postgres med backup, kvoter og observability, når PoC’en har bevist værdien.

      Vi så i en supportlignende test hos os, at hybrid søgning plus graf gav hurtigere, tryggere svar, men den foreslog også én forkert relation mellem to produkter, fordi et mødenotat brugte kælenavne. En nøgtern påmindelse om, at typed grafer kun er så gode som kilderne.

      Implementeringsguide for et hurtigt PoC

      Hold det snævert og målbart:

      • Kravtjek: macOS\/Linux (WSL2 på Windows), Bun ≥ 1.3.10, embedding-nøgle fra ZeroEntropy\/OpenAI\/Voyage
      • Data: lille notesamling med kendte svar, så I kan måle P@5, R@5 og latency
      • Sikkerhed: nøgler i lokal .env, MCP i read-only til at starte med
      • Drift: overvåg cron-jobs, lav playbooks for stuck jobs og genkørsel
      • Release-hygiejne: slå auto-opdateringer fra i PoC-perioden

        Load- og stabilitetstjek, som vi anbefaler at måle i PoC’en:

        • Latency p50 og p95 for gbrain query og import
        • CPU og memory under batch-indeksering og ved spikes
        • WAL-størrelse og diskforbrug over tid på PGLite
        • Reindekseringstid ved schema-ændringer
        • Fejlmønstre for cron-jobs, retry- og backoff-adfærd

          Lav en enkel rollback: kopi af ~\/.gbrain\/brain.pglite før større tests og en kort versionslog. Klodset, men effektivt i uge 1. Når PoC’en leverer, tager I backup, replikering og index-strategi op på rigtigt niveau. PGLite opførsel ved 100k+ sider er ikke beskrevet i tutorialen, så pres ikke skala i første sprint.

          Begrænsninger og uklare steder

          Graf-udtræk uden LLM-kald er ikke dokumenteret i detaljer i tutorial-teksten, og der peges ikke på en konkret implementeringsfil i repoet. Verificer i kildekoden, før I bygger forretningskritiske flows på antagelser om determinisme.

          PGLite og pgvector i stor skala: materialet nævner store produktionsmængder, men ikke uafhængige målinger af latency eller ressourceforbrug ved 100k+ sider i en indlejret Postgres. Spørgsmål om WAL, replikering, konsistens ved nedlukning og multi-tenant drift står åbne.

          Hvorfor det betyder noget i praksis

          Hvis du bygger agenter, er hukommelsen ofte forskellen på om brugeren bliver. GBrain rammer lige ned i det hul. Da vi kørte første gang, viste gbrain stats: “Pages: 0, Chunks: 0, Embedded: 0”. En kollega mumlede, at det var dagens mest ærlige skærmbillede. Fem minutter senere begyndte grafen at tikke. At se det ske i realtid gør det konkret.

          Styr på governance i en PoC skal være nok til at beskytte data uden at kvæle testen: læs som standard, begrænset write, og logs fra dag ét. Resten kan modnes, hvis piloten leverer.

          Konklusion og næste skridt

          GBrain gør vedvarende hukommelse for AI-agenter håndgribelig: open source, markdown først, Postgres bagved, hybrid-søgning og en typed graf, som ifølge tutorialen udtrækkes uden LLM. BrainBench-tallene er stærke, men uden reproduktionsvejledning. MCP-integrationer er nyttige, men write-værktøjer kræver autorisation og audit. Majs sikkerhedshændelser viser, hvorfor release-politik og nøglestyring ikke kan udskydes.

          Næste skridt er jordnære: kør en lille pilot lokalt på PGLite, mål P@5, R@5 og latency, hold auto-opdateringer i snor, og få styr på nøgler, adgang og logging. Hvis piloten holder, så planlæg migration til central Postgres med backup, kvoter og observability. Man opdager først forskellen, når man sidder med det i hænderne.

Kilder

    Gør brugeroplevelsen bedre.
    Hvilket firma arbejder du for?