{"licence":{"name":"CC BY-SA 4.0","spdx":"CC-BY-SA-4.0","url":"https://creativecommons.org/licenses/by-sa/4.0/","attribution":"Atlas, a bilingual technical dictionary (https://cmaintz.github.io/tech-atlas/)"},"id":"ai/coding-agent","url":{"en":"https://cmaintz.github.io/tech-atlas/en/terms/ai/coding-agent/","da":"https://cmaintz.github.io/tech-atlas/da/terms/ai/coding-agent/"},"term":{"en":"Coding agent","da":"Kodeagent"},"aka":{"en":["agentic coding tool","software engineering agent"],"da":["agentisk kodeværktøj"]},"domain":["ai"],"cluster":"ai-coding","layer":"agent","status":"emerging","era":2024,"summary":{"en":"An AI that is given a programming task and carries it out itself - reading files, running commands and editing code until done.","da":"En AI, der får en programmeringsopgave og selv udfører den - læser filer, kører kommandoer og retter kode, til den er færdig."},"body":{"formal":{"en":"An AI agent whose tools act on a code project - reading and writing files, searching, running shell commands and tests, and using version control - and which loops through plan, act and check steps via tool calling until the task is done or it hands back to a person.","da":"En AI-agent, hvis værktøjer arbejder på et kodeprojekt - læser og skriver filer, søger, kører kommandoer og tests og bruger versionsstyring - og som gennem værktøjskald gentager en runde med at planlægge, udføre og tjekke, indtil opgaven er løst, eller den giver den tilbage til et menneske."},"plain":{"en":"Like leaving a carpenter alone in your house with a list of repairs - he gets on with it by himself, but he can also open any cupboard you left unlocked.","da":"Som at lade en tømrer være alene i dit hus med en liste over reparationer - han går selv i gang, men kan også åbne ethvert skab, du lod stå ulåst."},"inPractice":{"en":"A developer in a municipality asks the agent to add a date filter to the report page of the housing benefit system; it finds the files, makes the change, runs the tests, fixes one failure and opens a change request.","da":"En udvikler i en kommune beder agenten tilføje et datofilter til rapportsiden i boligstøttesystemet; den finder filerne, laver ændringen, kører testene, retter en fejl og åbner en ændringsanmodning."},"whyItMatters":{"en":"It can do hours of routine work alone, but it runs real commands with the developer's rights, so a mistake or a planted order can delete work, leak keys or push harmful code.","da":"Den kan udføre timers rutinearbejde alene, men den kører rigtige kommandoer med udviklerens rettigheder, så en fejl eller en plantet ordre kan slette arbejde, lække nøgler eller skubbe skadelig kode ud."}},"deepDive":{"en":"A coding agent is an LLM tool-use loop specialised for repositories. Its typical toolset is file read, file edit (usually exact string replacement or a patch format, since rewriting whole files wastes tokens and invites accidental changes), glob and grep search, a shell for builds and tests, and git. Yang et al.'s SWE-agent (2024) showed that the design of this agent-computer interface matters as much as the model: purpose-built commands such as a windowed file viewer, concise search output and an edit command that rejects syntactically invalid changes outperformed giving the model a raw shell. Long tasks exceed the context window, so agents compact history into summaries, delegate exploration to subagents with separate contexts, and rely on repository instruction files for conventions.\n\nProgress is tracked mainly with SWE-bench (Jimenez et al., 2023): 2,294 task instances built from real GitHub issues and pull requests across 12 Python repositories, where a patch counts as resolved if the tests that the original fix made pass now pass and existing tests still pass. OpenAI's SWE-bench Verified (August 2024) is a 500-task subset screened by human engineers to remove underspecified or unfair tasks, and it became the headline metric. Scores should be read with care: public repositories raise contamination concerns, scaffolding differs between submissions, and the benchmark covers only Python bug-fixing, which is why suites such as Terminal-Bench and multilingual variants have appeared.\n\nDeployment comes in two shapes. Local agents run in the developer's terminal or IDE with that user's file system, credentials and network access, gated by permission prompts or modes; background agents run in ephemeral cloud VMs or containers, work on a branch and return a pull request. The second shape is easier to contain, because the sandbox, network policy and scoped tokens are set per job rather than inherited from a workstation.\n\nCharacteristic failure modes include test gaming (weakening or special-casing tests so they pass), sprawling edits beyond the task, calling APIs or packages that do not exist, and looping on a failure. The security concern is sharper than for assistants because the agent both reads untrusted content (issues, web pages, dependency code) and can act. Simon Willison's \"lethal trifecta\" names the dangerous combination: access to private data, exposure to untrusted content and a channel to communicate externally. Remove at least one leg: run the agent in a sandbox with egress restricted, give it short-lived least-privilege credentials, keep it off protected branches, and send every change through CI and human review.","da":"En kodeagent er en løkke af værktøjskald i en LLM, specialiseret til repositories. Det typiske værktøjssæt er læsning og redigering af filer (som regel ved præcis strengerstatning eller i et patchformat, fordi det at genskrive hele filer spilder tokens og inviterer til utilsigtede ændringer), søgning med glob og grep, en shell til build og tests samt git. Yang et al.'s SWE-agent (2024) viste, at designet af denne grænseflade mellem agent og computer betyder lige så meget som modellen: skræddersyede kommandoer som en filviser med vindue, kortfattet søgeoutput og en redigeringskommando, der afviser syntaktisk ugyldige ændringer, klarede sig bedre end at give modellen en rå shell. Lange opgaver overskrider kontekstvinduet, så agenter komprimerer historikken til resuméer, uddelegerer udforskning til underagenter med separat kontekst og støtter sig til instruktionsfiler i repositoryet for konventioner.\n\nFremskridt måles primært med SWE-bench (Jimenez et al., 2023): 2.294 opgaver bygget på rigtige GitHub-issues og pull requests fra 12 Python-repositories, hvor en patch tæller som løst, hvis de tests, som den oprindelige rettelse fik til at bestå, nu består, og de eksisterende tests stadig består. OpenAI's SWE-bench Verified (august 2024) er et udsnit på 500 opgaver, som menneskelige ingeniører har gennemgået for at fjerne underspecificerede eller urimelige opgaver, og det blev det førende mål. Resultaterne skal læses med forsigtighed: Offentlige repositories rejser spørgsmål om kontaminering, stilladset omkring modellen varierer mellem indsendelser, og benchmarket dækker kun fejlrettelse i Python, og derfor er testsæt som Terminal-Bench og flersprogede varianter kommet til.\n\nUdrulning sker i to former. Lokale agenter kører i udviklerens terminal eller IDE med brugerens filsystem, legitimationsoplysninger og netværksadgang, afgrænset af godkendelsesprompts eller tilstande; baggrundsagenter kører i kortlivede cloud-VM'er eller containere, arbejder på en gren og returnerer en pull request. Den anden form er lettere at indkapsle, fordi sandkasse, netværkspolitik og afgrænsede tokens fastsættes pr. job i stedet for at blive arvet fra en arbejdsstation.\n\nKarakteristiske fejlmåder er testsnyd (at svække tests eller lave særtilfælde, så de består), vidtløftige ændringer ud over opgaven, kald til API'er eller pakker, der ikke findes, og at køre i ring om en fejl. Sikkerhedsbekymringen er skarpere end for assistenter, fordi agenten både læser upålideligt indhold (issues, websider, kode i afhængigheder) og kan handle. Simon Willisons \"lethal trifecta\" navngiver den farlige kombination: adgang til private data, eksponering for upålideligt indhold og en kanal til at kommunikere udadtil. Fjern mindst ét ben: Kør agenten i en sandkasse med begrænset udgående trafik, giv den kortlivede legitimationsoplysninger efter mindste privilegium, hold den væk fra beskyttede grene, og send hver ændring gennem CI og menneskelig gennemgang."},"edges":[{"type":"requires","to":"ai/tool-calling","why":{"en":"Every action it takes on the project - reading a file, running a test - is a tool call chosen by the model.","da":"Hver handling, den foretager i projektet - læse en fil, køre en test - er et værktøjskald valgt af modellen."},"confidence":"high","strength":"primary"},{"type":"kind-of","to":"ai/ai-agent","confidence":"high","strength":"normal"},{"type":"used-with","to":"cs/least-privilege","why":{"en":"Limit it to the project folder, safe commands and short-lived keys, so a confused or tricked agent cannot reach production or other code.","da":"Begræns den til projektmappen, sikre kommandoer og kortlivede nøgler, så en forvirret eller narret agent ikke kan nå produktion eller anden kode."},"confidence":"high","strength":"primary"},{"type":"used-with","to":"platform/version-control","why":{"en":"Working on its own branch means every change it makes can be reviewed, compared and undone before it is merged.","da":"At arbejde på sin egen gren betyder, at hver ændring, den laver, kan gennemgås, sammenlignes og rulles tilbage, før den flettes ind."},"confidence":"high","strength":"primary"},{"type":"used-with","to":"platform/secrets-management","why":{"en":"Keys it can read it can also leak, so they should come from a managed store with narrow rights, not sit in files in the project.","da":"Nøgler, den kan læse, kan den også lække, så de bør komme fra et styret lager med snævre rettigheder og ikke ligge i filer i projektet."},"confidence":"medium","strength":"normal"},{"type":"used-with","to":"ai/human-in-the-loop","confidence":"high","strength":"normal"},{"type":"used-with","to":"ai/vibe-coding","confidence":"high","strength":"normal"}],"depth":6,"sources":[{"title":"Jimenez et al. (2023), SWE-bench: Can Language Models Resolve Real-World GitHub Issues?","tier":"reference"},{"title":"Yang et al. (2024), SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering","tier":"reference"},{"title":"OWASP Top 10 for Large Language Model Applications 2025 (LLM06 Excessive Agency)","tier":"reference","publisher":"OWASP"}],"draft":true}