Autolith is een geavanceerde programmeeragent die functioneert binnen de terminal en direct interactie heeft met software-repositories. De tool onderscheidt zich door de integratie van een live SBCL (Common Lisp) runtime, waardoor de agent zichzelf in realtime kan inspecteren en uitbreiden zonder te herstarten.
Belangrijkste kenmerken:
- Functionaliteit: De agent kan bestanden bewerken, shell-commando's uitvoeren en projectcontext behouden via herinneringen, agenda's en checkpoints.
- Architectuur: Het werkt als één enkel proces dat communiceert met de ChatGPT Codex-service en maakt gebruik van de Rust-bibliotheek
fff voor snelle zoekopdrachten. Er is tevens een --immutable modus voor veilige, read-only inspectie.
- Dynamische updates: Wijzigingen in de actieve image worden bijgehouden in een mutatiejournaal en kunnen worden opgeslagen als private image-commits in een aparte Git-geschiedenis.
- Statusbeheer: Autolith hanteert een strikte scheiding tussen verschillende types status, zoals gesprekken, herinneringen, agenda's en generaties, inclusief een apart herstelsysteem voor crashes.
- Installatie: De tool is gericht op Linux x86-64 en kan worden geïnstalleerd via curl, Nix of door het project zelf te bouwen vanuit de repository.
Autolith: een programmeeragent met een live runtime
Kernfunctionaliteiten
- Repository-werk: Bestandsysteem-, shell- en zoektools met zichtbare resultaten.
- Continuïteit: Draagbare gesprekken, herinneringen, agenda's, checkpoints en herstelmogelijkheden.
- Live Lisp: Een SBCL-runtime die de agent kan inspecteren, testen en uitbreiden.
Installatie
Autolith is bedoeld voor ontwikkelaars die een agent willen die ze kunnen inspecteren, uitbreiden en herstellen.
Systeemvereisten en methoden
Autolith is gericht op Linux x86-64. De binaire release bevat zijn eigen SBCL, Lisp-afhankelijkheden en native helpers; het systeem controleert op nieuwere getagde releases en vraagt om toestemming voor updates.
Installatiemogelijkheden:
- Via curl:
curl -fsSL https://sh.lambda-symbolics.com/autolith | sh (Let op: het direct uitvoeren van een URL via de shell is riskant. Lees de installer voordat u deze uitvoert.)
- Via Nix (Aanbevolen):
Nix is de aanbevolen route wanneer u vanaf het begin de volledige build vast wilt leggen (pinned).
Beveiligingswaarschuwing: Autolith voert door het model gegenereerde code uit met uw gebruikersrechten. De procesgrenzen beschermen de betrouwbaarheid, niet tegen kwaadaardige code. Gebruik het als een ontwikkelagent, niet als een beveiligde sandbox.
Autolith starten
Na de binaire installatie:
$ autolith --auth
$ autolith
Via Nix (Aanbevolen):
$ nix run github:luciusmagn/autolith -- --auth
$ nix run github:luciusmagn/autolith
Bouwen vanuit de repository:
$ git clone https://github.com/luciusmagn/autolith
$ cd autolith
$ ./script/bootstrap
$ ./script/check
$ ./bin/autolith --auth
$ ./bin/autolith
Voorbeeld van een sessie
Een sessie begint met een concreet verzoek. Onderstaand voorbeeld is een vastgelegde read-only sessie van autolith --immutable. De prompt vraagt om één overzicht van de repository; de tool-output is enkel ingekort door de normale terminallimiet van Autolith.
Het transcript toont de volgorde: verzoek, tool-aanroep, begrensd resultaat en vervolgens het antwoord van de assistent. Dit is de werkelijke opmaak van de terminal, geen gesimuleerd chatvenster.
Transcript (immutable mode):
Gebruiker:
Inspecteer deze repository zonder bestanden te wijzigen. Gebruik één tool om de bestanden op het hoogste niveau op te sommen en vat vervolgens in één zin samen wat je hebt gevonden.
Redeneringssamenvatting:
Bestanden op het hoogste niveau ophalen.
Tool-aanroep: ▸ fs.list /root/common-lisp/frob READ ∙ running fs.list · 00:00 ✓ fs.list cpu 0.001s · real 0.002s
Resultaat:
/root/common-lisp/frob
d .git/
d .github/
d .qlot/
d bin/
d dist/
d docs/
d native/
d nix/
d recovery/
d script/
d src/
... +13 more lines
Autolith:
De repository is een Common Lisp-project met broncode, tests, hersteltooling, documentatie, build-configuratie, native assets en ondersteuning voor GitHub/Nix/Quicklisp.
Architectuur en werking
Eén proces voor agent en tools
Autolith is een terminal-programmeeragent en geen wrapper rond een ander agentproces. Zijn Common Lisp-image bevat de provider-client, de terminalinterface, het tool-register, de gespreksstatus, persistente herinneringen, de workspace-agenda en de code die bepaalt wat de volgende stap is.
De agent communiceert direct met de ChatGPT Codex-abonnementsservice. De Codex CLI wordt niet gestart of gebundeld. Bestandsysteem-, shell-, zoek-, geheugen- en Lisp-operaties blijven expliciete tools met zichtbare resultaten.
Zoeken en immutable mode
Zoekopdrachten in de workspace worden in-proces uitgevoerd via fff, een snelle Rust-zoekbibliotheek. Autolith houdt de index "warm" in plaats van voor elke query een nieuw zoekproces op te starten.
Voor inspectie zonder wijzigingen aan de actieve image kan de agent worden gestart met --immutable. Deze modus behoudt read-only inspectie en herstelinformatie, maar blokkeert evaluatie, mutatie, persistentie, checkpoints en rollback-tools.
Dynamische updates van de agent
Autolith kan volledige functies, methoden, klassen, macro's, condities en globale instellingen in zijn actieve image inspecteren en vervangen zonder te herstarten. Een explorerende wijziging treedt onmiddellijk in werking en wordt geregistreerd in een append-only mutatiejournaal. Deze wijziging kan worden getest, verworpen of worden behouden als een privé-image-commit.
Een nuttige wijziging kan worden omgezet in een privé-image-commit. Deze commit bevat een manifest en een volledig uitvoerbaar Lisp-replay-script, dat wordt bewaard in een aparte private Git-geschiedenis. Hiermee wordt de actieve agent gewijzigd zonder de gevolgde bronrepository stilletjes te patchen.
Voorbeeld van een mutatietransactie:
→ self.source APPLICATION-TOOL-CALL-ENTRY
← complete tracked DEFMETHOD
→ self.redefine (defmethod application-tool-call-entry ...)
← compiled and installed in the active image
→ self.diff
← one reconstructible live mutation
→ self.commit "Improve tool-call presentation"
← private image commit commit-id
(volledig reconstruct.lisp bewaard in private Git)
Statusbeheer
Verschillende soorten status hebben verschillende levenscycli. Autolith houdt deze gescheiden:
- Conversations (Gesprekken): Append-only draagbare S-expressions met exacte hervatcommando's en crash-tail herstel.
- Memories (Herinneringen): Feiten, voorkeuren en beslissingen over de workspace of globaal, met begrensde prompt-recall.
- Agendas (Agenda's): Korte workspace-taken en notities, volledig beschikbaar bij elk verzoek.
- Private image commits: Volledige replay-scripts voor duurzame, gebruikersspecifieke definities en instellingen, bewaard in private Git.
- Generations (Generaties): Een opgeslagen actieve core, exact gevolgde bron-commit, reconstructiescript, manifest en journaalpositie.
- Worker images: Immutable experimentele SBCL-cores met parentage en duurzame notities; deze worden nooit geselecteerd als de actieve agent.
- Recovery (Herstel): Een apart gebouwde, ongerepte image die een crash kan inspecteren en een bekende werkende generatie kan selecteren zonder de beschadigde core te laden.
Autolith: een programmeeragent met een live runtime
Kernfunctionaliteiten
- Repository-werk: Bestandsysteem-, shell- en zoektools met zichtbare resultaten.
- Continuïteit: Draagbare gesprekken, herinneringen, agenda's, checkpoints en herstelmogelijkheden.
- Live Lisp: Een SBCL-runtime die de agent kan inspecteren, testen en uitbreiden.
Installatie
Autolith is bedoeld voor ontwikkelaars die een agent willen die ze kunnen inspecteren, uitbreiden en herstellen.
Systeemvereisten en methoden
Autolith is gericht op Linux x86-64. De binaire release bevat zijn eigen SBCL, Lisp-afhankelijkheden en native helpers; het systeem controleert op nieuwere getagde releases en vraagt om toestemming voor updates.
Installatiemogelijkheden:
- Via curl:
curl -fsSL https://sh.lambda-symbolics.com/autolith | sh (Let op: het direct uitvoeren van een URL via de shell is riskant. Lees de installer voordat u deze uitvoert.)
- Via Nix (Aanbevolen):
Nix is de aanbevolen route wanneer u vanaf het begin de volledige build vast wilt leggen (pinned).
Beveiligingswaarschuwing: Autolith voert door het model gegenereerde code uit met uw gebruikersrechten. De procesgrenzen beschermen de betrouwbaarheid, niet tegen kwaadaardige code. Gebruik het als een ontwikkelagent, niet als een beveiligde sandbox.
Autolith starten
Na de binaire installatie:
$ autolith --auth
$ autolith
Via Nix (Aanbevolen):
$ nix run github:luciusmagn/autolith -- --auth
$ nix run github:luciusmagn/autolith
Bouwen vanuit de repository:
$ git clone https://github.com/luciusmagn/autolith
$ cd autolith
$ ./script/bootstrap
$ ./script/check
$ ./bin/autolith --auth
$ ./bin/autolith
Voorbeeld van een sessie
Een sessie begint met een concreet verzoek. Onderstaand voorbeeld is een vastgelegde read-only sessie van autolith --immutable. De prompt vraagt om één overzicht van de repository; de tool-output is enkel ingekort door de normale terminallimiet van Autolith.
Het transcript toont de volgorde: verzoek, tool-aanroep, begrensd resultaat en vervolgens het antwoord van de assistent. Dit is de werkelijke opmaak van de terminal, geen gesimuleerd chatvenster.
Transcript (immutable mode):
Gebruiker:
Inspecteer deze repository zonder bestanden te wijzigen. Gebruik één tool om de bestanden op het hoogste niveau op te sommen en vat vervolgens in één zin samen wat je hebt gevonden.
Redeneringssamenvatting:
Bestanden op het hoogste niveau ophalen.
Tool-aanroep: ▸ fs.list /root/common-lisp/frob READ ∙ running fs.list · 00:00 ✓ fs.list cpu 0.001s · real 0.002s
Resultaat:
/root/common-lisp/frob
d .git/
d .github/
d .qlot/
d bin/
d dist/
d docs/
d native/
d nix/
d recovery/
d script/
d src/
... +13 more lines
Autolith:
De repository is een Common Lisp-project met broncode, tests, hersteltooling, documentatie, build-configuratie, native assets en ondersteuning voor GitHub/Nix/Quicklisp.
Architectuur en werking
Eén proces voor agent en tools
Autolith is een terminal-programmeeragent en geen wrapper rond een ander agentproces. Zijn Common Lisp-image bevat de provider-client, de terminalinterface, het tool-register, de gespreksstatus, persistente herinneringen, de workspace-agenda en de code die bepaalt wat de volgende stap is.
De agent communiceert direct met de ChatGPT Codex-abonnementsservice. De Codex CLI wordt niet gestart of gebundeld. Bestandsysteem-, shell-, zoek-, geheugen- en Lisp-operaties blijven expliciete tools met zichtbare resultaten.
Zoeken en immutable mode
Zoekopdrachten in de workspace worden in-proces uitgevoerd via fff, een snelle Rust-zoekbibliotheek. Autolith houdt de index "warm" in plaats van voor elke query een nieuw zoekproces op te starten.
Voor inspectie zonder wijzigingen aan de actieve image kan de agent worden gestart met --immutable. Deze modus behoudt read-only inspectie en herstelinformatie, maar blokkeert evaluatie, mutatie, persistentie, checkpoints en rollback-tools.
Dynamische updates van de agent
Autolith kan volledige functies, methoden, klassen, macro's, condities en globale instellingen in zijn actieve image inspecteren en vervangen zonder te herstarten. Een explorerende wijziging treedt onmiddellijk in werking en wordt geregistreerd in een append-only mutatiejournaal. Deze wijziging kan worden getest, verworpen of worden behouden als een privé-image-commit.
Een nuttige wijziging kan worden omgezet in een privé-image-commit. Deze commit bevat een manifest en een volledig uitvoerbaar Lisp-replay-script, dat wordt bewaard in een aparte private Git-geschiedenis. Hiermee wordt de actieve agent gewijzigd zonder de gevolgde bronrepository stilletjes te patchen.
Voorbeeld van een mutatietransactie:
→ self.source APPLICATION-TOOL-CALL-ENTRY
← complete tracked DEFMETHOD
→ self.redefine (defmethod application-tool-call-entry ...)
← compiled and installed in the active image
→ self.diff
← one reconstructible live mutation
→ self.commit "Improve tool-call presentation"
← private image commit commit-id
(volledig reconstruct.lisp bewaard in private Git)
Statusbeheer
Verschillende soorten status hebben verschillende levenscycli. Autolith houdt deze gescheiden:
- Conversations (Gesprekken): Append-only draagbare S-expressions met exacte hervatcommando's en crash-tail herstel.
- Memories (Herinneringen): Feiten, voorkeuren en beslissingen over de workspace of globaal, met begrensde prompt-recall.
- Agendas (Agenda's): Korte workspace-taken en notities, volledig beschikbaar bij elk verzoek.
- Private image commits: Volledige replay-scripts voor duurzame, gebruikersspecifieke definities en instellingen, bewaard in private Git.
- Generations (Generaties): Een opgeslagen actieve core, exact gevolgde bron-commit, reconstructiescript, manifest en journaalpositie.
- Worker images: Immutable experimentele SBCL-cores met parentage en duurzame notities; deze worden nooit geselecteerd als de actieve agent.
- Recovery (Herstel): Een apart gebouwde, ongerepte image die een crash kan inspecteren en een bekende werkende generatie kan selecteren zonder de beschadigde core te laden.