[{"data":1,"prerenderedAt":661},["ShallowReactive",2],{"blog-browser-agents-e2e-testing-playwright-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":25,"sources":34,"cover":50,"og":51,"expertise":52,"locales":53,"lang":55,"title":57,"description":58,"coverAlt":59,"metaTitle":60,"takeaways":61,"faq":67,"toc":83,"blocks":108,"others":370},"browser-agents-e2e-testing-playwright","2026-10-16",7,"agents",[9,10,11,12,13],"Playwright","E2E testing","Coding agents","MCP","Test automation",[15,16,17,18,19,20,21,22,23,24],"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",[26,28,31],{"name":9,"url":27},"https:\u002F\u002Fplaywright.dev\u002F",{"name":29,"url":30},"End-to-end testing","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSystem_testing",{"name":32,"url":33},"Model Context Protocol","https:\u002F\u002Fmodelcontextprotocol.io\u002F",[35,38,41,44,47],{"title":36,"url":37},"Playwright docs: Test agents (planner, generator, healer)","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Ftest-agents",{"title":39,"url":40},"Microsoft: Playwright MCP README (MCP vs CLI, accessibility snapshots)","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fplaywright-mcp",{"title":42,"url":43},"Playwright docs: Best practices","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Fbest-practices",{"title":45,"url":46},"Playwright docs: Locators","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Flocators",{"title":48,"url":49},"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","ai-engineer",[54,55,56],"en","de","hu","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.","Browser-Agenten für E2E-Tests mit Playwright · Balázs Csorba",[62,63,64,65,66],"Agenten deterministische Playwright-Tests schreiben und pflegen lassen; die CI sollte normale Testdateien ausführen, kein LLM, das entscheidet, was bestanden ist.","Playwright liefert Planner-, Generator- und Healer-Agenten, die aus einem Seed-Test und einer Anfrage einen Markdown-Plan und dann Testdateien machen.","Für Coding-Agenten verweist Playwrights eigene Dokumentation inzwischen auf das CLI mit Skills als tokensparender als den MCP-Server.","Ein Healer darf Locators und Wartezeiten selbst anpassen; jede Änderung an einer Assertion oder ein übersprungener Test braucht ein menschliches Review.","Barrierefreies Markup ist der Vertrag: Rollenbasierte Locators sind das, worauf Agenten und robuste Tests gleichermaßen bauen.",[68,71,74,77,80],{"q":69,"a":70},"Kann ein KI-Agent meine E2E-Testsuite ersetzen?","Nicht als das, was in der CI läuft. Ein Agent, der zur Testzeit durch die App klickt, ist langsamer, kostet bei jedem Lauf Tokens und kann dasselbe Ergebnis zweimal unterschiedlich bewerten. Agenten zum Schreiben, Erweitern und Reparieren einer normalen Playwright-Suite nutzen und diese deterministisch laufen lassen.",{"q":72,"a":73},"Was sind die Playwright Test Agents?","Playwright liefert drei Agentendefinitionen: einen Planner, der die App erkundet und einen Testplan in Markdown schreibt, einen Generator, der den Plan in Playwright-Testdateien übersetzt und dabei Selektoren live prüft, und einen Healer, der fehlschlagende Tests ausführt und Patches vorschlägt. Man fügt sie mit npx playwright init-agents für VS Code, Claude Code, Codex oder OpenCode hinzu.",{"q":75,"a":76},"Playwright MCP oder Playwright CLI?","Für Coding-Agenten in einem Repository empfiehlt die README von Playwright MCP das CLI mit Skills, weil es keine großen Tool-Schemata und Accessibility-Bäume in den Kontext lädt. MCP passt zu lang laufenden explorativen oder selbstheilenden Schleifen, die von einer dauerhaften Browser-Sitzung profitieren.",{"q":78,"a":79},"Sind selbstheilende Tests sicher?","Nur mit Grenzen. Einen Locator für einen umbenannten Button zu korrigieren ist in Ordnung. Zu ändern, was ein Test prüft, oder ihn zu überspringen, weil das Feature kaputt wirkt, kann eine echte Regression verstecken. Den Healer Locators und Wartezeiten ändern lassen und Assertion-Änderungen und Skips ins Review schicken.",{"q":81,"a":82},"Wann lohnt sich ein Browser-Agent zur Laufzeit?","Für exploratives Testen, schnelle Smoke-Checks auf Seiten, die man nicht kontrolliert, und Aufgaben, bei denen sich die Oberfläche zu oft für feste Selektoren ändert. Tools wie Stagehand mischen dafür Aktionen in natürlicher Sprache mit Code im Playwright-Stil.",[84,87,90,93,96,99,102,105],{"id":85,"title":86},"three-ways-agents-meet-e2e","Welche drei Wege gibt es, Agenten bei E2E-Tests einzusetzen?",{"id":88,"title":89},"playwright-test-agents","Wie funktionieren die Test-Agenten von Playwright?",{"id":91,"title":92},"mcp-or-cli","Sollten Coding-Agenten Playwright MCP oder das CLI nutzen?",{"id":94,"title":95},"accessibility-is-the-contract","Warum ist barrierefreies Markup der Vertrag für Agenten und Tests?",{"id":97,"title":98},"healer-guardrails","Wie hält man selbstheilende Tests ehrlich?",{"id":100,"title":101},"runtime-agents","Wann ergibt ein Browser-Agent zur Laufzeit trotzdem Sinn?",{"id":103,"title":104},"setup-checklist","Wie sieht ein praktisches Setup aus?",{"id":106,"title":107},"sources","Quellen",[109,113,116,119,158,161,162,175,184,211,213,214,220,234,235,250,258,259,262,281,283,296,297,320,323,324,344,352,353],{"type":110,"content":111},"paragraph",[112],"Browser-Agenten können heute eine App öffnen, die Seite lesen, sich durch einen Checkout klicken und sagen, ob es funktioniert hat. Es ist verlockend, daraus die Testsuite zu machen: Abläufe in normaler Sprache beschreiben und ein Modell sie bei jedem Pull Request prüfen lassen. Ich halte das für den falschen Platz für das Modell. Die bessere Aufteilung: Agenten übernehmen die teure menschliche Arbeit, die App erkunden, Tests schreiben und kaputte Locators reparieren, und die CI führt normale Playwright-Tests aus, die jedes Mal dieselbe Antwort geben.",{"type":110,"content":114},[115],"Dieser Artikel vergleicht die drei Arten, wie Agenten und E2E-Tests zusammenkommen, geht Playwrights eigene Test-Agenten durch, behandelt MCP gegenüber CLI für Coding-Agenten und legt die Leitplanken fest, die ich nutze, damit ein selbstheilender Test keinen echten Bug still wegheilen kann.",{"type":117,"level":118,"id":85,"text":86},"heading",2,{"type":120,"head":121,"rows":130},"table",[122,124,126,128],[123],"Ansatz",[125],"Was der Agent tut",[127],"Läuft in der CI?",[129],"Hauptrisiko",[131,140,149],[132,134,136,138],[133],"Agent schreibt Tests",[135],"Erkundet die App, schreibt Plan und Playwright-Testdateien",[137],"Nein, die Tests",[139],"Tests, die das Falsche prüfen",[141,143,145,147],[142],"Agent repariert Tests",[144],"Führt fehlschlagende Tests aus, untersucht die UI, passt Locators und Wartezeiten an",[146],"Optional, als eigener Job",[148],"Eine echte Regression wegheilen",[150,152,154,156],[151],"Agent ist der Test",[153],"Folgt Schritten in natürlicher Sprache im Live-Browser und bewertet das Ergebnis",[155],"Ja",[157],"Langsam, teuer, nicht deterministische Urteile",{"type":110,"content":159},[160],"Ein Test ist nützlich, weil er ein festes Orakel ist: derselbe Code, dieselben Daten und dieselbe Assertion ergeben dasselbe Ergebnis. Ein Modell, das einen Screenshot bewertet, ist eine zweite Meinung, kein Orakel. Für die Erkundung ist das wertvoll, aber ein roter Build sollte bedeuten, dass sich das Produkt geändert hat, nicht die Meinung des Modells.",{"type":117,"level":118,"id":88,"text":89},{"type":110,"content":163},[164,165,169,170,174],"Playwright liefert drei ",{"tag":166,"href":37,"children":167},"a",[168],"Test-Agenten"," als Agentendefinitionen, die man mit ",{"tag":171,"children":172},"code",[173],"npx playwright init-agents"," ins Repository holt, mit Varianten für VS Code, Claude Code, Codex und OpenCode. Laut Dokumentation sollte man sie nach jedem Playwright-Update neu erzeugen, damit sie neue Tools und Anweisungen bekommen.",{"type":176,"attrs":177,"inner":181,"caption":182},"diagram",{"viewBox":178,"role":179,"aria-labelledby":180},"0 0 720 170","img","pwa1-t pwa1-d","\u003Ctitle id=\"pwa1-t\">Playwright-Test-Agenten\u003C\u002Ftitle>\u003Cdesc id=\"pwa1-d\">Ein Seed-Test bereitet die Umgebung vor. Der Planner erkundet die App und schreibt einen Markdown-Plan in specs. Der Generator macht daraus Testdateien in tests und prüft Selektoren live. Die CI führt die Tests aus. Schlägt ein Test fehl, spielt der Healer ihn nach und schlägt einen Patch vor, der ins Review geht.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"pwa1-ah\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\">\u003Cpath d=\"M0 0L10 5L0 10z\" class=\"d-head\" \u002F>\u003C\u002Fmarker>\u003C\u002Fdefs>\u003Crect x=\"20\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"79\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Seed-Test\u003C\u002Ftext>\u003Ctext x=\"79\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">Fixtures, Login\u003C\u002Ftext>\u003Cpath d=\"M138 85H158\" class=\"d-line\" marker-end=\"url(#pwa1-ah)\" \u002F>\u003Crect x=\"160\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"220\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Planner\u003C\u002Ftext>\u003Ctext x=\"220\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">specs\u002F*.md\u003C\u002Ftext>\u003Cpath d=\"M279 85H299\" class=\"d-line\" marker-end=\"url(#pwa1-ah)\" \u002F>\u003Crect x=\"301\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"360\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Generator\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">tests\u002F*.spec.ts\u003C\u002Ftext>\u003Cpath d=\"M419 85H439\" class=\"d-line\" marker-end=\"url(#pwa1-ah)\" \u002F>\u003Crect x=\"441\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"500\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">CI\u003C\u002Ftext>\u003Ctext x=\"500\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">reines Playwright\u003C\u002Ftext>\u003Cpath d=\"M560 85H580\" class=\"d-line\" marker-end=\"url(#pwa1-ah)\" \u002F>\u003Crect x=\"582\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"641\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Healer\u003C\u002Ftext>\u003Ctext x=\"641\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">Patch → Review\u003C\u002Ftext>",[183],"Jede Ausgabe eines Agenten ist eine Datei im Repository: Pläne, Tests und Patches gehen durch das normale Code-Review.",{"type":185,"items":186},"list",[187,197,206],[188,192,193,196],{"tag":189,"children":190},"strong",[191],"Planner:"," bekommt eine Anfrage wie „Plane den Gast-Checkout“, einen Seed-Test, der Fixtures und Login vorbereitet, und optional ein Anforderungsdokument. Er führt den Seed-Test aus, erkundet die App und schreibt einen Markdown-Plan nach ",{"tag":171,"children":194},[195],"specs\u002F",".",[198,201,202,205],{"tag":189,"children":199},[200],"Generator:"," macht aus dem Plan Playwright-Tests unter ",{"tag":171,"children":203},[204],"tests\u002F"," und prüft Selektoren und Assertions live, während er die Szenarien durchspielt. Laut Dokumentation können generierte Tests anfangs Fehler enthalten.",[207,210],{"tag":189,"children":208},[209],"Healer:"," Bei einem fehlschlagenden Test spielt er die Schritte nach, sucht in der aktuellen UI gleichwertige Elemente, schlägt einen Patch vor, etwa einen neuen Locator, eine angepasste Wartezeit oder korrigierte Daten, und wiederholt, bis der Test besteht oder Leitplanken ihn stoppen. Das Ergebnis ist ein bestandener Test oder ein übersprungener, wenn er die Funktion für kaputt hält.",{"type":171,"code":212},"# Add the agent definitions for your coding agent (regenerate after Playwright upgrades)\nnpx playwright init-agents --loop=claude\n\n# tests\u002Fseed.spec.ts: everything the agents need to reach a logged-in state\nimport { test, expect } from '.\u002Ffixtures'\ntest('seed', async ({ page }) => {\n  await page.goto('\u002F')\n  await expect(page.getByRole('navigation')).toBeVisible()\n})\n",{"type":117,"level":118,"id":91,"text":92},{"type":110,"content":215},[216,219],{"tag":166,"href":40,"children":217},[218],"Playwright MCP"," lässt ein Modell einen Browser über strukturierte Accessibility-Snapshots statt Screenshots steuern, braucht also kein Vision-Modell und vermeidet die Mehrdeutigkeit von Klicks auf Pixel. Die eigene README zieht inzwischen aber eine Grenze: Für Coding-Agenten empfiehlt sie das Playwright-CLI mit Skills, weil CLI-Aufrufe keine großen Tool-Schemata und ausführlichen Accessibility-Bäume in den Kontext laden. MCP bleibt die bessere Wahl für Schleifen, die von einer dauerhaften Browser-Sitzung profitieren, etwa explorative Automatisierung und selbstheilende Tests.",{"type":110,"content":221},[222,223,228,229,233],"Das entspricht dem allgemeinen Abwägen in ",{"tag":224,"to":225,"children":226},"link","\u002Fblog\u002Fagents-md-skills-mcp-cli-decision-matrix",[227],"AGENTS.md, Skills, MCP oder CLI",": Jedes dauerhaft geladene Tool-Schema und jeder Seiten-Snapshot kostet in jeder Runde Kontext. Braucht eine Testsitzung nur wenige Seitenabrufe, ist das CLI günstiger; die Techniken aus ",{"tag":224,"to":230,"children":231},"\u002Fblog\u002Ftoken-saving-tools-coding-agents-top-20",[232],"Coding-Agent-Tokens sparen"," gelten auch hier.",{"type":117,"level":118,"id":94,"text":95},{"type":110,"content":236},[237,238,241,242,245,246,249],"Playwrights ",{"tag":166,"href":43,"children":239},[240],"Best Practices"," empfehlen nutzerseitige Locators wie ",{"tag":171,"children":243},[244],"getByRole('button', { name: 'Submit' })"," statt CSS-Klassen und XPath, weil sich die DOM-Struktur öfter ändert als das, was Nutzer sehen. Playwright MCP liest denselben Accessibility-Baum. Die Arbeit, die eine Website mit Screenreader benutzbar macht, erleichtert also auch Agenten die Erkundung und erzeugt Tests, die Redesigns überstehen. Ein Button, der ein gestyltes ",{"tag":171,"children":247},[248],"div"," ohne Rolle ist, ist für alle drei unsichtbar.",{"type":110,"content":251},[252,253,257],"Für Shops in der EU ist das ohnehin keine Kür; siehe ",{"tag":224,"to":254,"children":255},"\u002Fblog\u002Feuropean-accessibility-act-b2b-shop",[256],"European Accessibility Act für B2B-Shops",". Rollen und Labels zu korrigieren zahlt gleichzeitig auf Compliance, Agenten und Teststabilität ein.",{"type":117,"level":118,"id":97,"text":98},{"type":110,"content":260},[261],"In der Aufgabenbeschreibung des Healers steckt das Risiko: Er wiederholt, bis der Test besteht, und hält er das Feature für kaputt, markiert er den Test als übersprungen. Beides ist in Ordnung, wenn ein Button umbenannt wurde. Beides ist schlecht, wenn der Button wegen eines echten Bugs verschwunden ist. Meine Regel ist einfach: Der Healer darf ändern, wie ein Test Dinge findet, nie, was ein Test prüft.",{"type":263,"variant":264,"title":265,"body":266},"callout","warn","Ein geheilter Test, der nicht mehr scheitert, ist kein reparierter Test",[267],[268,269,272,273,276,277,280],"Jeden Healer-Patch, der eine ",{"tag":171,"children":270},[271],"expect(...)","-Zeile berührt, einen Schritt entfernt oder ",{"tag":171,"children":274},[275],"test.skip"," bzw. ",{"tag":171,"children":278},[279],"test.fixme"," hinzufügt, als möglichen Produktfehler behandeln. An einen Menschen weiterleiten, mit dem Trace des Fehlschlags.",{"type":171,"code":282},"#!\u002Fusr\u002Fbin\u002Fenv bash\n# CI gate for agent-made test changes: locator and wait edits pass, assertion edits need review\nset -euo pipefail\nchanged=$(git diff --unified=0 origin\u002Fmain -- 'tests\u002F**\u002F*.spec.ts' | grep -E '^[-+][^-+]' || true)\nif echo \"$changed\" | grep -Eq 'expect\\(|test\\.(skip|fixme)\\(|\\.toHave|\\.toBe'; then\n  echo \"Assertions or skips changed in tests\u002F: needs a human reviewer (label: test-assertions)\"\n  exit 1\nfi\n",{"type":110,"content":284},[285,286,290,291,295],"Dasselbe gilt für Tests, die ein Agent für einen Bugfix schreibt. Ein Regressionstest ist nur etwas wert, wenn er scheitert, sobald der Fix zurückgenommen wird; das prüfe ich in jedem Bugfix-PR, wie in ",{"tag":224,"to":287,"children":288},"\u002Fblog\u002Fagent-loop-explained",[289],"der Agentenschleife"," und meinem ",{"tag":224,"to":292,"children":293},"\u002Fblog\u002Fcoding-agent-skills-workflow",[294],"Workflow vom Bug zum PR"," beschrieben.",{"type":117,"level":118,"id":100,"text":101},{"type":110,"content":298},[299,300,303,304,307,308,311,312,315,316,196],"Es gibt Fälle, in denen feste Selektoren das falsche Werkzeug sind. Exploratives Testen vor einem Release, bei dem ein Agent ungewöhnliche Wege ausprobiert und meldet, was falsch aussah. Smoke-Checks auf Seiten Dritter, die man nicht kontrolliert, etwa die Weiterleitung eines Zahlungsanbieters. Interne Backoffice-Abläufe, die sich wöchentlich ändern. Dafür kombinieren Bibliotheken wie ",{"tag":166,"href":49,"children":301},[302],"Stagehand"," Aufrufe in natürlicher Sprache wie ",{"tag":171,"children":305},[306],"act",", ",{"tag":171,"children":309},[310],"extract"," und ",{"tag":171,"children":313},[314],"observe"," mit Seiten- und Locator-APIs im Playwright-Stil, sodass ein Skript größtenteils deterministisch mit wenigen flexiblen Schritten sein kann. Genauer vergleiche ich das im ",{"tag":224,"to":317,"children":318},"\u002Ftools\u002Fbrowserbase-stagehand",[319],"Stagehand-Test",{"type":110,"content":321},[322],"Diese Läufe aus dem Merge-Gate heraushalten. Ihre Funde als Issues oder neue deterministische Tests melden und die Entscheidung über Bestehen oder Scheitern bei Code lassen, den man lesen kann.",{"type":117,"level":118,"id":103,"text":104},{"type":185,"ordered":325,"items":326},true,[327,329,334,336,342],[328],"Ein Seed-Test mit Fixtures für Login und Testdaten, damit Agenten von einem bekannten Zustand aus starten.",[330,331,333],"Pläne in ",{"tag":171,"children":332},[195]," wie Anforderungen reviewen: Ein falscher Plan erzeugt korrekt aussehende Tests für falsches Verhalten.",[335],"Generierte Tests nutzen nur rollenbasierte Locators; CSS-Selektoren scheitern am Lint.",[337,338,341],"Die CI führt reines ",{"tag":171,"children":339},[340],"npx playwright test"," mit Traces bei Fehlern aus; kein Modell im Merge-Gate.",[343],"Der Healer läuft als eigener Job, der einen PR öffnet; Assertion-Änderungen und Skips werden fürs Review blockiert.",{"type":110,"content":345},[346,347,351],"Das ist ",{"tag":224,"to":348,"children":349},"\u002Fblog\u002Fharness-engineering-coding-agents",[350],"Harness Engineering",", angewandt aufs Testen: Der Agent bekommt Guides (Seed-Test, Pläne, Locator-Regeln) und Sensoren (Testlauf, Assertion-Gate), und das menschliche Review sitzt dort, wo die Entscheidungen fallen, nicht auf jeder Zeile.",{"type":117,"level":118,"id":106,"text":107},{"type":185,"ordered":325,"items":354},[355,358,361,364,367],[356],{"tag":166,"href":37,"children":357},[36],[359],{"tag":166,"href":40,"children":360},[39],[362],{"tag":166,"href":43,"children":363},[42],[365],{"tag":166,"href":46,"children":366},[45],[368],{"tag":166,"href":49,"children":369},[48],[371,442,501,585],{"slug":372,"published":5,"minutes":373,"category":7,"tags":374,"keywords":380,"about":392,"sources":402,"cover":436,"og":437,"expertise":52,"locales":438,"lang":55,"title":439,"description":440,"coverAlt":441},"context-rot-compaction-long-running-agents",10,[375,376,377,378,379],"Context rot","Compaction","Context engineering","Long-running agents","Agent memory",[381,382,383,384,385,386,387,388,389,390,391],"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",[393,396,399],{"name":394,"url":395},"Context window","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model#Context_window",{"name":397,"url":398},"Attention (machine learning)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAttention_(machine_learning)",{"name":400,"url":401},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",[403,406,409,412,415,418,421,424,427,430,433],{"title":404,"url":405},"Chroma: Context Rot: How Increasing Input Tokens Impacts LLM Performance (Jul 2025)","https:\u002F\u002Fresearch.trychroma.com\u002Fcontext-rot",{"title":407,"url":408},"Liu et al.: Lost in the Middle: How Language Models Use Long Contexts (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.03172",{"title":410,"url":411},"Modarressi et al.: NoLiMa: Long-Context Evaluation Beyond Literal Matching (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.05167",{"title":413,"url":414},"Anthropic: Effective context engineering for AI agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"title":416,"url":417},"Anthropic: Effective harnesses for long-running agents (Nov 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"title":419,"url":420},"Claude API docs: Compaction at a token threshold","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-threshold",{"title":422,"url":423},"Claude API docs: Compaction on demand","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-on-demand",{"title":425,"url":426},"Claude API docs: Context editing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcontext-editing",{"title":428,"url":429},"Claude API docs: Memory tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fmemory-tool",{"title":431,"url":432},"OpenAI API docs: Compaction","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fcompaction",{"title":434,"url":435},"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",[54,55,56],"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.",{"slug":443,"published":5,"minutes":444,"category":7,"tags":445,"keywords":450,"about":462,"sources":470,"cover":495,"og":496,"expertise":52,"locales":497,"lang":55,"title":498,"description":499,"coverAlt":500},"a2a-protocol-agent-interoperability",12,[446,447,12,448,449],"A2A","AI agents","Interoperability","Agent security",[451,452,453,454,455,456,457,458,459,460,461],"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",[463,466,467],{"name":464,"url":465},"Agent2Agent protocol","https:\u002F\u002Fa2a-protocol.org\u002F",{"name":32,"url":33},{"name":468,"url":469},"Linux Foundation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLinux_Foundation",[471,474,477,480,483,486,489,492],{"title":472,"url":473},"A2A Protocol Specification (latest, v1.0)","https:\u002F\u002Fa2a-protocol.org\u002Flatest\u002Fspecification\u002F",{"title":475,"url":476},"A2A: a2a.proto, the normative data model (GitHub)","https:\u002F\u002Fgithub.com\u002Fa2aproject\u002FA2A\u002Fblob\u002Fmain\u002Fspecification\u002Fa2a.proto",{"title":478,"url":479},"A2A docs: A2A and MCP","https:\u002F\u002Fa2a-protocol.org\u002Flatest\u002Ftopics\u002Fa2a-and-mcp\u002F",{"title":481,"url":482},"A2A docs: Agent discovery","https:\u002F\u002Fa2a-protocol.org\u002Flatest\u002Ftopics\u002Fagent-discovery\u002F",{"title":484,"url":485},"Google Developers Blog: Announcing the Agent2Agent Protocol (Apr 2025)","https:\u002F\u002Fdevelopers.googleblog.com\u002Fen\u002Fa2a-a-new-era-of-agent-interoperability\u002F",{"title":487,"url":488},"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":490,"url":491},"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":493,"url":494},"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",[54,55,56],"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":502,"published":503,"minutes":504,"category":7,"tags":505,"keywords":511,"about":520,"sources":530,"cover":579,"og":580,"expertise":52,"locales":581,"lang":55,"title":582,"description":583,"coverAlt":584},"ai-assisted-development-economics","2026-10-01",11,[506,507,508,509,510],"AI coding agents","Developer productivity","Engineering economics","Team cost","GDPR",[512,513,514,515,516,517,518,519],"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",[521,524,527],{"name":522,"url":523},"General Data Protection Regulation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGeneral_Data_Protection_Regulation",{"name":525,"url":526},"Randomized controlled trial","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRandomized_controlled_trial",{"name":528,"url":529},"Bus factor","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBus_factor",[531,534,537,540,543,546,549,552,555,558,561,564,567,570,573,576],{"title":532,"url":533},"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":535,"url":536},"Becker et al.: arXiv 2507.09089","https:\u002F\u002Farxiv.org\u002Fabs\u002F2507.09089",{"title":538,"url":539},"METR: developer productivity experiment design, February 2026","https:\u002F\u002Fmetr.org\u002Fblog\u002F2026-02-24-uplift-update\u002F",{"title":541,"url":542},"Peng et al.: GitHub Copilot controlled experiment, arXiv 2302.06590","https:\u002F\u002Farxiv.org\u002Fhtml\u002F2302.06590v1",{"title":544,"url":545},"Cui et al.: three field experiments with software developers","https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002F?p=1148213",{"title":547,"url":548},"DORA: State of AI-assisted Software Development 2025","https:\u002F\u002Fresearch.google\u002Fpubs\u002Fdora-2025-state-of-ai-assisted-software-development-report\u002F",{"title":550,"url":551},"Google Cloud: highlights from the 2024 DORA report","https:\u002F\u002Fcloud.google.com\u002Fblog\u002Fproducts\u002Fdevops-sre\u002Fannouncing-the-2024-dora-report",{"title":553,"url":554},"Stack Overflow: Developer Survey 2025, AI","https:\u002F\u002Fsurvey.stackoverflow.co\u002F2025\u002Fai",{"title":556,"url":557},"Ziftci et al.: Migrating Code At Scale With LLMs At Google","https:\u002F\u002Farxiv.org\u002Fabs\u002F2504.09691",{"title":559,"url":560},"Alshahwan et al.: Automated Unit Test Improvement using Large Language Models at Meta","https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.09171",{"title":562,"url":563},"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":565,"url":566},"GDPR, Regulation (EU) 2016\u002F679, Article 28","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2016\u002F679\u002Foj\u002Feng",{"title":568,"url":569},"Anthropic: Commercial Terms of Service","https:\u002F\u002Fwww.anthropic.com\u002Flegal\u002Fcommercial-terms",{"title":571,"url":572},"Claude: pricing","https:\u002F\u002Fclaude.com\u002Fpricing",{"title":574,"url":575},"Claude Platform: data residency","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fdata-residency",{"title":577,"url":578},"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",[54,55,56],"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":586,"published":587,"minutes":504,"category":7,"tags":588,"keywords":593,"about":602,"sources":614,"cover":655,"og":656,"expertise":52,"locales":657,"lang":55,"title":658,"description":659,"coverAlt":660},"spec-driven-development-coding-agents","2026-09-30",[589,11,590,591,592],"Spec-driven development","Acceptance criteria","Plan mode","AI engineering",[594,595,596,597,598,599,600,601],"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",[603,606,608,611],{"name":604,"url":605},"Vibe coding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVibe_coding",{"name":598,"url":607},"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fspec-kit",{"name":609,"url":610},"EARS (Easy Approach to Requirements Syntax)","https:\u002F\u002Falistairmavin.com\u002Fears\u002F",{"name":612,"url":613},"Kiro","https:\u002F\u002Fkiro.dev",[615,618,620,623,626,629,631,634,637,640,642,644,647,649,652],{"title":616,"url":617},"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":619,"url":607},"GitHub Spec Kit: README",{"title":621,"url":622},"GitHub Spec Kit: spec-driven.md methodology","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fspec-kit\u002Fblob\u002Fmain\u002Fspec-driven.md",{"title":624,"url":625},"Kiro documentation: specs","https:\u002F\u002Fkiro.dev\u002Fdocs\u002Fspecs\u002F",{"title":627,"url":628},"Kiro: Introducing Kiro","https:\u002F\u002Fkiro.dev\u002Fblog\u002Fintroducing-kiro\u002F",{"title":630,"url":610},"Alistair Mavin: EARS, the Easy Approach to Requirements Syntax",{"title":632,"url":633},"Anthropic: Best practices for Claude Code","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fbest-practices",{"title":635,"url":636},"Cline documentation: Plan and Act","https:\u002F\u002Fdocs.cline.bot\u002Ffeatures\u002Fplan-and-act",{"title":638,"url":639},"OpenAI: Codex slash command reference","https:\u002F\u002Flearn.chatgpt.com\u002Fdocs\u002Freference\u002Fslash-commands",{"title":641,"url":533},"METR: early-2025 AI and experienced open-source developer productivity (July 2025)",{"title":643,"url":539},"METR: We are changing our developer productivity experiment design (February 2026)",{"title":645,"url":646},"Thoughtworks Technology Radar: Spec-driven development","https:\u002F\u002Fwww.thoughtworks.com\u002Fradar\u002Ftechniques\u002Fspec-driven-development",{"title":648,"url":605},"Wikipedia: Vibe coding",{"title":650,"url":651},"Anthropic: Claude API pricing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fabout-claude\u002Fpricing",{"title":653,"url":654},"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",[54,55,56],"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.",1792177149369]