Phase 14: Agent Engineering

उपकरण का उपयोग और कार्य कॉल

टूलफॉर्मर (शिक और सहयोगियों, 2023) ने स्व-निरीक्षण उपकरण टिप्पणी शुरू की। बर्कले फ़ंक्शन कॉलिंग लीडरबोर्ड V4 (पैटिल और सहयोगियों, 2025) 2026 बार सेट करता हैः 40% एजेंटिक, 30% मल्टी-टर्न, 10% लाइव, 10% गैर-लाइव, 10% हल्यूसिनेशन। एकल-टर्न हल हो जाता है। स्मृति, गतिशील निर्णय लेने और लंबी क्षितिज उपकरण श्रृंखलाएं नहीं हैं।

Type: Build

Languages: Python (stdlib)

Prerequisites: Phase 14 · 01 (Agent Loop), Phase 13 · 01 (Function Calling Deep Dive)

Time: ~60 minutes

सीखने के लक्ष्य

  • Toolformer के स्व-निरीक्षण प्रशिक्षण संकेत को समझाएंः केवल तब उपकरण नोटिस रखें जब निष्पादन अगले टोकन हानि को कम करता है।
  • बीएफसीएल वी४ की पांच मूल्यांकन श्रेणियों का नाम दें और प्रत्येक क्या उपाय करता है।
  • स्कीमा सत्यापन, तर्क मजबूर, और निष्पादन सैंडबॉक्सिंग के साथ एक stdlib उपकरण रजिस्ट्री लागू करें।
  • 2026 में तीन खुली समस्याओं का निदान करेंः लंबी क्षितिज उपकरण श्रृंखला, गतिशील निर्णय लेने और स्मृति।

समस्या

प्रारंभिक उपकरण उपयोग पूछा गयाः क्या मॉडल एक सही फ़ंक्शन कॉल की भविष्यवाणी कर सकता है? आधुनिक उपकरण उपयोग पूछता हैः क्या मॉडल श्रृंखला उपकरण 40 चरणों में, मेमोरी के साथ, आंशिक अवलोकन के साथ, उपकरण विफलताओं से वसूली के साथ, बिना भ्रम उपकरण जो मौजूद नहीं हैं?

Toolformer ने आधार रेखा स्थापित कीः मॉडल आत्म-निरीक्षण के साथ उपकरण को कब कॉल करना सीख सकते हैं। BFCL V4 2026 मूल्यांकन लक्ष्य को परिभाषित करता है। इन दोनों के बीच अंतर अंतरिक्ष उत्पादन एजेंटों में रहते हैं।

अवधारणा

उपकरणformer (Schick et al., NeurIPS 2023)

विचारः मॉडल को उम्मीदवार एपीआई कॉल के साथ अपना प्री-ट्रेनिंग कॉर्पस नोट करने दें। प्रत्येक उम्मीदवार के लिए, इसे निष्पादित करें। केवल तभी नोट को बनाए रखें जब टूल परिणाम को शामिल करना अगले टोकन पर नुकसान को कम करता है। फ़िल्टर किए गए कॉर्पस पर ठीक-ठीक ट्यून करें।

उपकरण शामिलः कैलकुलेटर, क्यूए प्रणाली, खोज इंजन, अनुवादक, कैलेंडर। आत्म-निरीक्षण संकेत केवल इस बारे में है कि क्या उपकरण पाठ की भविष्यवाणी करने में मदद करता है कोई मानव लेबल नहीं।

स्केल परिणामः उपकरण का उपयोग पैमाने पर उभरता है। छोटे मॉडल उपकरण नोटों से प्रभावित होते हैं; बड़े मॉडल लाभ प्राप्त करते हैं। यही कारण है कि 2026 सीमा मॉडल में मजबूत उपकरण उपयोग में बेक किया गया है जबकि अधिकांश 7 बी मॉडल को विश्वसनीय होने के लिए स्पष्ट उपकरण-उपयोग बारीक-ट्यूनिंग की आवश्यकता होती है।

बर्कले फ़ंक्शन कॉलिंग लीडरबोर्ड V4 (पैटिल एट अल., आईसीएमएल 2025)

