I dag defineres KI-agenter enten imperativt inne i rammeverkskode som LangGraph og CrewAI, eller klikkes sammen i plattform-UI-er som OpenAI Assistants og Amazon Bedrock. Kastor, et «Show HN»-prosjekt fra utvikleren «weirdGuy», snur på tilnærmingen: du beskriver agenten i typede .agent-, .tool- og .prompt-filer skrevet i HCL (samme konfigurasjonsspråk som Terraform), og en Go-verktøykjede kompilerer spec-en til et kjørbart prosjekt.
Verktøyet er eksplisitt en tidlig proof of concept. Det som fungerer nå er parsing og validering av .agent, .tool, .prompt og kastor.hcl, sjekk av referanser og prompt-variabler, og kastor build som genererer kjørbare LangGraph-prosjekter. To eksempler følger med: en vær-agent og en innholdsplanlegger. Den mer ambisiøse delen, kastor plan og kastor apply med lokal state-fil og drift-deteksjon i Terraform-ånd, er foreløpig bare planlagt for v0.
Kritikken på Hacker News gikk rett på tvilen mange deler:
«People haven't figured out what an agent is yet, and trying to crystalize what people happen to be doing right now means in a few months, you're going to be obsolete.» — empath75, kommentar på Hacker News
Utvikleren er enig i at selve agent-abstraksjonen er for ustabil til å standardiseres, men sikter smalere: målet er å standardisere den ytre kontrakten rundt en agent, altså hvilke inputs den tar, hvilke outputs den lover, hvilken modell og prompt den bruker og hvilke verktøy den kan kalle, ikke kjøretiden eller oppførselen.
For deg som bygger agenter er den praktiske gevinsten reproduserbarhet: generert kode committes ikke, den gjenskapes deterministisk fra spec-en, og codegen-determinisme håndheves av tester. Fangsten er at referanser mellom agenter valideres på kompileringstidspunkt, men generert kode kjører ikke oppstrøms-agenter for deg. Du må selv kjøre en avhengig agent og sende resultatet videre via --inputs.
Hva bør du gjøre?
- Har du Go 1.26+, Python 3.11+ og en OpenAI- og Tavily-nøkkel? Installer via
brew install kastorellergo install, og kjørkastor validateogkastor buildpå vær-eksempelet. - Behandle Kastor som eksperiment, ikke produksjonsverktøy.
planogapplyfinnes ikke ennå, så drift-deteksjon og hostet deploy er fortsatt løfter. - Skal du prøve MCP-verktøybindingen, legg Tavily-nøkkelen i
mcp_servers.json(den er gitignored fordi URL-en inneholder nøkkelen i klartekst).