pi-autoresearch: Karpathy के "AI स्वायत्त प्रयोग" आइडिया को सामान्यीकृत करने वाला ओपन सोर्स
(github.com/davebcn87)एक पंक्ति में सार
आइडिया आज़माओ → मापो → सुधार हो तो रखो, नहीं तो छोड़ दो → और इसे हमेशा दोहराते रहो।
pi-autoresearch टर्मिनल AI coding agent pi का एक एक्सटेंशन है, और यह Karpathy के autoresearch कॉन्सेप्ट को किसी भी optimization problem पर लागू किया जा सके, इस तरह सामान्यीकृत करने वाला प्रोजेक्ट है।
पहले, pi क्या है?
pi एक टर्मिनल में चलने वाला AI coding agent है। Cursor या Windsurf जैसे IDE-आधारित टूल्स से अलग, इसे टर्मिनल-नेटिव तरीके से डिज़ाइन किया गया है, इसलिए SSH एक्सेस वाले माहौल या headless server पर भी इसे वैसे ही इस्तेमाल किया जा सकता है।
pi की मुख्य खासियत Extension और Skill system है:
- Extension — एजेंट में नए tools जोड़ता है। फाइल read/write, command execution जैसे बेसिक tools के अलावा custom tools को plugin की तरह जोड़ा जा सकता है।
- Skill — खास task patterns सिखाता है। यानी, "ऐसी स्थिति में इन tools को इस क्रम में इस्तेमाल करो" जैसा workflow परिभाषित करता है।
सिर्फ pi install <github-url> की एक लाइन से community द्वारा बनाए गए Extension और Skill इंस्टॉल किए जा सकते हैं, इसलिए एजेंट की क्षमताओं को काफी स्वतंत्र रूप से बढ़ाया जा सकता है। pi-autoresearch इसी system के ऊपर बना Extension+Skill पैकेज है।
पृष्ठभूमि: Karpathy का autoresearch
मार्च 2026 में Karpathy ने autoresearch का जो आइडिया पेश किया, वह सरल था:
- AI agent को LLM training code (
train.py) दिया जाए - वह कोड बदले, 5 मिनट तक training चलाए
- validation loss बेहतर हो तो keep, नहीं तो discard
- रातभर दोहराओ → सुबह उठो तो experiment log + बेहतर model तैयार
यह बेहद minimal design (3 फाइलें, 1 GPU, 1 metric) वाला प्रोजेक्ट था, जिसका फोकस इस कॉन्सेप्ट को साबित करना था कि "agent स्वायत्त रूप से researcher की भूमिका निभा सकता है"। हालांकि, इसकी मूल सीमा यह थी कि यह सिर्फ NVIDIA GPU और सिर्फ LLM training पर लागू हो सकता था।
pi-autoresearch में क्या अलग है
1. डोमेन की कोई सीमा नहीं
सिर्फ LLM training loss ही नहीं, बल्कि test execution speed, bundle size, build time, Lighthouse score जैसी किसी भी मापी जा सकने वाली चीज़ को optimization target बनाया जा सकता है। यह pi के "infrastructure (Extension) और domain knowledge (Skill)" के अलगाव वाले ढांचे की वजह से संभव है।
- टेस्ट स्पीड — seconds ↓ —
pnpm test - बंडल साइज़ — KB ↓ —
pnpm build && du -sb dist - LLM training — val_bpb ↓ —
uv run train.py - Lighthouse — perf score ↑ —
lighthouse --output=json
2. रीस्टार्ट के बाद भी मेमोरी नहीं खोता
AI agents की context window सीमित होती है, इसलिए लंबे experiment के दौरान context reset हो सकता है या process बंद हो सकती है। pi-autoresearch दो फाइलों के जरिए session state को पूरी तरह सुरक्षित रखता है:
autoresearch.jsonl— सभी experiments का append-only logautoresearch.md— लक्ष्य, क्या-क्या आज़माया गया, dead ends, और मुख्य उपलब्धियों का सार
भले ही पूरी तरह बिना मेमोरी वाला नया agent लगाया जाए, वह सिर्फ इन दो फाइलों को पढ़कर पिछले session को बिल्कुल सही तरह से आगे बढ़ा सकता है। असल में यह "agent के लिए external memory" पैटर्न जैसा है।
3. noise और वास्तविक सुधार में फर्क
Benchmarking में एक ही code को चलाने पर भी हर बार परिणाम अलग आ सकते हैं। 3 या उससे अधिक runs के बाद MAD(Median Absolute Deviation) आधारित confidence score अपने-आप निकाला जाता है, ताकि विजुअली दिखाया जा सके कि सुधार वास्तविक है या सिर्फ noise।
- 🟢 ≥ 2.0× — सुधार के वास्तविक होने की संभावना अधिक
- 🟡 1.0–2.0× — noise से ऊपर, लेकिन मामूली
- 🔴 < 1.0× — noise की सीमा में, दोबारा चलाने की सलाह
हालांकि, experiment को अपने-आप discard नहीं किया जाता; अंतिम निर्णय agent पर छोड़ा जाता है।
4. optimization से correctness न टूटे, इसकी सुरक्षा
अगर autoresearch.checks.sh मौजूद हो, तो benchmark पास होने के बाद tests, typecheck, lint जैसी correctness checks अपने-आप चलती हैं। इससे "तेज़ तो हो गया, लेकिन tests टूट गए" जैसी आम समस्या को system level पर रोका जाता है।
5. experiment के नतीजों को साफ-सुथरे PR में व्यवस्थित करना
Experiment खत्म होने पर autoresearch-finalize skill, keep किए गए experiments को logical changesets में group करके अलग-अलग git branches में बांट देता है। यह सुनिश्चित किया जाता है कि फाइलें आपस में overlap न करें, ताकि हर branch को स्वतंत्र रूप से review और merge किया जा सके।
workflow
1. /autoresearch optimize unit test runtime
→ लक्ष्य, command, metric सेटअप → baseline मापना → loop शुरू
2. स्वायत्त loop (अनंत दोहराव)
→ code बदलना → git commit → benchmark → correctness checks
→ सुधार? keep / गिरावट? revert → .jsonl में रिकॉर्ड → दोहराना
3. /skill:autoresearch-finalize
→ keep किए गए experiments को अलग branches में व्यवस्थित करना → review·merge
cost control
स्वायत्त loop लगातार tokens खर्च करता है, इसलिए API key limit settings और maxIterations (प्रति session अधिकतम experiment count) जैसी दो guardrails दी गई हैं।
यह ध्यान देने लायक क्यों है
अगर Karpathy का autoresearch "AI खुद से experiment करता है" का एक दिलचस्प concept proof था, तो pi-autoresearch उसे वास्तविक development environment में इस्तेमाल किए जा सकने वाले एक सामान्य-purpose tool में बदलने की कोशिश है। यह pi की Extension/Skill architecture पर बना है, इसलिए सिर्फ एक install command से इसे मौजूदा pi workflow में तुरंत जोड़ा जा सकता है, जो entry barrier को कम करता है।
Session state preservation, statistical confidence validation, correctness protection, और Git-native workflow जैसी व्यावहारिक समस्याओं को इसने व्यवस्थित ढंग से हल किया है। रात में इसे चलाकर छोड़ देना और सुबह PR review करना क्या वास्तव में एक व्यवहारिक workflow बन सकता है, यह देखने लायक होगा।
2 टिप्पणियां
वाकई pi
pi बहुत अच्छा है