बीएफसीएल 2026 का वास्तविक मूल्यांकन है। V4 संरचनाः

  • Agentic (40%) पूर्ण एजेंट पटरियांः स्मृति, बहु-टर्न, गतिशील निर्णय।
  • Multi-Turn (30%) उपकरण श्रृंखलाओं के साथ बातचीत।
  • Live (10%) उपयोगकर्ता द्वारा प्रस्तुत वास्तविक संकेत (अधिक कठिन वितरण) ।
  • Non-Live (10%) सिंथेटिक टेस्ट केस।
  • Hallucination (10%) जब कोई उपकरण नहीं बुलाया जाना चाहिए, तब पता लगाएं।

V3 ने राज्य-आधारित मूल्यांकन पेश कियाः एक उपकरण अनुक्रम के बाद, उपकरण कॉल के AST से मेल खाने के बजाय एपीआई की वास्तविक स्थिति (जैसे "क्या फ़ाइल बनाई गई है? ") की जांच करें। V4 ने वेब खोज, मेमोरी और प्रारूप संवेदनशीलता श्रेणियों को जोड़ा।

प्रमुख 2026 निष्कर्षः एकल-टर्न फ़ंक्शन कॉल लगभग हल हो गया है। विफलताएं स्मृति (वक्रों के पार संदर्भ ले जाने), गतिशील निर्णय लेने (पूर्व परिणामों के आधार पर उपकरण चुनने), लंबी क्षितिज श्रृंखला (20+ चरणों के बाद बहाव) और भ्रम का पता लगाने (जब कोई उपकरण फिट नहीं होता है तो कॉल करने से इनकार करना) में केंद्रित होती हैं।

उपकरण योजना

प्रत्येक प्रदाता के पास एक योजना है। वे विवरण में भिन्न होते हैं लेकिन एक ही आकार साझा करते हैंः

name: string
description: string (what it does, when to use it)
input_schema: JSON Schema (properties, required, types, enums)

मानवयुक्त उपयोग input_schemaसीधे. OpenAI उपयोग करता है function.parameters. दोनों JSON योजना स्वीकार करते हैं. विवरण लोड-बहन हैं मॉडल सही उपकरण चुनने के लिए उन्हें पढ़ता है. खराब उपकरण विवरण गलत उपकरण के चयन विफलताओं का # 1 मूल कारण है।

तर्क सत्यापन

किसी भी उपकरण कॉल पर भरोसा नहीं करें।

  1. Type coercion.मॉडल एक स्ट्रिंग "5" लौटा सकता है जहां स्कीमा int कहता है। यदि स्पष्ट है तो मजबूर करें; यदि नहीं है तो अस्वीकार करें।
  2. Enum validation.यदि योजना कहती हैstatus in {"open", "closed"}और मॉडल उत्सर्जन "in_progress", वर्णनात्मक त्रुटि के साथ अस्वीकार करें।
  3. Required fields.आवश्यक क्षेत्र गायब -> तत्काल त्रुटि अवलोकन मॉडल में वापस, एक दुर्घटना नहीं।
  4. Format validation.तारीखें, ईमेल, URL कंक्रीट पार्सर के साथ मान्य करें, रेजेक्स नहीं।

प्रत्येक सत्यापन विफलता को एक संरचित अवलोकन लौटा देना चाहिए ताकि मॉडल सही आकार के साथ पुनः प्रयास कर सके।

समानांतर उपकरण कॉल

आधुनिक प्रदाताओं एक सहायक बारी में समानांतर उपकरण कॉल समर्थन करते हैं। लूपः

  1. मॉडल 3 उपकरण कॉल अलग से जारी करता है tool_use_idएस.
  2. रनटाइम उन्हें निष्पादित करता है (समान रूप से यदि स्वतंत्र है) ।
  3. प्रत्येक परिणाम एक के रूप में वापस जाता हैtool_result द्वारा संबद्ध ब्लॉकtool_use_id. .

इंजीनियरिंग नियमः संबद्धता आईडी को लोड-बहन के रूप में व्यवहार करें। उन्हें आदान-प्रदान करें और आपको गलत उपकरण से गलत परिणाम के लिए रूटिंग मिलती है।

रेत बॉक्सिंग

