[{"data":1,"prerenderedAt":914},["ShallowReactive",2],{"blog-a2a-protocol-agent-interoperability-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":26,"sources":36,"cover":61,"og":62,"expertise":63,"locales":64,"lang":67,"title":68,"description":69,"coverAlt":70,"metaTitle":71,"takeaways":72,"faq":78,"toc":94,"blocks":124,"others":634},"a2a-protocol-agent-interoperability","2026-10-16",12,"agents",[9,10,11,12,13],"A2A","AI agents","MCP","Interoperability","Agent security",[15,16,17,18,19,20,21,22,23,24,25],"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",[27,30,33],{"name":28,"url":29},"Agent2Agent protocol","https:\u002F\u002Fa2a-protocol.org\u002F",{"name":31,"url":32},"Model Context Protocol","https:\u002F\u002Fmodelcontextprotocol.io\u002F",{"name":34,"url":35},"Linux Foundation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLinux_Foundation",[37,40,43,46,49,52,55,58],{"title":38,"url":39},"A2A Protocol Specification (latest, v1.0)","https:\u002F\u002Fa2a-protocol.org\u002Flatest\u002Fspecification\u002F",{"title":41,"url":42},"A2A: a2a.proto, the normative data model (GitHub)","https:\u002F\u002Fgithub.com\u002Fa2aproject\u002FA2A\u002Fblob\u002Fmain\u002Fspecification\u002Fa2a.proto",{"title":44,"url":45},"A2A docs: A2A and MCP","https:\u002F\u002Fa2a-protocol.org\u002Flatest\u002Ftopics\u002Fa2a-and-mcp\u002F",{"title":47,"url":48},"A2A docs: Agent discovery","https:\u002F\u002Fa2a-protocol.org\u002Flatest\u002Ftopics\u002Fagent-discovery\u002F",{"title":50,"url":51},"Google Developers Blog: Announcing the Agent2Agent Protocol (Apr 2025)","https:\u002F\u002Fdevelopers.googleblog.com\u002Fen\u002Fa2a-a-new-era-of-agent-interoperability\u002F",{"title":53,"url":54},"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":56,"url":57},"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":59,"url":60},"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","ai-engineer",[65,66,67],"en","de","hu","Az A2A protokoll: agent cardok, taskok, és a helye az MCP mellett","Mit szabványosít az Agent2Agent protokoll 1.0-s verziója: agent card, task, bindingek, biztonság, eltérés az MCP-től, és mikor éri meg használni.","Két, különböző szervezethez tartozó AI-ágens A2A-n cserél taskokat, mindkettő MCP-n kapcsolódik a saját eszközeihez, az agent card egy well-known URL-en érhető el.","Az A2A protokoll: agent card, task és MCP · Balázs Csorba",[73,74,75,76,77],"Az A2A az ágenseket köti össze egymással; az MCP egy ágenst köt az eszközeihez. A legtöbb valós rendszer, amelynek A2A kell, MCP-t is használ.","A \u002F.well-known\u002Fagent-card.json címen közzétett agent card leírja az identitást, az interfészeket, a skilleket és a hívótól elvárt biztonsági sémákat.","A munka egy task, szerver által adott azonosítóval és állapotgéppel, így a hosszan futó és többkörös feladatok beépítettek, nem utólag ráragasztottak.","Az 1.0 az első stabil specifikáció, JSON-RPC, gRPC és HTTP+JSON bindinggel, valamint opcionálisan aláírt agent cardokkal.","Egy távoli ágens nem megbízható bemenet: minden műveletet autorizálj, ellenőrizd a webhook-URL-eket, és az érzékeny műveleteket csatornán kívül erősítsd meg.",[79,82,85,88,91],{"q":80,"a":81},"Mi az A2A protokoll?","Az Agent2Agent (A2A) nyílt protokoll, amellyel különböző csapatok vagy szállítók AI-ágensei megtalálják egymást, üzeneteket cserélnek és taskokat adnak át. A Google 2025 áprilisában jelentette be, és 2025 júniusában átadta a Linux Foundationnek; az 1.0 az első stabil specifikáció.",{"q":83,"a":84},"Mi a különbség az A2A és az MCP között?","Az MCP azt szabványosítja, hogyan használ egy ágens eszközöket és erőforrásokat, jellemzően jól definiált függvényeket. Az A2A azt, hogyan működnek együtt független, gyakran átláthatatlan ágensek egyenrangú félként olyan taskokon, amelyek állapotot tartanak, többkörösek és hosszan futnak. Az A2A dokumentációja kiegészítőnek nevezi őket: az A2A az ágenseket köti össze, az MCP minden ágenst a saját eszközeihez.",{"q":86,"a":87},"Hol tesszük közzé az A2A agent cardot?","A specifikáció egy well-known URI-t határoz meg: https:\u002F\u002F{server_domain}\u002F.well-known\u002Fagent-card.json, amelyet egyszerű HTTP GET-tel kérnek le. Az ágensek kurált registryken keresztül is megtalálhatók, vagy közvetlenül konfigurálhatók. A részletesebb kártyát a kiterjesztett agent card művelettel csak hitelesített hívók kaphatják meg.",{"q":89,"a":90},"Biztonságos az A2A?","A protokoll megadja a kapaszkodókat: biztonsági sémák az agent cardban (API-kulcs, HTTP-auth, OAuth 2.0, OpenID Connect, kölcsönös TLS), kötelező autorizáció minden műveletnél és opcionálisan aláírt kártyák. Hogy egy telepítés biztonságos-e, azon múlik, megvalósítod-e ezeket, és nem megbízható bemenetként kezeled-e a távoli ágensek üzeneteit.",{"q":92,"a":93},"Kell A2A egy alkalmazáson belüli többágenses rendszerhez?","Általában nem. Ha minden ágens a tiéd, és egy kódbázisban futnak, egyszerűbbek az al-ágensek vagy a függvényhívások. Az A2A a határokon térül meg: csapatok, szolgáltatások vagy cégek között, ahol az ágenseket egymástól függetlenül telepítik és verziózzák.",[95,97,100,103,106,109,112,115,118,121],{"id":96,"title":80},"what-is-a2a",{"id":98,"title":99},"a2a-vs-mcp","Hogyan viszonyul az A2A az MCP-hez?",{"id":101,"title":102},"agent-cards","Mi van egy agent cardban?",{"id":104,"title":105},"tasks-and-messages","Hogyan működnek a taskok, az üzenetek és az artefaktumok?",{"id":107,"title":108},"bindings-and-updates","Milyen átviteli módok és frissítési módok vannak?",{"id":110,"title":111},"security","Mit jelent a biztonság A2A-nál?",{"id":113,"title":114},"trust-between-agents","Miért nem megbízható bemenet egy távoli ágens?",{"id":116,"title":117},"when-to-use-a2a","Mikor használd az A2A-t, és mikor ne?",{"id":119,"title":120},"getting-started","Hogyan kezdj bele az A2A-ba?",{"id":122,"title":123},"sources","Források",[125,129,132,135,147,163,164,171,180,216,225,226,249,251,274,285,292,293,340,347,366,367,370,447,464,466,469,470,482,485,508,509,519,530,531,534,565,578,579,607,608],{"type":126,"content":127},"paragraph",[128],"Az ágenseszközök eddig többnyire egy ágensről és az eszközeiről szóltak. A következő probléma akkor jelenik meg, amikor két, különböző csapat által épített ágensnek együtt kell dolgoznia: a webshopod beszerzési ágense meg akarja kérdezni egy beszállító készletágensét, vagy egy belső support-ágens átad egy ügyet a logisztikai csapat ágensének. Mindkét oldalnak saját keretrendszere, modellje és telepítése van. Közös protokoll nélkül minden ilyen párosítás egyedi integráció.",{"type":126,"content":130},[131],"Az Agent2Agent (A2A) erre a problémára született nyílt protokoll. Ez a cikk elmagyarázza, mit szabványosít ténylegesen a specifikáció 1.0-s verziója – agent cardokat, taskokat, üzeneteket, átviteli módokat és biztonságot –, hogyan viszonyul az MCP-hez, milyen bizalmi problémákat nem old meg helyetted, és mikor használnám.",{"type":133,"level":134,"id":96,"text":80},"heading",2,{"type":126,"content":136},[137,138,142,143,146],"A Google 2025. április 9-én ",{"tag":139,"href":51,"children":140},"a",[141],"jelentette be az A2A-t"," több mint 50 technológiai partnerrel, meglévő szabványokra, köztük a HTTP-re, az SSE-re és a JSON-RPC-re építve. Öt tervezési elve: az ágensképességek felvállalása, építkezés meglévő szabványokra, alapértelmezett biztonság, hosszan futó taskok támogatása és modalitásfüggetlenség. 2025. június 23-án a ",{"tag":139,"href":54,"children":144},[145],"Linux Foundation elindította az Agent2Agent projektet"," az Open Source Summit North America konferencián, több mint 100 cég támogatásával, így az irányítás kikerült egyetlen szállító kezéből.",{"type":126,"content":148},[149,150,153,154,158,159,162],"A ",{"tag":139,"href":39,"children":151},[152],"jelenlegi specifikáció"," az 1.0.0-s verzió, a 0.1.0, a 0.2.6 és a 0.3.0 után. A kompatibilitást a fő- és alverzió jelzi, a kliensek ",{"tag":155,"children":156},"code",[157],"A2A-Version"," fejlécet küldenek. A 2026. április 9-i ",{"tag":139,"href":57,"children":160},[161],"egyéves összefoglalójában"," a Linux Foundation az 1.0-t az első stabil specifikációnak nevezte, és több mint 150 támogató szervezetről, öt nyelven (Python, JavaScript, Java, Go és .NET) elérhető SDK-król, valamint az Azure AI Foundry, a Copilot Studio és az Amazon Bedrock AgentCore Runtime támogatásáról számolt be.",{"type":133,"level":134,"id":98,"text":99},{"type":126,"content":165},[166,167,170],"Az ",{"tag":139,"href":45,"children":168},[169],"A2A dokumentációja"," a kettőt egymást kiegészítő rétegként írja le. Az MCP vertikális: egy ágensnek strukturált hozzáférést ad eszközökhöz és erőforrásokhoz, amelyek jellemzően jól definiáltak és gyakran állapotmentesek. Az A2A horizontális: független, gyakran átláthatatlan ágensek egyenrangúként működnek együtt, mindkét oldalon reasoninggel, állapottal és többkörös párbeszéddel. A dokumentáció szavaival: „A2A connects the agents to each other; MCP connects each agent to its own tools.”",{"type":172,"attrs":173,"inner":177,"caption":178},"diagram",{"viewBox":174,"role":175,"aria-labelledby":176},"0 0 720 290","img","a2a1-t a2a1-d","\u003Ctitle id=\"a2a1-t\">A2A az ágensek között, MCP az eszközökhöz\u003C\u002Ftitle>\u003Cdesc id=\"a2a1-d\">Az alkalmazásodban futó kliens ágens A2A-n beszél egy másik csapat vagy szállító távoli ágensével, taskokat és üzeneteket cserélve. Mindkét ágens MCP-n használja a saját eszközeit. A távoli ágens egy well-known URL-en teszi közzé az agent cardját.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"a2a1-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-accent\" \u002F>\u003C\u002Fmarker>\u003C\u002Fdefs>\u003Crect x=\"30\" y=\"30\" width=\"250\" height=\"84\" rx=\"12\" class=\"d-box\" \u002F>\u003Ctext x=\"155\" y=\"66\" text-anchor=\"middle\" class=\"d-title\">Kliens ágens\u003C\u002Ftext>\u003Ctext x=\"155\" y=\"90\" text-anchor=\"middle\" class=\"d-small\">a te alkalmazásod\u003C\u002Ftext>\u003Crect x=\"440\" y=\"30\" width=\"250\" height=\"84\" rx=\"12\" class=\"d-accent\" \u002F>\u003Ctext x=\"565\" y=\"66\" text-anchor=\"middle\" class=\"d-title\">Távoli ágens\u003C\u002Ftext>\u003Ctext x=\"565\" y=\"90\" text-anchor=\"middle\" class=\"d-small\">más csapat, szállító\u003C\u002Ftext>\u003Cpath d=\"M284 64H436\" class=\"d-line-accent\" marker-end=\"url(#a2a1-ah)\" \u002F>\u003Cpath d=\"M436 82H284\" class=\"d-line-accent\" marker-end=\"url(#a2a1-ah)\" \u002F>\u003Ctext x=\"360\" y=\"54\" text-anchor=\"middle\" class=\"d-label\">A2A: taskok, üzenetek\u003C\u002Ftext>\u003Cpath d=\"M90 114V186\" class=\"d-dash\" \u002F>\u003Crect x=\"30\" y=\"186\" width=\"120\" height=\"50\" rx=\"8\" class=\"d-mint\" \u002F>\u003Ctext x=\"90\" y=\"216\" text-anchor=\"middle\" class=\"d-text\">CRM-eszközök\u003C\u002Ftext>\u003Cpath d=\"M220 114V186\" class=\"d-dash\" \u002F>\u003Crect x=\"160\" y=\"186\" width=\"120\" height=\"50\" rx=\"8\" class=\"d-mint\" \u002F>\u003Ctext x=\"220\" y=\"216\" text-anchor=\"middle\" class=\"d-text\">Doksikeresés\u003C\u002Ftext>\u003Cpath d=\"M500 114V186\" class=\"d-dash\" \u002F>\u003Crect x=\"440\" y=\"186\" width=\"120\" height=\"50\" rx=\"8\" class=\"d-gold\" \u002F>\u003Ctext x=\"500\" y=\"216\" text-anchor=\"middle\" class=\"d-text\">Készlet-DB\u003C\u002Ftext>\u003Cpath d=\"M630 114V186\" class=\"d-dash\" \u002F>\u003Crect x=\"570\" y=\"186\" width=\"120\" height=\"50\" rx=\"8\" class=\"d-gold\" \u002F>\u003Ctext x=\"630\" y=\"216\" text-anchor=\"middle\" class=\"d-text\">ERP API\u003C\u002Ftext>\u003Ctext x=\"155\" y=\"160\" text-anchor=\"middle\" class=\"d-label\">MCP\u003C\u002Ftext>\u003Ctext x=\"565\" y=\"160\" text-anchor=\"middle\" class=\"d-label\">MCP\u003C\u002Ftext>\u003Ctext x=\"565\" y=\"268\" text-anchor=\"middle\" class=\"d-small\">Agent card: \u002F.well-known\u002Fagent-card.json\u003C\u002Ftext>",[179],"A kliens ágens soha nem látja a távoli ágens eszközeit, promptjait vagy modelljét; csak egy agent cardot és a taskok eredményeit.",{"type":181,"head":182,"rows":187},"table",[183,185,186],[184],"Kérdés",[11],[9],[188,195,202,209],[189,191,193],[190],"Ki van a másik oldalon?",[192],"Egy eszköz- vagy adatszerver",[194],"Egy másik ágens, amely gondolkodik és tervez",[196,198,200],[197],"Munkaegység",[199],"Egy eszközhívás argumentumokkal és eredménnyel",[201],"Egy task azonosítóval, állapotokkal, üzenetekkel és artefaktumokkal",[203,205,207],[204],"Belső működés láthatósága",[206],"Az eszközsémák láthatók a modell számára",[208],"A távoli ágens átláthatatlan marad",[210,212,214],[211],"Tipikus határ",[213],"Egy ágens telepítésén belül",[215],"Csapatok, szolgáltatások vagy cégek között",{"type":126,"content":217},[218,219,224],"Az átfedés valós: egy néhány állapotmentes skillel rendelkező A2A-ágens becsomagolható MCP-szerverként, ezt a dokumentáció is kimondja. Az ökölszabályom: ha a másik oldal függvényként viselkedik, MCP; ha visszakérdez, percekig vagy órákig dolgozik, vagy meg akarja tartani magának a reasoningjét, A2A. Az MCP-oldalhoz lásd az ",{"tag":220,"to":221,"children":222},"link","\u002Fblog\u002Fmcp-server-security-checklist",[223],"MCP biztonsági ellenőrzőlistát",".",{"type":133,"level":134,"id":101,"text":102},{"type":126,"content":227},[228,229,232,233,236,237,240,241,244,245,248],"Az agent card egy JSON-dokumentum, amelyben egy A2A-szerver leírja önmagát. A normatív adatmodell az ",{"tag":139,"href":42,"children":230},[231],"a2a.proto","; az ",{"tag":155,"children":234},[235],"AgentCard"," kötelező mezői a név, a leírás, a támogatott interfészek, a verzió, a képességek, az alapértelmezett bemeneti és kimeneti módok, valamint a skillek. Minden interfész megad egy URL-t, egy protokoll-bindinget (",{"tag":155,"children":238},[239],"JSONRPC",", ",{"tag":155,"children":242},[243],"GRPC"," vagy ",{"tag":155,"children":246},[247],"HTTP+JSON",") és egy protokollverziót. Minden skillnek van azonosítója, neve, leírása és címkéi, opcionálisan példái, saját bemeneti és kimeneti módjai és biztonsági követelményei.",{"type":155,"code":250},"\u002F\u002F https:\u002F\u002Fagents.supplier.example\u002F.well-known\u002Fagent-card.json (illustrative)\n{\n  \"name\": \"Parts Availability Agent\",\n  \"description\": \"Answers stock and lead-time questions for industrial spare parts.\",\n  \"version\": \"2.3.0\",\n  \"provider\": { \"organization\": \"Example Supplier GmbH\", \"url\": \"https:\u002F\u002Fsupplier.example\" },\n  \"supportedInterfaces\": [\n    { \"url\": \"https:\u002F\u002Fagents.supplier.example\u002Fa2a\", \"protocolBinding\": \"JSONRPC\", \"protocolVersion\": \"1.0\" },\n    { \"url\": \"https:\u002F\u002Fagents.supplier.example\u002Fa2a\u002Frest\", \"protocolBinding\": \"HTTP+JSON\", \"protocolVersion\": \"1.0\" }\n  ],\n  \"capabilities\": { \"streaming\": true, \"pushNotifications\": true, \"extendedAgentCard\": true },\n  \"securitySchemes\": {\n    \"oidc\": { \"openIdConnectSecurityScheme\": { \"openIdConnectUrl\": \"https:\u002F\u002Flogin.supplier.example\u002F.well-known\u002Fopenid-configuration\" } }\n  },\n  \"securityRequirements\": [ { \"schemes\": { \"oidc\": { \"list\": [\"parts.read\"] } } } ],\n  \"defaultInputModes\": [\"text\u002Fplain\", \"application\u002Fjson\"],\n  \"defaultOutputModes\": [\"text\u002Fplain\", \"application\u002Fjson\"],\n  \"skills\": [\n    {\n      \"id\": \"check-availability\",\n      \"name\": \"Check availability\",\n      \"description\": \"Stock level and lead time for a part number at a given warehouse.\",\n      \"tags\": [\"inventory\", \"spare-parts\"],\n      \"examples\": [\"Is ART-10001 in stock in Vienna?\"]\n    }\n  ]\n}",{"type":126,"content":252},[253,254,257,258,261,262,265,266,269,270,273],"A felfedezésre a ",{"tag":139,"href":48,"children":255},[256],"dokumentáció"," három utat ad: a ",{"tag":155,"children":259},[260],"https:\u002F\u002F{server_domain}\u002F.well-known\u002Fagent-card.json"," well-known URI-t, a kurált registryket (ezekhez a specifikáció nem határoz meg szabványos API-t) és a közvetlen konfigurációt. A kártya végpontja küldjön ",{"tag":155,"children":263},[264],"max-age"," értékkel ellátott ",{"tag":155,"children":267},[268],"Cache-Control"," fejlécet és ",{"tag":155,"children":271},[272],"ETag","-et, a kliensek pedig feltételes kéréseket használjanak. A kártyák JSON Web Signature (RFC 7515) aláírással láthatók el a JSON Canonicalization Scheme (RFC 8785) szerint kanonizált alakon, és a kliensek legalább egy aláírást ellenőrizzenek, mielőtt megbíznak egy aláírt kártyában.",{"type":126,"content":275},[276,277,280,281,284],"Egy nyilvános kártya ne szivárogtasson ki belső részleteket. Ha megbízható partnereknek több skillt vagy belső URL-t kell mutatnod, állítsd be a ",{"tag":155,"children":278},[279],"capabilities.extendedAgentCard"," mezőt, és a teljes kártyát a ",{"tag":155,"children":282},[283],"GetExtendedAgentCard"," művelettel szolgáld ki, amelynek kötelező hitelesítést kérnie. Statikus titok egyetlen kártyába se kerüljön.",{"type":126,"content":286},[287,288,291],"A skillek leírását modellnek írd, ne marketingoldalnak. A kliensoldalon gyakran egy LLM olvassa el a kártyát, hogy eldöntse, melyik távoli ágens és melyik skill illik egy kéréshez, így a leírás ugyanazt a szerepet tölti be, mint egy eszközleírás az MCP-ben: mondd meg, mit csinál a skill, milyen bemenetet vár, és mit nem csinál. Minden skillváltozásnál emeld a ",{"tag":155,"children":289},[290],"version"," értékét, hogy a cache-elt kártyák és az ETagek értelmesek maradjanak.",{"type":133,"level":134,"id":104,"text":105},{"type":126,"content":294},[166,295,299,300,303,304,307,308,311,312,315,316,319,320,323,324,327,328,331,332,335,336,339],{"tag":296,"children":297},"strong",[298],"üzenet"," egy kommunikációs kör, ",{"tag":155,"children":301},[302],"messageId"," azonosítóval, szereppel (",{"tag":155,"children":305},[306],"ROLE_USER"," a kliensnek, ",{"tag":155,"children":309},[310],"ROLE_AGENT"," a szervernek) és partok listájával. A ",{"tag":296,"children":313},[314],"part"," a legkisebb tartalmi egység: szöveg, nyers bájtok, URL vagy strukturált adat, opcionális ",{"tag":155,"children":317},[318],"mediaType"," és ",{"tag":155,"children":321},[322],"filename"," mezővel. Amikor a szerver munkát vállal, létrehoz egy ",{"tag":296,"children":325},[326],"taskot"," szerver által generált ",{"tag":155,"children":329},[330],"id"," azonosítóval, az összetartozó taskokat és üzeneteket csoportosító ",{"tag":155,"children":333},[334],"contextId"," mezővel, státusszal, előzménnyel és ",{"tag":296,"children":337},[338],"artefaktumokkal",", vagyis a kimenetekkel, például dokumentumokkal vagy strukturált adatokkal, amelyek szintén partokból állnak.",{"type":172,"attrs":341,"inner":344,"caption":345},{"viewBox":342,"role":175,"aria-labelledby":343},"0 0 720 170","a2a2-t a2a2-d","\u003Ctitle id=\"a2a2-t\">Egy A2A-task életciklusa\u003C\u002Ftitle>\u003Cdesc id=\"a2a2-d\">A task submitted állapotban indul, working állapotba lép, megszakított állapotban szünetelhet, ha az ágensnek bemenetre vagy autorizációra van szüksége, visszatér working állapotba, és végállapotban zárul: completed, failed, canceled vagy rejected.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"a2a2-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\">Submitted\u003C\u002Ftext>\u003Ctext x=\"79\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">id kiosztva\u003C\u002Ftext>\u003Cpath d=\"M138 85H158\" class=\"d-line\" marker-end=\"url(#a2a2-ah)\" \u002F>\u003Crect x=\"160\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"220\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Working\u003C\u002Ftext>\u003Ctext x=\"220\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">haladás\u003C\u002Ftext>\u003Cpath d=\"M279 85H299\" class=\"d-line\" marker-end=\"url(#a2a2-ah)\" \u002F>\u003Crect x=\"301\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"360\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Megszakítva\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">bemenet, auth\u003C\u002Ftext>\u003Cpath d=\"M419 85H439\" class=\"d-line\" marker-end=\"url(#a2a2-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\">Working\u003C\u002Ftext>\u003Ctext x=\"500\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">folytatva\u003C\u002Ftext>\u003Cpath d=\"M560 85H580\" class=\"d-line\" marker-end=\"url(#a2a2-ah)\" \u002F>\u003Crect x=\"582\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"641\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Végállapot\u003C\u002Ftext>\u003Ctext x=\"641\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">kész, hiba …\u003C\u002Ftext>",[346],"A végállapotok: completed, failed, canceled és rejected; az input-required és az auth-required a megszakított állapotok.",{"type":126,"content":348},[349,350,353,354,358,359,361,362,365],"Érdemes kiemelni a ",{"tag":155,"children":351},[352],"TASK_STATE_AUTH_REQUIRED"," állapotot: egy ágens a task közepén megállhat, mert a felhasználónak hozzáférést kell adnia valamihez, és ez pontosan az a fajta jóváhagyási lépés, amely mellett az ",{"tag":220,"to":355,"children":356},"\u002Fblog\u002Fhuman-in-the-loop-ai-agents",[357],"ember a hurokban AI-ágenseknél"," cikkben érveltem. Egy többkörös párbeszéd folytatásához a kliens új üzenetet küld ugyanazzal a ",{"tag":155,"children":360},[334]," értékkel és a meglévő task ",{"tag":155,"children":363},[364],"taskId"," azonosítójával; az össze nem illő azonosítókat a szerver elutasítja.",{"type":133,"level":134,"id":107,"text":108},{"type":126,"content":368},[369],"Az 1.0 három szabványos bindinget határoz meg – JSON-RPC, gRPC és HTTP+JSON (REST) –, és egyedieket is megenged. Minden bindingnek egyenértékűen kell viselkednie, az adatobjektumok mérvadó forrása a proto-fájl. Az alapműveletek így képeződnek le:",{"type":181,"head":371,"rows":377},[372,374,376],[373],"Művelet",[375],"JSON-RPC és gRPC metódus",[247],[378,389,400,411,422,433],[379,381,385],[380],"Üzenet küldése",[382],{"tag":155,"children":383},[384],"SendMessage",[386],{"tag":155,"children":387},[388],"POST \u002Fmessage:send",[390,392,396],[391],"Küldés és frissítések streamelése",[393],{"tag":155,"children":394},[395],"SendStreamingMessage",[397],{"tag":155,"children":398},[399],"POST \u002Fmessage:stream",[401,403,407],[402],"Task lekérése",[404],{"tag":155,"children":405},[406],"GetTask",[408],{"tag":155,"children":409},[410],"GET \u002Ftasks\u002F{id}",[412,414,418],[413],"Task megszakítása",[415],{"tag":155,"children":416},[417],"CancelTask",[419],{"tag":155,"children":420},[421],"POST \u002Ftasks\u002F{id}:cancel",[423,425,429],[424],"Webhook regisztrálása",[426],{"tag":155,"children":427},[428],"CreateTaskPushNotificationConfig",[430],{"tag":155,"children":431},[432],"POST \u002Ftasks\u002F{id}\u002FpushNotificationConfigs",[434,436,445],[435],"További műveletek",[437,240,440,240,443],{"tag":155,"children":438},[439],"ListTasks",{"tag":155,"children":441},[442],"SubscribeToTask",{"tag":155,"children":444},[283],[446],"megfelelő végpontok",{"type":126,"content":448},[149,449,451,452,455,456,458,459,244,461,463],{"tag":155,"children":450},[384]," alapból blokkol; ",{"tag":155,"children":453},[454],"returnImmediately"," mellett azonnal visszatér, és a kliens háromféleképpen követheti a taskot: lekérdezéssel (",{"tag":155,"children":457},[406],"), streameléssel (",{"tag":155,"children":460},[395],{"tag":155,"children":462},[442],"), vagy push értesítéssel, amikor a szerver POST-tal küldi a frissítéseket a kliens által regisztrált webhookra. Órákig futó taskoknál a push a jó választás, mert ennyi ideig senki sem akar nyitva tartani egy streamet. Egy JSON-RPC-hívás így néz ki:",{"type":155,"code":465},"\u002F\u002F POST https:\u002F\u002Fagents.supplier.example\u002Fa2a  (JSON-RPC binding, illustrative)\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": \"req-42\",\n  \"method\": \"SendMessage\",\n  \"params\": {\n    \"message\": {\n      \"messageId\": \"9b0c7e7a-2f1d-4c55-9f0e-1f6a2d0c3e11\",\n      \"role\": \"ROLE_USER\",\n      \"parts\": [{ \"text\": \"Is ART-10001 in stock in Vienna, and what is the lead time for 40 units?\" }]\n    }\n  }\n}",{"type":126,"content":467},[468],"Hogy melyik bindinget választod, főleg azon múlik, mit beszélnek már most a szolgáltatásaid. A példákban és az SDK-kban a JSON-RPC a leggyakoribb, a HTTP+JSON azoknak a csapatoknak való, amelyek REST-gatewayt futtatnak, és olvasható URL-eket szeretnének a naplóikban, a gRPC pedig a protobufot már használó belső service meshekhez illik. Egy kártya több interfészt is felsorolhat, így a szerver két bindinget is kínálhat, a kliens pedig választ.",{"type":133,"level":134,"id":110,"text":111},{"type":126,"content":471},[472,473,476,477,481],"A hitelesítést deklarálják, nem kitalálják: az agent card felsorolja a ",{"tag":155,"children":474},[475],"securitySchemes"," sémákat – API-kulcs, HTTP-auth, OAuth 2.0 (authorization code, client credentials vagy device code folyamat), OpenID Connect vagy kölcsönös TLS –, és megadja, melyik kötelező. A hitelesítő adatok a szállítási rétegben utaznak, mint bármely HTTP API-nál. Cégek közötti ágens–ágens hívásoknál az OAuth client credentials vagy az mTLS a természetes választás, és a hívó ágensnek saját, szűk scope-okkal rendelkező identitása legyen, ahogy az ",{"tag":220,"to":478,"children":479},"\u002Fblog\u002Fai-agent-identity-least-privilege",[480],"AI-ágensek identitások"," cikkben leírtam.",{"type":126,"content":483},[484],"A specifikáció biztonsági része olyan kötelezettségeket tesz hozzá, amelyek a gyakorlatban számítanak:",{"type":486,"items":487},"list",[488,493,498,503],[489,492],{"tag":296,"children":490},[491],"Autorizáció minden műveletnél",", a hívóra szűkített eredményekkel akkor is, ha nincs szűrő, és ellenőrzéssel minden olyan keresés előtt, amely elárulhatná a hatókörön kívüli erőforrások létezését.",[494,497],{"tag":296,"children":495},[496],"Webhook-ellenőrzés SSRF ellen",": utasítsd el a privát tartományokat, például a 10.0.0.0\u002F8-at és a 192.168.0.0\u002F16-ot, a localhostot és a link-local címeket, és ahol lehet, használj engedélylistát; a webhook-kéréseket 10–30 másodperc után szakítsd meg.",[499,502],{"tag":296,"children":500},[501],"Bemenetellenőrzés és korlátok"," az üzenetméretre, a fájlméretre és a kérés összetettségére, plusz rate limit minden műveleten.",[504,507],{"tag":296,"children":505},[506],"A webhook fogadója"," ellenőrzi, hogy minden értesítés általa indított taskra vonatkozik-e, és elviseli a többszörös kézbesítést.",{"type":133,"level":134,"id":113,"text":114},{"type":126,"content":510},[511,512,514,515,518],"A hitelesítés azt mondja meg, ki a másik ágens, azt nem, hogy biztonságos-e, amit mond. 2025. október 31-én a Unit 42 közzétette az ",{"tag":139,"href":60,"children":513},[25]," technikát: egy rosszindulatú távoli ágens egy már létrejött sessiont kihasználva rejtett utasításokat küld a kliens ágensnek. A Google Agent Development Kitjével készült koncepcióbizonyításban a távoli ágens rávett egy pénzügyi asszisztenst, hogy felfedje a konfigurációját és a session előzményét, és meghívjon egy ",{"tag":155,"children":516},[517],"buy_stock"," eszközt, amelyet a felhasználó nem kért. A Unit 42 egyértelműen kimondja, hogy ez nem az A2A sebezhetősége; bármely állapottartó, többkörös protokollban az ágensek közötti hallgatólagos bizalmat használja ki.",{"type":520,"variant":521,"title":522,"body":523},"callout","warn","A távoli ágens kimenetét kezeld webes tartalomként",[524],[525,526,224],"Egy másik ágens szövege, adatai és artefaktumai nem megbízható bemenetek a modelled számára, pontosan úgy, mint egy letöltött weboldal. A Unit 42 javaslata: érzékeny műveletek csatornán kívüli megerősítése, az eredeti kéréstől eltávolodó sessionöket lezáró context grounding, ellenőrzött ágensidentitás, és annak megmutatása a felhasználónak, mely távoli utasítások mely eszközhívásokhoz vezettek. Ugyanazok a tervezési szabályok érvényesek, mint a ",{"tag":220,"to":527,"children":528},"\u002Fblog\u002Fprompt-injection-lethal-trifecta-patterns",[529],"prompt injection elleni védekezésnél",{"type":133,"level":134,"id":116,"text":117},{"type":126,"content":532},[533],"Egy protokollnak ára van: karbantartandó agent card, task-tár, szolgáltatások közötti hitelesítés, verziókezelés. Határokon térül meg, nem egy kódbázison belül. A döntési segédletem:",{"type":181,"head":535,"rows":540},[536,538],[537],"Helyzet",[539],"Mit használnék",[541,546,550,555,560],[542,544],[543],"Egy csapat, egy kódbázis, több specializált ágens",[545],"Al-ágensek vagy függvényhívások a keretrendszerben; protokoll nélkül",[547,549],[548],"Egy ágensnek adatbázis, API vagy fájlrendszer kell",[11],[551,553],[552],"Különböző csapatok ágensei, külön telepítve és verziózva",[554],"A2A, OAuth-tal vagy mTLS-sel a szolgáltatások között",[556,558],[557],"Egy partner vagy szállító ágenst ad, nem API-t",[559],"A2A-kliens; a kimenet nem megbízható",[561,563],[562],"A másik oldalnak stabil, jól definiált API-ja van",[564],"Hívd közvetlenül, vagy csomagold MCP-eszközbe",{"type":126,"content":566},[567,568,572,573,577],"Ha azt mérlegeled, kell-e egyáltalán több ágens, a ",{"tag":220,"to":569,"children":570},"\u002Fblog\u002Fmulti-agent-systems-when-worth-it",[571],"többágenses rendszerek: mikor érik meg"," cikk a tokenköltséget és a hibamódokat tárgyalja. A kereskedelemben az Agent Payments Protocol (AP2) az A2A ökoszisztémájához tartozik; az ",{"tag":220,"to":574,"children":575},"\u002Fblog\u002Fagentic-commerce-protocols-ucp-acp-guide",[576],"agentic commerce protokollok"," cikkben vetem össze a UCP-vel és az ACP-vel.",{"type":133,"level":134,"id":119,"text":120},{"type":486,"ordered":580,"items":581},true,[582,587,592,597,602],[583,586],{"tag":296,"children":584},[585],"Válassz egy határt",", ahol két ágens már most is egyedi integráción keresztül beszél, és modellezd a cserét explicit állapotú taskokként.",[588,591],{"tag":296,"children":589},[590],"Először az agent cardot írd meg",": világos leírású, példákkal ellátott skillek, kezdésnek egyetlen binding, és az a biztonsági séma, amelyet ténylegesen betartatsz.",[593,596],{"tag":296,"children":594},[595],"Hivatalos SDK-t használj"," a saját nyelveden ahelyett, hogy kézzel írnád meg a protokollt, és rögzítsd a protokollverziót.",[598,601],{"tag":296,"children":599},[600],"Tárold tartósan a taskokat"," újraindítást túlélő tárban, mert egy task túlélheti a folyamatot; minden lassú dologhoz push értesítést használj.",[603,606],{"tag":296,"children":604},[605],"Kövesd a határon át",": a task- és context-azonosító minden naplósorban szerepeljen, hogy egy hiba az egyik ágenstől a másikig követhető legyen.",{"type":133,"level":134,"id":122,"text":123},{"type":486,"ordered":580,"items":609},[610,613,616,619,622,625,628,631],[611],{"tag":139,"href":39,"children":612},[38],[614],{"tag":139,"href":42,"children":615},[41],[617],{"tag":139,"href":45,"children":618},[44],[620],{"tag":139,"href":48,"children":621},[47],[623],{"tag":139,"href":51,"children":624},[50],[626],{"tag":139,"href":54,"children":627},[53],[629],{"tag":139,"href":57,"children":630},[56],[632],{"tag":139,"href":60,"children":633},[59],[635,706,754,838],{"slug":636,"published":5,"minutes":637,"category":7,"tags":638,"keywords":644,"about":656,"sources":666,"cover":700,"og":701,"expertise":63,"locales":702,"lang":67,"title":703,"description":704,"coverAlt":705},"context-rot-compaction-long-running-agents",10,[639,640,641,642,643],"Context rot","Compaction","Context engineering","Long-running agents","Agent memory",[645,646,647,648,649,650,651,652,653,654,655],"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",[657,660,663],{"name":658,"url":659},"Context window","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model#Context_window",{"name":661,"url":662},"Attention (machine learning)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAttention_(machine_learning)",{"name":664,"url":665},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",[667,670,673,676,679,682,685,688,691,694,697],{"title":668,"url":669},"Chroma: Context Rot: How Increasing Input Tokens Impacts LLM Performance (Jul 2025)","https:\u002F\u002Fresearch.trychroma.com\u002Fcontext-rot",{"title":671,"url":672},"Liu et al.: Lost in the Middle: How Language Models Use Long Contexts (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.03172",{"title":674,"url":675},"Modarressi et al.: NoLiMa: Long-Context Evaluation Beyond Literal Matching (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.05167",{"title":677,"url":678},"Anthropic: Effective context engineering for AI agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"title":680,"url":681},"Anthropic: Effective harnesses for long-running agents (Nov 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"title":683,"url":684},"Claude API docs: Compaction at a token threshold","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-threshold",{"title":686,"url":687},"Claude API docs: Compaction on demand","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-on-demand",{"title":689,"url":690},"Claude API docs: Context editing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcontext-editing",{"title":692,"url":693},"Claude API docs: Memory tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fmemory-tool",{"title":695,"url":696},"OpenAI API docs: Compaction","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fcompaction",{"title":698,"url":699},"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",[65,66,67],"Kontextusromlás hosszan futó ügynököknél: törlés, tömörítés, memória és al-ügynökök","Miért romlik az LLM pontossága a kontextus növekedésével, és hogyan tartja pályán a hosszú ügynökfutást a törlés, a tömörítés, a jegyzet és az al-ügynök.","Egy ügynök kontextusmérete a körökkel nő, de a régi eszközeredmények törlése és a tömörítés egy sávban tartja, ahelyett, hogy az ablakhatárig nőne.",{"slug":707,"published":5,"minutes":708,"category":7,"tags":709,"keywords":714,"about":725,"sources":732,"cover":748,"og":749,"expertise":63,"locales":750,"lang":67,"title":751,"description":752,"coverAlt":753},"browser-agents-e2e-testing-playwright",7,[710,711,712,11,713],"Playwright","E2E testing","Coding agents","Test automation",[715,716,717,718,719,720,721,722,723,724],"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",[726,728,731],{"name":710,"url":727},"https:\u002F\u002Fplaywright.dev\u002F",{"name":729,"url":730},"End-to-end testing","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSystem_testing",{"name":31,"url":32},[733,736,739,742,745],{"title":734,"url":735},"Playwright docs: Test agents (planner, generator, healer)","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Ftest-agents",{"title":737,"url":738},"Microsoft: Playwright MCP README (MCP vs CLI, accessibility snapshots)","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fplaywright-mcp",{"title":740,"url":741},"Playwright docs: Best practices","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Fbest-practices",{"title":743,"url":744},"Playwright docs: Locators","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Flocators",{"title":746,"url":747},"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",[65,66,67],"Böngészőágensek E2E-teszteléshez: írják az ágensek a Playwright-teszteket, ne futtassák","Hol segítenek az AI-ágensek E2E-teszteknél: Playwright planner, generator és healer, MCP vagy CLI, és a korlátok, melyek őszintén tartják a javított teszteket.","Egy ágens bejár egy webalkalmazást, Markdown tesztervet ír, Playwright-tesztekké alakítja, a healer pedig lokátorokat javít, miközben az ellenőrzések felülvizsgálat alatt maradnak.",{"slug":755,"published":756,"minutes":757,"category":7,"tags":758,"keywords":764,"about":773,"sources":783,"cover":832,"og":833,"expertise":63,"locales":834,"lang":67,"title":835,"description":836,"coverAlt":837},"ai-assisted-development-economics","2026-10-01",11,[759,760,761,762,763],"AI coding agents","Developer productivity","Engineering economics","Team cost","GDPR",[765,766,767,768,769,770,771,772],"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",[774,777,780],{"name":775,"url":776},"General Data Protection Regulation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGeneral_Data_Protection_Regulation",{"name":778,"url":779},"Randomized controlled trial","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRandomized_controlled_trial",{"name":781,"url":782},"Bus factor","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBus_factor",[784,787,790,793,796,799,802,805,808,811,814,817,820,823,826,829],{"title":785,"url":786},"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":788,"url":789},"Becker et al.: arXiv 2507.09089","https:\u002F\u002Farxiv.org\u002Fabs\u002F2507.09089",{"title":791,"url":792},"METR: developer productivity experiment design, February 2026","https:\u002F\u002Fmetr.org\u002Fblog\u002F2026-02-24-uplift-update\u002F",{"title":794,"url":795},"Peng et al.: GitHub Copilot controlled experiment, arXiv 2302.06590","https:\u002F\u002Farxiv.org\u002Fhtml\u002F2302.06590v1",{"title":797,"url":798},"Cui et al.: three field experiments with software developers","https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002F?p=1148213",{"title":800,"url":801},"DORA: State of AI-assisted Software Development 2025","https:\u002F\u002Fresearch.google\u002Fpubs\u002Fdora-2025-state-of-ai-assisted-software-development-report\u002F",{"title":803,"url":804},"Google Cloud: highlights from the 2024 DORA report","https:\u002F\u002Fcloud.google.com\u002Fblog\u002Fproducts\u002Fdevops-sre\u002Fannouncing-the-2024-dora-report",{"title":806,"url":807},"Stack Overflow: Developer Survey 2025, AI","https:\u002F\u002Fsurvey.stackoverflow.co\u002F2025\u002Fai",{"title":809,"url":810},"Ziftci et al.: Migrating Code At Scale With LLMs At Google","https:\u002F\u002Farxiv.org\u002Fabs\u002F2504.09691",{"title":812,"url":813},"Alshahwan et al.: Automated Unit Test Improvement using Large Language Models at Meta","https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.09171",{"title":815,"url":816},"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":818,"url":819},"GDPR, Regulation (EU) 2016\u002F679, Article 28","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2016\u002F679\u002Foj\u002Feng",{"title":821,"url":822},"Anthropic: Commercial Terms of Service","https:\u002F\u002Fwww.anthropic.com\u002Flegal\u002Fcommercial-terms",{"title":824,"url":825},"Claude: pricing","https:\u002F\u002Fclaude.com\u002Fpricing",{"title":827,"url":828},"Claude Platform: data residency","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fdata-residency",{"title":830,"url":831},"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",[65,66,67],"Egy senior MI-ügynökökkel vagy egy csapattal: mit mondanak a bizonyítékok","A METR, DORA, Microsoft és GitHub kutatásai az MI-kódolóeszközökről, azok korlátai, és egy break-even modell: senior, csapat vagy ügynökség?","Borítókép az MI-kódolás gazdaságtanához: egy vázlattól az élesítésig tartó folyamat, ahol az ügynökök gyorsítják az írást, a review-költségek és a minőségi költségek pedig visszavesznek a nyereségből.",{"slug":839,"published":840,"minutes":757,"category":7,"tags":841,"keywords":846,"about":855,"sources":867,"cover":908,"og":909,"expertise":63,"locales":910,"lang":67,"title":911,"description":912,"coverAlt":913},"spec-driven-development-coding-agents","2026-09-30",[842,712,843,844,845],"Spec-driven development","Acceptance criteria","Plan mode","AI engineering",[847,848,849,850,851,852,853,854],"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",[856,859,861,864],{"name":857,"url":858},"Vibe coding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVibe_coding",{"name":851,"url":860},"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fspec-kit",{"name":862,"url":863},"EARS (Easy Approach to Requirements Syntax)","https:\u002F\u002Falistairmavin.com\u002Fears\u002F",{"name":865,"url":866},"Kiro","https:\u002F\u002Fkiro.dev",[868,871,873,876,879,882,884,887,890,893,895,897,900,902,905],{"title":869,"url":870},"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":872,"url":860},"GitHub Spec Kit: README",{"title":874,"url":875},"GitHub Spec Kit: spec-driven.md methodology","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fspec-kit\u002Fblob\u002Fmain\u002Fspec-driven.md",{"title":877,"url":878},"Kiro documentation: specs","https:\u002F\u002Fkiro.dev\u002Fdocs\u002Fspecs\u002F",{"title":880,"url":881},"Kiro: Introducing Kiro","https:\u002F\u002Fkiro.dev\u002Fblog\u002Fintroducing-kiro\u002F",{"title":883,"url":863},"Alistair Mavin: EARS, the Easy Approach to Requirements Syntax",{"title":885,"url":886},"Anthropic: Best practices for Claude Code","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fbest-practices",{"title":888,"url":889},"Cline documentation: Plan and Act","https:\u002F\u002Fdocs.cline.bot\u002Ffeatures\u002Fplan-and-act",{"title":891,"url":892},"OpenAI: Codex slash command reference","https:\u002F\u002Flearn.chatgpt.com\u002Fdocs\u002Freference\u002Fslash-commands",{"title":894,"url":786},"METR: early-2025 AI and experienced open-source developer productivity (July 2025)",{"title":896,"url":792},"METR: We are changing our developer productivity experiment design (February 2026)",{"title":898,"url":899},"Thoughtworks Technology Radar: Spec-driven development","https:\u002F\u002Fwww.thoughtworks.com\u002Fradar\u002Ftechniques\u002Fspec-driven-development",{"title":901,"url":858},"Wikipedia: Vibe coding",{"title":903,"url":904},"Anthropic: Claude API pricing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fabout-claude\u002Fpricing",{"title":906,"url":907},"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",[65,66,67],"Spec-driven fejlesztés kódoló ügynököknek: a terv a kód előtt","A vibe coding valós kódbázisokon elbukik. Írj specifikációt elfogadási kritériumokkal, tervet és feladatokat, és nézd át mindezt, mielőtt az ügynök kódot ír.","Borítókép a spec-driven fejlesztéshez: folyamat a specifikációtól a tervig, a feladatokig és az ellenőrzésig, emberi jóváhagyási ponttal a kód előtt.",1792177150833]