पाठ 1 / 25
एक बारी की संरचना
एक बारी को call, जाँच, कर्म और जोड़ने में बाँटें और बताएँ कि हर चरण में क्या बिगड़ सकता है।
हर बार चार चरण
हर बारी वही चार काम करती है: अब तक के messages के साथ model को बुलाना, जाँचना कि वह क्यों रुका, माँगे गए tools चलाकर कर्म करना, और assistant message व tool results जोड़ना। फिर loop दोबारा शुरू होता है। ये चार चरण पहचान लें तो कोई भी guard ठीक सही जगह लगा सकते हैं।
Loop की एक बारी
हर बारी model को बुलाती है, जाँचती है कि वह क्यों रुका, माँगे गए tools चलाती है और नतीजे जोड़ती है।
ढाँचा
call_model, run_tools और final_text आपके अपने कोड के प्रतीक हैं। ध्यान दें कि साफ़ stop या for सीमा के अलावा loop के ख़त्म होने का कोई रास्ता नहीं है।
def run(messages, max_steps=10):
for step in range(max_steps):
reply = call_model(messages) # 1. call
messages.append({"role": "assistant", "content": reply.content})
if reply.stop_reason != "tool_use": # 2. inspect
return final_text(reply)
results = run_tools(reply) # 3. act
messages.append({"role": "user", "content": results}) # 4. append
raise RuntimeError("step limit reached")चरणों के बीच guards लगाएँ
Budget, समय और दोहराव की जाँच "जाँच" के ठीक बाद और "कर्म" से पहले होनी चाहिए। तब बेक़ाबू loop अगली tool call पर पैसा ख़र्च करने से पहले रुक जाता है।
त्वरित जाँच: बारी का कौन-सा चरण model के माँगे tools चलाता है?
- Call
- Act
- Append
- Inspect
Answer
Act — Call model से पूछता है, inspect उसका stop reason पढ़ता है, act tools चलाता है, और append नतीजे दर्ज करता है।