उपकरण निष्पादन सैंडबॉक्स सीमा है। विस्तार के लिए पाठ 09 देखें। संक्षिप्त संस्करणः प्रत्येक उपकरण को पढ़ने / लिखने की सतह, नेटवर्क एक्सेस, टाइमआउट, मेमोरी कैप निर्दिष्ट करना चाहिए। सामान्य run_shell(cmd)एक लाल झंडा है; विशिष्ट git_status()सुरक्षित है।

इसे बनाओ

code/main.pyउत्पादन-आकार के उपकरण रजिस्ट्री को लागू करता हैः

  • JSON योजना उपसमूह सत्यापनकर्ता (केवल stdlib) ।
  • विवरण, इनपुट स्कीम, टाइमआउट और निष्पादक के साथ उपकरण पंजीकरण।
  • तर्क मजबूर और एनयूएम सत्यापन।
  • संबद्धता आईडी के साथ समानांतर उपकरण भेजने।
  • स्ट्रक्चरल स्ट्रिंग के रूप में त्रुटि अवलोकन।

इसे चलाओः

python3 code/main.py

निशान एक मिनी एजेंट को एक बारी में तीन उपकरणों को बुलाता है, एक जानबूझकर गलत रूप से बुलाया जाता है जो मॉडल द्वारा कार्रवाई करने में सक्षम वर्णनात्मक त्रुटि के साथ अस्वीकार कर दिया जाता है।

इसका प्रयोग करें

प्रत्येक प्रदाता के पास अपना स्वयं का टूल स्कीम है एंथ्रोपिक, ओपनएआई, जेमिनी, बेड्रॉक। यदि आपको मल्टी-प्रोवाइडर की आवश्यकता है तो एक अनुवाद परत (ओपनएआई एजेंट एसडीके, वर्सेल एआई एसडीके, लैंगचेन टूल एडाप्टर) का उपयोग करें। बीएफसीएल संदर्भ बेंचमार्क है यदि उपकरण का उपयोग उत्पाद के लिए केंद्रीय है तो इसे शिपिंग से पहले अपने एजेंट के खिलाफ चलाएं।

इसे भेजें

outputs/skill-tool-registry.mdएक दिए गए कार्य डोमेन के लिए एक उपकरण कैटलॉग, स्कीमा और रजिस्ट्री उत्पन्न करता है। विवरण-गुणवत्ता जांच शामिल है (क्या प्रत्येक उपकरण का विवरण मॉडल को बताता है कि इसका उपयोग कब करना है?

व्यायाम

  1. एक "नो-ऑप" उपकरण जोड़ें जो मॉडल को स्पष्ट रूप से किसी अन्य उपकरण का उपयोग करने से इनकार करने देता है। बीएफसीएल-जैसे पगड़ी परीक्षण पर मापें।
  2. तर्क को लागू करें जबरनता के लिए int-as-string और float-as-string. जबरनता असली बग छिपाने के लिए कहाँ शुरू होता है?
  3. प्रति उपकरण टाइमआउट और सर्किट ब्रेकर जोड़ें (टूल को लगातार 3 विफलताओं के बाद 60s के लिए अस्वीकार करें) मॉडल के पुनर्प्राप्ति के बारे में यह क्या बदलता है?
  4. बीएफसीएल वी 4 विवरण पढ़ें। एक श्रेणी चुनें (जैसे "बहु-टर्न") और अपने एजेंट के माध्यम से 10 उदाहरण संकेत चलाएं। पास दर रिपोर्ट करें।
  5. Pydantic / Zod क्या पकड़ा है कि खिलौना याद आया?

प्रमुख शर्तें

TermWhat people sayWhat it actually means
Function calling"Tool use"Structured-output tool invocation with validated schema
Toolformer"Self-supervised tool annotation"Schick 2023 — keep tool calls whose results reduce next-token loss
BFCL"Berkeley Function Calling Leaderboard"2026 benchmark: 40% agentic, 30% multi-turn, 10% live, 10% non-live, 10% hallucination
Tool schema"Function signature for the model"name, description, JSON Schema of arguments
tool_use_id"Correlation ID"Ties a tool call to its result; essential for parallel dispatch
Hallucination detection"Know when not to call"V4 category: refuse to call when no tool fits
Argument coercion"String-to-int repair"Narrow fixes for predictable schema-mismatch; reject if ambiguous
Sandboxing"Tool execution boundary"Per-tool read/write surface, network, timeout, memory cap

आगे पढ़ना

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.