मुख्य सामग्री पर जाएं
किसी रन या continuation को एक इवेंट handler दें, ताकि रन शुरू होने पर, हर मॉडल टर्न के शुरू और ख़त्म होने पर, हर टूल के चलने पर, रन के रुकने पर और रन के ख़त्म होने पर आपको एक इवेंट मिले। इसका उपयोग अपना इंटरफ़ेस अपडेट करने, ऑडिट रिकॉर्ड लिखने या अपनी मौजूदा टेलीमेट्री में डेटा भेजने के लिए करें।

Handler कहाँ जाता है और उसे क्या मिलता है

रनटाइम कौन-से इवेंट भेजता है

नीचे विवरण keys snake_case में दी गई हैं; TypeScript camelCase रूप का उपयोग करता है। Rust 0.2 कुछ इवेंट के लिए अपने नाम उपयोग करता है: जो रन किसी रोकने की शर्त पर ख़त्म होता है, वह TypeScript में run.stopped भेजता है और Python, Go, C#, PHP, Ruby या Java में कोई अंतिम इवेंट नहीं भेजता; इसकी जगह रन का स्टेटस पढ़ें। TypeScript में, step.completed स्टेप का चेकपॉइंट बनने के बाद भेजा जाता है, इसलिए persistence और टेलीमेट्री consumers इसे एक स्थिर सीमा मान सकते हैं।

स्ट्रीम इवेंट

स्ट्रीमिंग के साथ, वही लाइफ़साइकल इवेंट मॉडल के response.* इवेंट के साथ-साथ आते हैं। TypeScript, Python, Go, C# और Java में handler उन्हें पाता है; PHP और Ruby में वे fullStream() / full_stream में भी दिखते हैं। Rust में स्ट्रीमिंग नहीं है। स्ट्रीमिंग में स्ट्रीम consumers के बारे में बताया गया है।

Handlers को तेज़ रखें

रनटाइम आगे बढ़ने से पहले handler का इंतज़ार करता है, इसलिए जल्दी लौटें और धीमे स्टोरेज या नेटवर्क काम को किसी queue पर भेजें। इवेंट आपके प्रोसेस से बाहर जाने से पहले संवेदनशील टूल इनपुट और आउटपुट redact करें।

प्रोडक्ट इंटरफ़ेस के लिए इवेंट चुनें

लाइव जवाब टेक्स्ट के लिए response.output_text.delta, टूल-कॉल कार्ड और प्रगति संकेतकों के लिए टूल इवेंट, अनुमोदन या इनपुट controls दिखाने के लिए run.waiting_for_human (Rust: run.paused), और लोडिंग स्टेट बंद करने के लिए अंतिम रन इवेंट का उपयोग करें। डेवलपमेंट के दौरान पूरे रन के स्थानीय रिकॉर्ड के लिए DevTools का उपयोग करें।
अंतिम संशोधन 5 नवंबर 2026