अध्याय 07
स्वार्म स्वायत्तता
कई एजेंट चलाना एक लीड और उसकी लेन का वर्णन करता है। यह अध्याय बताता है कि जब कोई खाता अपनी सीमा पर पहुँचता है या कोई एजेंट गायब हो जाता है, तब उस व्यवस्था को क्या चलता रखता है। एक लेन जाँचती है कि उसके खाते में कितनी गुंजाइश बची है और ख़त्म होने से पहले अपना काम आगे सौंप देती है। एक लीड नेतृत्व आगे सौंपता है, या गायब होने पर उसकी जगह कोई और ले लेता है। स्वार्म डेवलपर से केवल वही पूछता है जो वास्तव में critical है।
जिस विफलता का यह उत्तर देता है वह ठोस है: योजना के बीच में कोटा ख़त्म कर देने वाला लीड हर लेन को अटका देता है, और जब तक कोई व्यक्ति नया सत्र नहीं खोलता, कुछ नहीं चलता। नीचे दिए नियमों के साथ, योजना उसी प्राधिकरण के भीतर आगे बढ़ती रहती है जो डेवलपर पहले ही दे चुका है।
छह नियम यहाँ की हर बात को आकार देते हैं:
- हर उत्पाद का एक काम। coding-agents-kit (
ak) खातों और क्षमता को जानता है, herdr-peers संदेशों, पेन और नेतृत्व किसके पास है यह जानता है, और Deep Work Plan पैक पद्धति जानता है: कब हैंडऑफ़ करना है, उत्तराधिकारी को क्या चाहिए, क्या एस्कलेट करना है। हर एक वैकल्पिक रहता है। इनके बिना वही नियम लागू रहते हैं, डेवलपर संदेश आगे पहुँचाता है और एजेंटों को फिर से लॉन्च करता है। - निरंतरता की इकाई योजना है, एजेंट नहीं। हर हैंडऑफ़ और उत्तराधिकार एक सामान्य resume है, साथ में एक छोटा पैकेट जो वह रखता है जो जर्नल में नहीं होता: चल रहा इरादा।
- सक्रिय होना प्रतिक्रियाशील होने से बेहतर है। एक एजेंट कार्य-सीमाओं पर अपनी गुंजाइश जाँचता है और तब हैंडऑफ़ करता है जब वह अब भी एक अच्छा पैकेट लिख सकता है। सीमा पर पहुँचने के बाद प्रतिक्रिया देना सुरक्षा-जाल बना रहता है।
- स्वायत्तता कभी अधिकार नहीं बढ़ाती। हैंडऑफ़, उत्तराधिकार, लॉन्च और शेड्यूलिंग योजना के प्राधिकरण के भीतर चलते हैं। कोई एजेंट अनुमति, bypass, लॉगिन, सहमति या भुगतान स्क्रीन का उत्तर नहीं देता, और काम केवल उन्हीं खातों के बीच चलता है जिन्हें डेवलपर ने घोषित किया है।
- निरंतरता कभी मानक नहीं घटाती। उत्तराधिकारी वही गेट विरासत में पाता है। एक पैकेट कोई मानदंड बंद नहीं करता, कोई गेट ढीला नहीं करता और कोई समीक्षा नहीं छोड़ता।
- बनावट से ही सस्ता। क्षमता कार्य-सीमाओं पर cache से पढ़ी जाती है, कभी किसी लूप में या टाइमर पर नहीं। एकतरफ़ा नोटिस उन प्रश्नों की जगह लेते हैं जिन्हें उत्तर की आवश्यकता नहीं होती, और पैकेट छोटे होते हैं।
भूमिकाएँ
| भूमिका | क्या है | किसका स्वामी है | कभी नहीं |
|---|---|---|---|
| लीड | वह एजेंट जिसके पास एक योजना का लीड रिकॉर्ड है | योजना, लेन तालिका, शेड्यूलिंग, रिलीज़ क्रम, प्राधिकरण के भीतर merge और tag, उत्तराधिकार सूची | किसी लेन के चेकआउट में लिखता है, या ऐसी योजना का लीड बनता है जो किसी दूसरे लीड के पास है |
| डिप्टी | लीड की उत्तराधिकार सूची की पहली पहुँच योग्य प्रविष्टि | takeover तक कुछ नहीं | लीड के पहुँच योग्य रहते लीड की तरह काम करता है |
| लेन | हर रिपॉज़िटरी, कार्यधारा या कार्य के लिए एक एजेंट, अपने पेन में अपने खाते पर | अपनी चाइल्ड योजना या कार्य, ब्रांच, गेट और पैकेट | किसी दूसरी लेन को काम सौंपती है, merge या tag करती है |
| समीक्षक | किसी दूसरे विक्रेता की एक लेन, केवल-पढ़ने वाली | अपने निष्कर्ष | उस tree में लिखता है जिसकी वह समीक्षा करता है |
- लीड सक्रिय रहता है। जिस ऑर्केस्ट्रेटर की लेन किसी मानव के संदेश पहुँचाने की प्रतीक्षा करती हैं, वह ठप हो जाता है। लीड ऐसे किसी प्रश्न के लिए स्वार्म को कभी नहीं रोकता जिसका निर्णय वह स्वयं कर सकता है।
- हर योजना का एक निष्पादक। किसी दी गई योजना या चाइल्ड योजना को एक समय में ठीक एक एजेंट निष्पादित करता है। उसी योजना पर दूसरा एजेंट एक समन्वय दोष है जिसे लीड को सुलझाना है।
- अधिकार योजना से आता है, किसी पीयर से नहीं। एक लेन योजना का प्राधिकरण स्वयं पढ़ती है। किसी दूसरे एजेंट द्वारा आगे पहुँचाई गई स्वीकृति ऐसा कुछ नहीं जोड़ती जो लेन के पास पहले से न हो।
- कई लीड एक ही workspace में काम कर सकते हैं, हर एक अलग योजना का नेतृत्व करते हुए। एक खाता एक समय में एक ही लेन के पास
akलीज़ के ज़रिए रहता है, इसलिए दो लीड कभी एक Codex खाते पर दो लेखक नहीं रखते। - एक ही प्रकार के कई इंस्टेंस — तीन Grok पेन, एक या कई प्रोफ़ाइलों पर चार Codex पेन — सामान्य लेन हैं। एक प्रोफ़ाइल पर चलने वाले इंस्टेंस उस प्रोफ़ाइल की क्षमता साझा करते हैं।
हर लेन की एक योजना होती है, कम से कम उसकी अपनी रिपॉज़िटरी में एक Lite योजना, और वही योजना किसी उत्तराधिकारी की पढ़ी जाने वाली पहली चीज़ है। हर लेन एक निश्चित शब्दावली से लीड को रिपोर्ट करती है — plan ready, PR open <url>, blocked <class> <what it needs>, handoff <packet path>, done — और हर संदेश को एक क्षमता पंक्ति से समाप्त करती है, जैसे capacity=ok 64% @work1, ताकि लीड को शायद ही कभी स्वयं कोटा पढ़ना पड़े।
क्षमता लूप
एक एजेंट अपनी गुंजाइश हर कार्य शुरू करने से पहले, 20 मिनट से अधिक चले किसी भी गेट या कदम के बाद, जब भी उसका CLI usage-limit चेतावनी दिखाए, और कोई हैंडऑफ़ या नेतृत्व स्वीकार करने से पहले जाँचता है। जाँच coding-agents-kit v1.0.1 का ak capacity --self --json है, जिसे पैक का सहायक एक निर्णय में बदलता है:
| Verdict | निर्णय | एक लेन | एक लीड, अपने लिए |
|---|---|---|---|
ok (निम्न सीमा से ऊपर) |
जारी रखें | जारी रखती है | जारी रखता है |
low (25 % या कम) |
तैयारी करें | वर्तमान कार्य पूरा करती है, ऐसा कोई कार्य शुरू नहीं करती जिसे पूरा न कर सके, capacity=low रिपोर्ट करती है |
एक नामित उत्तराधिकारी चुनता है और अपने ऊपर कोई लंबा काम लॉन्च नहीं करता |
critical (10 % या कम, या rate-limited) |
हैंडऑफ़ करें | अगले सुरक्षित बिंदु तक पहुँचती है, पैकेट लिखती है, लीड को सूचित करती है, रुक जाती है | नेतृत्व तुरंत सौंप देता है |
unknown (कोई कोटा स्रोत नहीं) |
जारी रखें | capacity=unknown रिपोर्ट करती है, CLI की सीमा-चेतावनी या usage_limit स्क्रीन पर हैंडऑफ़ करती है |
लंबे कार्यों के लिए ज्ञात-क्षमता वाली लेन को प्राथमिकता देता है |
- सीमाएँ kit की हैं: डिफ़ॉल्ट रूप से binding window के ख़ाली हिस्से के 25 % पर low और 10 % पर critical, जिन्हें
AGENTKIT_CAPACITY_LOWऔरAGENTKIT_CAPACITY_CRITICALसे बदला जा सकता है। रीडिंग 300 सेकंड तक रखे गए cache से आती हैं, इसलिए हर कार्य-सीमा पर जाँच की लागत प्रति घंटे विक्रेता को कुछ ही कॉल है। - हिस्टेरिसिस। एक बार पैकेट लिख दिए जाने पर हैंडऑफ़ पूरा होता है। खाता ठीक होने के बाद एजेंट उस कार्य को कभी फिर से शुरू नहीं करता; उसका स्वामी उत्तराधिकारी है, और ठीक हुआ खाता बस पूल में लौट आता है।
- कॉन्टेक्स्ट का दबाव भी गिना जाता है। जब एजेंट का कॉन्टेक्स्ट अनुबंध की fresh-context सीमा (डिफ़ॉल्ट रूप से 60 %) तक पहुँचता है, तो वही पैकेट और वही हैंडऑफ़ होता है।
- ईमानदार गिरावट। kit के बिना, पुराने kit के साथ, या
akलॉन्च के बाहर, क्षमता को अज्ञात बताया जाता है, कभी ok नहीं।
पूल डेवलपर का है। योजना उन खातों को दर्ज करती है जिन्हें डेवलपर ने काम के लिए घोषित किया है। एक एजेंट कभी खाते नहीं बनाता, लॉगिन नवीनीकृत नहीं करता, Codex रीसेट ख़र्च नहीं करता या पूल के बाहर का खाता इस्तेमाल नहीं करता, और वह हर विक्रेता की शर्तों के भीतर काम करता है। सीमा से पहले, पूल के भीतर काम आगे बढ़ाना शेड्यूलिंग है; किसी सीमा को पार करने के लिए खाते घुमाना कभी अनुमत नहीं है। हर तैयार कार्य के लिए लीड ak pick --owner <lead> से सबसे अच्छी रैंक वाला खाता लेता है, उसे ak lease से लेन के अपने पते पर लीज़ करता है, किसी लेन को कभी लीड का अपना खाता नहीं देता (दोनों एक साथ critical तक पहुँच जाएँगे), लंबे कार्यों के लिए ज्ञात-क्षमता वाले खातों को और समीक्षकों के लिए दूसरे विक्रेता को प्राथमिकता देता है, और एक डिप्टी रखता है। जब पूल के किसी खाते में गुंजाइश न हो और कोई भी योजना की अवधि के भीतर रीसेट न हो, तो स्वार्म सबसे जल्दी होने वाले रीसेट को दर्ज करके ठहर जाता है।
लेन हैंडऑफ़
- लेन,
handoffपर, एक सुरक्षित बिंदु तक पहुँचती है — एक कदम commit हो चुका हो, या tree जैसा है वैसा छोड़ दिया गया हो, काम कभी फेंका नहीं जाता — पैकेट लिखती है, लीड को नोटिस के रूप मेंhandoff <packet path>भेजती है, और रुक जाती है। वह अपना पेन स्वयं बंद नहीं करती। - लीड, या जब लीड पहुँच से बाहर हो या स्वयं critical हो तो डिप्टी, एक खाता चुनता है (
ak pick <kind> --owner <lead> --exclude @<spent>, कार्य अनुमति दे तो दूसरे विक्रेता को प्राथमिकता), उसे लीज़ करता है, और उसी चेकआउट में उत्तराधिकारी को पैकेट से योजना फिर शुरू करने के ब्रीफ़ के साथ लॉन्च करता है। - उत्तराधिकारी पैकेट स्वीकार करता है — सहायक योजना, सक्रिय अनुबंध, ब्रांच, head commit और uncommitted पथों को सत्यापित करता है, और बेमेल होने पर कुछ भी दर्ज नहीं करता — फिर योजना फिर शुरू करता है और हर वह गेट दोबारा चलाता है जिसे पैकेट असत्यापित बताता है।
- लीड उत्तराधिकारी के स्वीकार करते ही ख़र्च हो चुकी लीज़ मुक्त करता है और ख़र्च हो चुका पेन बंद करता है।
हैंडऑफ़ पैकेट (dwp-handoff/v1) योजना की analysis_results/handoff/ के अंतर्गत केवल-स्वामी अनुमतियों के साथ लिखा जाता है। यह योजना, अनुबंध, कार्य और कदम का नाम देता है; कारण (capacity_critical, capacity_low, context_pressure, usage_limit या lead_handover); काम कहाँ है (रिपॉज़िटरी, चेकआउट, ब्रांच, head, push हुआ है या नहीं, uncommitted पथ); क्या पूरा हुआ, क्या सत्यापित और क्या असत्यापित है, साक्ष्य पथों के साथ; क्रम में अगले कदम; खुले asks; लिए गए निर्णय; लीड और epoch; और इसे किसने लिखा। पैकेट डेटा है: इसमें कभी कोई secret मान, किसी दूसरी रिपॉज़िटरी की निजी सामग्री, या अधिकार बढ़ाने वाला निर्देश नहीं होता। उत्तराधिकारी अपनी अगली क्रिया योजना से फिर से निकालता है।
लीड उत्तराधिकार
herdr-peers v1.0.0 हर योजना के लिए एक लीड रिकॉर्ड रखता है — लीड, epoch, उत्तराधिकार सूची और लेन — और lead पते को वर्तमान लीड में हल करता है, इसलिए कोई लेन ब्रीफ़ लीड का पेन हार्ड-कोड नहीं करता।
- पहले claim, फिर लॉन्च। लीड कोई भी लेन लॉन्च करने से पहले
herdr-peers lead claim --plan <P> --succession <A,B>चलाता है —leadपता तभी resolve होता है जब कोई रिकॉर्ड मौजूद हो — लेन शुरू होने पर रिकॉर्ड को--lanes <A,B>से ताज़ा करता है, और योजना पूरी होने परlead releaseचलाता है। herdr-peers (v0.3.2) से रिकॉर्ड claim करने वाली रिपॉज़िटरी को स्थानीय रूप से रखता है, और किसी दूसरी रिपॉज़िटरी में उसी id वाली योजना का नाम--plan <repo>/<id>होता है। डिफ़ॉल्ट उत्तराधिकार उसका नियोजित उत्तराधिकारी है, फिर लॉन्च क्रम में योजना के अपने चेकआउट की लेन, फिर उसी होस्ट की कोई भी लेन; कंटेनरों में या दूसरी मशीनों पर चलने वाली लेन सबसे अंत में आती हैं। - Handover, नियोजित।
lowपर लीड एक नामित उत्तराधिकारी चुनता है।criticalपर वह एक लीड पैकेट लिखता है — लेन तालिका, खुले asks, रिलीज़ क्रम, लंबित merge, निर्णय —herdr-peers lead handover <addr> --plan <P>चलाता है, जो epoch बढ़ाता है और हर लेन को सूचित करता है, और रुक जाता है। उत्तराधिकारी पैकेट स्वीकार करता है, ऑर्केस्ट्रेटर योजना फिर शुरू करता है और हर लेन की फिर से जाँच करता है। - Takeover, अनियोजित। जब लीड पहुँच से बाहर हो, उसमें कोई एजेंट न हो, वह
usage_limitस्क्रीन दिखाए, या उससे किया गया ask दो बार timeout हो जाए, तो उत्तराधिकार सूची की पहली पहुँच योग्य प्रविष्टिherdr-peers lead takeover --plan <P>चलाती है — स्वयं, या योजना के चेकआउट में एक नया लीड पेन लॉन्च करके। नया लीड योजना से स्थिति फिर से बनाता है। गायब चल रहे इरादे को गायब के रूप में दर्ज किया जाता है, कभी गढ़ा नहीं जाता। - फ़ेंसिंग। केवल सबसे ऊँचे epoch का धारक लीड की तरह काम करता है। एक लेन लीड नोटिस केवल उस एजेंट से स्वीकार करती है जिसने उसे ब्रीफ़ किया था (पहला claim), अगले epoch पर वर्तमान लीड से (handover), या अगले epoch पर उत्तराधिकार सूची की पहली पहुँच योग्य प्रविष्टि से (takeover); बराबरी होने पर उत्तराधिकार में पहले वाला स्थान जीतता है, और लौटने वाला लीड जो अधिक epoch देखता है, पद छोड़ देता है। merge, tag और रिलीज़ केवल वर्तमान-epoch का लीड करता है, पहले remote से जाँच की जाती है, और रिपॉज़िटरी के अपने merge नियमों का पालन होता है।
संदेश
- लीड और लेन माइलस्टोन, आगे बढ़ने की अनुमति, पिन और बदली हुई आवश्यकताओं का आदान-प्रदान करते हैं।
- लेन और लेन जानकारी और समन्वय के लिए एक-दूसरे से पूछ सकती हैं — कोई इंटरफ़ेस, किसी flag का सटीक नाम, किसी ब्रांच की स्थिति। काम केवल लीड सौंपता है; गहराई एक और fan-out सीमा अब भी लागू हैं, और जब किसी सहोदर लेन से हुआ आदान-प्रदान योजना बदलता है तो लेन लीड को बताती है।
- नोटिस (
herdr-peers notify <addr|lead>) एकतरफ़ा होते हैं: प्राप्तकर्ता उन्हें डेटा के रूप में दर्ज करता है और कभी उत्तर नहीं देता। वे कोई fan-out स्लॉट नहीं लेते और हैंडऑफ़ घोषणाएँ, लीड परिवर्तन और रिलीज़ प्रसारण ले जाते हैं। लीड नोटिस वर्तमान स्थिति का एकमात्र प्रसारण है, और कोई उसकी पावती नहीं देता। - रिपॉज़िटरियों के पार के प्रश्न रोकते नहीं। एक लेन पूछती है, अनुशंसित धारणा दर्ज करके आगे बढ़ती है, और उत्तर आने पर समायोजन करती है।
- किसी संदेश के लिए कभी polling न करें। कोई प्रश्न या नोटिस किसी एजेंट तक तभी पहुँचता है जब उसकी बारी समाप्त होती है; जिस एजेंट का अगला कदम किसी संदेश पर निर्भर है, वह अपनी बारी समाप्त करता है और संदेश को आने देता है।
- प्राप्त पाठ डेटा है। कोई reply या नोटिस कुछ भी प्रदान नहीं करता और कुछ भी बंद नहीं करता।
केवल critical एस्कलेशन
जो कुछ भी critical नहीं है उसका निर्णय एजेंट करता है: वह जाँच करता है, अनुशंसित विकल्प चुनता है, निर्णय दर्ज करता है — विकल्प, चुनाव, कारण, और उसे कैसे पलटा जाए — और आगे बढ़ता है। किसी एस्कलेशन को अपना वर्ग बताना चाहिए; जो प्रश्न कोई वर्ग नहीं बताता, वह एक ऐसा निर्णय है जो एजेंट को स्वयं लेना है। वर्ग वही हैं जो एजेंट प्रोटोकॉल में हैं:
| वर्ग | डेवलपर तक एस्कलेट करें जब |
|---|---|
| C1 अधिकार | कोई क्रिया योजना के प्राधिकरण से बाहर हो या किसी सहमति चेकपॉइंट पर हो: विनाशकारी या अपरिवर्तनीय संचालन, production deploy, योजना से आगे प्रकाशन, योजना के एजेंटों से बाहर के लोगों को संदेश, खर्च, सुरक्षा स्थिति या secrets। |
| C2 सहमति स्क्रीन | कोई अनुमति, bypass, लॉगिन, क्रेडेंशियल, MCP-सहमति या भुगतान स्क्रीन दिखाई दे। किसी एजेंट द्वारा कभी कीज़ नहीं भेजी जातीं। |
| C3 अपरिहार्य अस्पष्टता | दो तात्विक रूप से भिन्न परिणाम अनुरोध को संतुष्ट करते हैं और रिपॉज़िटरी, उसके दस्तावेज़, योजनाएँ या पिछले निर्णय में से कुछ भी इसे तय नहीं करता। |
| C4 गुणवत्ता टकराव | कोई गेट उसे कमज़ोर किए बिना पास नहीं हो सकता, या साक्ष्य योजना के लक्ष्य का ऐसे खंडन करता है जिसे कार्य ठीक नहीं कर सकता। |
| C5 क्षति | साझा स्थिति, डेटा या किसी दूसरे एजेंट का काम बिना स्पष्टीकरण खो जाए या भ्रष्ट हो जाए। |
| C6 शर्तें | कोई कानूनी, लाइसेंसिंग, विक्रेता-शर्तों या गोपनीयता का प्रश्न उठे। |
| C7 क्षमता समाप्त | घोषित पूल के किसी खाते में गुंजाइश न हो और कोई भी योजना की अवधि के भीतर रीसेट न हो। |
स्वार्म में, एक critical मामला अपनी निर्भरता शृंखला को रोकता है, पूरे स्वार्म को नहीं। लीड blocked कार्य को किनारे रखता है — उसका blocked रिकॉर्ड ही एस्कलेशन है, जिसे एक बार भेजा जाता है — हर स्वतंत्र लेन को चलता रखता है, और डेवलपर के उत्तर देने पर शृंखला फिर शुरू करता है। स्वायत्तता कभी किसी मानव स्वीकृति को बंद नहीं करती, डेवलपर के शाब्दिक शब्द किसी अनुशंसा पर प्रभावी रहते हैं, और किसी एजेंट द्वारा आगे पहुँचाई गई स्वीकृति आगे पहुँचाई गई के रूप में दर्ज होती है, कभी ऐसे नहीं मानो डेवलपर ने उसे स्वयं लिखा हो।
गुणवत्ता का मानक
स्वार्म चलाना तभी सार्थक है जब उसके परिणाम पर भरोसा किया जा सके। गुणवत्ता का मानक योजना को आगे बढ़ाने वाले हर एजेंट पर लागू होता है:
- गेट परिकल्पनाएँ हैं। किसी नए या बदले गए गेट पर भरोसा करने से पहले उसका किसी जानबूझकर डाले गए दोष पर विफल होना दिखाया जाता है, और खोखला पास — गायब binary, शून्य फ़ाइलें मेल खाना, खाली लॉग — एक विफलता है। इनपुट अनुबंध वाला कार्य अपने edge cases — खाली, बहु-पंक्ति, आसपास का whitespace — नामित करता है, ताकि हर उदाहरण पास कर लेने को नियम सिद्ध करना न समझ लिया जाए।
- बेस से तुलना करें। प्रदर्शन, कवरेज और आकार की तुलना बेस ब्रांच से की जाती है, केवल किसी सीमा से नहीं।
- पहले मापें, बनाने से पहले डिज़ाइन। कोई fix या ऑडिट पहले अपनी पूर्वधारणा और मापने के टूल को सत्यापित करता है; एक गैर-तुच्छ बदलाव कोड से पहले इंटरफ़ेस, विफलता मोड, सुरक्षा और परीक्षण लिखता है।
- अपरिवर्तनीय कदम से पहले समीक्षा। स्थानीय AI Diff Review किसी भी merge, tag या publish से पहले चलता है, और पद्धति या प्रोटोकॉल के बदलावों को दूसरे विक्रेता का समीक्षक मिलता है।
- निरंतरता कभी मानक नहीं घटाती। उत्तराधिकारी वह सब दोबारा चलाता है जिसे पैकेट असत्यापित बताता है; हैंडऑफ़ कभी किसी गेट को लाँघने का छोटा रास्ता नहीं है।
रिकॉर्ड
ऑर्केस्ट्रेटर योजना का जर्नल स्वार्म को दर्ज करता है: लेन के लॉन्च और परिणाम delegation घटनाओं के रूप में; क्षमता verdicts, हैंडऑफ़ और उत्तराधिकार observations के रूप में; एस्कलेशन और डेवलपर के उत्तर interventions के रूप में। पैकेट और उनके स्वीकृति रिकॉर्ड उसी योजना में रहते हैं जिसने काम निष्पादित किया, और पूर्णता रिपोर्ट हर हैंडऑफ़ और उत्तराधिकार का उसके पैकेट के साथ नाम लेती है।
अभ्यास
उस पर निर्भर होने से पहले लूप को सिद्ध करें। एक छोटी ऑर्केस्ट्रेटर योजना वाली एक scratch रिपॉज़िटरी पर, एक लीड और कम से कम तीन लेन अलग-अलग खातों या विक्रेताओं पर चलाएँ। एक लेन की रिपोर्ट की गई क्षमता को सीमित करें — AGENTKIT_CAPACITY_CAP=@<profile>=8 रीडिंग घटाता है और उसे कभी बढ़ा नहीं सकता — और देखें कि वह पैकेट लिखती है, लीड एक उत्तराधिकारी लॉन्च करता है जो उसे स्वीकार करता है, और उत्तराधिकारी गेट पास करता है। लीड को भी उसी तरह सीमित करें और handover तथा नए लीड को योजना पूरी करते देखें। फिर साक्ष्य योजना की analysis_results/ में दर्ज करें: कोई मानव कीस्ट्रोक नहीं, हर पैकेट, हर epoch, एक लेन-से-लेन ask, और गेट।