[{"data":1,"prerenderedAt":768},["ShallowReactive",2],{"blog-background-agents-async-pr-workflow-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":26,"sources":36,"cover":73,"og":74,"expertise":75,"locales":76,"lang":79,"title":80,"description":81,"coverAlt":82,"metaTitle":83,"takeaways":84,"faq":90,"toc":109,"blocks":143,"others":524},"background-agents-async-pr-workflow","2026-10-17",12,"agents",[9,10,11,12,13],"Coding agents","Pull requests","CI","Code review","Automation",[15,16,17,18,19,20,21,22,23,24,25],"background coding agent","async coding agent","cloud coding agent pull request","copilot coding agent limits","codex cloud tasks","claude code cloud sessions","jules coding agent limits","agent pull request review","coding agent sandbox","agent CI gating","cost per merged pull request",[27,30,33],{"name":28,"url":29},"Software agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_agent",{"name":31,"url":32},"Pull request","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDistributed_version_control",{"name":34,"url":35},"Continuous integration","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FContinuous_integration",[37,40,43,46,49,52,55,58,61,64,67,70],{"title":38,"url":39},"GitHub Docs: About GitHub Copilot cloud agent","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Fconcepts\u002Fagents\u002Fcoding-agent\u002Fabout-coding-agent",{"title":41,"url":42},"GitHub Docs: Risks and mitigations for Copilot cloud agent","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Fconcepts\u002Fagents\u002Fcloud-agent\u002Frisks-and-mitigations",{"title":44,"url":45},"OpenAI Developers: Codex cloud environments","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fcloud\u002Fenvironments",{"title":47,"url":48},"Anthropic: Use Claude Code in the cloud","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fclaude-code-on-the-web",{"title":50,"url":51},"Google Jules: Limits and plans","https:\u002F\u002Fjules.google\u002Fdocs\u002Fusage-limits\u002F",{"title":53,"url":54},"Google Jules: Getting started","https:\u002F\u002Fjules.google\u002Fdocs\u002F",{"title":56,"url":57},"GitHub Docs: About protected branches","https:\u002F\u002Fdocs.github.com\u002Fen\u002Frepositories\u002Fconfiguring-branches-and-merges-in-your-repository\u002Fmanaging-protected-branches\u002Fabout-protected-branches",{"title":59,"url":60},"GitHub Docs: Models and pricing for GitHub Copilot","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Freference\u002Fcopilot-billing\u002Fmodels-and-pricing",{"title":62,"url":63},"OpenAI Developers: Codex pricing","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fpricing",{"title":65,"url":66},"Ehsani et al.: Where Do AI Coding Agents Fail? An Empirical Study of Failed Agentic Pull Requests in GitHub (MSR 2026, arXiv 2601.15195)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2601.15195",{"title":68,"url":69},"Peralta et al.: Why Are Agentic Pull Requests Merged or Rejected? An Empirical Study (MSR 2026, arXiv 2605.22534)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.22534",{"title":71,"url":72},"DORA: State of AI-assisted Software Development 2025","https:\u002F\u002Fdora.dev\u002Fdora-report-2025","\u002Fimages\u002Fblog\u002Fbackground-agents-async-pr-workflow\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fbackground-agents-async-pr-workflow\u002Fog.jpg","ai-engineer",[77,78,79],"en","de","hu","Háttérben futó kódoló ügynökök: PR-ek, sorok és review","Hogyan sorakoztatnak feladatokba az aszinkron kódoló ügynökök, hogyan futnak sandboxban, nyitnak draft PR-t és mennek át a CI-n. Limitek, költségek, review.","Egy kártya a tálcán öt mezőre ágazik, a nyilak egy kapu mögötti laphoz vezetnek.","Aszinkron kódoló ügynökök és pull requestek · Balázs Csorba",[85,86,87,88,89],"Az aszinkron kódoló ügynök a szűk keresztmetszetet a kódírástól a feladat meghatározása, a CI futtatása és az eredmény review-ja felé tolja.","A sorba állított feladat a specifikáció: egy megfigyelhető cél, egy tesztparancs, engedélyezett útvonalak és kimondott nem-célok.","A sandbox, a branch protection, a workflow-jóváhagyás és a kötelező checkek külön kontrollok; a sandbox a hostot védi, nem a repót.","Minden futást időkorlátozz, minden feladatot budgetálj; a hasznos költségmetrika a mergelt pull requestre jutó költség.","Az elutasított ügynök-PR-ek többsége koordinációs, CI- és review-kapacitás-probléma, nem modellképesség.",[91,94,97,100,103,106],{"q":92,"a":93},"Mi az a háttérben futó kódoló ügynök?","Olyan kódoló ügynök, amely aszinkron módon, távoli infrastruktúrán fut az editor helyett. Átadsz egy feladatot, ő a saját sandboxában dolgozik, branchre pushol, és általában pull requestet nyit. A Codex Cloud, a Copilot Cloud Agent, a Claude Code felhős sessionjei és a Jules így működik.",{"q":95,"a":96},"Mergelheti az ügynök a saját pull requestjét?","Az itt leírt hosztolt termékeknél nem. A Copilot Cloud Agent nem tudja a pull requestet ready for review állapotba tenni, jóváhagyni vagy mergelni, és a változást kérő személy sem hagyhatja jóvá. A branch protectionnek ugyanezt a szabályt kell kikényszerítenie minden más ügynöknél.",{"q":98,"a":99},"Meddig futhat egy háttérfeladat?","Addig, hogy egy sikertelen futás olcsó legyen. A Copilot sessionönként kemény 59 perces limitet kényszerít ki. A Claude Code visszaveszi az idle felhős sessionöket, és csak akkor cache-eli a setup-szkriptet, ha körülbelül öt percen belül végez. Ha egy feladat egy óránál tovább tartana, bontsd szakaszokra commitokkal vagy tervfájllal a szakaszok között.",{"q":101,"a":102},"Hogyan akadályozom meg a duplikált ügynök-PR-eket?","Sorba állítás előtt deduplikálj. Használj repóból, issue-ból és bázis-commitból képzett kulcsot, keress rá a nyitott és nemrég zárt pull requestekre, és adj a feladatnak claim labelt. Az elutasított ügynök-PR-ek egy mintájában 23% volt már létező munka duplikátuma.",{"q":104,"a":105},"Kell saját runner a háttérügynökökhöz?","Nem feltétlenül. A hosztolt termékek kezelt VM-eket vagy GitHub Actions környezeteket adnak. A saját runner és a saját környezet akkor számít, ha az ügynöknek privát hálózati hozzáférésre, adott hardverre vagy a compliance csapat által előírt adathatárra van szüksége.",{"q":107,"a":108},"Miért záródik be sok ügynök-PR review nélkül?","Mert a review-kapacitás, nem az ügynökkapacitás a szűk keresztmetszet. Egy 600 elutasított ügynök-PR-t vizsgáló tanulmányban 38% érdemi emberi részvétel nélkül maradt. Többet ér, ha a PR megnyitásakor kijelölsz egy reviewert és korlátozod a párhuzamos munkát, mint a következő prompt-finomítás.",[110,113,116,119,122,125,128,131,134,137,140],{"id":111,"title":112},"why-async-agents","Miért változik meg az aszinkron munkával a munkaegység",{"id":114,"title":115},"anatomy","Egy aszinkron PR-pipeline felépítése",{"id":117,"title":118},"task-queue","A sor maga a termék",{"id":120,"title":121},"sandbox","Sandboxok: mihez nyúlhat az ügynök",{"id":123,"title":124},"long-runs","Hosszú futások, timeoutok és újraindíthatóság",{"id":126,"title":127},"ci-gating","A CI az első reviewer",{"id":129,"title":130},"human-review","Az emberi review a szűk keresztmetszet",{"id":132,"title":133},"cost-control","Feladatonkénti költségszabályozás, nem tokenenként",{"id":135,"title":136},"failure-modes","Hibamódok és a hozzájuk tartozó védőkorlát",{"id":138,"title":139},"rollout","Bevezetés anélkül, hogy PR-ekbe fulladnánk",{"id":141,"title":142},"sources","Források",[144,148,151,154,157,158,161,170,179,243,246,247,250,253,255,258,259,262,269,276,292,293,296,299,301,304,305,308,310,322,325,326,329,332,344,357,358,361,398,401,404,405,408,459,462,463,466,481,484,485],{"type":145,"content":146},"paragraph",[147],"A kódoló ügynök régen olyasmi volt, amit néztél. Beírtál egy kérést, jóváhagytál minden parancsot, és vártál a diffre. A mai felhős ügynökök megváltoztatták ezt: egy feladatot átadsz egy sornak, bezárod a laptopot, és egy branchre vagy pull requestre térsz vissza. Az OpenAI Codex Cloud, a GitHub Copilot Cloud Agent, a Claude Code felhős sessionjei és a Google Jules ugyanezt a mintát követik, eltérő limitekkel és eltérő elképzeléssel arról, mihez nyúlhat az ügynök.",{"type":145,"content":149},[150],"Ez kényelmi funkciónak hangzik. Valójában a munkaegység változik meg. Az aszinkron ügynök olyan artefaktumokat termel, amiket másoknak review-zniuk kell, és a repó workflow minden gyenge pontja gépi sebességgel láthatóvá válik: homályos issue-k, lassú CI, hiányzó branch protection, olvasatlan backlog. A DORA 2025-ös felmérése szerint a technológiai szakemberek 90%-a használ AI-t munkában, miközben 30% kevés vagy semmilyen bizalmat nem érez az AI-generált kód iránt; ugyanez a jelentés a magasabb adoptációt nagyobb áteresztőképességgel és nagyobb instabilitással is összeköti. Ez a cikk a workflow-ról szól: sor, sandbox, CI-kapu, emberi review, költségmérés és hibamódok.",{"type":152,"level":153,"id":111,"text":112},"heading",2,{"type":145,"content":155},[156],"A szinkron ügynök rád vár, így az áteresztőképessége a figyelmed. Az aszinkron ügynök felügyelet nélkül fut, budgetet fogyaszt, és olyan munkát ad, ami ugyanabba a review-pipeline-ba kerül, mint egy kolléga branch-e. A csere párhuzamos próbálkozások verifikációs munkáért — és csak a géppel ellenőrizhető „kész” definíciójú feladatok tartoznak ebbe a cserébe.",{"type":152,"level":153,"id":114,"text":115},{"type":145,"content":159},[160],"A brandinget lehúzva a pipeline mindenhol ugyanaz. A feladat bekerül egy sorba; egy worker környezetet készít; az ügynök szerkeszt és parancsokat futtat; az eredmény branch és pull request lesz; fut a CI; egy ember review-z; a merge vagy megtörténik, vagy visszaküldi a feladatot. Az érdekes különbségek az egyes szakaszok limitjeiben vannak, nem a diagramban.",{"type":162,"attrs":163,"inner":167,"caption":168},"diagram",{"viewBox":164,"role":165,"aria-labelledby":166},"0 0 720 190","img","bga1-t bga1-d","\u003Ctitle id=\"bga1-t\">Aszinkron ügynök-PR pipeline\u003C\u002Ftitle>\u003Cdesc id=\"bga1-d\">Egy feladat a sorból egy szűk sandboxba kerül, teszteket futtat, draft pull requestet nyit, átmegy a kötelező CI-checkeken, és eljut az emberi review-ig. A CI vagy a review visszacsatolása újabb futásra küldheti.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"bga1-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=\"12\" y=\"47\" width=\"96\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"60\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Sor\u003C\u002Ftext>\u003Ctext x=\"60\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">egy feladat\u003C\u002Ftext>\u003Cpath d=\"M108 85H132\" class=\"d-line\" marker-end=\"url(#bga1-ah)\" \u002F>\u003Crect x=\"132\" y=\"47\" width=\"96\" height=\"76\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"180\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Sandbox\u003C\u002Ftext>\u003Ctext x=\"180\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">szűk VM\u003C\u002Ftext>\u003Cpath d=\"M228 85H252\" class=\"d-line\" marker-end=\"url(#bga1-ah)\" \u002F>\u003Crect x=\"252\" y=\"47\" width=\"96\" height=\"76\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"300\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Futás\u003C\u002Ftext>\u003Ctext x=\"300\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">teszt először\u003C\u002Ftext>\u003Cpath d=\"M348 85H372\" class=\"d-line\" marker-end=\"url(#bga1-ah)\" \u002F>\u003Crect x=\"372\" y=\"47\" width=\"96\" height=\"76\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"420\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Draft PR\u003C\u002Ftext>\u003Ctext x=\"420\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">branch\u003C\u002Ftext>\u003Cpath d=\"M468 85H492\" class=\"d-line\" marker-end=\"url(#bga1-ah)\" \u002F>\u003Crect x=\"492\" y=\"47\" width=\"96\" height=\"76\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"540\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">CI\u003C\u002Ftext>\u003Ctext x=\"540\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">kötelező\u003C\u002Ftext>\u003Cpath d=\"M588 85H612\" class=\"d-line\" marker-end=\"url(#bga1-ah)\" \u002F>\u003Crect x=\"612\" y=\"47\" width=\"96\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"660\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Review\u003C\u002Ftext>\u003Ctext x=\"660\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">ember mergel\u003C\u002Ftext>\u003Cpath d=\"M660 123V150H180V123\" class=\"d-line-accent d-dash\" marker-end=\"url(#bga1-ah)\" \u002F>\u003Ctext x=\"420\" y=\"168\" text-anchor=\"middle\" class=\"d-small\">visszacsatolás: javítás, újrafuttatás\u003C\u002Ftext>",[169],"A hurok a fontos rész. Az a pipeline, amelyik nem küldi vissza kontextussal a sikertelen futást, minden CI-hibából új feladatot csinál.",{"type":145,"content":171},[172,173,178],"Két tulajdonság különbözteti meg a feladatot a chattől: az ügynöknek kell egy ellenőrizhető kész-definíció, és a környezetnek elég reprodukálhatónak kell lennie ahhoz, hogy a zöld futás jelentsen valamit. Az az ügynök, amelyik nem tudja futtatni a tesztjeidet, tippel, és a tippelésekkel teli PR rosszabb, mint a semmilyen PR. A hurok mechanikáját ",{"tag":174,"to":175,"children":176},"link","\u002Fblog\u002Fagent-loop-explained",[177],"az agent loop magyarázata"," tárgyalja.",{"type":180,"head":181,"rows":190},"table",[182,184,186,188],[183],"Rendszer",[185],"Hogyan kerül be",[187],"Izoláció és hálózat",[189],"Publikált limitek",[191,205,214,230],[192,194,201,203],[193],"GitHub Copilot Cloud Agent",[195,196,200],"Issue hozzárendelése, ",{"tag":197,"children":198},"code",[199],"@copilot"," említése vagy indítás az agents panelről",[202],"Ephemeral GitHub Actions környezet; alapból bekapcsolt firewall",[204],"59 perc sessionönként; egy branch és egy PR feladatonként; nem approve-olhat és nem mergelhet",[206,208,210,212],[207],"OpenAI Codex Cloud",[209],"Feladat a Codex Cloudban vagy GitHubról, Linearról, Slackből",[211],"Feladatonkénti konténer; az ügynök internet alapból ki; a setup secretjei az ügynökfázis előtt törlődnek",[213],"Konténer akár 12 óráig cache-elve; PR kérésre",[215,217,226,228],[216],"Claude Code Cloud",[218,221,222,225],{"tag":197,"children":219},[220],"claude.ai\u002Fcode",", ",{"tag":197,"children":223},[224],"claude --cloud"," vagy routine",[227],"Anthropic-kezelt VM; korlátozott hálózat; git credentialök a sandboxon kívül",[229],"A csomag limitjébe számít; az idle sessionök lejárnak",[231,233,239,241],[232],"Google Jules",[234,235,238],"Prompt, ",{"tag":197,"children":236},[237],"jules"," label vagy API-session",[240],"Google Cloud VM internet-hozzáféréssel",[242],"15, 100 vagy 300 feladat naponta; 3, 15 vagy 60 párhuzamosan",{"type":145,"content":244},[245],"Ezek alapértékek, nem plafonok. A saját runner, az egyedi környezetek és a nagyobb runnerok elmozdítanak belőlük. Ami nem mozdul, az a forma: sor, szűk végrehajtási környezet, branch, kapu és reviewer.",{"type":152,"level":153,"id":117,"text":118},{"type":145,"content":248},[249],"Az aszinkron ügynök nem tudja megkérdezni, mire gondoltál — vagy igen, de a válasz órák múlva érkezik. Ezért a sorba állított feladat a specifikáció: egy megfigyelhető cél, az azt bizonyító parancs, az engedélyezett útvonalak és a nem-célok. Ha az issue-sablon nem tudja ezt kifejezni, a feladat nem kész az ügynökre.",{"type":145,"content":251},[252],"A duplikátumok a sorprobléma legvilágosabb jelei. 600 elutasított ügynök-PR kézzel kódolt mintájában 142 — 23% — azért záródott be, mert a munka már máshol létezett. Az ügynök nem rossz kódot írt, hanem olyat, amire senkinek nem volt szüksége. Sorba állítás előtt deduplikálj, ne a PR megnyitása után.",{"type":197,"code":254},"type AgentTask = {\n  id: string;                 \u002F\u002F dedupe key: repo + issue + base commit\n  repo: string;\n  base: string;\n  goal: string;               \u002F\u002F one sentence, testable\n  acceptance: string[];       \u002F\u002F observable outcomes\n  testCommand: string;        \u002F\u002F the agent must run this\n  allowedPaths: string[];     \u002F\u002F everything else is out of scope\n  maxMinutes: number;\n  maxCiRetries: number;\n};",{"type":145,"content":256},[257],"A borítékot a feladattal együtt tárold, és az id legyen a dedupe-kulcs: repó, issue és bázis-commit. Ha a bázisbranch elmozdul, ellene futtasd újra, ne nyiss második PR-t. A WIP-limit nélküli sor PR-generátor; én reviewerenként korlátozom a feladatokat, nem ügynökönként.",{"type":152,"level":153,"id":120,"text":121},{"type":145,"content":260},[261],"Három határ dönti el a blast radius-t: mit írhat az ügynök, mit ér el a hálózaton, és milyen credentialöket költhet. A hosztolt termékek másképp döntenek, és a különbségek fontosabbak, mint a modell neve a feladatborítékban.",{"type":145,"content":263},[264,265,268],"A GitHub Copilot Cloud Agent ephemeral GitHub Actions környezetben fut, alapból bekapcsolt firewall-lal, csak egyetlen branchre pusholhat, és a ",{"tag":197,"children":266},[267],"git push"," parancsot nem tudja közvetlenül futtatni. A Codex Cloud a setup-szkripteket internet-hozzáféréssel futtatja, majd az ügynök internetét alapból kikapcsolja; a secretek csak setup közben érhetők el, és az ügynökfázis előtt törlődnek. A Claude Code Cloud a git credentialöket és signing keyeket a sandboxon kívül tartja, és proxyn keresztül csatolja.",{"type":145,"content":270},[271,272,275],"A hiba, hogy a sandboxot tekintjük a teljes biztonsági modellnek. Az egy réteg. Az a branch, amelyen a CI repository-secretekkel fut, végrehajtási út, és az az ügynök, amelyik szerkesztheti a ",{"tag":197,"children":273},[274],".github\u002Fworkflows"," fájlt, megváltoztathatja ezt az utat. A Copilot alapértelmezése tanulságos: a PR-jeiből induló workflow-k addig nem futnak, amíg egy írási jogú felhasználó jóvá nem hagyja őket. Ez külön kontroll a firewall mellett, és mindkettő kell.",{"type":277,"variant":278,"title":279,"body":280},"callout","warn","A sandbox a hostot védi, nem a repót",[281],[282,283,286,287,291],"Az izoláció megakadályozza, hogy az ügynök a laptopodat vagy a szomszédok adatait olvassa. Nem akadályozza meg a rossz commitot, a felhígított tesztet vagy a később secreteket kapó workflow szerkesztését. Kezeld minden ügynök-branchet idegen hozzájárulásként: védd a default branchet, kérj checkeket és review-t, korlátozd, ki hagyhatja jóvá a workflow-futásokat, és tégy ",{"tag":197,"children":284},[285],"CODEOWNERS","-t a CI- és tesztfájlokra. Az ",{"tag":174,"to":288,"children":289},"\u002Fblog\u002Fsandboxing-coding-agents-ci-checklist",[290],"AI agent sandbox checklist"," sorban végigmegy a rétegeken.",{"type":152,"level":153,"id":123,"text":124},{"type":145,"content":294},[295],"Az aszinkron nem végtelen. A Copilot sessionönként 59 percre korlátoz, és nem engedi meghosszabbítani. A Claude Code csak akkor cache-eli a setup-szkriptet, ha körülbelül öt percen belül végez, az idle felhős sessionök pedig visszakerülnek. A Codex a konténer állapotát legfeljebb 12 óráig cache-eli — ez teljesítményjellemző, nem ígéret arra, hogy egy feladat ennyi ideig futhat.",{"type":145,"content":297},[298],"Megszakításra tervezz: commitolj checkpointokat a branchre, írd a tervet fájlba a repóban, és a következő futást az utolsó zöld commitról indítsd. Az a feladat, amelyik nem él túl egy timeoutot, félkész PR-t és egy második takarítófeladatot hagy maga után.",{"type":197,"code":300},"\u002F\u002F Lease longer than the longest allowed run; heartbeat while the agent works.\nconst lease = await queue.claim({ visibilityTimeout: 90 * 60 });\ntry {\n  const run = await sandbox.start({\n    task: lease.task,\n    network: \"allowlist\",\n  });\n  const result = await run.wait({ timeoutMs: lease.task.maxMinutes * 60_000 });\n  if (result.exitCode !== 0) throw new Error(result.summary);\n  await git.pushBranch(result.branch);\n  await github.openDraftPr({ branch: result.branch, task: lease.task });\n  await queue.ack(lease.id);\n} catch (error) {\n  await queue.nack(lease.id, { reason: String(error) });\n}",{"type":145,"content":302},[303],"A sor szemantikája fontosabb, mint a termék: a maximális futásnál hosszabb visibility timeout, heartbeat, ack csak a PR után, és dead-letter út. A GitHub Actions, az SQS vagy a Temporal mind kifejezi ezt; a lease nélküli cron job nem.",{"type":152,"level":153,"id":126,"text":127},{"type":145,"content":306},[307],"A branch protection kapuvá teszi a pull requestet. A required checkek lehetnek szigorúak (a branchnek naprakésznek kell lennie) vagy lazák (most mergelj, kockáztasd a törött bázist). A merge queue a PR-t a legfrissebb bázis és az előtte álló PR-ek ellen teszteli, így a zöld valóban arra vonatkozik, ami mergelődni fog.",{"type":197,"code":309},"name: ci\non:\n  pull_request:\n  merge_group:\n\nconcurrency:\n  group: ci-${{ github.ref }}\n  cancel-in-progress: true\n\npermissions:\n  contents: read\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    timeout-minutes: 20\n    steps:\n      - uses: actions\u002Fcheckout@v5\n      - uses: actions\u002Fsetup-node@v4\n        with: { node-version: 22, cache: npm }\n      - run: npm ci\n      - run: npm test -- --run",{"type":145,"content":311},[312,313,316,317,321],"Az ügynök-PR idegen hozzájárulás megbízhatónak tűnő szerzőnévvel. Ezért a workflow-jóváhagyás, a minimális ",{"tag":197,"children":314},[315],"permissions"," és a branch protection a design része, nem utólagos takarítás. Ugyanez az elv áll a ",{"tag":174,"to":318,"children":319},"\u002Fblog\u002Fharness-engineering-coding-agents",[320],"coding agentek harness engineeringjében",": a guide-ok megmondják az ügynöknek, milyen a jó, a szenzorok megmondják neki — és neked —, amikor elhibázta.",{"type":145,"content":323},[324],"Egy piros pipeline nem csak az újrafuttatásba kerül. A 33 596 PR-t vizsgáló tanulmányban minden további elbukott CI-check körülbelül 15%-kal alacsonyabb merge-eséllyel járt. A bukó check elutasítási jel, ami halmozódik. Tedd gyorssá és determinisztikussá a suite-ot, mielőtt ügynököket skálázol; különben retry-ket vásárolsz, nem áteresztőképességet.",{"type":152,"level":153,"id":129,"text":130},{"type":145,"content":327},[328],"Az empirikus kép érdekesebb az anekdotánál. Ehsani és munkatársai öt kódoló ügynöktől származó 33 596 pull requestet elemeztek: 71,48% mergelődött. 600 elutasított PR kézzel kódolt mintájában a reviewer-magára hagyás volt a legnagyobb kategória 38%-kal, majd a duplikátumok 23%-kal és a CI- vagy teszthibák 17%-kal. Csak 2% számított ügynökszintű problémának. Peralta és munkatársai 11 048 zárt ügynök-PR-t vizsgáltak, és azt találták, hogy az elutasításoknak csak 35,7%-a volt egyértelmű ügynökhiba; 31,2% workflow-korlát, 33,1% pedig nem mutatott megfigyelhető indokot.",{"type":145,"content":330},[331],"A következtetés nem az, hogy az ügynökök jók vagy rosszak. A merge-eredmény a workflow-t méri legalább annyira, mint a modellt. A duplikált PR és az elhagyott PR sorehiba. A piros CI gyakran környezethiba. Ha csak az ügynök kódját instrumentálod, mindhármat modellminőségként olvasod.",{"type":333,"ordered":334,"items":335},"list",false,[336,338,340,342],[337],"Nyisd a pull requestet draftként, a feladattal, a tesztparanccsal és a változás rövid összefoglalójával. A reviewernek ne a diffből kelljen rekonstruálnia a kérést.",[339],"Csak zöld required checkek után lehessen a PR-t ready állapotba tenni. A draft, amelyik zölddé válik, jel; a draft, amelyik azért zöld, mert a CI soha nem futott, csapda.",[341],"A teszteket külön változásként review-zni. Kérdezd meg, hogy a teszt a produkciós változás nélkül elbukna-e, és hogy gyengült-e valamelyik assertion.",[343],"Egy reviewer legyen felelős feladatonként, korlátozd a draftjait, és soha ne a kérő legyen az egyetlen approver. A Copilot az utolsó szabályt kikényszeríti; branch protectionnel minden más ügynökre is kikényszeríthető.",{"type":145,"content":345},[346,347,351,352,356],"Ez ugyanaz a kapacitásprobléma, amit ",{"tag":174,"to":348,"children":349},"\u002Fblog\u002Fai-generated-pr-review-bottleneck",[350],"az AI code review szűk keresztmetszetéről szóló cikk"," leír, és ugyanaz a designkérdés, mint a ",{"tag":174,"to":353,"children":354},"\u002Fblog\u002Fhuman-in-the-loop-ai-agents",[355],"human in the loop AI-ügynököknél",": hol kell egy embernek ránéznie, és miért felel? Egy ügynök-PR-nél ez a diff, a tesztek és a rollout-kockázat — nem az ügynök összefoglalója.",{"type":152,"level":153,"id":132,"text":133},{"type":145,"content":359},[360],"Egy aszinkron ügynöknek négy mérője van: modelltokenek, CI-percek, sandbox-idő és emberi review. Az első három látszik a számlán. A negyedik dönti el, hogy a workflow megéri-e egyáltalán.",{"type":180,"head":362,"rows":369},[363,365,367],[364],"Mérő",[366],"Mit fogyaszt",[368],"Kar",[370,377,384,391],[371,373,375],[372],"Modelltokenek",[374],"Input-kontextus, thinking, tool callok és output minden körben",[376],"Szűkebb feladat, kisebb modell ahol elég, maximális körök",[378,380,382],[379],"CI-percek",[381],"Minden push, minden újrafuttatás és a merge queue",[383],"Fail fast, elavult futások megszakítása, flaky tesztek javítása",[385,387,389],[386],"Sandbox-idő",[388],"VM- vagy konténerpercek, a setuppal együtt",[390],"Dependency cache, wall clock korlát, idle sessionök leállítása",[392,394,396],[393],"Emberi review",[395],"A legszűkebb és legkevésbé instrumentált erőforrás",[397],"Kis diffek, WIP-limit reviewerenként, draft először",{"type":145,"content":399},[400],"A szolgáltatók másképp mérnek. A GitHub 2026. június 1-jén a Copilotot használatalapú számlázásra állította: a modellhasználat AI creditben, az ügynök infrastruktúrája Actions-percekben számlázódik. A Codex Cloud feladatai a helyi üzenetekkel közös csomagkeretet használják, és az OpenAI egy tipikus GPT-5.6 Sol feladatot 2–15 creditre becsül. A Claude Code felhős sessionjei a csomag limitjébe számítanak, külön VM-díj nélkül. A Jules feladatszámot és párhuzamosságot ad el: 15\u002F3 a belépőn, 100\u002F15 Pro-n, 300\u002F60 Ultra-n.",{"type":145,"content":402},[403],"A mergelt pull requestre jutó költséget mérd, ne a sessionre jutót: tokenek plusz CI plusz sandbox plusz review-percek, osztva a mergelt PR-ekkel. Az olcsó feladat, ami soha nem mergelődik, drága; a drága feladat, ami egy hét munkát spórol meg, olcsó. A párhuzamosságot korlátozd, mielőtt a promptokat optimalizálod.",{"type":152,"level":153,"id":135,"text":136},{"type":145,"content":406},[407],"A hibamódok elég kiszámíthatók ahhoz, hogy tervezz ellenük. A százalékok az elutasított ügynök-PR-ek kézzel kódolt mintájából származnak, tehát azt írják le, hogyan néz ki az elutasítás, nem az összes feladatra vonatkozó alaprátát.",{"type":180,"head":409,"rows":416},[410,412,414],[411],"Hiba",[413],"Tünet",[415],"Védőkorlát",[417,424,431,438,445,452],[418,420,422],[419],"Duplikált munka",[421],"Két PR ugyanarra az issue-ra; az egyiket elavultként zárják (a minta 23%-a)",[423],"Dedupe-kulcs, claim label, nyitott és nemrég zárt PR-ek keresése sorba állítás előtt",[425,427,429],[426],"Érkezéskor piros",[428],"Az ügynök olyan PR-t nyit, amelyik azonnal elbukik a CI-n (17%)",[430],"Tesztparancs futtatása a sandboxban; ready for review csak zöld checkek után",[432,434,436],[433],"Reviewer elhagyása",[435],"A PR érdemi emberi review nélkül marad, majd elavultan zárják (38%)",[437],"Reviewer kijelölése nyitáskor, SLA, elavult draftok automatikus zárása",[439,441,443],[440],"Gyengített tesztek",[442],"A diff úgy teszi át a tesztet, hogy töröl vagy lazít assertionöket",[444],"CODEOWNERS a teszteken, a teszt-diff külön review-ja, először bukó teszt kérése",[446,448,450],[447],"Prompt injection",[449],"Rejtett utasítások issue-ban, README-ben vagy dependency-oldalon irányítják az ügynököt",[451],"Az issue-szöveg nem megbízható, rejtett karakterek szűrése, secret nélküli ügynökfázis, hálózati allowlist",[453,455,457],[454],"Scope creep",[456],"Egy kis feladatból többfájlos átírás lesz, amit senki nem tud review-zni",[458],"Útvonal-allowlist és diff-budget; a feladatot bontsd, ne bővítsd",{"type":145,"content":460},[461],"Egy további hibamódot könnyű kihagyni, mert sikernek látszik: az ügynök úgy javítja a CI-hibát, hogy megváltoztatja a tesztet. A zöld pipeline csak akkor bizonyíték, ha a teszt megtalálta volna a bugot. A teszt-diffet a produkciós diff előtt olvasd, és bugfixnél kérj egy bukó tesztet, ami reprodukálja az issue-t.",{"type":152,"level":153,"id":138,"text":139},{"type":145,"content":464},[465],"Olyan munkával kezdj, ahol a siker géppel ellenőrizhető és a blast radius kicsi. A 33k PR-t vizsgáló tanulmány a legmagasabb merge-arányt a dokumentációnál (84%), a CI-nál (79%) és a buildnél (74%) találta, a legalacsonyabbat a performance-nál (55%) és a bugfixeknél (64%). Ez a sorrend ésszerű bevezetési terv.",{"type":333,"ordered":467,"items":468},true,[469,471,473,475,477,479],[470],"Válassz egy repót és két feladattípust: a dokumentáció és a tesztlefedettség a legbiztonságosabb kezdés.",[472],"Írd meg a feladatsablont céllal, elfogadási kritériumokkal, tesztparanccsal, engedélyezett útvonalakkal és nem-célokkal.",[474],"Kérj draft PR-t, zöld checkeket és egy emberi jóváhagyást a merge előtt. Először a branch protectiont kapcsold be.",[476],"Korlátozd a párhuzamos munkát reviewerenként és ügynökönként. A sort mérd, ne az ügynök tokenfogyasztását.",[478],"Négy hétig kövesd a merge-arányt, a review-időt, a CI-hibaarányt és a mergelt PR-re jutó költséget, mielőtt bővítesz.",[480],"Bugfixet csak akkor adj hozzá, ha a tesztkészlet elég megbízható ahhoz, hogy a zöld futás jelentsen valamit.",{"type":145,"content":482},[483],"Az aszinkron ügynök szorzó azon a workflow-n, amelybe kerül. Gyors CI-vel, világos felelősséggel és kis PR-ekkel eltünteti a rutinmunkát. Flaky tesztekkel és review-kapacitás nélkül backlogot gyárt, jobb commit üzenetekkel.",{"type":152,"level":153,"id":141,"text":142},{"type":333,"ordered":467,"items":486},[487,491,494,497,500,503,506,509,512,515,518,521],[488],{"tag":489,"href":39,"children":490},"a",[38],[492],{"tag":489,"href":42,"children":493},[41],[495],{"tag":489,"href":45,"children":496},[44],[498],{"tag":489,"href":48,"children":499},[47],[501],{"tag":489,"href":51,"children":502},[50],[504],{"tag":489,"href":54,"children":505},[53],[507],{"tag":489,"href":57,"children":508},[56],[510],{"tag":489,"href":60,"children":511},[59],[513],{"tag":489,"href":63,"children":514},[62],[516],{"tag":489,"href":66,"children":517},[65],[519],{"tag":489,"href":69,"children":520},[68],[522],{"tag":489,"href":72,"children":523},[71],[525,583,652,721],{"slug":526,"published":5,"minutes":527,"category":7,"tags":528,"keywords":534,"about":545,"sources":555,"cover":577,"og":578,"expertise":75,"locales":579,"lang":79,"title":580,"description":581,"coverAlt":582},"agent-tool-design-descriptions-errors",11,[529,530,531,532,533],"AI agents","Tool use","Function calling","MCP","Agent design",[535,536,537,538,539,540,541,542,543,544],"agent tool design","writing tool descriptions for llm","function calling best practices","tool use error handling","mcp tool design","tool calling is_error","how many tools should an agent have","tool search defer_loading","agent computer interface","llm tool schema design",[546,549,552],{"name":547,"url":548},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",{"name":550,"url":551},"Model Context Protocol","https:\u002F\u002Fmodelcontextprotocol.io\u002F",{"name":553,"url":554},"Poka-yoke","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPoka-yoke",[556,559,562,565,568,571,574],{"title":557,"url":558},"Anthropic Engineering: Writing effective tools for agents, with agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fwriting-tools-for-agents",{"title":560,"url":561},"Anthropic Engineering: Building effective agents (Dec 2024)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fbuilding-effective-agents",{"title":563,"url":564},"Claude Platform Docs: Define tools","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fdefine-tools",{"title":566,"url":567},"Claude Platform Docs: Handle tool calls","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fhandle-tool-calls",{"title":569,"url":570},"Claude Platform Docs: Tool search tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Ftool-search-tool",{"title":572,"url":573},"Model Context Protocol specification 2025-11-25: Tools","https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fserver\u002Ftools",{"title":575,"url":576},"OpenAI API Docs: Function calling","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ffunction-calling","\u002Fimages\u002Fblog\u002Fagent-tool-design-descriptions-errors\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fagent-tool-design-descriptions-errors\u002Fog.jpg",[77,78,79],"Eszközök tervezése AI-ágenseknek: nevek, leírások, sémák és hibaüzenetek","Ágenseszközök, amelyeket jól választ és hív a modell: feladatra szabott eszközök, leírások, sémák, tömör válaszok és használható hibaüzenetek.","Három réssel ellátott alapzat; a középső rés fölött pontosan illeszkedő blokk áll, mellette két rossz szélességű blokk.",{"slug":584,"published":5,"minutes":527,"category":7,"tags":585,"keywords":589,"about":602,"sources":612,"cover":646,"og":647,"expertise":75,"locales":648,"lang":79,"title":649,"description":650,"coverAlt":651},"coding-agents-legacy-codebase-migration",[586,9,587,588,12],"Legacy migration","Strangler fig","Testing",[590,591,592,593,594,595,596,597,598,599,600,601],"legacy code migration ai","coding agent legacy codebase","strangler fig pattern ai","characterization tests legacy code","ai code migration review","agent assisted refactoring","legacy modernization coding agent","differential testing migration","shadow traffic migration","ai code review gate","test harness before migration","llm code migration",[603,606,609],{"name":604,"url":605},"Legacy code","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLegacy_code",{"name":607,"url":608},"Characterization test","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCharacterization_test",{"name":610,"url":611},"Strangler fig pattern","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FStrangler_fig_pattern",[613,616,618,621,624,627,630,633,636,639,642,645],{"title":614,"url":615},"Martin Fowler: Strangler Fig (2024)","https:\u002F\u002Fmartinfowler.com\u002Fbliki\u002FStranglerFigApplication.html",{"title":617,"url":608},"Wikipedia: Characterization test",{"title":619,"url":620},"Google Research: Accelerating code migrations with AI (2024)","https:\u002F\u002Fresearch.google\u002Fblog\u002Faccelerating-code-migrations-with-ai\u002F",{"title":622,"url":623},"Ziftci et al.: Migrating Code At Scale With LLMs At Google (arXiv 2504.09691)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2504.09691",{"title":625,"url":626},"Anthropic: Effective harnesses for long-running agents (2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"title":628,"url":629},"Anthropic: Redesigning source control at Anthropic (2026)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fredesigning-source-control",{"title":631,"url":632},"METR: Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity","https:\u002F\u002Fmetr.org\u002Fblog\u002F2025-07-10-early-2025-ai-experienced-os-dev-study\u002F",{"title":634,"url":635},"Chand et al.: Why Industry Migrates and When It Trusts LLMs (ESEM 2026)","https:\u002F\u002Fdrops.dagstuhl.de\u002Fentities\u002Fdocument\u002F10.4230\u002FLIPIcs.ESEM.2026.85",{"title":637,"url":638},"Li et al.: Environment-in-the-Loop: Rethinking Code Migration with LLM-based Agents (arXiv 2602.09944)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2602.09944",{"title":640,"url":641},"AWS: Amazon Q Developer just reached a $260 million dollar milestone (2024)","https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fdevops\u002Famazon-q-developer-just-reached-a-260-million-dollar-milestone\u002F",{"title":643,"url":644},"OpenAI: Why SWE-bench Verified no longer measures frontier coding capabilities (2026)","https:\u002F\u002Fopenai.com\u002Findex\u002Fwhy-we-no-longer-evaluate-swe-bench-verified\u002F",{"title":38,"url":39},"\u002Fimages\u002Fblog\u002Fcoding-agents-legacy-codebase-migration\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcoding-agents-legacy-codebase-migration\u002Fog.jpg",[77,78,79],"Legacy kódbázis migrálása coding agentekkel: strangler fig playbook","Hogyan dolgozik coding agent egy legacy migráción: characterization tesztek először, egy seam feladatonként, review gate-ek és differenciális ellenőrzés.","Rétegek halmaza, a felső kettőt újak váltják, mellettük varrat és pipa.",{"slug":653,"published":654,"minutes":655,"category":7,"tags":656,"keywords":662,"about":674,"sources":682,"cover":715,"og":716,"expertise":75,"locales":717,"lang":79,"title":718,"description":719,"coverAlt":720},"context-rot-compaction-long-running-agents","2026-10-16",10,[657,658,659,660,661],"Context rot","Compaction","Context engineering","Long-running agents","Agent memory",[663,664,665,666,667,668,669,670,671,672,673],"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",[675,678,681],{"name":676,"url":677},"Context window","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model#Context_window",{"name":679,"url":680},"Attention (machine learning)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAttention_(machine_learning)",{"name":547,"url":548},[683,686,689,692,695,697,700,703,706,709,712],{"title":684,"url":685},"Chroma: Context Rot: How Increasing Input Tokens Impacts LLM Performance (Jul 2025)","https:\u002F\u002Fresearch.trychroma.com\u002Fcontext-rot",{"title":687,"url":688},"Liu et al.: Lost in the Middle: How Language Models Use Long Contexts (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.03172",{"title":690,"url":691},"Modarressi et al.: NoLiMa: Long-Context Evaluation Beyond Literal Matching (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.05167",{"title":693,"url":694},"Anthropic: Effective context engineering for AI agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"title":696,"url":626},"Anthropic: Effective harnesses for long-running agents (Nov 2025)",{"title":698,"url":699},"Claude API docs: Compaction at a token threshold","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-threshold",{"title":701,"url":702},"Claude API docs: Compaction on demand","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-on-demand",{"title":704,"url":705},"Claude API docs: Context editing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcontext-editing",{"title":707,"url":708},"Claude API docs: Memory tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fmemory-tool",{"title":710,"url":711},"OpenAI API docs: Compaction","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fcompaction",{"title":713,"url":714},"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",[77,78,79],"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 kis négyzetes prés magas lappköteget nyom rövidre, közben két jegyzet ágazik le.",{"slug":722,"published":654,"minutes":723,"category":7,"tags":724,"keywords":728,"about":739,"sources":746,"cover":762,"og":763,"expertise":75,"locales":764,"lang":79,"title":765,"description":766,"coverAlt":767},"browser-agents-e2e-testing-playwright",7,[725,726,9,532,727],"Playwright","E2E testing","Test automation",[729,730,731,732,733,734,735,736,737,738],"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",[740,742,745],{"name":725,"url":741},"https:\u002F\u002Fplaywright.dev\u002F",{"name":743,"url":744},"End-to-end testing","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSystem_testing",{"name":550,"url":551},[747,750,753,756,759],{"title":748,"url":749},"Playwright docs: Test agents (planner, generator, healer)","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Ftest-agents",{"title":751,"url":752},"Microsoft: Playwright MCP README (MCP vs CLI, accessibility snapshots)","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fplaywright-mcp",{"title":754,"url":755},"Playwright docs: Best practices","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Fbest-practices",{"title":757,"url":758},"Playwright docs: Locators","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Flocators",{"title":760,"url":761},"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",[77,78,79],"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.","Bal oldali kis négyzetek adnak át egy lapos téglalapot a jobb oldali zárt huroknak.",1792245343923]