मुख्य कंटेंट तक स्किप करें

टूल उपयोग / फ़ंक्शन कॉलिंग

मध्यम

टूल उपयोग Claude को आपके द्वारा परिभाषित फ़ंक्शन कॉल करने देता है — खोज, एक कैलकुलेटर, आपका डेटाबेस, कोई भी API — और परिणामों का उपयोग करने देता है। यह हर एजेंट की नींव है।

What you'll learn
  • चार-चरणीय एजेंटिक लूप कैसे काम करता है, टूल परिभाषाओं से लेकर अंतिम जवाब तक
  • Python में किसी टूल को नाम, विवरण और JSON-स्कीमा इनपुट के साथ कैसे परिभाषित करें
  • टूल विवरण प्रॉम्प्ट की तरह क्यों काम करते हैं जो आकार देते हैं कि Claude उन्हें कब और कैसे कॉल करता है
  • इनपुट को कैसे सत्यापित करें, त्रुटियों को परिणाम के रूप में कैसे लौटाएँ, और सर्वर-साइड टूल का सुरक्षित रूप से उपयोग कैसे करें

लूप

टूल उपयोग एक बातचीत है, एकल कॉल नहीं। आप Claude को टूल का एक मेन्यू सौंपते हैं; Claude एक चुनता है और रुक जाता है; आप उसे चलाते हैं और वापस रिपोर्ट करते हैं; Claude परिणाम को अपने जवाब में समाहित कर लेता है — आवश्यकतानुसार इसे दोहराते हुए।

Guided walkthrough1 of 4
  1. आप टूल परिभाषाओं की एक सूची शामिल करते हैं — प्रत्येक में एक नाम, एक विवरण, और एक JSON-स्कीमा इनपुट होता है।

एक टूल परिभाषित करना (Python)

एक टूल परिभाषा बस एक नाम, एक सादा-भाषा विवरण, और इनपुट के लिए एक JSON-स्कीमा है। इसे tools में पास करें, फिर यह जानने के लिए stop_reason जाँचें कि Claude कब कार्य करना चाहता है।

get_weather टूल + पहली कॉल

tools = [{
  "name": "get_weather",
  "description": "Get current weather for a city.",
  "input_schema": {
      "type": "object",
      "properties": {"city": {"type": "string"}},
      "required": ["city"],
  },
}]

msg = client.messages.create(
  model="claude-sonnet-5", max_tokens=1024,
  tools=tools,
  messages=[{"role": "user", "content": "What's the weather in Rome?"}],
)
# If msg.stop_reason == "tool_use": run the tool, then send a tool_result back.

टिप्स

आप टूल को कैसे परिभाषित और संभालते हैं, इसमें किए गए छोटे चुनाव विश्वसनीयता में बड़ा अंतर पैदा करते हैं।

  • विवरण प्रॉम्प्ट होते हैं। एक स्पष्ट टूल description और पैरामीटर दस्तावेज़ इस बात को बहुत बेहतर बनाते हैं कि Claude इसे कब/कैसे कॉल करता है।
  • निष्पादित करने से पहले प्राप्त किए गए इनपुट को सत्यापित करें — कभी उन पर आँख मूँदकर भरोसा न करें।
  • त्रुटियों को परिणाम के रूप में लौटाएँ। यदि कोई टूल विफल होता है, तो त्रुटि का वर्णन करता एक tool_result भेजें ताकि Claude उबर सके।
  • सर्वर-साइड टूल। Anthropic बिल्ट-इन टूल भी प्रदान करता है (उदा. वेब सर्च, कोड एक्ज़ीक्यूशन, कंप्यूटर उपयोग) — मौजूदा मेन्यू के लिए दस्तावेज़ जाँचें।

:::warning टूल = क्रियाएँ = जोखिम एक टूल जो वास्तविक क्रियाएँ करता है, एक सुरक्षा मॉडल विरासत में पाता है। न्यूनतम विशेषाधिकार लागू करें और जोखिमपूर्ण कॉल्स के लिए एक मानव को लूप में रखें — देखें एजेंट और टूल सुरक्षित करना। :::

टूल-उपयोग शब्दावली
कार्ड पलटने के लिए Enter या Space दबाएँ। कार्ड बदलने के लिए बाएँ और दाएँ तीर कुंजियों का उपयोग करें।शब्द दिखाया गया।
1 / 4

स्वयं को परखें

0/3
  1. Claude द्वारा एक tool_use ब्लॉक लौटाने के बाद, टूल को कौन चलाता है?
  2. आपके द्वारा परिभाषित कोई टूल रनटाइम पर विफल हो जाता है। अनुशंसित कदम क्या है?
  3. एक स्पष्ट टूल विवरण इतना अधिक मायने क्यों रखता है?
Key takeaways
  • टूल उपयोग एक लूप है: टूल परिभाषाएँ भेजें, Claude एक tool_use ब्लॉक लौटाता है और रुक जाता है, आप निष्पादित करते हैं और एक tool_result लौटाते हैं, Claude तब तक जारी रखता है जब तक यह जवाब न दे दे।
  • एक टूल परिभाषा एक नाम, एक विवरण, और एक JSON-स्कीमा इनपुट है — इसे tools में पास करें और stop_reason == tool_use जाँचें।
  • विवरण प्रॉम्प्ट होते हैं; निष्पादित करने से पहले इनपुट सत्यापित करें; विफलताओं को tool_result त्रुटियों के रूप में लौटाएँ ताकि Claude उबर सके।
  • Anthropic सर्वर-साइड टूल भी प्रदान करता है, और कोई भी टूल जो वास्तविक क्रियाएँ करता है उसे न्यूनतम विशेषाधिकार के साथ-साथ एक मानव को लूप में रखने की आवश्यकता होती है।

आगे