Legion lar KI-agenten skrive sandkasset Lua inne i Elixir-appen din
Slipper Software Mansion en MIT-lisensiert Elixir-runtime der KI-agenten løser oppgaver ved å skrive Lua som kjøres i sandkasse inne i din egen app.
Legion ligger på GitHub som software-mansion/legion, og premisset er at agenten skriver kode i stedet for å kalle ett og ett verktøy. Den leser kildekoden til Elixir-modulene du eksponerer, skriver en Lua-snutt som kan filtrere, forgrene og løkke, kjører den, ser på resultatet og skriver neste snutt til oppgaven er løst. Software Mansion peker på Anthropics egen argumentasjon for at kodekjøring slår verktøykall: én evaluering gjør arbeidet som ellers koster én LLM-runde per steg.
Innpakningen er gjort så tynn som mulig. Du skriver «use Legion.Tool» i en modul, og agenten leser kildekoden og kaller de offentlige funksjonene direkte. Ingenting å definere, ingenting å holde i synk når appen endrer seg. Agentene er vanlige BEAM-prosesser, så du starter dem med start_link, snakker med dem som en GenServer, og legger dem under supervisortrær og pooler på vanlig vis.
Sikkerhetsmodellen hviler på to ting. Lua-koden når ikke den underliggende BEAM-en i det hele tatt, og eneste vei ut er verktøyene du registrerte. Autentiseringskonteksten settes før agenten starter og leses inne i verktøyene under kjøring via Vault, slik at den genererte koden aldri ser legitimasjonen. Standardgrensene er konkrete: 60 000 millisekunder per evaluering, 256 000 000 byte minne, 10 vellykkede steg per tur og 3 påfølgende feil før agenten gir opp.
Produksjonsdelene er også med. Kobler du på Postgres-lageret, kan du gjenoppta en samtale på id etter en deploy. Rate limiting kommer innebygd med regler per identitet, der en policy kan si maks 10 agenter og 100 000 tokens i et tidsvindu. Telemetri sendes på agent-, melding-, iterasjon-, LLM- og sandkassenivå, og legion_web gir et LiveView-dashbord som viser hver linje kode agenten skriver.
Modellvalget er én konfigurasjonslinje gjennom ReqLLM, med openai:gpt-5.4 som standard. Det betyr at agentene dine følger med når modellene blir bedre, uten kodeendringer. Neste sandkasse på veikartet er Popcorn, der agenten skriver Elixir som kjøres i brukerens nettleser på en AtomVM-basert BEAM i WebAssembly, slik at generert kode aldri treffer serveren din.
Hva bør du gjøre?
- Start med en tynn fasade, ikke hele domenet. Agenten kan kalle enhver offentlig funksjon i en modul du eksponerer, så bruk defdelegate og en egen description for store moduler.
- Sett auth-konteksten før agenten starter. Uten Vault-oppsettet er det ingenting som binder agentens kall til den innloggede brukeren.
- Senk sandbox_max_reductions fra uendelig hvis du frykter varme løkker. CPU-budsjettet pollers hvert 50. millisekund og stopper en løpsk evaluering før tidsgrensen slår inn.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.