• 29 सितंबर को Anthropic द्वारा प्रकाशित Effective context engineering for AI agents का सारांश अनुवाद किया गया है। ब्लॉग पोस्ट में मूल लेख की इमेज और लिंक को यथासंभव सुरक्षित रखा गया है。

Prompt engineering vs context engineering

  • Prompt engineering का लक्ष्य singleton query को बेहतर बनाना है
  • जबकि context engineering का लक्ष्य, खासकर agents के लिए, कई तरह के context में से सिर्फ वास्तव में ज़रूरी चीज़ों को curate करना है।

Agent बनाने में context engineering क्यों महत्वपूर्ण है

  • आज के agents को इस तरह विकसित किया जा रहा है कि वे 'ज़्यादा समय तक, ज़्यादा tools के साथ' काम कर सकें।
  • इसका मतलब है कि context लंबा होना तय है, लेकिन LLM इंसानों की तरह ही बहुत ज़्यादा डेटा से भरे context में फोकस खो देता है और चाही गई जानकारी निकालना कठिन हो जाता है।
  • इसलिए context को प्रभावी ढंग से नियंत्रित करना agent development में बेहद महत्वपूर्ण है।

प्रभावी context की anatomy

अच्छी context engineering का मतलब है ऐसे सबसे छोटे high-signal token set को खोजना जो वांछित परिणाम की संभावना को अधिकतम करे
> Smallest possible set of high-signal tokens that maximize the likelihood of some desired outcome

1) System prompt

  • System prompt बहुत स्पष्ट, सरल और सीधे भाषा में ठीक उतनी ही डिटेल के साथ लिखा होना चाहिए जितनी ज़रूरत हो। बहुत ज़्यादा specific होने पर वह अलग-अलग cases को नहीं संभाल पाता, और बहुत abstract होने पर LLM को बहुत कुछ अनुमान लगाना पड़ता है।
  • अपेक्षित व्यवहार के न्यूनतम वर्णन से शुरुआत करें, और frontier models जहाँ fail हों, सिर्फ उन्हीं cases के लिए स्पष्ट निर्देश और examples जोड़ते हुए उसे सुधारें।
  • XML या Markdown जैसी तकनीकों से sections अलग करें, लेकिन बहुत सख्ती से exact syntax का पालन करना ज़रूरी नहीं है।

2) Tools

  • Tools को token-efficient तरीके से जानकारी लौटानी चाहिए, और साथ ही agent को भी token-efficient ढंग से काम करने के लिए प्रेरित करना चाहिए। उनका रूप LLM के लिए आसानी से समझने योग्य होना चाहिए, और tools के बीच functionality overlap न्यूनतम होना चाहिए।
  • सबसे आम गलती यह है कि एक ही tool बहुत ज़्यादा functionality कवर करने लगता है, या ऐसी स्थिति बनती है जिसमें LLM के लिए यह तय करना कठिन हो जाता है कि कौन-सा tool इस्तेमाल करना है। अगर किसी human engineer के लिए यह तय करना मुश्किल है कि कब क्या इस्तेमाल करना चाहिए, तो AI agent के लिए भी यह कठिन होगा।
  • Examples देने वाला few-shot prompting हमेशा strongly recommended है। लेकिन बहुत सारे edge cases पहले से भर देने से generality कम हो जाती है। सावधानी से चुने गए expected behavior को दिखाने वाले विविध examples शामिल करें।

Context retrieval और agentic search

  • Agent वह इकाई है जो किसी लक्ष्य को हासिल करने के लिए loop में काम करते हुए स्वायत्त रूप से tools चलाती है। मॉडल जितने शक्तिशाली होते जाते हैं, agents को उतनी अधिक authority यानी autonomy दी जा सकती है।
  • Agentic approach के विकास के साथ एक रणनीति अधिक दिख रही है: JIT(Just in Time) के आधार पर context देना। Claude Code इसका बहुत अच्छा उपयोग करता है। उदाहरण के लिए, prompt में दिए गए file path और links को देखकर वहीँ उसी समय उन्हें ले आना।
  • अच्छा context JIT में लाने के लिए जानकारी को शुरू से ही अच्छी संरचना में स्टोर करना चाहिए। इसमें यह सोचना भी शामिल है कि retrieval में मदद करने वाला metadata कैसे रखा जाए। Folder structure, naming conventions, timestamps जैसे इंसानों के लिए महत्वपूर्ण और अर्थपूर्ण signals agents के लिए भी जानकारी के उपयोग में बड़ी मदद करते हैं।

