[{"data":1,"prerenderedAt":780},["ShallowReactive",2],{"blog-agent-tool-design-descriptions-errors-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":25,"sources":35,"cover":57,"og":58,"expertise":59,"locales":60,"lang":63,"title":64,"description":65,"coverAlt":66,"metaTitle":67,"takeaways":68,"faq":74,"toc":90,"blocks":124,"others":520},"agent-tool-design-descriptions-errors","2026-10-17",11,"agents",[9,10,11,12,13],"AI agents","Tool use","Function calling","MCP","Agent design",[15,16,17,18,19,20,21,22,23,24],"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",[26,29,32],{"name":27,"url":28},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",{"name":30,"url":31},"Model Context Protocol","https:\u002F\u002Fmodelcontextprotocol.io\u002F",{"name":33,"url":34},"Poka-yoke","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPoka-yoke",[36,39,42,45,48,51,54],{"title":37,"url":38},"Anthropic Engineering: Writing effective tools for agents, with agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fwriting-tools-for-agents",{"title":40,"url":41},"Anthropic Engineering: Building effective agents (Dec 2024)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fbuilding-effective-agents",{"title":43,"url":44},"Claude Platform Docs: Define tools","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fdefine-tools",{"title":46,"url":47},"Claude Platform Docs: Handle tool calls","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fhandle-tool-calls",{"title":49,"url":50},"Claude Platform Docs: Tool search tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Ftool-search-tool",{"title":52,"url":53},"Model Context Protocol specification 2025-11-25: Tools","https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fserver\u002Ftools",{"title":55,"url":56},"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","ai-engineer",[61,62,63],"en","de","hu","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.","Eszközök tervezése AI-ágenseknek · Balázs Csorba",[69,70,71,72,73],"Az eszközdefiníció prompt szöveg. Az Anthropic szerint a részletes leírás messze a legfontosabb tényező az eszközök teljesítményében.","Feladatokra tervezz eszközt, ne végpontokra: egyetlen schedule_event jobb, mint a list_users, list_events és create_event együtt.","A séma tegye nehézzé a hibázást: enumok, kötelező azonosítók, abszolút útvonalak, strict mode, és semmi olyan argumentum, amelyet a kód már ismer.","Nagy jelértékű eredményt adj vissza, átláthatatlan azonosítók helyett nevekkel, alapból lapozva, és kínálj tömör válaszformátumot.","A hiba utasítás. Eszközeredményként add vissza is_error vagy isError jelzéssel, és mondd meg, mi romlott el és mit próbáljon a modell legközelebb.",[75,78,81,84,87],{"q":76,"a":77},"Milyen hosszú legyen egy eszközleírás?","Az Anthropic eszközönként legalább három-négy mondatot javasol, összetett eszköznél többet: mit csinál az eszköz, mikor kell használni és mikor nem, mit jelent az egyes paraméter, és mik a korlátai. Egy egysoros leírás, például „Lekéri egy ticker árfolyamát”, találgatásra kényszeríti a modellt.",{"q":79,"a":80},"Hány eszközt bír el egy ágens?","Az OpenAI azt javasolja, hogy egy forduló elején 20-nál kevesebb függvény legyen elérhető. Az Anthropic szerint a Claude eszközválasztása 30–50 eszköz felett romlik, és 10 vagy több eszköznél, illetve 10 000 tokennél nagyobb definícióknál tool searchöt ajánl. E felett igény szerint töltsd be az eszközöket, ne mind előre.",{"q":82,"a":83},"Kivételként dobjam az eszközhibát, vagy adjam vissza a modellnek?","A végrehajtási hibákat add vissza a modellnek eszközeredményként, a Claude API-nál is_error true, MCP-ben isError true jelzéssel, hogy javítani tudja magát. Az MCP-specifikáció a JSON-RPC protokollhibákat az ismeretlen eszközökre és a hibás formátumú kérésekre tartja fenn, ezekből a modellek ritkábban tudnak helyreállni.",{"q":85,"a":86},"Jobb, ha minden API-végponthoz külön eszköz van?","Általában nem. Az Anthropic nem javasolja, hogy minden végpontot becsomagolj, inkább a többlépéses munkát vond össze egy eszközbe, az OpenAI pedig azt mondja, hogy a mindig egymás után hívott függvényeket egyesítsd. Kevesebb, de képesebb eszköz kevesebb választási hibát okoz és kontextust is spórol.",{"q":88,"a":89},"Megbízhatok az MCP-eszközannotációkban, például a read-only jelzésben?","Alapból nem. Az MCP-specifikáció szerint a kliensnek megbízhatatlannak kell tekintenie az eszközannotációkat, hacsak nem megbízható szervertől származnak. Megjelenítéshez és tippként használd őket, de a jogosultságokat, a megerősítéseket és a rate limiteket a saját kódodban érvényesítsd.",[91,94,97,100,103,106,109,112,115,118,121],{"id":92,"title":93},"tools-are-prompts","Az eszközdefiníciók promptok",{"id":95,"title":96},"choose-tools","Feladatokra építs eszközt, ne végpontokra",{"id":98,"title":99},"naming","Nevek és névterek",{"id":101,"title":102},"descriptions","Leírások, amelyek alapján a modell cselekedni tud",{"id":104,"title":105},"schemas","Sémák, amelyek megnehezítik a hibázást",{"id":107,"title":108},"responses","Válaszok: sok jel, kevés token",{"id":110,"title":111},"errors","A hibaüzenet utasítás",{"id":113,"title":114},"many-tools","Amikor nő az eszközlista",{"id":116,"title":117},"safety","Az eszközök támadási felületet jelentenek",{"id":119,"title":120},"evaluate-tools","Értékeld ki az eszközöket, aztán iterálj",{"id":122,"title":123},"sources","Források",[125,134,137,140,147,150,151,170,238,251,252,277,297,298,301,303,310,311,314,358,366,367,374,383,391,392,403,405,412,419,420,427,449,457,458,464,477,478,481,494,495],{"type":126,"content":127},"paragraph",[128,129,133],"Amikor egy ágens rosszul viselkedik, az első ösztön a rendszerprompt átírása. A probléma gyakran egy réteggel lejjebb van, az eszközökben: egy név, amely kétfélét is jelenthet, egy leírás, amely sosem mondja meg, mikor ne használd, egy ",{"tag":130,"children":131},"code",[132],"user"," nevű paraméter, amely bármit elfogad, egy keresés, amely 40 000 token JSON-t ad vissza, vagy egy hiba, amely csak annyit mond: „failed”. A modell mindezt minden fordulóban elolvassa, és csak annyira lehet jó, amennyire az, amit olvas.",{"type":126,"content":135},[136],"Ez az útmutató összegyűjti, mit mond az Anthropic, az OpenAI és az MCP-specifikáció az eszköztervezésről, és konkrét szabályokká alakítja: milyen eszközöket építs, hogyan nevezd el és írd le őket, hogyan formáld a sémát, hogy nehéz legyen hibázni, mit adj vissza, hogyan jelezd a hibát, hogy a modell helyreálljon, és mit tegyél, ha az eszközlista néhány tucat fölé nő. A példák olyan B2B-webshop- és back-office-ágensekből származnak, amilyeneket építek.",{"type":138,"level":139,"id":92,"text":93},"heading",2,{"type":126,"content":141},[142,143,146],"A Claude API-nál a ",{"tag":130,"children":144},[145],"tools"," paraméterből rendszerprompt lesz: az API az eszközdefiníciókból, az eszközkonfigurációból és a saját rendszerpromptodból egy speciális promptot állít össze. A nevek, a leírások és a paraméterleírások tehát a szó legszorosabb értelmében utasítások. Az Anthropic dokumentációja a rendkívül részletes leírást „messze a legfontosabb tényezőnek” nevezi az eszközök teljesítményében, a 2024. decemberi Building effective agents esszé pedig arról számol be, hogy a csapat a SWE-bench-ágensénél több időt töltött az eszközök optimalizálásával, mint a teljes promptéval.",{"type":126,"content":148},[149],"Ugyanez az esszé nevet is ad a szakmának: az ágens–számítógép interfészt (ACI) ugyanolyan gondosan kell megtervezni, mint egy emberi felületet, és bele kell helyezkedni a modell helyzetébe. Az OpenAI változata a gyakornokteszt: használná-e helyesen a függvényt valaki, aki csak azt látja, amit a modell? Ha a válaszhoz beszélgetni kellene veled, a definíció hiányos.",{"type":138,"level":139,"id":95,"text":96},{"type":126,"content":152},[153,154,157,158,161,162,165,166,169],"A leggyakoribb hiba, hogy minden REST-végponthoz külön eszközt generálunk. Az Anthropic 2025. szeptemberi, eszközírásról szóló cikke kertelés nélkül kimondja, hogy több eszköz nem mindig vezet jobb eredményre, és példaként egy ",{"tag":130,"children":155},[156],"schedule_event"," eszközt hoz, amely megkeresi a szabad időpontot és lefoglalja a megbeszélést, ahelyett hogy az ágensnek külön ",{"tag":130,"children":159},[160],"list_users",", ",{"tag":130,"children":163},[164],"list_events"," és ",{"tag":130,"children":167},[168],"create_event"," eszközt kellene egymás után hívnia. Az OpenAI a másik oldalról mondja ugyanezt: a mindig egymás után hívott függvényeket vond össze, és egy forduló elején 20-nál kevesebb függvény legyen elérhető.",{"type":171,"head":172,"rows":179},"table",[173,175,177],[174],"Végpontra szabott",[176],"Feladatra szabott",[178],"Miért segít",[180,197,209,226],[181,191,195],[182,161,185,161,188],{"tag":130,"children":183},[184],"get_customer",{"tag":130,"children":186},[187],"list_orders",{"tag":130,"children":189},[190],"get_order_lines",[192],{"tag":130,"children":193},[194],"get_customer_context(customer_id)",[196],"Egy hívás visszaadja, ami egy supportkérdés megválaszolásához kell",[198,203,207],[199,202],{"tag":130,"children":200},[201],"list_products"," + client-side filtering",[204],{"tag":130,"children":205},[206],"search_products(query, filters, limit)",[208],"A szűrés a kódban történik, nem a kontextusablakban",[210,220,224],[211,161,214,161,217],{"tag":130,"children":212},[213],"create_pr",{"tag":130,"children":215},[216],"review_pr",{"tag":130,"children":218},[219],"merge_pr",[221],{"tag":130,"children":222},[223],"pull_request(action, ...)",[225],"Az Anthropic javaslata: a rokon műveleteket egy action paraméter mögé gyűjtsd",[227,232,236],[228,231],{"tag":130,"children":229},[230],"read_logs"," (full dump)",[233],{"tag":130,"children":234},[235],"search_logs(query, since, context_lines)",[237],"A releváns sorokat adja vissza környezettel, nem mindent",{"type":126,"content":239},[240,241,244,245,250],"Az összevonásnak határa van: egyetlen ",{"tag":130,"children":242},[243],"do_anything(json)"," eszköz minden döntést egy argumentumba rejt, és lehetetlenné teszi a jogosultságkezelést. Én a kockázat mentén vágok. Az olvasás lehet tág; az írás, a fizetés és minden visszafordíthatatlan művelet saját, szűk sémájú eszközt kap, hogy egy jóváhagyási kapu, ahogy a ",{"tag":246,"to":247,"children":248},"link","\u002Fblog\u002Fhuman-in-the-loop-ai-agents",[249],"human in the loop AI-ágenseknél"," cikkben leírtam, pontosan rájuk célozhasson.",{"type":138,"level":139,"id":98,"text":99},{"type":126,"content":253},[254,255,258,259,261,262,264,265,268,269,272,273,276],"Amint egy ágens több szolgáltatás eszközeit látja, a nevek ütköznek: ",{"tag":130,"children":256},[257],"search"," a CRM-ből, ",{"tag":130,"children":260},[257]," a wikiből, ",{"tag":130,"children":263},[257]," a webshopból. Mindkét Anthropic-forrás szolgáltatás és erőforrás szerinti előtagot javasol, például ",{"tag":130,"children":266},[267],"github_list_prs"," vagy ",{"tag":130,"children":270},[271],"slack_send_message",", az eszközírásról szóló cikk pedig hozzáteszi, hogy az előtagos és utótagos sémák mérhetően más eredményt adnak, ezért teszteld a sajátodat. A technikai korlátok bőkezűek: a Claude API a ",{"tag":130,"children":274},[275],"^[a-zA-Z0-9_-]{1,128}$"," mintának megfelelő neveket fogadja el, az MCP-specifikáció szerint pedig a nevek 1–128 karakteresek, kis- és nagybetűérzékenyek, szerverenként egyediek legyenek, és betűkből, számjegyekből, aláhúzásból, kötőjelből és pontból álljanak.",{"type":126,"content":278},[279,280,282,283,286,287,161,290,268,293,296],"A paraméternevek ugyanilyen gondosságot érdemelnek. Az Anthropic példája apró, de mindenhová érdemes átvenni: ",{"tag":130,"children":281},[132]," nevű paraméter helyett ",{"tag":130,"children":284},[285],"user_id",". Webshopban ebből ",{"tag":130,"children":288},[289],"sku",{"tag":130,"children":291},[292],"article_number",{"tag":130,"children":294},[295],"product_id"," lesz; azt válaszd, amit a felhasználóid mondanak, és a formátumot írd le a paraméter leírásában.",{"type":138,"level":139,"id":101,"text":102},{"type":126,"content":299},[300],"Az Anthropic ellenőrzőlistája egy leíráshoz: mit csinál az eszköz, mikor kell és mikor nem szabad használni, mit jelent az egyes paraméter és hogyan változtatja a viselkedést, valamint a fontos megkötések, például hogy mit nem ad vissza az eszköz. Eszközönként legalább három-négy mondatot kér. Az eszközírásról szóló cikk egy új kolléga betanításaként írja le: tedd kimondottá a kimondatlan tudást, a lekérdezési formátumokat, a szakzsargont és az erőforrások kapcsolatait is.",{"type":130,"code":302},"{\n  \"name\": \"shop_search_products\",\n  \"description\": \"Searches the B2B catalogue by keyword, part number or attribute and returns up to `limit` matching products with name, SKU, price for the current customer and stock status. Use it when the user asks about products, availability or alternatives. Do not use it for order history (use shop_get_orders) or for prices of other customers. Exact part numbers such as 'ART-10001' match only when passed in `sku`, not in `query`. Results are sorted by relevance; if there are more, the response contains `next_cursor`.\",\n  \"input_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"query\": { \"type\": \"string\", \"description\": \"Free-text search in German or English, e.g. 'Edelstahl Schraube M8'\" },\n      \"sku\": { \"type\": \"string\", \"description\": \"Exact SKU, e.g. 'ART-10001'. Overrides query.\" },\n      \"in_stock_only\": { \"type\": \"boolean\", \"description\": \"Only return products available now. Default false.\" },\n      \"limit\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 25, \"description\": \"Default 10.\" },\n      \"response_format\": { \"type\": \"string\", \"enum\": [\"concise\", \"detailed\"], \"description\": \"concise: name, SKU, price, stock. detailed: adds attributes and documents.\" }\n    },\n    \"additionalProperties\": false\n  },\n  \"input_examples\": [ { \"query\": \"Edelstahl Schraube M8\", \"in_stock_only\": true }, { \"sku\": \"ART-10001\" } ]\n}",{"type":126,"content":304},[305,306,309],"Összetett bemenetekhez a Claude API elfogadja az ",{"tag":130,"children":307},[308],"input_examples"," mezőt: példabemenetek tömbjét, amelyeknek meg kell felelniük a sémának, különben a kérés 400-zal elbukik. Egyszerű példánként nagyjából 20–50, beágyazott objektumoknál 100–200 tokenbe kerülnek. Az OpenAI egy megfontolandó figyelmeztetést tesz hozzá: a példák a hagyományos modelleknek segítenek, a gondolkodó modelleknél viszont ronthatják a teljesítményt, ezért mérj, mielőtt megtartod őket.",{"type":138,"level":139,"id":104,"text":105},{"type":126,"content":312},[313],"A Building effective agents a gyártásból kölcsönöz egy fogalmat: poka-yoke az eszközöknek, vagyis úgy módosítani az argumentumokat, hogy nehezebb legyen hibázni. A példa konkrét. A SWE-bench-ágens könyvtárváltás után rendre elrontotta a relatív fájlútvonalakat, ezért a csapat úgy módosította az eszközt, hogy abszolút útvonalat követeljen, és a modell ezután hibátlanul használta. Ugyanez az ötlet más formákban:",{"type":315,"items":316},"list",[317,331,336,353],[318,322,323,326,327,330],{"tag":319,"children":320},"strong",[321],"Enum szabad szöveg helyett."," Az OpenAI ellenpéldája a ",{"tag":130,"children":324},[325],"toggle_light(on: bool, off: bool)",", amely érvénytelen állapotokat is enged; egyetlen ",{"tag":130,"children":328},[329],"state"," enum nem.",[332,335],{"tag":319,"children":333},[334],"Ne kérd azt, amit a kód tud."," Ha a munkamenet már ismeri az ügyfelet és a rendelést, a kódban add hozzá. OpenAI: ne töltesd ki a modellel azokat az argumentumokat, amelyeket már tudsz.",[337,340,341,344,345,348,349,352],{"tag":319,"children":338},[339],"Kapcsold be a strict mode-ot."," Az OpenAI azt javasolja, hogy mindig legyen bekapcsolva; ",{"tag":130,"children":342},[343],"additionalProperties: false"," kell hozzá, és minden property a ",{"tag":130,"children":346},[347],"required"," listában, az opcionális mezők nullable típussal. A Claude API-nál a ",{"tag":130,"children":350},[351],"strict: true"," garantálja, hogy a bemenet megfeleljen a sémának.",[354,357],{"tag":319,"children":355},[356],"Magyarázatot kérj, ne gondolatmenetet."," Az Anthropic figyelmeztet, hogy egy olyan paraméter, amely a modell lépésenkénti gondolkodását kéri, elutasítást válthat ki; helyette rövid magyarázatot vagy bizonyítékot kérj.",{"type":126,"content":359},[360,361,365],"A szigorú séma a formát garantálja, nem az igazságot. Egy érvényes cikkszámformátum is jelölhet nem létező terméket, ezért a szervernek validálnia kell, és használható hibát kell visszaadnia. A sémakényszerítés garanciáit és hézagait a ",{"tag":246,"to":362,"children":363},"\u002Fblog\u002Fstructured-outputs-json-schema-llm",[364],"strukturált kimenetek JSON Schemával"," cikk írja le.",{"type":138,"level":139,"id":107,"text":108},{"type":126,"content":368},[369,370,373],"Bármit ad vissza egy eszköz, az a kontextusablakba kerül, és ott marad a futás végéig. Az Anthropic tanácsa, hogy csak nagy jelértékű információt adj vissza, és azt találták, hogy a tetszőleges alfanumerikus UUID-k értelmes nevekre cserélése javította a pontosságot visszakeresési feladatokban. Egy ",{"tag":130,"children":371},[372],"response_format"," enumot is javasolnak, hogy az ágens választhasson: a Slack-példában a részletes válasz 206, a tömör 72 tokent használt, nagyjából a harmadát. Mindenhez, ami nagy lehet, tegyél lapozást, tartománykiválasztást, szűrést vagy csonkítást észszerű alapértékekkel; összehasonlításként a Claude Code alapból 25 000 tokenben korlátozza az eszközválaszokat.",{"type":375,"attrs":376,"inner":380,"caption":381},"diagram",{"viewBox":377,"role":378,"aria-labelledby":379},"0 0 720 170","img","atd1-t atd1-d","\u003Ctitle id=\"atd1-t\">Egy eszközhívás a választástól az eredményig\u003C\u002Ftitle>\u003Cdesc id=\"atd1-d\">A modell a név és a leírás alapján eszközt választ, kitölti a sémát, a szerver validál és végrehajt, majd tömör eredményt vagy olyan tanulságos hibát ad vissza, amely alapján a modell cselekedni tud.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"atd1-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\">Választás\u003C\u002Ftext>\u003Ctext x=\"79\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">név + leírás\u003C\u002Ftext>\u003Cpath d=\"M138 85H158\" class=\"d-line\" marker-end=\"url(#atd1-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\">Kitöltés\u003C\u002Ftext>\u003Ctext x=\"220\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">szigorú séma\u003C\u002Ftext>\u003Cpath d=\"M279 85H299\" class=\"d-line\" marker-end=\"url(#atd1-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\">Validálás\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">szerveroldalon\u003C\u002Ftext>\u003Cpath d=\"M419 85H439\" class=\"d-line\" marker-end=\"url(#atd1-ah)\" \u002F>\u003Crect x=\"441\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"500\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Eredmény\u003C\u002Ftext>\u003Ctext x=\"500\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">tömör, lapozott\u003C\u002Ftext>\u003Cpath d=\"M560 85H580\" class=\"d-line\" marker-end=\"url(#atd1-ah)\" \u002F>\u003Crect x=\"582\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-box d-fill-accent\" \u002F>\u003Ctext x=\"641\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Vagy hiba\u003C\u002Ftext>\u003Ctext x=\"641\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">mit próbáljon\u003C\u002Ftext>",[382],"Minden doboz olyan pont, ahol az eszköz tervezője, nem a modell dönti el, mennyire valószínű, hogy a következő lépés jól sikerül.",{"type":126,"content":384},[385,386,390],"A nagy eredmények a ",{"tag":246,"to":387,"children":388},"\u002Fblog\u002Fcontext-rot-compaction-long-running-agents",[389],"kontextusromlás hosszan futó ágenseknél"," fő okai is. Egy eszköz, amely kurzort és az első tíz találatot adja vissza, most olcsóbb, és ötven fordulóval később is élesebben tartja az ágenst.",{"type":138,"level":139,"id":110,"text":111},{"type":126,"content":393},[394,395,398,399,402],"Egy eszközhiba a következő prompt, amelyet a modell elolvas, ezért úgy is írd meg. A Claude API a végrehajtási hibát normál ",{"tag":130,"children":396},[397],"tool_result","-ként szállítja ",{"tag":130,"children":400},[401],"is_error: true"," jelzéssel, és az Anthropic tippje konkrét: általános „failed” helyett mondd meg, mi romlott el és mit próbáljon legközelebb, például „Rate limit exceeded. Retry after 60 seconds.” Érvénytelen hívásnál, például hiányzó paraméternél, a Claude kétszer-háromszor újrapróbálja javításokkal, mielőtt bocsánatot kérne a felhasználótól, így egy pontos üzenet általában megmenti a futást.",{"type":130,"code":404},"\u002F\u002F Bad: the model learns nothing\n{ \"type\": \"tool_result\", \"tool_use_id\": \"toolu_01\", \"is_error\": true, \"content\": \"Error 422\" }\n\n\u002F\u002F Good: what failed, why, and the next valid move\n{ \"type\": \"tool_result\", \"tool_use_id\": \"toolu_01\", \"is_error\": true,\n  \"content\": \"No product with sku 'ART-1001'. SKUs have 5 digits after 'ART-'. Closest matches: ART-10010 (Edelstahl Schraube M8), ART-10011 (M10). Call shop_search_products with sku set to one of these, or with query if the user gave a description.\" }",{"type":126,"content":406},[407,408,411],"Az MCP formálisan is meghúzza ugyanezt a határt. A specifikáció elválasztja a protokollhibákat, vagyis a szabványos JSON-RPC hibákat ismeretlen eszközre, hibás formátumú kérésre és szerverhibára, az eszköz-végrehajtási hibáktól, amelyeket az eredményen belül ",{"tag":130,"children":409},[410],"isError: true"," jelez: API-hibák, bemenet-validálási hibák, például rossz formátumú dátum, és üzleti logikai hibák. A kliensnek a végrehajtási hibákat tovább kell adnia a modellnek, hogy önmagát javíthassa; a protokollhibákból ritkábban lesz helyreállás.",{"type":413,"variant":414,"title":415,"body":416},"callout","tip","Soha ne adj vissza stack trace-t",[417],[418],"Egy traceback több száz tokenbe kerül, semmi használhatót nem mond a modellnek, és fájlútvonalakat, hosztneveket vagy titkokat szivárogtathat egy olyan kontextusba, amelyet naplózhatnak vagy kiszivárogtathatnak. A trace-t a szerveren naplózd a kérésazonosítóval, és egyetlen mondatot adj vissza, amellyel a modell dolgozni tud.",{"type":138,"level":139,"id":113,"text":114},{"type":126,"content":421},[422,423,426],"Néhány MCP-szerver bekötésével gyorsan száz eszköz gyűlik össze. Az Anthropic számszerűsíti a költséget: egy GitHubot, Slacket, Sentryt, Grafanát és Splunkot használó tipikus beállítás bármilyen munka előtt körülbelül 55 000 token definíciót fogyaszthat, és a Claude eszközválasztó képessége 30–50 elérhető eszköz felett romlik. A tool search eszköz mindkettőre választ ad. Minden definíciót elküldesz, a legtöbbet ",{"tag":130,"children":424},[425],"defer_loading: true"," jelzéssel, a Claude pedig regexszel vagy BM25-tel keres a nevekben, leírásokban és argumentumnevekben, és csak a találatokat tölti be, jellemzően hármat-ötöt, ami az Anthropic szerint több mint 85 százalékkal csökkenti a definíciós tokeneket.",{"type":315,"items":428},[429,434,439,444],[430,433],{"tag":319,"children":431},[432],"Mikor válts:"," az Anthropic 10 vagy több eszköznél, 10 000 token feletti definícióknál vagy több MCP-szervernél javasolja a tool searchöt; 10 alatti, mindig használt eszközöket töltsd be normálisan.",[435,438],{"tag":319,"children":436},[437],"A gyakoriak maradjanak betöltve:"," a három-öt leggyakrabban használt eszközt ne halaszd.",[440,443],{"tag":319,"children":441},[442],"Írj a keresőnek:"," az egységes előtagokkal egy lekérdezés egy egész szolgáltatást eltalál; a leírásokban a felhasználók szavait használd.",[445,448],{"tag":319,"children":446},[447],"A cache ép marad:"," a halasztott eszközök nincsenek a prompt előtagjában, így egy eszköz felfedezése nem érvényteleníti a prompt cache-t.",{"type":126,"content":450},[451,452,456],"Az MCP-szerverek, CLI-k és skillek közötti tágabb választást kódolóágenseknél az ",{"tag":246,"to":453,"children":454},"\u002Fblog\u002Fagents-md-skills-mcp-cli-decision-matrix",[455],"AGENTS.md, skillek, MCP vagy CLI"," cikk tárgyalja.",{"type":138,"level":139,"id":116,"text":117},{"type":126,"content":459},[460,461,463],"Az eszközeredmények gyakran olyan tartalmat hoznak, amely felett nincs kontrollod: weboldalak, beérkező e-mailek, feltöltések, harmadik féltől származó API-k. Az Anthropic dokumentációja szerint ezt a tartalmat megbízhatatlannak kell tekinteni, mert a modellnek szóló utasításokat rejthet, és ",{"tag":130,"children":462},[397]," blokkokban kell tartani, nem a rendszerpromptban vagy sima felhasználói szövegben. Az MCP-specifikáció hozzáteszi, hogy a kliensnek megbízhatatlannak kell tekintenie az eszközannotációkat, hacsak nem megbízható szervertől jönnek, hogy a szervernek minden bemenetet validálnia, a hozzáférést szabályoznia, a hívásokat korlátoznia és a kimeneteket tisztítania kell, és hogy egy embernek meg kell tudnia tagadni az eszközhívásokat.",{"type":126,"content":465},[466,467,471,472,476],"A gyakorlatban: a jogosultság az eszköz implementációjába kerüljön, ne a leírásába; írási műveletekhez kérj megerősítést; és soha ne kombináld terv nélkül egy ágensben a privát adatot, a megbízhatatlan tartalmat és egy kimenő csatornát. A mintákat a ",{"tag":246,"to":468,"children":469},"\u002Fblog\u002Fprompt-injection-lethal-trifecta-patterns",[470],"halálos hármas és hat tervezési minta"," cikk, a szerveroldali ellenőrzéseket az ",{"tag":246,"to":473,"children":474},"\u002Fblog\u002Fmcp-server-security-checklist",[475],"MCP biztonsági ellenőrzőlista"," tartalmazza.",{"type":138,"level":139,"id":119,"text":120},{"type":126,"content":479},[480],"Az Anthropic eszközírásról szóló cikkének leghasznosabb része a folyamat: építs gyors prototípust, írj valósághű értékelési feladatokat, amelyekhez sok eszközhívás kellhet, futtasd le őket, és olvasd el az átiratokat. A feladat sikere mellett kövesd az összes eszközhívást, a tokeneket, a futásidőt és az eszközhibákat, és tarts félre egy tesztkészletet, hogy ne a saját tesztjeidre hangold túl a leírásokat. A felesleges hívások hiányzó lapozásra vagy szűrőre utalnak; az ismétlődő érvénytelen argumentumok homályos leírásra vagy olyan sémára, amely engedi a hibát.",{"type":126,"content":482},[483,484,488,489,493],"Hogy magukat a futásokat, a trajektóriákat és az eredményeket hogyan pontozd, arról az ",{"tag":246,"to":485,"children":486},"\u002Fblog\u002Fevaluating-ai-agents-trajectories",[487],"AI-ágensek értékelése"," szól. Az eszközök körüli ciklus működéséhez kezdd ",{"tag":246,"to":490,"children":491},"\u002Fblog\u002Fagent-loop-explained",[492],"az ágensciklus magyarázatával",".",{"type":138,"level":139,"id":122,"text":123},{"type":315,"ordered":496,"items":497},true,[498,502,505,508,511,514,517],[499],{"tag":500,"href":38,"children":501},"a",[37],[503],{"tag":500,"href":41,"children":504},[40],[506],{"tag":500,"href":44,"children":507},[43],[509],{"tag":500,"href":47,"children":510},[46],[512],{"tag":500,"href":50,"children":513},[49],[515],{"tag":500,"href":53,"children":516},[52],[518],{"tag":500,"href":56,"children":519},[55],[521,591,639,697],{"slug":522,"published":523,"minutes":524,"category":7,"tags":525,"keywords":531,"about":543,"sources":551,"cover":585,"og":586,"expertise":59,"locales":587,"lang":63,"title":588,"description":589,"coverAlt":590},"context-rot-compaction-long-running-agents","2026-10-16",10,[526,527,528,529,530],"Context rot","Compaction","Context engineering","Long-running agents","Agent memory",[532,533,534,535,536,537,538,539,540,541,542],"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",[544,547,550],{"name":545,"url":546},"Context window","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model#Context_window",{"name":548,"url":549},"Attention (machine learning)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAttention_(machine_learning)",{"name":27,"url":28},[552,555,558,561,564,567,570,573,576,579,582],{"title":553,"url":554},"Chroma: Context Rot: How Increasing Input Tokens Impacts LLM Performance (Jul 2025)","https:\u002F\u002Fresearch.trychroma.com\u002Fcontext-rot",{"title":556,"url":557},"Liu et al.: Lost in the Middle: How Language Models Use Long Contexts (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.03172",{"title":559,"url":560},"Modarressi et al.: NoLiMa: Long-Context Evaluation Beyond Literal Matching (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.05167",{"title":562,"url":563},"Anthropic: Effective context engineering for AI agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"title":565,"url":566},"Anthropic: Effective harnesses for long-running agents (Nov 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"title":568,"url":569},"Claude API docs: Compaction at a token threshold","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-threshold",{"title":571,"url":572},"Claude API docs: Compaction on demand","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-on-demand",{"title":574,"url":575},"Claude API docs: Context editing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcontext-editing",{"title":577,"url":578},"Claude API docs: Memory tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fmemory-tool",{"title":580,"url":581},"OpenAI API docs: Compaction","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fcompaction",{"title":583,"url":584},"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",[61,62,63],"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":592,"published":523,"minutes":593,"category":7,"tags":594,"keywords":599,"about":610,"sources":617,"cover":633,"og":634,"expertise":59,"locales":635,"lang":63,"title":636,"description":637,"coverAlt":638},"browser-agents-e2e-testing-playwright",7,[595,596,597,12,598],"Playwright","E2E testing","Coding agents","Test automation",[600,601,602,603,604,605,606,607,608,609],"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",[611,613,616],{"name":595,"url":612},"https:\u002F\u002Fplaywright.dev\u002F",{"name":614,"url":615},"End-to-end testing","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSystem_testing",{"name":30,"url":31},[618,621,624,627,630],{"title":619,"url":620},"Playwright docs: Test agents (planner, generator, healer)","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Ftest-agents",{"title":622,"url":623},"Microsoft: Playwright MCP README (MCP vs CLI, accessibility snapshots)","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fplaywright-mcp",{"title":625,"url":626},"Playwright docs: Best practices","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Fbest-practices",{"title":628,"url":629},"Playwright docs: Locators","https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Flocators",{"title":631,"url":632},"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",[61,62,63],"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.",{"slug":640,"published":523,"minutes":641,"category":7,"tags":642,"keywords":646,"about":658,"sources":666,"cover":691,"og":692,"expertise":59,"locales":693,"lang":63,"title":694,"description":695,"coverAlt":696},"a2a-protocol-agent-interoperability",12,[643,9,12,644,645],"A2A","Interoperability","Agent security",[647,648,649,650,651,652,653,654,655,656,657],"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",[659,662,663],{"name":660,"url":661},"Agent2Agent protocol","https:\u002F\u002Fa2a-protocol.org\u002F",{"name":30,"url":31},{"name":664,"url":665},"Linux Foundation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLinux_Foundation",[667,670,673,676,679,682,685,688],{"title":668,"url":669},"A2A Protocol Specification (latest, v1.0)","https:\u002F\u002Fa2a-protocol.org\u002Flatest\u002Fspecification\u002F",{"title":671,"url":672},"A2A: a2a.proto, the normative data model (GitHub)","https:\u002F\u002Fgithub.com\u002Fa2aproject\u002FA2A\u002Fblob\u002Fmain\u002Fspecification\u002Fa2a.proto",{"title":674,"url":675},"A2A docs: A2A and MCP","https:\u002F\u002Fa2a-protocol.org\u002Flatest\u002Ftopics\u002Fa2a-and-mcp\u002F",{"title":677,"url":678},"A2A docs: Agent discovery","https:\u002F\u002Fa2a-protocol.org\u002Flatest\u002Ftopics\u002Fagent-discovery\u002F",{"title":680,"url":681},"Google Developers Blog: Announcing the Agent2Agent Protocol (Apr 2025)","https:\u002F\u002Fdevelopers.googleblog.com\u002Fen\u002Fa2a-a-new-era-of-agent-interoperability\u002F",{"title":683,"url":684},"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":686,"url":687},"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":689,"url":690},"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",[61,62,63],"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 zárt, téglalap alakú modul áll egymással szemben, és egy kétirányú nyilakkal jelölt híd köti össze őket.",{"slug":698,"published":699,"minutes":6,"category":7,"tags":700,"keywords":706,"about":715,"sources":725,"cover":774,"og":775,"expertise":59,"locales":776,"lang":63,"title":777,"description":778,"coverAlt":779},"ai-assisted-development-economics","2026-10-01",[701,702,703,704,705],"AI coding agents","Developer productivity","Engineering economics","Team cost","GDPR",[707,708,709,710,711,712,713,714],"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",[716,719,722],{"name":717,"url":718},"General Data Protection Regulation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGeneral_Data_Protection_Regulation",{"name":720,"url":721},"Randomized controlled trial","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRandomized_controlled_trial",{"name":723,"url":724},"Bus factor","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBus_factor",[726,729,732,735,738,741,744,747,750,753,756,759,762,765,768,771],{"title":727,"url":728},"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":730,"url":731},"Becker et al.: arXiv 2507.09089","https:\u002F\u002Farxiv.org\u002Fabs\u002F2507.09089",{"title":733,"url":734},"METR: developer productivity experiment design, February 2026","https:\u002F\u002Fmetr.org\u002Fblog\u002F2026-02-24-uplift-update\u002F",{"title":736,"url":737},"Peng et al.: GitHub Copilot controlled experiment, arXiv 2302.06590","https:\u002F\u002Farxiv.org\u002Fhtml\u002F2302.06590v1",{"title":739,"url":740},"Cui et al.: three field experiments with software developers","https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002F?p=1148213",{"title":742,"url":743},"DORA: State of AI-assisted Software Development 2025","https:\u002F\u002Fresearch.google\u002Fpubs\u002Fdora-2025-state-of-ai-assisted-software-development-report\u002F",{"title":745,"url":746},"Google Cloud: highlights from the 2024 DORA report","https:\u002F\u002Fcloud.google.com\u002Fblog\u002Fproducts\u002Fdevops-sre\u002Fannouncing-the-2024-dora-report",{"title":748,"url":749},"Stack Overflow: Developer Survey 2025, AI","https:\u002F\u002Fsurvey.stackoverflow.co\u002F2025\u002Fai",{"title":751,"url":752},"Ziftci et al.: Migrating Code At Scale With LLMs At Google","https:\u002F\u002Farxiv.org\u002Fabs\u002F2504.09691",{"title":754,"url":755},"Alshahwan et al.: Automated Unit Test Improvement using Large Language Models at Meta","https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.09171",{"title":757,"url":758},"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":760,"url":761},"GDPR, Regulation (EU) 2016\u002F679, Article 28","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2016\u002F679\u002Foj\u002Feng",{"title":763,"url":764},"Anthropic: Commercial Terms of Service","https:\u002F\u002Fwww.anthropic.com\u002Flegal\u002Fcommercial-terms",{"title":766,"url":767},"Claude: pricing","https:\u002F\u002Fclaude.com\u002Fpricing",{"title":769,"url":770},"Claude Platform: data residency","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fdata-residency",{"title":772,"url":773},"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",[61,62,63],"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?","Vízszintes karú mérleg egyensúlyban: három kis négyzet az egyik serpenyőben, egy nagyobb téglalap a másikban.",1792222774293]