ट्रैवल और बुकिंग एजेंट
मौसम, मुद्रा और उपलब्धता की जाँच यात्रियों और प्लानिंग स्टेप में दोहराई जाती है। हर नतीजा प्रति TTL एक बार ही लाया जाता है।
एजेंट वही tool वही arguments के साथ बार-बार कॉल करते हैं। नतीजों को memoize कीजिए और एक ही API कॉल के लिए दो बार भुगतान करना बंद कीजिए।
मौसम धीरे बदलता है, इसलिए नतीजे 15 मिनट तक रहते हैं।
असली HotKV कमांड और उदाहरण रिस्पॉन्स के साथ एक एनिमेटेड वॉकथ्रू। किसी भी कदम पर क्लिक करके वहां पहुंचें। कमांड और रिस्पॉन्स अंग्रेज़ी में ही रहते हैं, ठीक वैसे जैसे आप HotKV में टाइप करते और देखते हैं।
एजेंट लूप में चलते हैं। वे एक ही रन में वही मौसम, वही एक्सचेंज रेट, वही SQL नतीजा और वही वेब पेज कई बार देखते हैं, और अगले रन में फिर। हर कॉल में latency लगती है, rate limit खर्च होती है और अक्सर पैसे भी लगते हैं। धीमे tool हर एजेंट स्टेप को धीमा कर देते हैं।
Tool cache deterministic tool कॉल को memoize करता है, ऐसी key के तहत जो tool के नाम और उसके arguments से बनती है। Tool कॉल करने से पहले एजेंट cache से पूछता है। Hit होने पर रखा हुआ नतीजा तुरंत मिल जाता है। Miss होने पर tool एक बार कॉल होता है और नतीजा ऐसे TTL के साथ रखा जाता है जो इस पर निर्भर है कि उसे कितना ताज़ा होना चाहिए।
मौसम धीरे बदलता है, इसलिए नतीजे 15 मिनट तक रहते हैं।
TOOL.CACHE.CREATE tools MAX_ENTRIES 100000 TTL 900इन arguments के लिए अभी कुछ cache में नहीं है।
TOOL.CACHE.GET tools "get_weather(city=Lisbon)"असली API कॉल होती है, और नतीजा अगले 15 मिनट के लिए cache हो जाता है।
TOOL.CACHE.SET tools "get_weather(city=Lisbon)" "{\"temp_c\":21,\"sky\":\"clear\"}" TTL 900एजेंट दूसरी दिन की ट्रिप प्लान करता है और फिर पूछता है। दूसरे यात्रियों के लिए दूसरे एजेंट भी यही करते हैं।
TOOL.CACHE.GET tools "get_weather(city=Lisbon)"Hits, misses और बचाया गया उपयोग हर namespace के हिसाब से रिपोर्ट होते हैं।
TOOL.CACHE.STATS toolsमौसम, मुद्रा और उपलब्धता की जाँच यात्रियों और प्लानिंग स्टेप में दोहराई जाती है। हर नतीजा प्रति TTL एक बार ही लाया जाता है।
Read-only SQL query और डैशबोर्ड मेट्रिक्स memoize होते हैं, इसलिए डेटा खंगालता एजेंट warehouse पर बोझ नहीं डालता।
लाए गए और parse किए गए वेब पेज cache होते हैं, इसलिए हर रन में वही पेज दोबारा डाउनलोड नहीं होता।
Keys tool के नाम और उसके arguments से बनती हैं, इसलिए हर अलग कॉल अलग से cache होता है।
TOOL.CACHE.GETTOOL.CACHE.SETहर namespace के लिए डिफ़ॉल्ट TTL और हर entry के लिए वैकल्पिक TTL।
TTLहर namespace के लिए entry की सीमा, और भर जाने पर eviction।
MAX_ENTRIESHits, misses, evictions, मेमोरी और बचाया गया उपयोग।
TOOL.CACHE.STATSDeterministic, read-only कॉल, जैसे lookup, search और ऐसे query जिनका नतीजा सिर्फ़ arguments पर निर्भर है। जो tool कुछ बदलते हैं, जैसे ईमेल भेजना, उन्हें कभी cache न करें।
हाँ। TOOL.CACHE.DEL एक entry हटाता है और TOOL.CACHE.FLUSH पूरा namespace खाली करता है।
Tool cache Performance और Scale प्लान का हिस्सा है।
HotKV Redis प्रोटोकॉल बोलता है, इसलिए आप किसी मौजूदा क्लाइंट को इसकी ओर इंगित करके यही कमांड चला सकते हैं।