[{"data":1,"prerenderedAt":849},["ShallowReactive",2],{"blog-context-rot-compaction-long-running-agents-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":26,"sources":36,"cover":70,"og":71,"expertise":72,"locales":73,"lang":75,"title":77,"description":78,"coverAlt":79,"metaTitle":80,"takeaways":81,"faq":87,"toc":103,"blocks":137,"others":578},"context-rot-compaction-long-running-agents","2026-10-16",10,"agents",[9,10,11,12,13],"Context rot","Compaction","Context engineering","Long-running agents","Agent memory",[15,16,17,18,19,20,21,22,23,24,25],"context rot","context rot LLM","compaction AI agents","context engineering","long-running agents context window","Claude compaction API","context editing clear tool results","OpenAI responses compaction","lost in the middle LLM","agent context management","sub-agents context isolation",[27,30,33],{"name":28,"url":29},"Context window","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model#Context_window",{"name":31,"url":32},"Attention (machine learning)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAttention_(machine_learning)",{"name":34,"url":35},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",[37,40,43,46,49,52,55,58,61,64,67],{"title":38,"url":39},"Chroma: Context Rot: How Increasing Input Tokens Impacts LLM Performance (Jul 2025)","https:\u002F\u002Fresearch.trychroma.com\u002Fcontext-rot",{"title":41,"url":42},"Liu et al.: Lost in the Middle: How Language Models Use Long Contexts (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.03172",{"title":44,"url":45},"Modarressi et al.: NoLiMa: Long-Context Evaluation Beyond Literal Matching (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.05167",{"title":47,"url":48},"Anthropic: Effective context engineering for AI agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"title":50,"url":51},"Anthropic: Effective harnesses for long-running agents (Nov 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"title":53,"url":54},"Claude API docs: Compaction at a token threshold","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-threshold",{"title":56,"url":57},"Claude API docs: Compaction on demand","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-on-demand",{"title":59,"url":60},"Claude API docs: Context editing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcontext-editing",{"title":62,"url":63},"Claude API docs: Memory tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fmemory-tool",{"title":65,"url":66},"OpenAI API docs: Compaction","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fcompaction",{"title":68,"url":69},"Cognition: Don't Build Multi-Agents","https:\u002F\u002Fcognition.ai\u002Fblog\u002Fdont-build-multi-agents","\u002Fimages\u002Fblog\u002Fcontext-rot-compaction-long-running-agents\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcontext-rot-compaction-long-running-agents\u002Fog.jpg","ai-engineer",[74,75,76],"en","de","hu","Context Rot bei langlaufenden Agenten: Leeren, Compaction, Memory und Sub-Agenten","Warum die Genauigkeit von LLMs mit wachsendem Kontext sinkt und wie Leeren, Compaction, Notizen und Sub-Agenten lange Agentenläufe stabil halten.","Die Kontextgröße eines Agenten steigt über die Turns und wird durch das Leeren alter Tool-Ergebnisse und Compaction in einem Band gehalten, statt bis zur Fenstergrenze zu wachsen.","Context Rot und Compaction bei Agenten · Balázs Csorba",[82,83,84,85,86],"Context Rot ist der Genauigkeitsverlust bei wachsender Eingabe: Bei NoLiMa fielen 11 von 13 Long-Context-Modellen bei 32K Tokens unter die Hälfte ihrer Kurzkontext-Baseline.","Agenten trifft es am stärksten, weil die Schleife jeden Tool-Aufruf und jedes Ergebnis anhängt und das Fenster mit veraltetem, distraktorlastigem Inhalt füllt.","Zuerst alte Tool-Ergebnisse entfernen; Claudes Context Editing macht das per Regel, mit clear_at_least, damit sich das Neuschreiben des Caches lohnt.","Compaction fasst ältere Turns bei Claude und OpenAI serverseitig zusammen, ist aber verlustbehaftet; schreib Domänen-Anweisungen und behalte die letzten Turns wörtlich.","Pläne, Fortschrittsdateien und git überstehen jede Compaction; Sub-Agenten für lesende Erkundung nutzen und Schreibvorgänge in einem Agenten mit vollem Kontext belassen.",[88,91,94,97,100],{"q":89,"a":90},"Was ist Context Rot?","Context Rot ist der Rückgang der Genauigkeit eines LLM bei wachsender Eingabelänge, lange bevor das Kontextfenster voll ist. Studien wie Lost in the Middle, NoLiMa und Chromas Bericht Context Rot zeigen, dass Modelle lange Eingaben ungleichmäßig nutzen und unzuverlässiger werden, wenn sich irrelevante oder ablenkende Inhalte ansammeln.",{"q":92,"a":93},"Was ist Compaction bei KI-Agenten?","Compaction ersetzt den älteren Teil einer Konversation durch eine vom Modell geschriebene Zusammenfassung und macht von dort aus weiter, sodass eine lange Aufgabe in einen kleineren, fokussierteren Kontext passt. Die Claude-API bietet das ab einer Token-Schwelle oder auf Abruf, die Responses API von OpenAI über eine Compaction-Schwelle oder einen eigenständigen Compact-Endpunkt.",{"q":95,"a":96},"Reicht Compaction, um einen langlaufenden Agenten auf Kurs zu halten?","Allein meist nicht. Anthropic berichtet, dass Agenten selbst mit Compaction dazu neigten, zu viel auf einmal zu versuchen oder die Arbeit zu früh für beendet zu erklären. Erst ein gespeicherter Plan, ein Fortschrittslog, eine Feature-Liste und git-Commits, die zu Beginn jeder Session gelesen werden, machten lange Läufe kohärent.",{"q":98,"a":99},"Was ist der Unterschied zwischen Context Editing und Compaction?","Context Editing entfernt bestimmte Inhalte per Regel, etwa alte Tool-Ergebnisse oder Thinking-Blöcke, ohne etwas zusammenzufassen. Compaction fasst ältere Turns zu einem kürzeren Block zusammen. Leeren ist günstiger und sicherer; Compaction bewahrt mehr vom Sinn der Konversation, verliert aber Details, die die Zusammenfassung nicht erfasst.",{"q":101,"a":102},"Sollte ich Sub-Agenten gegen Context Rot einsetzen?","Für lesende Erkundung ja: Ein Sub-Agent kann in eigenem Fenster suchen und eine Zusammenfassung von etwa 1.000 bis 2.000 Tokens liefern. Für Arbeit, die schreibt oder etwas verändert, bleib bei einem Agenten mit vollem Kontext, weil Sub-Agenten, die die Entscheidungen der anderen nicht sehen, oft widersprüchliche Ergebnisse liefern.",[104,107,110,113,116,119,122,125,128,131,134],{"id":105,"title":106},"what-is-context-rot","Was die Forschung zeigt",{"id":108,"title":109},"why-agents-rot-faster","Warum Agenten am stärksten betroffen sind",{"id":111,"title":112},"four-levers","Vier Hebel: leeren, verdichten, auslagern, isolieren",{"id":114,"title":115},"clear-tool-results","Alte Tool-Ergebnisse entfernen",{"id":117,"title":118},"compaction","Compaction: zusammenfassen und weitermachen",{"id":120,"title":121},"notes-and-memory","Notizen und Memory außerhalb des Fensters",{"id":123,"title":124},"sub-agents","Sub-Agenten: Isolation mit Preis",{"id":126,"title":127},"just-in-time-context","Von vornherein weniger laden",{"id":129,"title":130},"measuring-context-rot","Es im eigenen Agenten messen",{"id":132,"title":133},"checklist","Checkliste",{"id":135,"title":136},"sources","Quellen",[138,146,149,152,155,194,197,198,207,215,216,261,270,271,287,289,304,307,308,313,386,388,395,398,399,410,429,430,433,441,442,453,485,486,489,507,515,516,534,541,542],{"type":139,"content":140},"paragraph",[141,145],{"tag":142,"children":143},"strong",[144],"Context Rot"," bezeichnet den Genauigkeitsverlust eines LLM bei wachsender Eingabelänge, lange bevor das Kontextfenster voll ist. Ein Fenster von 1M Tokens heißt nicht, dass das Modell das millionste Token so gut nutzt wie das hundertste. Für einen Chat spielt das kaum eine Rolle. Für einen Agenten, der stundenlang läuft und jede gelesene Datei und jeden ausgeführten Befehl anhängt, ist es der Hauptgrund, warum die Qualität spät in einer Aufgabe nachlässt.",{"type":139,"content":147},[148],"Dieser Artikel sammelt die Belege, erklärt, warum Agenten am stärksten betroffen sind, und geht die vier Hebel durch, die in der Praxis funktionieren: alte Tool-Ergebnisse entfernen, Compaction, Notizen und Memory außerhalb des Fensters sowie Sub-Agenten mit eigenem Kontext. Für jeden Hebel zeigt er die aktuellen Mechanismen der Claude- und OpenAI-API und die Harness-Muster, die einen langen Lauf kohärent halten.",{"type":150,"level":151,"id":105,"text":106},"heading",2,{"type":139,"content":153},[154],"Drei Forschungslinien zeigen in dieselbe Richtung. Keine davon nutzt Agenten-Workloads, was eher darauf hindeutet, dass echte Agenten schlechter abschneiden:",{"type":156,"head":157,"rows":164},"table",[158,160,162],[159],"Studie",[161],"Aufbau",[163],"Ergebnis",[165,175,185],[166,171,173],[167,170],{"tag":142,"children":168},[169],"Lost in the Middle"," (Liu et al., 2023)",[172],"Multi-Dokument-QA und Key-Value-Retrieval mit der relevanten Stelle an verschiedenen Positionen",[174],"Am genauesten, wenn die relevante Information am Anfang oder Ende steht; in der Mitte deutlich schlechter, auch bei Long-Context-Modellen",[176,181,183],[177,180],{"tag":142,"children":178},[179],"NoLiMa"," (Modarressi et al., ICML 2025)",[182],"Needle-in-a-Haystack, bei dem Frage und Nadel kaum Wörter teilen; 13 Modelle mit angeblich mindestens 128K Kontext",[184],"Bei 32K Tokens fielen 11 von 13 Modellen unter 50 % ihrer Kurzkontext-Baseline; GPT-4o sank von 99,3 % auf 69,7 %",[186,190,192],[187,189],{"tag":142,"children":188},[144]," (Chroma, Juli 2025)",[191],"18 Modelle, darunter GPT-4.1, Claude 4, Gemini 2.5 und Qwen3, auf kontrollierten einfachen Aufgaben",[193],"Die Leistung wird mit wachsender Eingabe zunehmend unzuverlässig; bei LongMemEval war jedes Modell mit fokussierten Prompts von ~300 Tokens deutlich besser als mit vollen Prompts von ~113K Tokens",{"type":139,"content":195},[196],"Chromas Bericht fügt zwei für Agenten wichtige Details hinzu. Distraktoren, also Inhalte, die relevant aussehen, es aber nicht sind, schaden mit wachsendem Kontext stärker, und die Claude-Modelle in der Studie enthielten sich bei solcher Mehrdeutigkeit eher, statt zu raten. Und entgegen der Intuition schnitten die Modelle bei einem durchmischten Heuhaufen besser ab als bei einem zusammenhängenden. Das Fazit des Berichts ist das nützliche: Ob die relevante Information im Kontext steht, zählt weniger als die Art, wie sie präsentiert wird.",{"type":150,"level":151,"id":108,"text":109},{"type":139,"content":199},[200,201,206],"Die ",{"tag":202,"to":203,"children":204},"link","\u002Fblog\u002Fagent-loop-explained",[205],"Agentenschleife"," hängt jeden Tool-Aufruf und jedes Tool-Ergebnis an die Historie und schickt alles beim nächsten Turn wieder mit. Nach zwei Stunden Arbeit besteht der Kontext überwiegend aus veralteten Dateilesungen, alter Testausgabe und überholten Plänen: genau die distraktorlastige Eingabe mit wenig Signal, die die Studien oben bestrafen. Anthropics Leitfaden zum Context Engineering beschreibt es als \"Aufmerksamkeitsbudget\": Ein Transformer setzt jedes Token zu jedem anderen in Beziehung, n² Paare bei n Tokens, also verdünnt jedes zusätzliche Token die Aufmerksamkeit für die wichtigen. Die Arbeitsregel des Leitfadens lautet, \"die kleinstmögliche Menge an Tokens mit hohem Signal\" für den nächsten Schritt zu finden.",{"type":139,"content":208},[209,210,214],"Das zweite Problem sind die Kosten. Jedes Token in der Historie wird bei jedem Turn erneut abgerechnet; Caching mildert das (siehe ",{"tag":202,"to":211,"children":212},"\u002Fblog\u002Fllm-cost-latency-prompt-caching-routing",[213],"Prompt Caching und Routing","), aber ein Kontext, der nur wächst, macht jeden späteren Schritt langsamer und teurer und dazu ungenauer.",{"type":150,"level":151,"id":111,"text":112},{"type":156,"head":217,"rows":226},[218,220,222,224],[219],"Hebel",[221],"Was er tut",[223],"Was verloren geht",[225],"Wann du ihn nutzt",[227,237,245,253],[228,231,233,235],[229,230],"tag","children",[232],"Entfernt alte Tool-Ergebnisse (optional auch Eingaben oder Thinking) per Regel",[234],"Die Rohausgabe, die der Agent meist neu holen kann",[236],"Tool-Ausgaben dominieren den Kontext; erster und günstigster Schritt",[238,239,241,243],[229,230],[240],"Ersetzt ältere Turns durch eine vom Modell geschriebene Zusammenfassung",[242],"Details, die die Zusammenfassung nicht behalten hat",[244],"Langes Hin und Her, das eine Konversation bleiben muss",[246,247,249,251],[229,230],[248],"Der Agent schreibt Notizen, Pläne und Fortschritt in Dateien oder einen Memory-Store",[250],"Nichts, wenn der Agent sie wieder liest",[252],"Arbeit über mehrere Sessions mit klaren Meilensteinen",[254,255,257,259],[229,230],[256],"Ein Sub-Agent erkundet in eigenem Fenster und liefert eine kurze Zusammenfassung",[258],"Das Reasoning des Sub-Agenten; Koordination wird schwieriger",[260],"Breite Suche oder Recherche, die das Hauptfenster fluten würde",{"type":262,"attrs":263,"inner":267,"caption":268},"diagram",{"viewBox":264,"role":265,"aria-labelledby":266},"0 0 720 300","img","cr-saw-t cr-saw-d","\u003Ctitle id=\"cr-saw-t\">Kontextgröße über einen Agentenlauf, mit und ohne Management\u003C\u002Ftitle>\u003Cdesc id=\"cr-saw-d\">Liniendiagramm der Eingabe-Tokens pro Turn. Ohne Management wächst der Kontext stetig bis zur Fenstergrenze. Mit dem Leeren von Tool-Ergebnissen wächst er langsamer. Mit Compaction steigt die Linie bis zu einer Schwelle, fällt auf eine kurze Zusammenfassung und steigt wieder an, als Sägezahn in einem niedrigeren Bereich, in dem die Genauigkeit besser ist.\u003C\u002Fdesc>\u003Cpath d=\"M70 260H690\" class=\"d-line\" \u002F>\u003Cpath d=\"M70 260V30\" class=\"d-line\" \u002F>\u003Ctext x=\"20\" y=\"150\" text-anchor=\"middle\" class=\"d-label\" transform=\"rotate(-90 20 150)\">Eingabe-Tokens pro Turn\u003C\u002Ftext>\u003Ctext x=\"380\" y=\"288\" text-anchor=\"middle\" class=\"d-label\">Turns\u003C\u002Ftext>\u003Cpath d=\"M70 50H690\" class=\"d-line d-dash\" \u002F>\u003Ctext x=\"686\" y=\"44\" text-anchor=\"end\" class=\"d-small\">Fenstergrenze\u003C\u002Ftext>\u003Cpath d=\"M70 150H690\" class=\"d-dash d-line\" \u002F>\u003Ctext x=\"686\" y=\"144\" text-anchor=\"end\" class=\"d-small\">Schwelle\u003C\u002Ftext>\u003Cpath d=\"M70 250L430 52\" class=\"d-line\" fill=\"none\" \u002F>\u003Cpath d=\"M70 250L690 120\" class=\"d-line d-dash\" fill=\"none\" \u002F>\u003Cpath d=\"M70 250L230 150L236 232L396 150L402 232L562 150L568 232L690 170\" class=\"d-line-accent\" fill=\"none\" \u002F>\u003Cpath d=\"M90 76H110\" class=\"d-line\" \u002F>\u003Ctext x=\"116\" y=\"80\" text-anchor=\"start\" class=\"d-small\">ohne Management\u003C\u002Ftext>\u003Cpath d=\"M90 96H110\" class=\"d-line d-dash\" \u002F>\u003Ctext x=\"116\" y=\"100\" text-anchor=\"start\" class=\"d-small\">Leeren\u003C\u002Ftext>\u003Cpath d=\"M90 116H110\" class=\"d-line-accent\" \u002F>\u003Ctext x=\"116\" y=\"120\" text-anchor=\"start\" class=\"d-small\">Compaction\u003C\u002Ftext>",[269],"Illustrativ, nicht gemessen: Leeren bremst das Wachstum, Compaction hält den Kontext in einem Band. Ziel beider ist, dort zu bleiben, wo das Modell genau ist, nicht nur unter der Grenze.",{"type":150,"level":151,"id":114,"text":115},{"type":139,"content":272},[273,274,277,278,282,283,286],"Anthropic nennt das Entfernen von Tool-Ergebnissen \"eine der sichersten und schonendsten Formen der Compaction\": Hat der Agent eine Datei gelesen und darauf reagiert, muss der volle Dateiinhalt selten bleiben. In der Claude-API heißt das ",{"tag":142,"children":275},[276],"Context Editing"," (Beta-Header ",{"tag":279,"children":280},"code",[281],"context-management-2025-06-27","). Die Strategie ",{"tag":279,"children":284},[285],"clear_tool_uses_20250919"," greift oberhalb einer Schwelle (standardmäßig 100.000 Eingabe-Tokens), behält die neuesten Tool-Nutzungen (standardmäßig 3) und ersetzt ältere Ergebnisse durch einen Platzhalter:",{"type":279,"code":288},"response = client.beta.messages.create(\n    model=\"claude-opus-5-5\",\n    max_tokens=16000,\n    betas=[\"context-management-2025-06-27\"],\n    tools=tools,\n    messages=messages,\n    context_management={\"edits\": [{\n        \"type\": \"clear_tool_uses_20250919\",\n        \"trigger\": {\"type\": \"input_tokens\", \"value\": 30000},\n        \"keep\": {\"type\": \"tool_uses\", \"value\": 3},\n        \"clear_at_least\": {\"type\": \"input_tokens\", \"value\": 5000},\n        \"exclude_tools\": [\"web_search\"],   # results you never want dropped\n    }]},\n)",{"type":139,"content":290},[291,292,295,296,299,300,303],"Zwei Einstellungen verdienen Aufmerksamkeit. ",{"tag":279,"children":293},[294],"exclude_tools"," schützt Ergebnisse, die der Agent nicht günstig wiederherstellen kann. ",{"tag":279,"children":297},[298],"clear_at_least"," gibt es, weil das Leeren den gecachten Prompt-Präfix ab der Änderungsstelle invalidiert; wenn ein Durchgang nur ein paar hundert Tokens frei macht, kostet das Neuschreiben des Caches mehr, als es spart. Eine eigene Strategie ",{"tag":279,"children":301},[302],"clear_thinking_20251015"," macht dasselbe für alte Thinking-Blöcke.",{"type":139,"content":305},[306],"Dasselbe geht auch im eigenen Harness ohne Beta: die letzten paar Tool-Ergebnisse wörtlich behalten und ältere durch einen einzeiligen Platzhalter ersetzen, etwa \"src\u002Forder.ts gelesen (412 Zeilen), siehe Notizen\". Der Platzhalter hält die Trajektorie lesbar und wirft den Ballast ab.",{"type":150,"level":151,"id":117,"text":118},{"type":139,"content":309},[310,312],{"tag":142,"children":311},[10]," ersetzt ältere Turns durch eine Zusammenfassung und macht von dort aus weiter. Anthropic beschreibt, wie Claude Code das macht: Das Modell fasst die Historie zusammen, behält Architekturentscheidungen, ungelöste Bugs und Implementierungsdetails und verwirft redundante Tool-Ausgaben. Beide großen APIs bieten das inzwischen serverseitig an:",{"type":314,"ordered":315,"items":316},"list",false,[317,342,365],[318,321,322,325,326,329,330,333,334,337,338,341],{"tag":142,"children":319},[320],"Claude, ab einer Token-Schwelle"," (Beta ",{"tag":279,"children":323},[324],"compact-2026-01-12","): ",{"tag":279,"children":327},[328],"compact_20260112"," zu ",{"tag":279,"children":331},[332],"context_management.edits"," hinzufügen. Die Standardschwelle liegt bei 150.000 Eingabe-Tokens, das Minimum bei 50.000. ",{"tag":279,"children":335},[336],"instructions"," ersetzt den Standard-Zusammenfassungsprompt vollständig, und ",{"tag":279,"children":339},[340],"pause_after_compaction"," hält nach der Zusammenfassung an, damit du die letzten Turns wörtlich wieder einfügen kannst.",[343,321,346,349,350,353,354,356,357,360,361,364],{"tag":142,"children":344},[345],"Claude, auf Abruf",{"tag":279,"children":347},[348],"compact-2026-09-04","): die Konversation mit ",{"tag":279,"children":351},[352],"\"compaction\": {\"type\": \"summarize\"}"," schicken; die Antwort ist ein einzelner signierter ",{"tag":279,"children":355},[117],"-Block mit ",{"tag":279,"children":358},[359],"stop_reason"," ",{"tag":279,"children":362},[363],"\"compaction\"",", der in der nächsten Anfrage anstelle der zusammengefassten Nachrichten an erster Stelle steht. Den Zeitpunkt bestimmt deine Anwendung.",[366,369,370,373,374,377,378,381,382,385],{"tag":142,"children":367},[368],"OpenAI Responses API",": ",{"tag":279,"children":371},[372],"context_management"," mit ",{"tag":279,"children":375},[376],"compact_threshold"," bei ",{"tag":279,"children":379},[380],"responses.create"," setzen oder den eigenständigen Compact-Endpunkt aufrufen. Das zurückgegebene Compaction-Item ist verschlüsselt und \"nicht dafür gedacht, von Menschen interpretiert zu werden\"; mit ",{"tag":279,"children":383},[384],"store=false"," ist der Ablauf ZDR-freundlich.",{"type":279,"code":387},"response = client.beta.messages.create(\n    model=\"claude-opus-5-5\",\n    max_tokens=16000,\n    betas=[\"compact-2026-01-12\"],\n    tools=tools,\n    messages=messages,\n    context_management={\"edits\": [{\n        \"type\": \"compact_20260112\",\n        \"trigger\": {\"type\": \"input_tokens\", \"value\": 120000},\n        \"instructions\": (\n            \"Summarise for continuing this task in a new context window. Keep: the goal, \"\n            \"constraints the user stated, decisions made and why, files changed, failing \"\n            \"tests and their errors, open questions, the next step. Drop raw tool output.\"\n        ),\n    }]},\n)\nmessages.append({\"role\": \"assistant\", \"content\": response.content})   # keep the compaction block",{"type":389,"variant":390,"title":391,"body":392},"callout","warn","Die ganze Antwort anhängen",[393],[394],"Der Compaction-Block steckt im Content der Antwort. Hängt deine Schleife nur den Text der Antwort an, geht der Compaction-Zustand stillschweigend verloren, und die nächste Anfrage schickt wieder die volle Historie. Rechne auch die Kosten mit: Compaction ist ein zusätzlicher Sampling-Schritt, der als eigener Eintrag in den Usage-Iterationen auftaucht und auf Rate Limits zählt.",{"type":139,"content":396},[397],"Eine Zusammenfassung ist absichtlich verlustbehaftet. Was der Standardprompt weglässt, rächt sich meist später: die Vorgabe des Nutzers aus Turn drei, der Grund, warum ein Ansatz verworfen wurde. Schreib eigene Anweisungen für deine Domäne, behalte die letzten Turns wörtlich und teste es: Lass Tasks laufen, die eine Information von vor der Compaction brauchen, und prüfe, ob der Agent sie noch hat.",{"type":150,"level":151,"id":120,"text":121},{"type":139,"content":400},[401,402,405,406,409],"Anthropics Harness-Artikel vom November 2025 ist deutlich: \"Compaction reicht nicht\". Selbst ein Frontier-Modell, das über mehrere Kontextfenster lief, versuchte gern, eine App in einem Rutsch zu bauen, oder erklärte das Projekt zu früh für fertig. Gelöst hat das Zustand auf der Festplatte. Eine Initialisierungs-Session schreibt eine ",{"tag":279,"children":403},[404],"init.sh",", ein Log ",{"tag":279,"children":407},[408],"claude-progress.txt"," und einen ersten git-Commit; für ihre Beispiel-App schrieb sie zudem eine Feature-Liste mit über 200 Anforderungen, alle als fehlschlagend markiert. Jede spätere Session liest Fortschrittsdatei und git-Historie, macht inkrementell Fortschritt an einem Feature und hinterlässt strukturierte Updates.",{"type":139,"content":411},[412,413,416,417,420,421,423,424,428],"Das ist der Auslagerungs-Hebel, und auf ihn verlasse ich mich bei Coding-Agenten am meisten: eine Plan-Datei, ein Fortschrittslog und kleine Commits sind billig, überstehen jede Compaction und jeden Absturz und sind für den Menschen lesbar, der die Arbeit prüft. Für Agenten, die nicht dateibasiert arbeiten, bietet Claudes Memory-Tool (",{"tag":279,"children":414},[415],"memory_20250818",") dasselbe Muster als Tool: Das Modell liest und schreibt Dateien unter ",{"tag":279,"children":418},[419],"\u002Fmemories",", und deine Anwendung führt diese Operationen gegen einen Speicher aus, den du kontrollierst. Weil es dein Speicher ist, muss der Handler Pfade außerhalb von ",{"tag":279,"children":422},[419]," ablehnen. Was gespeichert werden sollte und wie man Vergiftung verhindert, beschreibt ",{"tag":202,"to":425,"children":426},"\u002Fblog\u002Fai-agent-memory-design",[427],"Memory für KI-Agenten entwerfen",".",{"type":150,"level":151,"id":123,"text":124},{"type":139,"content":431},[432],"Ein Sub-Agent bekommt eine Aufgabe, ein eigenes sauberes Kontextfenster und eigene Tools. Er verbraucht beim Erkunden womöglich zehntausende Tokens, liefert aber laut Anthropic \"eine verdichtete, destillierte Zusammenfassung seiner Arbeit (oft 1.000 bis 2.000 Tokens)\". Das Fenster des Hauptagenten sieht nur diese Zusammenfassung. Für suchlastige Arbeit ist das der stärkste Hebel gegen Rot, etwa \"finde jede Stelle, die Mehrwertsteuer berechnet\" in einer großen Codebasis.",{"type":139,"content":434},[435,436,440],"Der Preis ist Koordination. Cognitions \"Don't Build Multi-Agents\" plädiert dafür, vollständige Agenten-Traces zu teilen statt einzelner Nachrichten, weil Aktionen implizite Entscheidungen tragen und Sub-Agenten, die die Entscheidungen der anderen nicht sehen, widersprüchliche Ergebnisse liefern. Meine Regel: Sub-Agenten für lesende Erkundung und Recherche, die Fakten zurückliefert; ein Agent mit vollem Kontext für alles, was schreibt. ",{"tag":202,"to":437,"children":438},"\u002Fblog\u002Fmulti-agent-systems-when-worth-it",[439],"Wann sich Multi-Agenten-Systeme lohnen"," geht tiefer.",{"type":150,"level":151,"id":126,"text":127},{"type":139,"content":443},[444,445,448,449,452],"Das günstigste Token ist das, das nie hinzugefügt wird. Anthropic beschreibt \"Just-in-time\"-Kontext: Der Agent hält leichte Bezeichner (Dateipfade, gespeicherte Abfragen, Links) und lädt Daten erst bei Bedarf, mit Tools wie ",{"tag":279,"children":446},[447],"head",", ",{"tag":279,"children":450},[451],"tail"," und gezielten Abfragen statt ganze Objekte zu lesen. Das Tool-Design erledigt den Rest:",{"type":314,"ordered":315,"items":454},[455,460,465,470],[456,459],{"tag":142,"children":457},[458],"Tool-Ausgaben standardmäßig paginieren und kürzen,"," mit einem klaren Hinweis, wie man mehr bekommt.",[461,464],{"tag":142,"children":462},[463],"Zusammenfassungen plus Handles zurückgeben,"," keine Rohdumps: \"143 passende Bestellungen, die ersten 10 unten, Abfrage-ID q_17\".",[466,469],{"tag":142,"children":467},[468],"Stabile Anweisungen kurz und vorne halten"," und das aktuelle Ziel samt Vorgaben ans Ende des Kontexts setzen, wo Modelle laut den Ergebnissen von Lost in the Middle am besten hinschauen.",[471,474,475,479,480,484],{"tag":142,"children":472},[473],"Retrieval statt Vollstopfen."," Die Abwägung zwischen langem Kontext und Suche beschreibt ",{"tag":202,"to":476,"children":477},"\u002Fblog\u002Frag-2026-hybrid-agentic-long-context",[478],"RAG im Jahr 2026","; für Coding-Agenten ordnet ",{"tag":202,"to":481,"children":482},"\u002Fblog\u002Ftoken-saving-tools-coding-agents-top-20",[483],"Tools zum Token-Sparen"," die Optionen nach Beleglage.",{"type":150,"level":151,"id":129,"text":130},{"type":139,"content":487},[488],"Context Rot ist eine Eigenschaft deines Workloads, also miss sie dort. Drei günstige Signale:",{"type":314,"ordered":490,"items":491},true,[492,497,502],[493,496],{"tag":142,"children":494},[495],"Eingabe-Tokens pro Turn loggen"," und den Task-Erfolg gegen die Kontextgröße auftragen, bei der jeder Task endete. Fällt der Erfolg in den oberen Bereichen ab, ist deine Schwelle zu hoch.",[498,501],{"tag":142,"children":499},[500],"Früh eine Vorgabe setzen und spät prüfen."," Ein Eval-Task, der in Turn eins eine Regel nennt (\"fass das Zahlungsmodul nie an\") und sie nach einer Compaction braucht, zeigt dir, ob deine Zusammenfassung das Wichtige behält.",[503,506],{"tag":142,"children":504},[505],"Mit einer frischen Session vergleichen."," Gescheiterte späte Schritte in einer neuen Session wiederholen, die nur Notizen und Fortschrittsdatei bekommt. Gelingt es dort, lag das Problem am Kontext, nicht am Modell.",{"type":139,"content":508},[509,510,514],"Diese Prüfungen passen direkt in die Trajektorien-Evals und Traces, die du schon hast; ",{"tag":202,"to":511,"children":512},"\u002Fblog\u002Fagent-observability-opentelemetry",[513],"Agent-Observability mit OpenTelemetry"," zeigt, wie du Token-Zahlen pro Span erfasst.",{"type":150,"level":151,"id":132,"text":133},{"type":314,"ordered":490,"items":517},[518,520,522,524,526,528,530,532],[519],"Das Kontextfenster als Genauigkeitsbudget behandeln, nicht als Speichergrenze.",[521],"Tool-Ausgaben paginieren und kürzen; Handles und Zusammenfassungen zurückgeben.",[523],"Zuerst alte Tool-Ergebnisse entfernen, mit Ausnahmen für teuer wiederherstellbare Ergebnisse.",[525],"Mit domänenspezifischen Anweisungen verdichten, die letzten Turns wörtlich behalten und die ganze Antwort anhängen, damit der Compaction-Block erhalten bleibt.",[527],"Pläne, Fortschritt und Entscheidungen auf der Festplatte oder in einem Memory-Store halten, den der Agent zu Beginn jeder Session liest.",[529],"Sub-Agenten für lesende Erkundung mit kurzen Zusammenfassungen nutzen; Schreibvorgänge in einem Agenten mit vollem Kontext belassen.",[531],"Aktuelles Ziel und Vorgaben ans Ende des Kontexts setzen.",[533],"Erfolg gegen Kontextgröße messen und prüfen, ob frühe Vorgaben die Compaction überstehen.",{"type":139,"content":535},[536,537,428],"Wenn deine Agenten bei langen Aufgaben nachlassen und du eine zweite Meinung zum Harness willst, siehe ",{"tag":202,"to":538,"children":539},"\u002Fexpertise\u002Fai-engineer",[540],"AI Engineering",{"type":150,"level":151,"id":135,"text":136},{"type":314,"ordered":490,"items":543},[544,548,551,554,557,560,563,566,569,572,575],[545],{"tag":546,"href":39,"children":547},"a",[38],[549],{"tag":546,"href":42,"children":550},[41],[552],{"tag":546,"href":45,"children":553},[44],[555],{"tag":546,"href":48,"children":556},[47],[558],{"tag":546,"href":51,"children":559},[50],[561],{"tag":546,"href":54,"children":562},[53],[564],{"tag":546,"href":57,"children":565},[56],[567],{"tag":546,"href":60,"children":568},[59],[570],{"tag":546,"href":63,"children":571},[62],[573],{"tag":546,"href":66,"children":574},[65],[576],{"tag":546,"href":69,"children":577},[68],[579,630,689,773],{"slug":580,"published":5,"minutes":581,"category":7,"tags":582,"keywords":588,"about":599,"sources":608,"cover":624,"og":625,"expertise":72,"locales":626,"lang":75,"title":627,"description":628,"coverAlt":629},"browser-agents-e2e-testing-playwright",7,[583,584,585,586,587],"Playwright","E2E testing","Coding agents","MCP","Test automation",[589,590,591,592,593,594,595,596,597,598],"playwright test agents","playwright planner generator healer","ai e2e testing","playwright mcp","llm generated playwright tests","self-healing tests","browser agent testing","playwright init-agents","ai test automation 2026","playwright cli skills",[600,602,605],{"name":583,"url":601},"https:\u002F\u002Fplaywright.dev\u002F",{"name":603,"url":604},"End-to-end testing","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSystem_testing",{"name":606,"url":607},"Model Context Protocol","https:\u002F\u002Fmodelcontextprotocol.io\u002F",[609,612,615,618,621],{"title":610,"url":611},"Playwright docs: Test agents (planner, generator, healer)","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Ftest-agents",{"title":613,"url":614},"Microsoft: Playwright MCP README (MCP vs CLI, accessibility snapshots)","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fplaywright-mcp",{"title":616,"url":617},"Playwright docs: Best practices","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Fbest-practices",{"title":619,"url":620},"Playwright docs: Locators","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Flocators",{"title":622,"url":623},"Browserbase: Stagehand README (act, extract, observe)","https:\u002F\u002Fgithub.com\u002Fbrowserbase\u002Fstagehand","\u002Fimages\u002Fblog\u002Fbrowser-agents-e2e-testing-playwright\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fbrowser-agents-e2e-testing-playwright\u002Fog.jpg",[74,75,76],"Browser-Agenten für E2E-Tests: Agenten Playwright-Tests schreiben lassen, nicht ausführen","Wo KI-Agenten bei E2E-Tests helfen: Playwright Planner, Generator und Healer, MCP oder CLI und die Leitplanken, die geheilte Tests ehrlich halten.","Ein Agent erkundet eine Web-App, schreibt einen Testplan in Markdown, macht daraus Playwright-Tests, und ein Healer repariert Locators, während Assertions geprüft bleiben.",{"slug":631,"published":5,"minutes":632,"category":7,"tags":633,"keywords":638,"about":650,"sources":658,"cover":683,"og":684,"expertise":72,"locales":685,"lang":75,"title":686,"description":687,"coverAlt":688},"a2a-protocol-agent-interoperability",12,[634,635,586,636,637],"A2A","AI agents","Interoperability","Agent security",[639,640,641,642,643,644,645,646,647,648,649],"a2a protocol","agent2agent protocol","a2a vs mcp","a2a agent card","agent-card.json well-known","a2a protocol 1.0","a2a task lifecycle","agent to agent communication protocol","a2a security","a2a json-rpc grpc","agent session smuggling",[651,654,655],{"name":652,"url":653},"Agent2Agent protocol","https:\u002F\u002Fa2a-protocol.org\u002F",{"name":606,"url":607},{"name":656,"url":657},"Linux Foundation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLinux_Foundation",[659,662,665,668,671,674,677,680],{"title":660,"url":661},"A2A Protocol Specification (latest, v1.0)","https:\u002F\u002Fa2a-protocol.org\u002Flatest\u002Fspecification\u002F",{"title":663,"url":664},"A2A: a2a.proto, the normative data model (GitHub)","https:\u002F\u002Fgithub.com\u002Fa2aproject\u002FA2A\u002Fblob\u002Fmain\u002Fspecification\u002Fa2a.proto",{"title":666,"url":667},"A2A docs: A2A and MCP","https:\u002F\u002Fa2a-protocol.org\u002Flatest\u002Ftopics\u002Fa2a-and-mcp\u002F",{"title":669,"url":670},"A2A docs: Agent discovery","https:\u002F\u002Fa2a-protocol.org\u002Flatest\u002Ftopics\u002Fagent-discovery\u002F",{"title":672,"url":673},"Google Developers Blog: Announcing the Agent2Agent Protocol (Apr 2025)","https:\u002F\u002Fdevelopers.googleblog.com\u002Fen\u002Fa2a-a-new-era-of-agent-interoperability\u002F",{"title":675,"url":676},"Linux Foundation: Launch of the Agent2Agent Protocol Project (Jun 2025)","https:\u002F\u002Fwww.linuxfoundation.org\u002Fpress\u002Flinux-foundation-launches-the-agent2agent-protocol-project-to-enable-secure-intelligent-communication-between-ai-agents",{"title":678,"url":679},"Linux Foundation: A2A surpasses 150 organizations in its first year (Apr 2026)","https:\u002F\u002Fwww.linuxfoundation.org\u002Fpress\u002Fa2a-protocol-surpasses-150-organizations-lands-in-major-cloud-platforms-and-sees-enterprise-production-use-in-first-year",{"title":681,"url":682},"Unit 42: Agent Session Smuggling in Agent2Agent Systems (Oct 2025)","https:\u002F\u002Funit42.paloaltonetworks.com\u002Fagent-session-smuggling-in-agent2agent-systems\u002F","\u002Fimages\u002Fblog\u002Fa2a-protocol-agent-interoperability\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fa2a-protocol-agent-interoperability\u002Fog.jpg",[74,75,76],"Das A2A-Protokoll erklärt: Agent Cards, Tasks und sein Platz neben MCP","Was das Agent2Agent-Protokoll in v1.0 standardisiert: Agent Cards, Tasks, Bindings, Sicherheit, der Unterschied zu MCP und wann es sich lohnt.","Zwei KI-Agenten verschiedener Organisationen tauschen über A2A Tasks aus, jeder über MCP mit eigenen Tools verbunden, die Agent Card liegt unter einer Well-known-URL.",{"slug":690,"published":691,"minutes":692,"category":7,"tags":693,"keywords":699,"about":708,"sources":718,"cover":767,"og":768,"expertise":72,"locales":769,"lang":75,"title":770,"description":771,"coverAlt":772},"ai-assisted-development-economics","2026-10-01",11,[694,695,696,697,698],"AI coding agents","Developer productivity","Engineering economics","Team cost","GDPR",[700,701,702,703,704,705,706,707],"AI coding agents cost","developer productivity AI study","METR AI developer slowdown","AI coding break-even cost model","one senior engineer vs team","AI coding agent vs agency","DORA AI adoption report","GDPR processor contract AI coding tools",[709,712,715],{"name":710,"url":711},"General Data Protection Regulation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGeneral_Data_Protection_Regulation",{"name":713,"url":714},"Randomized controlled trial","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRandomized_controlled_trial",{"name":716,"url":717},"Bus factor","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBus_factor",[719,722,725,728,731,734,737,740,743,746,749,752,755,758,761,764],{"title":720,"url":721},"METR: early-2025 AI and experienced open-source developers","https:\u002F\u002Fmetr.org\u002Fblog\u002F2025-07-10-early-2025-ai-experienced-os-dev-study\u002F",{"title":723,"url":724},"Becker et al.: arXiv 2507.09089","https:\u002F\u002Farxiv.org\u002Fabs\u002F2507.09089",{"title":726,"url":727},"METR: developer productivity experiment design, February 2026","https:\u002F\u002Fmetr.org\u002Fblog\u002F2026-02-24-uplift-update\u002F",{"title":729,"url":730},"Peng et al.: GitHub Copilot controlled experiment, arXiv 2302.06590","https:\u002F\u002Farxiv.org\u002Fhtml\u002F2302.06590v1",{"title":732,"url":733},"Cui et al.: three field experiments with software developers","https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002F?p=1148213",{"title":735,"url":736},"DORA: State of AI-assisted Software Development 2025","https:\u002F\u002Fresearch.google\u002Fpubs\u002Fdora-2025-state-of-ai-assisted-software-development-report\u002F",{"title":738,"url":739},"Google Cloud: highlights from the 2024 DORA report","https:\u002F\u002Fcloud.google.com\u002Fblog\u002Fproducts\u002Fdevops-sre\u002Fannouncing-the-2024-dora-report",{"title":741,"url":742},"Stack Overflow: Developer Survey 2025, AI","https:\u002F\u002Fsurvey.stackoverflow.co\u002F2025\u002Fai",{"title":744,"url":745},"Ziftci et al.: Migrating Code At Scale With LLMs At Google","https:\u002F\u002Farxiv.org\u002Fabs\u002F2504.09691",{"title":747,"url":748},"Alshahwan et al.: Automated Unit Test Improvement using Large Language Models at Meta","https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.09171",{"title":750,"url":751},"GitClear: AI Copilot Code Quality: 2025 Look Back at 12 Months of Data","https:\u002F\u002Fwww.gitclear.com\u002Fai_assistant_code_quality_2025_research",{"title":753,"url":754},"GDPR, Regulation (EU) 2016\u002F679, Article 28","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2016\u002F679\u002Foj\u002Feng",{"title":756,"url":757},"Anthropic: Commercial Terms of Service","https:\u002F\u002Fwww.anthropic.com\u002Flegal\u002Fcommercial-terms",{"title":759,"url":760},"Claude: pricing","https:\u002F\u002Fclaude.com\u002Fpricing",{"title":762,"url":763},"Claude Platform: data residency","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fdata-residency",{"title":765,"url":766},"GitHub Copilot: plans and pricing","https:\u002F\u002Fgithub.com\u002Ffeatures\u002Fcopilot\u002Fplans","\u002Fimages\u002Fblog\u002Fai-assisted-development-economics\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fai-assisted-development-economics\u002Fog.jpg",[74,75,76],"Ein Senior mit Coding-Agenten gegen ein Team: was die Belege sagen","Die Studien von METR, DORA, Microsoft und GitHub zu KI-Coding-Tools: was sie nicht beweisen, und ein Kostenmodell für einen Senior gegen ein Team oder eine Agentur.","Titelbild zur KI-Coding-Ökonomie: eine Pipeline vom Entwurf bis zur Auslieferung, in der Agenten das Schreiben beschleunigen und Review- und Qualitätskosten einen Teil des Gewinns zurückholen.",{"slug":774,"published":775,"minutes":692,"category":7,"tags":776,"keywords":781,"about":790,"sources":802,"cover":843,"og":844,"expertise":72,"locales":845,"lang":75,"title":846,"description":847,"coverAlt":848},"spec-driven-development-coding-agents","2026-09-30",[777,585,778,779,780],"Spec-driven development","Acceptance criteria","Plan mode","AI engineering",[782,783,784,785,786,787,788,789],"spec-driven development","spec driven development coding agents","acceptance criteria for coding agents","AI coding agent plan mode","GitHub Spec Kit","Kiro specs requirements design tasks","vibe coding vs spec-driven development","EARS requirements syntax",[791,794,796,799],{"name":792,"url":793},"Vibe coding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVibe_coding",{"name":786,"url":795},"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fspec-kit",{"name":797,"url":798},"EARS (Easy Approach to Requirements Syntax)","https:\u002F\u002Falistairmavin.com\u002Fears\u002F",{"name":800,"url":801},"Kiro","https:\u002F\u002Fkiro.dev",[803,806,808,811,814,817,819,822,825,828,830,832,835,837,840],{"title":804,"url":805},"Birgitta Böckeler: Understanding Spec-Driven-Development: Kiro, spec-kit, and Tessl (martinfowler.com, 15 October 2025)","https:\u002F\u002Fmartinfowler.com\u002Farticles\u002Fexploring-gen-ai\u002Fsdd-3-tools.html",{"title":807,"url":795},"GitHub Spec Kit: README",{"title":809,"url":810},"GitHub Spec Kit: spec-driven.md methodology","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fspec-kit\u002Fblob\u002Fmain\u002Fspec-driven.md",{"title":812,"url":813},"Kiro documentation: specs","https:\u002F\u002Fkiro.dev\u002Fdocs\u002Fspecs\u002F",{"title":815,"url":816},"Kiro: Introducing Kiro","https:\u002F\u002Fkiro.dev\u002Fblog\u002Fintroducing-kiro\u002F",{"title":818,"url":798},"Alistair Mavin: EARS, the Easy Approach to Requirements Syntax",{"title":820,"url":821},"Anthropic: Best practices for Claude Code","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fbest-practices",{"title":823,"url":824},"Cline documentation: Plan and Act","https:\u002F\u002Fdocs.cline.bot\u002Ffeatures\u002Fplan-and-act",{"title":826,"url":827},"OpenAI: Codex slash command reference","https:\u002F\u002Flearn.chatgpt.com\u002Fdocs\u002Freference\u002Fslash-commands",{"title":829,"url":721},"METR: early-2025 AI and experienced open-source developer productivity (July 2025)",{"title":831,"url":727},"METR: We are changing our developer productivity experiment design (February 2026)",{"title":833,"url":834},"Thoughtworks Technology Radar: Spec-driven development","https:\u002F\u002Fwww.thoughtworks.com\u002Fradar\u002Ftechniques\u002Fspec-driven-development",{"title":836,"url":793},"Wikipedia: Vibe coding",{"title":838,"url":839},"Anthropic: Claude API pricing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fabout-claude\u002Fpricing",{"title":841,"url":842},"Anthropic: Prompt caching","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fprompt-caching","\u002Fimages\u002Fblog\u002Fspec-driven-development-coding-agents\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fspec-driven-development-coding-agents\u002Fog.jpg",[74,75,76],"Spec-driven Development für Coding-Agenten: den Plan vor dem Code festlegen","Vibe Coding scheitert an echten Codebasen. Schreib eine Spec mit Akzeptanzkriterien, Plan und Tasks, lass den Agenten abhaken und prüfe vor dem ersten Code.","Titelbild zu Spec-driven Development: eine Pipeline von Spec und Plan zu Tasks und Verifikation, mit einem Review-Gate vor jedem Code.",1792177149298]