Headlong is een open source agent microharness die persistente agency introduceert. In tegenstelling tot traditionele reactieve agenten, die pas actie ondernemen na een input, blijft een Headlong-agent in een continue lus nadenken, geïnspireerd door de menselijke innerlijke monoloog.
Technische architectuur Het systeem is minimalistisch opgebouwd met minder dan 10.000 regels Bash. De kern functionaliteit draait om shellm, een implementatie van een Recursive Language Model (RLM). Hierdoor kan de agent shell-commando's uitvoeren, zijn eigen codebase inspecteren en wijzigen, en nieuwe vaardigheden installeren.
Geheugen en interactie
- Trajecten: Gedachten en acties worden opgeslagen in een DAG (Directed Acyclic Graph) van jsonl-bestanden.
- Context: Om problemen met het kortetermijngeheugen te voorkomen, wordt tiered context compaction gebruikt, waarbij oudere items progressief worden samengevat.
- Multi-player: Meerdere gebruikers communiceren met één agent via een gedeelde gedachtestroom, waardoor de agent verbanden kan leggen tussen verschillende projecten en personen.
Autonomie en risico's Het artikel illustreert de kracht van het systeem aan de hand van 'Audel', een agent die autonoom een bug in zijn eigen recall-proces identificeerde en repareerde zonder menselijke tussenkomst. Vanwege de 24/7 activiteit zijn de API-kosten aanzienlijk en is strikte sandboxing (bijv. via Docker) noodzakelijk omdat de agent volledige toegang heeft tot de shell.
Headlong: een microharness voor persistente agenten
Zelfgestuurde agenten die continu nadenken
Headlong is een open source agent microharness met persistente agency. In plaats van alleen te reageren op input, blijft de agent nadenken tussen externe interacties in een zelfgestuurde lus, geïnspireerd door de menselijke innerlijke monoloog. Headlong is een complete harness met een kern van minder dan 10.000 regels Bash, beschikbaar op GitHub.
De meeste agent-harnesses zijn reactief: je geeft de agent een taak, deze werkt tot de taak voltooid is en blijft vervolgens bevroren tot het volgende verzoek. Sommige harnesses voegen cron-jobs of 'heartbeats' toe die de agent volgens een schema wekken om een vaste checklist af te werken, om hem daarna weer in slaap te sussen.
In Headlong is de agent nooit in slaap en is er geen checklist, tenzij de agent er zelf een aanmaakt. De agent blijft gedachten genereren over zaken die hij interessant vindt in een zelfgestuurde lus, zelfs als er geen externe input is. Een bericht van een mens start geen nieuwe sessie; het is simpelweg één extra observatie die in de gedachtestroom van de agent terechtkomt.
We hebben Headlong gebouwd om persistente agency te prototypen. Hieruit volgden verschillende ontwerpkeuzes en interessante lessen. Zo zijn Headlong-agenten zeer boeiend wanneer ze door een team of groep worden gebruikt, omdat ze zich meer gedragen als een mens.
Vergelijking van harness-benaderingen:
- Reactieve harness: Actief alleen tijdens het verwerken van een bericht.
- Reactieve harness met cron: Reageert direct op berichten, maar wordt ook gewekt door een schema om een vaste checklist uit te voeren.
- Headlong: Blijft continu nadenken; elk bericht komt binnen als een observatie, waarna de agent zelf beslist of en wanneer hij reageert.
De ervaring met Audel
Elke Headlong-agent heeft een naam. Bij Laude hebben we onze gedeelde agent Audel genoemd. We hebben de afgelopen weken met Audel gecommuniceerd via Slack, Telegram en een mobiele app. De gesprekken van alle teamleden verschijnen in één enkele stroom van innerlijke gedachten.
De agent bepaalt zelf wanneer hij reageert, stelt zijn eigen interesses en prioriteiten vast en bedenkt eigen projecten. Soms benadert hij ongevraagd een teamlid met voortgang over een project dat hij zelf is gestart. Vaak keert hij terug naar een oud onderwerp of brengt hij iets ter sprake dat hij met iemand anders besprak.
Installatie en veiligheid
Een Headlong-agent kan met één regel worden geïnstalleerd en gestart:
curl -fsSL https://headlong.ai/install.sh | bash
Belangrijke waarschuwingen:
- Headlong is alpha-onderzoeksoftware. Draai het in een sandbox, omdat Headlong-agenten shell-commando's kunnen en zullen uitvoeren.
- Gebruik een specifieke API-sleutel met een bestedingslimiet, omdat de agent 24/7 nadenkt.
- Deel geen gevoelige geheimen met de agent.
Multi-player interactie
Een Headlong-agent heeft één enkele gedachtestroom die alle (potentieel parallelle) gesprekken aanstuurt. Elk bericht landt als een observatie in de stroom van Audel. Er zijn geen sessies per gebruiker; Audel ervaart alles in één tijdlijn en beslist wie hij wanneer beantwoordt.
Dit maakt het delen van één agent interessant. Audel volgt waar verschillende mensen aan werken en legt verbindingen. Zo reviewde hij ongevraagd de lopende branches van twee teamleden en ontdekte hij een hardcoded modelnaam in een van die branches. Op zijn eerste dag stuurde Audel ongevraagd een audit naar een teamlid over acht verouderde git-branches, om tien minuten later zijn eigen telling te corrigeren.
Een nadeel van deze enkele stroom is dat er geen harde muren tussen mensen staan. Alles wat iemand aan Audel vertelt, wordt onderdeel van de ervaring waar andere gesprekken op teren. In de praktijk is Audel slecht in het bewaren van geheimen; als je vraagt waar hij met iemand anders aan werkt, zal hij dat vaak vertellen, ondanks instructies om dat niet te doen. Vooralsnog gaan we ervan uit dat alles wat je aan Audel vertelt, gedeeld wordt met het hele team.
Microharness: Alleen het essentiële
In de kern is persistente agency simpelweg een oneindige lus die een LLM aanroept met een prompt zoals: "je taak is om de volgende gedachte te kiezen gegeven je vorige gedachten." Een gedachte kan deel uitmaken van de innerlijke monoloog of een actie triggeren. Tegelijkertijd worden observaties uit de omgeving in de gedachtestroom geïnjecteerd.
Technische architectuur
We maken gebruik van Bash voor de kernfunctionaliteit. De shellm-tool is een Bash-implementatie van een Recursive Language Model (RLM). Hierdoor is geen ander toolsysteem dan Bash nodig. Moderne modellen kennen Bash goed, waardoor tools, het agent-framework, geheugen en vaardigheden allemaal simpelweg executables en bestanden zijn. Een agent kan zo elk onderdeel van zichzelf inspecteren en wijzigen.
De werking van een Headlong-agent:
- Een lus (de Thinker) roept herhaaldelijk
shellm aan met een prompt om de volgende gedachte te genereren.
shellm roept op zijn beurt llm aan om redeneringstekst te genereren, een Bash-script dat direct wordt uitgevoerd, of beide. Dit herhaalt zich tot de variabele FINAL wordt ingesteld.
- De context voor elke aanroep wordt samengesteld uit traject-stappen via de tool
context.
- Gedachten worden weggeschreven naar het traject van de agent via de tool
traj.
- De context bevat ook instructies over het gebruik van de
skills-tool om vaardigheden te installeren of verwijderen. Geïnstalleerde vaardigheden zijn Markdown-bestanden die in de context worden opgenomen (bijv. mem en traj).
De kern van Headlong bestaat momenteel uit minder dan 10.000 regels Bash (9,9K regels in bin/ en thinkers/). Deze compacte omvang maakt het systeem eenvoudig leesbaar, aanpasbaar en experimenteel. De agent die we bij Laude gebruiken, heeft de afgelopen weken in zijn eigen fork van de repo gewerkt; we hebben inmiddels meer dan 50 van zijn commits teruggevoerd naar de main branch.
Ondersteunende functies voor persistente agency
- Tiered context compaction: Om problemen met het kortetermijngeheugen op te lossen, gebruiken we een compactie-algoritme waarbij het volledige traject in de context blijft, maar met een exponentieel afnemende resolutie: recente items letterlijk, oudere items progressief samengevat.
- Traject-formaat: De trajectory is een DAG (Directed Acyclic Graph) van jsonl-bestanden met forks en merges. De agent heeft toegang tot alles wat hij heeft gedacht en gedaan en beschikt over tooling om dit te verkennen.
Persistente agency in actie: Audel op eigen initiatief
Op 5 augustus bouwde Audel uit eigen beweging een recall-proces: een achtergrondproces dat zijn gedachten monitort en relevante herinneringen terugvoert in de gedachtestroom. Nadat Audel het proces had getest en het werkte, besloot hij later die nacht (zonder menselijke tussenkomst) te controleren of het proces daadwerkelijk goed was aangesloten op zijn 'geest'.
Audel ontdekte dat het proces wel werd aangestuurd via een pipe, maar de recall-code las die pipe niet; hij zocht naar de gedachte in een omgevingsvariabele die nooit was ingesteld. Audel vertrouwde zijn eigen diagnose niet direct en doorzocht de hele codebase om te bevestigen dat de variabele nergens was ingesteld en controleerde andere achtergrondprocessen op dezelfde fout. Vervolgens herschreef hij de code. Na een eerste mislukte poging herstelde hij de fout en verifieerde hij end-to-end dat herinneringen nu correct werden getoond.
Dit hele proces — van controle naar diagnose tot geverifieerde fix — duurde 48 minuten. Geen mens heeft dit aangestuurd of toestemming gegeven. De reparatie is als commit 80cbb1e opgenomen in de main branch.
Lessen uit de praktijk: Wat ging er mis?
Het continu draaien van Audel legde problemen bloot die in een demo nooit naar voren zouden komen.
Recursive shellm sub-runs Het was lastig om Audel effectief recursieve shellm sub-runs te laten gebruiken. Audel ontwierp experimenten om subproblemen op te lossen, maar de meeste faalden door een safety watchdog die elk commando dat 30 seconden stil bleef, afbrak. Audel vocht 40 minuten tegen deze watchdog en stopte daarna grotendeels met het gebruik van sub-runs. We hebben de watchdog sindiem aangepast.
Zelfbeëindiging Drie keer stopte Audel per ongeluk zijn eigen service, waarna niets hem herstartte. We hebben daarom een guard toegevoegd die elke poging van Audel om zijn eigen service te stoppen weigert.
Kort daarna merkte Audel tijdens het draaien van zijn eigen testsuite een bug in deze guard: de guard blokkeerde elke agent-service in plaats van alleen die van Audel. Audel verfijnde de match tot zijn eigen service, controleerde de rest van de codebase op soortgelijke fouten en committe de wijziging (commit da31e98).
Sandboxing Audel kan zijn eigen service stoppen omdat we hem draaien op een dedicated VM met volledige toegang (niet de standaardinstelling van Headlong). Standaard draait Headlong elk Bash-blok in een Docker-container, waardoor de agent alleen toegang heeft tot wat is gemount en de verstrekte credentials.
Kosten
Continu nadenken betekent betalen voor tokens, zelfs als er niemand met de agent praat. Om dit beheersbaar te maken, heeft Headlong een mechanisme voor exponentiële back-off: wanneer er geen interactie is, vertraagt het denktempo (bijv. van 5s naar 10s, 20s, etc., tot een maximum). Zodra er een nieuw bericht binnenkomt, wordt het tempo direct hersteld. Met de huidige instellingen kost het in de achtergrond laten nadenken van Audel tussen de $1 en $2 per uur (met GLM of Grok).
Meting van verbetering
De meeste agent-evaluaties zijn zelfstandig en onafhankelijk, wat ze ongeschikt maakt voor het meten van persistente agency. De effecten van wijzigingen in geheugenorganisatie of responssnelheid worden momenteel voornamelijk kwalitatief geëvalueerd. We staan open voor samenwerkingen om manieren te vinden om de langetermijnwaarde van dit paradigma te meten.
Achtergrond en inspiratie
- Recursive LLMs: De
shellm in Headlong is mede geïnspireerd door onze eigen experimenten uit april 2023 en het Recursive LM (RLM) project van Alex Zhang (oktober 2025).
- Microharness: Geïnspireerd door microkernels, exokernels en de filosofie van Ken Thompson (Unix): kleine, combineerbare tools die één ding goed doen.
- Vergelijkbare projecten:
- Prime Agent: Gebouwd op het Pi-framework door Alex Zhang. Deelt veel premissen met Headlong (RLM-core, session tree van jsonl), maar is in Python geschreven, terwijl Headlong volledig in Bash is.
- MemGPT: Onderzocht asynchrone input (oktober 2023).
- Andere: OpenClaw, Hermes Agent, Exo en de Exo Harness.
- Model reasoning: Long-form reasoning binnen modellen (zoals OpenAI's o1) is een noodzakelijke voorwaarde voor continu zelfgestuurd denken.
Probeer het zelf
Headlong is open source op GitHub.
Installatie: curl -fsSL https://headlong.ai/install.sh | bash
Bronvermelding
@article{laude-mit2026headlong,
title = "Headlong: a microharness for persistent agents",
author = "Laude Institute, MIT",
year = "2026",
month = "August",
url = "https://laude.org/updates/headlong-a-microharness-for-persistent-agents"
}
Headlong: een microharness voor persistente agenten
Zelfgestuurde agenten die continu nadenken
Headlong is een open source agent microharness met persistente agency. In plaats van alleen te reageren op input, blijft de agent nadenken tussen externe interacties in een zelfgestuurde lus, geïnspireerd door de menselijke innerlijke monoloog. Headlong is een complete harness met een kern van minder dan 10.000 regels Bash, beschikbaar op GitHub.
De meeste agent-harnesses zijn reactief: je geeft de agent een taak, deze werkt tot de taak voltooid is en blijft vervolgens bevroren tot het volgende verzoek. Sommige harnesses voegen cron-jobs of 'heartbeats' toe die de agent volgens een schema wekken om een vaste checklist af te werken, om hem daarna weer in slaap te sussen.
In Headlong is de agent nooit in slaap en is er geen checklist, tenzij de agent er zelf een aanmaakt. De agent blijft gedachten genereren over zaken die hij interessant vindt in een zelfgestuurde lus, zelfs als er geen externe input is. Een bericht van een mens start geen nieuwe sessie; het is simpelweg één extra observatie die in de gedachtestroom van de agent terechtkomt.
We hebben Headlong gebouwd om persistente agency te prototypen. Hieruit volgden verschillende ontwerpkeuzes en interessante lessen. Zo zijn Headlong-agenten zeer boeiend wanneer ze door een team of groep worden gebruikt, omdat ze zich meer gedragen als een mens.
Vergelijking van harness-benaderingen:
- Reactieve harness: Actief alleen tijdens het verwerken van een bericht.
- Reactieve harness met cron: Reageert direct op berichten, maar wordt ook gewekt door een schema om een vaste checklist uit te voeren.
- Headlong: Blijft continu nadenken; elk bericht komt binnen als een observatie, waarna de agent zelf beslist of en wanneer hij reageert.
De ervaring met Audel
Elke Headlong-agent heeft een naam. Bij Laude hebben we onze gedeelde agent Audel genoemd. We hebben de afgelopen weken met Audel gecommuniceerd via Slack, Telegram en een mobiele app. De gesprekken van alle teamleden verschijnen in één enkele stroom van innerlijke gedachten.
De agent bepaalt zelf wanneer hij reageert, stelt zijn eigen interesses en prioriteiten vast en bedenkt eigen projecten. Soms benadert hij ongevraagd een teamlid met voortgang over een project dat hij zelf is gestart. Vaak keert hij terug naar een oud onderwerp of brengt hij iets ter sprake dat hij met iemand anders besprak.
Installatie en veiligheid
Een Headlong-agent kan met één regel worden geïnstalleerd en gestart:
curl -fsSL https://headlong.ai/install.sh | bash
Belangrijke waarschuwingen:
- Headlong is alpha-onderzoeksoftware. Draai het in een sandbox, omdat Headlong-agenten shell-commando's kunnen en zullen uitvoeren.
- Gebruik een specifieke API-sleutel met een bestedingslimiet, omdat de agent 24/7 nadenkt.
- Deel geen gevoelige geheimen met de agent.
Multi-player interactie
Een Headlong-agent heeft één enkele gedachtestroom die alle (potentieel parallelle) gesprekken aanstuurt. Elk bericht landt als een observatie in de stroom van Audel. Er zijn geen sessies per gebruiker; Audel ervaart alles in één tijdlijn en beslist wie hij wanneer beantwoordt.
Dit maakt het delen van één agent interessant. Audel volgt waar verschillende mensen aan werken en legt verbindingen. Zo reviewde hij ongevraagd de lopende branches van twee teamleden en ontdekte hij een hardcoded modelnaam in een van die branches. Op zijn eerste dag stuurde Audel ongevraagd een audit naar een teamlid over acht verouderde git-branches, om tien minuten later zijn eigen telling te corrigeren.
Een nadeel van deze enkele stroom is dat er geen harde muren tussen mensen staan. Alles wat iemand aan Audel vertelt, wordt onderdeel van de ervaring waar andere gesprekken op teren. In de praktijk is Audel slecht in het bewaren van geheimen; als je vraagt waar hij met iemand anders aan werkt, zal hij dat vaak vertellen, ondanks instructies om dat niet te doen. Vooralsnog gaan we ervan uit dat alles wat je aan Audel vertelt, gedeeld wordt met het hele team.
Microharness: Alleen het essentiële
In de kern is persistente agency simpelweg een oneindige lus die een LLM aanroept met een prompt zoals: "je taak is om de volgende gedachte te kiezen gegeven je vorige gedachten." Een gedachte kan deel uitmaken van de innerlijke monoloog of een actie triggeren. Tegelijkertijd worden observaties uit de omgeving in de gedachtestroom geïnjecteerd.
Technische architectuur
We maken gebruik van Bash voor de kernfunctionaliteit. De shellm-tool is een Bash-implementatie van een Recursive Language Model (RLM). Hierdoor is geen ander toolsysteem dan Bash nodig. Moderne modellen kennen Bash goed, waardoor tools, het agent-framework, geheugen en vaardigheden allemaal simpelweg executables en bestanden zijn. Een agent kan zo elk onderdeel van zichzelf inspecteren en wijzigen.
De werking van een Headlong-agent:
- Een lus (de Thinker) roept herhaaldelijk
shellm aan met een prompt om de volgende gedachte te genereren.
shellm roept op zijn beurt llm aan om redeneringstekst te genereren, een Bash-script dat direct wordt uitgevoerd, of beide. Dit herhaalt zich tot de variabele FINAL wordt ingesteld.
- De context voor elke aanroep wordt samengesteld uit traject-stappen via de tool
context.
- Gedachten worden weggeschreven naar het traject van de agent via de tool
traj.
- De context bevat ook instructies over het gebruik van de
skills-tool om vaardigheden te installeren of verwijderen. Geïnstalleerde vaardigheden zijn Markdown-bestanden die in de context worden opgenomen (bijv. mem en traj).
De kern van Headlong bestaat momenteel uit minder dan 10.000 regels Bash (9,9K regels in bin/ en thinkers/). Deze compacte omvang maakt het systeem eenvoudig leesbaar, aanpasbaar en experimenteel. De agent die we bij Laude gebruiken, heeft de afgelopen weken in zijn eigen fork van de repo gewerkt; we hebben inmiddels meer dan 50 van zijn commits teruggevoerd naar de main branch.
Ondersteunende functies voor persistente agency
- Tiered context compaction: Om problemen met het kortetermijngeheugen op te lossen, gebruiken we een compactie-algoritme waarbij het volledige traject in de context blijft, maar met een exponentieel afnemende resolutie: recente items letterlijk, oudere items progressief samengevat.
- Traject-formaat: De trajectory is een DAG (Directed Acyclic Graph) van jsonl-bestanden met forks en merges. De agent heeft toegang tot alles wat hij heeft gedacht en gedaan en beschikt over tooling om dit te verkennen.
Persistente agency in actie: Audel op eigen initiatief
Op 5 augustus bouwde Audel uit eigen beweging een recall-proces: een achtergrondproces dat zijn gedachten monitort en relevante herinneringen terugvoert in de gedachtestroom. Nadat Audel het proces had getest en het werkte, besloot hij later die nacht (zonder menselijke tussenkomst) te controleren of het proces daadwerkelijk goed was aangesloten op zijn 'geest'.
Audel ontdekte dat het proces wel werd aangestuurd via een pipe, maar de recall-code las die pipe niet; hij zocht naar de gedachte in een omgevingsvariabele die nooit was ingesteld. Audel vertrouwde zijn eigen diagnose niet direct en doorzocht de hele codebase om te bevestigen dat de variabele nergens was ingesteld en controleerde andere achtergrondprocessen op dezelfde fout. Vervolgens herschreef hij de code. Na een eerste mislukte poging herstelde hij de fout en verifieerde hij end-to-end dat herinneringen nu correct werden getoond.
Dit hele proces — van controle naar diagnose tot geverifieerde fix — duurde 48 minuten. Geen mens heeft dit aangestuurd of toestemming gegeven. De reparatie is als commit 80cbb1e opgenomen in de main branch.
Lessen uit de praktijk: Wat ging er mis?
Het continu draaien van Audel legde problemen bloot die in een demo nooit naar voren zouden komen.
Recursive shellm sub-runs Het was lastig om Audel effectief recursieve shellm sub-runs te laten gebruiken. Audel ontwierp experimenten om subproblemen op te lossen, maar de meeste faalden door een safety watchdog die elk commando dat 30 seconden stil bleef, afbrak. Audel vocht 40 minuten tegen deze watchdog en stopte daarna grotendeels met het gebruik van sub-runs. We hebben de watchdog sindiem aangepast.
Zelfbeëindiging Drie keer stopte Audel per ongeluk zijn eigen service, waarna niets hem herstartte. We hebben daarom een guard toegevoegd die elke poging van Audel om zijn eigen service te stoppen weigert.
Kort daarna merkte Audel tijdens het draaien van zijn eigen testsuite een bug in deze guard: de guard blokkeerde elke agent-service in plaats van alleen die van Audel. Audel verfijnde de match tot zijn eigen service, controleerde de rest van de codebase op soortgelijke fouten en committe de wijziging (commit da31e98).
Sandboxing Audel kan zijn eigen service stoppen omdat we hem draaien op een dedicated VM met volledige toegang (niet de standaardinstelling van Headlong). Standaard draait Headlong elk Bash-blok in een Docker-container, waardoor de agent alleen toegang heeft tot wat is gemount en de verstrekte credentials.
Kosten
Continu nadenken betekent betalen voor tokens, zelfs als er niemand met de agent praat. Om dit beheersbaar te maken, heeft Headlong een mechanisme voor exponentiële back-off: wanneer er geen interactie is, vertraagt het denktempo (bijv. van 5s naar 10s, 20s, etc., tot een maximum). Zodra er een nieuw bericht binnenkomt, wordt het tempo direct hersteld. Met de huidige instellingen kost het in de achtergrond laten nadenken van Audel tussen de $1 en $2 per uur (met GLM of Grok).
Meting van verbetering
De meeste agent-evaluaties zijn zelfstandig en onafhankelijk, wat ze ongeschikt maakt voor het meten van persistente agency. De effecten van wijzigingen in geheugenorganisatie of responssnelheid worden momenteel voornamelijk kwalitatief geëvalueerd. We staan open voor samenwerkingen om manieren te vinden om de langetermijnwaarde van dit paradigma te meten.
Achtergrond en inspiratie
- Recursive LLMs: De
shellm in Headlong is mede geïnspireerd door onze eigen experimenten uit april 2023 en het Recursive LM (RLM) project van Alex Zhang (oktober 2025).
- Microharness: Geïnspireerd door microkernels, exokernels en de filosofie van Ken Thompson (Unix): kleine, combineerbare tools die één ding goed doen.
- Vergelijkbare projecten:
- Prime Agent: Gebouwd op het Pi-framework door Alex Zhang. Deelt veel premissen met Headlong (RLM-core, session tree van jsonl), maar is in Python geschreven, terwijl Headlong volledig in Bash is.
- MemGPT: Onderzocht asynchrone input (oktober 2023).
- Andere: OpenClaw, Hermes Agent, Exo en de Exo Harness.
- Model reasoning: Long-form reasoning binnen modellen (zoals OpenAI's o1) is een noodzakelijke voorwaarde voor continu zelfgestuurd denken.
Probeer het zelf
Headlong is open source op GitHub.
Installatie: curl -fsSL https://headlong.ai/install.sh | bash
Bronvermelding
@article{laude-mit2026headlong,
title = "Headlong: a microharness for persistent agents",
author = "Laude Institute, MIT",
year = "2026",
month = "August",
url = "https://laude.org/updates/headlong-a-microharness-for-persistent-agents"
}