पाठ 13 / 25

Tool Results छाँटना

लंबे tool outputs को सुरक्षित आकार तक काटें और model को बताएँ कि क्या हटाया गया।

आम दोषी बड़े outputs

एक लापरवाह tool result, जैसे 50,000 पंक्तियों की log फ़ाइल, बाक़ी पूरी बातचीत से ज़्यादा tokens ले सकता है, और फिर वह हर आगामी बारी में दोबारा भेजा जाता है। नतीजों को सीमा तक काटें और बताएँ, ताकि model संकरा दृश्य माँगना जाने।

सिर्फ़ ज़रूरी रखें

छाँटें, सार बनाएँ और बाहर रखें ताकि इतिहास उपयोगी रहे पर हमेशा बढ़ता न जाए।

तीन उपाय: नतीजे छाँटें, पुरानी बारियों का सार, बाहर रखें।
चित्र 4.1 — छाँटें, सार बनाएँ और बाहर रखें।

Clip helper

यह जैसा दिखाया गया वैसा ही चला: output के अंत में एक नोट है जो बताता है कितने अक्षर हटाए गए।

def clip(text, limit=200):
    if len(text) <= limit:
        return text
    return text[:limit] + f"\n...[truncated {len(text) - limit} chars]"

print(clip("x" * 250, 200)[-30:])

Output:

xxxxxx
...[truncated 50 chars]

Tools को pagination सिखाएँ

Clip करने से बेहतर है ऐसा tool जो पहला पन्ना लौटाए और ज़्यादा माँगने का तरीक़ा दे, जैसे offset और limit parameters, ताकि model सिर्फ़ उतना खींचे जितना चाहिए।

त्वरित जाँच: एक विशाल tool result इतना महँगा क्यों है?

  • वह हर आगामी बारी में दोबारा भेजा जाता है
  • बड़े results encrypt होते हैं
  • यह keyboard धीमा करता है
  • वह सिर्फ़ एक बार बिल होता है
Answer

वह हर आगामी बारी में दोबारा भेजा जाता है — इतिहास हर बारी दोबारा भेजा जाता है, इसलिए बड़ा result हटाए जाने तक tokens ख़र्च कराता रहता है।