लंबे समय वाले कार्यों(long-horizon tasks) के लिए context engineering

लंबे समय तक चलने वाले कार्य अक्सर आसानी से LLM के context window को पार कर जाते हैं। इसलिए यह बहुत महत्वपूर्ण हो जाता है कि agent अच्छा context बनाए रखते हुए लक्ष्य की ओर लगातार बढ़ता रहे।

कार्य की प्रकृति के अनुसार मोटे तौर पर 3 तकनीकें इस्तेमाल की जा सकती हैं।

  • Compression उन कार्यों में अच्छा है जिनमें व्यापक दो-तरफ़ा संवाद की ज़रूरत होती है और conversation flow बनाए रखना होता है।
  • Structured note-taking स्पष्ट milestones वाले कार्यों को iterations में विकसित करने के लिए अच्छा है।
  • Sub-agent architecture जटिल research और analysis को संभालने के लिए अच्छा है, जहाँ parallel exploration असरदार साबित होती है।

1) Compression

  • जब context window limit के करीब पहुँचा जाए, तो महत्वपूर्ण content को summarize करके नए window में पास करना। Claude Code में message history को देकर उसका summary बनवाया जाता है। जैसे architecture decisions, unresolved bugs, implementation details आदि।
  • Compression की असली कला यही है कि क्या रखना है और क्या हटाना है। सबसे आसानी से हटाई जा सकने वाली चीज़ें tool calls और उनके results हैं। अगर वे message history में पहले से मौजूद हैं, तो उन्हें अलग से रखने की लगभग ज़रूरत नहीं होती।
  • Sonnet 4.5 से जो memory tool जोड़ा गया है, उससे Context Editing संभव है: https://www.anthropic.com/news/context-management

2) Structured note-taking

  • इसे agentic memory भी कहा जाता है। इसमें नियमित रूप से context window के बाहर, यानी file system में, notes छोड़े जाते हैं और बाद में उन्हें वापस लाया जाता है।
  • इसी तरह Sonnet 4.5 से memory tool के कारण यह तकनीक इस्तेमाल करना और आसान हो गया है।

3) Sub-agent architecture

  • Main agent बड़े स्तर पर planning और coordination करता है, जबकि sub-agents गहरे तकनीकी काम करते हैं या tools का इस्तेमाल करके संबंधित जानकारी खोजते हैं।
  • multi-agent research system कैसे बनाया गया इस पर लिखे गए लेख को देखें।

निष्कर्ष

  • जैसे-जैसे models अधिक शक्तिशाली होते जा रहे हैं, केवल prompt को अच्छा बनाने से आगे बढ़कर यह चुनना महत्वपूर्ण हो गया है कि हर चरण में कौन-सी जानकारी 'attention budget' के भीतर आएगी।
  • चाहे आप long-term tasks के लिए compression लागू कर रहे हों, token-efficient tools design कर रहे हों, या agent को सही समय पर environment explore करने दे रहे हों, guiding principle वही रहता है: वांछित परिणाम की संभावना को अधिकतम करने वाले सबसे छोटे high-signal token set को खोजना
  • इस लेख की तकनीकें model improvements के साथ लगातार विकसित होंगी और अधिक autonomous बनेंगी, लेकिन यह दृष्टिकोण कि 'context एक मूल्यवान और सीमित resource है' विश्वसनीय और प्रभावी agents बनाने का मूल बना रहेगा।
  • अधिक जानकारी के लिए memory and context management cookbook देखें।

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.