OpenHands: Open Platform voor AI Software Agents en wat het betekent voor Financiële Automatisering
Ik kom OpenHands voortdurend tegen als de basislaag onder TheAgentCompany, InvestorBench en een groeiende lijst van evaluatie-artikelen — toch heb ik het primaire artikel nog niet gelezen. Dit is de infrastructuur waar de rest van het veld stilletjes op voortbouwt, dus begrijpen wat het daadwerkelijk biedt, en waar het tekortschiet, is belangrijker dan elk individueel benchmarkresultaat dat erop is gebaseerd.
Het artikel
OpenHands (Wang et al., 2024; ICLR 2025) is een open-source platform voor het bouwen en evalueren van LLM-agents die fungeren als generalistische softwareontwikkelaars. Onder leiding van Xingyao Wang en Graham Neubig, met een team van 24 auteurs, stelt het artikel dat de meeste bestaande agent-frameworks ofwel te onderzoeksgericht zijn (hardgecodeerde taaklussen) of te productiegericht (closed-source of voor één enkel doel) om te dienen als gedeelde basis voor de onderzoeksgemeenschap. OpenHands probeert dit op te lossen door een gestandaardiseerde runtime, een zuivere agent-abstractie en 15 geïntegreerde evaluatie-benchmarks aan te bieden in één onder MIT gelicentieerde repo.
De runtime is een in Docker gesandboxte omgeving met een bash-shell, een Jupyter IPython-server en een door Playwright aangestuurde Chromium-browser. Agents communiceren via drie primaire actietypes: IPythonRunCellAction voor Python, CmdRunAction voor shell-commando's en BrowserInteractiveAction voor webnavigatie. Een primitief voor coördinatie tussen meerdere agents, AgentDelegateAction, stelt een hoofdagent in staat om gespecialiseerde sub-agents aan te sturen. De standaard backbone is CodeAct — oorspronkelijk gepubliceerd als een op zichzelf staand artikel dat betoogt dat code de ideale universele actieruimte is voor LLM-agents — en het platform wordt geleverd met verschillende agent-implementaties, waaronder een algemene CodeActAgent en een gespecialiseerde BrowsingAgent.
Belangrijke ideeën
- Code als universele actieruimte: CodeAct consolideert alle agent-acties (bestandsbewerkingen, API-aanroepen, datatransformaties) in Python of bash, waardoor de LLM kan redeneren in hetzelfde medium waarin het het meest intensief is getraind. Dit omzeilt de kwetsbaarheid van JSON-schema's die vaak een probleem vormen bij agents die functies aanroepen.
- Gesandboxte Docker-runtime: elke agent draait in een geïsoleerde container, zodat agents vrijuit willekeurige code kunnen uitvoeren zonder de hostmachine in gevaar te brengen — een vereiste voor elke financiële productie-agent die echte inloggegevens toevertrouwd krijgt.
- 15 benchmarks in één omgeving: SWE-Bench Lite (codeherstel), HumanEvalFix (bugfixing), WebArena (webnavigatie), GPQA (redeneren op academisch niveau), GAIA (algemene probleemoplossing) en nog tien andere. Het samenbrengen van deze benchmarks voorkomt selectieve evaluatie (cherry-picking).
- CodeActAgent + claude-3.5-sonnet behaalt 26% op SWE-Bench Lite en 79,3% op HumanEvalFix; BrowsingAgent bereikt 15,5% op WebArena — competitieve zero-shot resultaten zonder enige taakspecifieke training.
- GAIA-prestaties: 32,1% met GPTSwarm, ver onder de menselijke baseline van 92% — consistent met elke andere benchmark voor algemene agents die een kloof van 60–70 punten laat zien tussen mens en agent.
- Schaal van de gemeenschap: 71,4K GitHub-sterren en meer dan 188 bijdragers op het moment van de ICLR-indiening; TheAgentCompany heeft OpenHands geadopteerd als evaluatieomgeving, wat het de de facto status van benchmark-infrastructuur geeft.
Wat standhoudt — en wat niet
Het ontwerp van de gesandboxte runtime is degelijk technisch werk. Het isoleren van de uitvoering van de agent in Docker is de juiste standaardkeuze voor elk systeem dat later schrijftoegang kan krijgen tot echte financiële grootboeken, en het is oprecht nuttig dat de benchmarks op één plek staan in plaats van verspreid over incompatibele repo's.
De benchmark-dekking is echter meer ambitieus dan systematisch. De 15 benchmarks omvatten zeer uiteenlopende taaktypen en moeilijkheidsgraden zonder een duidelijk raamwerk voor hoe resultaten moeten worden geaggregeerd of vergeleken. Het rapporteren van 26% op SWE-Bench Lite naast 79,3% op HumanEvalFix in hetzelfde artikel riskeert de indruk te wekken dat dezelfde agent tegelijkertijd matig en uitstekend is — de taken zijn simpelweg niet vergelijkbaar. De auteurs bieden geen principiële methodologie voor aggregatie over meerdere benchmarks.
De CodeAct-aanname — dat code het juiste universele actieformaat is — wordt betwist. Het werkt goed voor ontwikkelingstaken, maar legt een Python/bash-tussenlaag op aan elke actie, wat latentie toevoegt en faalt wanneer de actiesemantiek niet duidelijk naar code vertaalt (ambigue instructies van de gebruiker, API's die alleen natuurlijke taal gebruiken). Het artikel voert geen benchmark uit tegen niet-code actieruimtes om aan te tonen dat het voordeel reëel is en niet wordt beïnvloed door de onderliggende LLM.
Misschien wel de belangrijkste kloof is de splitsing tussen evaluatie en implementatie. Het percentage van 26% op SWE-Bench komt voort uit een relatief schone, goed gespecificeerde benchmark. Verslagen uit de gemeenschap en discussies over GitHub-issues beschrijven consequent een veel lagere betrouwbaarheid bij ambigue of langdurige real-world taken — dezelfde foutmodus die TheAgentCompany documenteerde. Het artikel gaat niet in op hoe robuustheid gemeten of verbeterd kan worden bij realistische ruis in taakspecificaties.
Waarom dit belangrijk is voor financiële AI
OpenHands is hetgeen dat het dichtst in de buurt komt van een gedeelde basis voor agents voor de gemeenschap. Als Bean Labs evaluatie-infrastructuur bouwt voor Beancount-agents, is de runtime-architectuur hier — Docker-sandbox, Python/bash-acties, inplugbare LLM-backends — de moeite waard om over te nemen in plaats van opnieuw op te bouwen. Het AgentDelegateAction-primitief vertaalt zich op natuurlijke wijze naar een pijplijn voor financiële agents waarbij een orkestrator op het hoogste niveau delegeert aan gespecialiseerde sub-agents: één voor het lezen van het grootboek, één voor het signaleren van anomalieën, één voor voorgestelde correcties die door een mens worden beoordeeld.
De cijfers van SWE-Bench en TheAgentCompany vormen samen een ontnuchterend uitgangspunt: zelfs de best beschikbare agents voltooien ongeveer 26–30% van de realistische, eenduidige softwaretaken. Automatisering van financiële grootboeken is moeilijker — transacties zijn vaak ambigu, de impact van fouten is groot en de intentie van de gebruiker is vaak onvolledig gespecificeerd. De juiste conclusie is niet dat agents er niet klaar voor zijn, maar dat de eerste productieve implementaties nauw gedefinieerde "write-once" workflows zullen zijn (categorisatievoorstellen, signalering van afstemmingen) in plaats van autonome grootboekbewerkingen in meerdere stappen.
Wat je nu kunt lezen
- ReDAct: Uncertainty-Aware Deferral for LLM Agents (arXiv:2604.07036) — koppelt een goedkoop model aan een duur model en delegeert alleen naar het dure model wanneer de onzekerheid hoog is; adresseert direct hoe een agent in OpenHands-stijl moet beslissen wanneer een Beancount-correctie moet worden geëscaleerd naar menselijke beoordeling.
- FinTrace: Holistic Trajectory-Level Evaluation of LLM Tool Calling for Long-Horizon Financial Tasks (arXiv:2604.10015) — 800 door experts geannoteerde taakreeksen over 34 financiële scenario's; de evaluatiemethodologie die OpenHands mist voor financieel-specifiek gebruik van tools op de lange termijn.
- FinMCP-Bench: Benchmarking LLM Agents for Real-World Financial Tool Use under the Model Context Protocol (arXiv:2603.24943) — 613 voorbeelden over 65 echte MCP-financiële tools, direct relevant voor hoe een Beancount-agent gebouwd op de runtime van OpenHands geëvalueerd zou worden in een echte MCP-implementatie.
