Claude Agent SDK सैंडबॉक्स: हर टास्क को उसके अपने वर्कस्पेस में चलाएँ
Claude Agent SDK सैंडबॉक्स वह एनवायरनमेंट है जहां SDK का एजेंट प्रोसेस, टूल्स और काम की फ़ाइलें चलते हैं। SDK एक Claude CLI सबप्रोसेस शुरू करता है। उस प्रोसेस को अलग VM या कंटेनर देने से आप तय कर सकते हैं कि वह किन फ़ाइलों और क्रेडेंशियल को एक्सेस कर सकता है और टास्क खत्म होने पर क्या होगा। सिर्फ़ वर्किंग डायरेक्टरी सेट करने से यह सीमा नहीं बनती। Anthropic की होस्टिंग गाइड
अलग-अलग जॉब्स के लिए हर टास्क को एक वर्कस्पेस दें। कई रिक्वेस्ट तक चलने वाले सेशन के लिए वर्कस्पेस बनाए रखें या दोबारा शुरू करने के लिए ज़रूरी स्टेट सेव करें। ऑथेंटिकेशन, टास्क का मालिकाना हक और शेड्यूलिंग एजेंट की मशीन के बाहर एक कोऑर्डिनेटर में रखें।
हम Lizard बनाते हैं। यह गाइड एक छोटे सेटअप के उदाहरण के लिए Lizard Sandboxes इस्तेमाल करती है और होस्टिंग के विकल्पों की तुलना करती है। हमने 4 नवंबर 2026 को API और कमांड जांचे। हमने नए SDK उदाहरण की डॉक्यूमेंटेशन से मिलान करके समीक्षा की है; इसे क्लाउड सैंडबॉक्स में Anthropic के साथ चलाया नहीं है।
होस्ट को क्या देना होगा?
Agent SDK को रनटाइम, CLI सबप्रोसेस, वर्किंग डायरेक्टरी और मॉडल सर्विस का एक्सेस चाहिए। सबप्रोसेस ऐसे टूल्स भी शुरू कर सकता है जो SDK से ज़्यादा मेमोरी, CPU और डिस्क इस्तेमाल करते हैं। वर्कस्पेस का साइज़ टास्क के हिसाब से तय करें: कुछ फ़ाइलें पढ़ना, रिपॉज़िटरी बिल्ड करने या ब्राउज़र चलाने से अलग है।
| ज़रूरत | क्या तय करना है |
|---|---|
| प्रोसेस की लाइफ़टाइम | क्या एजेंट आने वाली HTTP रिक्वेस्ट खत्म होने के बाद भी चल सकता है? |
| फ़ाइलें | कौन-सी इनपुट, ट्रांसक्रिप्ट और आउटपुट फ़ाइलें बची रहनी चाहिए? |
| टूल्स | कौन-से टूल्स चल सकते हैं और किनके लिए अप्रूवल चाहिए? |
| क्रेडेंशियल | हर क्रेडेंशियल किस सर्विस को एक्सेस कर सकता है? |
| नेटवर्क | टास्क को किन होस्ट से संपर्क करना होगा? |
| रिकवरी | कोऑर्डिनेटर फ़ेल हुए या बीच में रुके रन का पता कैसे लगाएगा? |
लोकल डायरेक्टरी ऐप्लिकेशन का स्टेट अलग रखती हैं, लेकिन ऑपरेटिंग सिस्टम में एक जैसे एक्सेस वाले प्रोसेस फिर भी दूसरी डायरेक्टरी तक पहुंच सकते हैं। असंबंधित यूज़र्स के लिए उस जोखिम के हिसाब से सीमा तय करें। Anthropic की सुरक्षित डिप्लॉयमेंट गाइड में आइसोलेशन और क्रेडेंशियल पर चर्चा है।
होस्टिंग का विकल्प चुनें
Lizard Sandboxes अपने कर्नेल वाले Firecracker microVM, तैयार टेम्पलेट, कमांड चलाने और फ़ाइल ट्रांसफ़र की सुविधा देते हैं। ये उन CPU टास्क के लिए सही हैं जो तय मशीन साइज़ में चल सकते हैं। Lizard सैंडबॉक्स के लिए GPU इंस्टेंस या मनचाहे Dockerfile पर आधारित सैंडबॉक्स टेम्पलेट नहीं देता। Lizard Sandboxes
E2B Linux सैंडबॉक्स, टेम्पलेट और कोड चलाने वाले API देता है। Daytona वर्कस्पेस टूल्स और कई तरह के रनटाइम देता है। Modal बढ़ाए-घटाए जा सकने वाले CPU रिसोर्स और GPU वर्कफ़्लो सपोर्ट करता है, जिनकी पाबंदियां रनटाइम पर निर्भर करती हैं। Docker या Kubernetes डिप्लॉयमेंट आपको अपने इंफ़्रास्ट्रक्चर का कंट्रोल देता है, जबकि क्षमता, आइसोलेशन और क्लीनअप आप संभालते हैं। E2B, Daytona, Modal
SDK ऐसे होस्ट पर चल सकता है जिसमें ज़रूरी रनटाइम और सबप्रोसेस सपोर्ट हो; इसके लिए किसी खास सैंडबॉक्स प्रदाता की ज़रूरत नहीं है। अपने वर्कलोड के साथ डिपेंडेंसी, नेटवर्क एक्सेस, बंद होने पर व्यवहार और मेमोरी जांचें।
एक छोटे, सिर्फ़ पढ़ने वाले SDK टास्क से शुरू करें
यह उदाहरण लोकल प्रोजेक्ट की फ़ाइल पढ़ता है और Claude से उसका सार मांगता है। इसमें एजेंट को सिर्फ़ Read, Glob और Grep टूल्स मिलते हैं। इसे बिना पाबंदी वाली Bash कमांड चलाने या परमिशन बायपास की ज़रूरत नहीं है।
आपको Lizard प्रोजेक्ट और साइन इन किया हुआ Lizard CLI चाहिए, साथ ही मॉडल कॉल के लिए Anthropic API की भी चाहिए। Lizard कंप्यूट और Anthropic उपयोग की बिलिंग अलग होती है। मौजूदा निर्देशों के मुताबिक CLI इंस्टॉल करें।
1. Small वर्कस्पेस बनाएँ
प्रोजेक्ट प्लेसहोल्डर बदलें, फिर मिली हुई सैंडबॉक्स ID को SB में कॉपी करें:
lizard sandbox create --project YOUR_PROJECT_ID \
--template claude --size small --timeout 3600000 --json
SB=YOUR_SANDBOX_ID
lizard sandbox exec "$SB" -- mkdir -p /workspace/agentयहां लाइफ़टाइम साफ़ तौर पर एक घंटा सेट की गई है। CLI में डिफ़ॉल्ट पांच मिनट है, और कमांड चलाने से यह समय-सीमा रीसेट नहीं होती। जॉब के हिसाब से समय-सीमा सेट करें और उसके खत्म होने से पहले आउटपुट सेव करें। सैंडबॉक्स CLI
2. SDK रनर लोकल मशीन पर सेव करें
इस कोड के साथ summarize.mjs बनाएँ:
import { query } from '@anthropic-ai/claude-agent-sdk';
if (!process.env.ANTHROPIC_API_KEY) {
throw new Error('Set ANTHROPIC_API_KEY inside the task environment');
}
let completed = false;
for await (const message of query({
prompt: 'Read README.md and summarize the project in two sentences.',
options: {
cwd: '/workspace/agent',
settingSources: [],
tools: ['Read', 'Glob', 'Grep'],
allowedTools: ['Read', 'Glob', 'Grep'],
permissionMode: 'dontAsk',
maxTurns: 6,
},
})) {
if (message.type !== 'result') continue;
if (message.subtype !== 'success' || message.is_error) {
throw new Error(`Agent failed: ${message.subtype}`);
}
completed = true;
console.log(message.result);
}
if (!completed) throw new Error('Agent ended without a successful result');tools उपलब्ध बिल्ट-इन टूल्स चुनता है। allowedTools कॉल को पहले से अप्रूव करता है; अपने आप में यह टूल्स की पूरी अलाउलिस्ट नहीं है। dontAsk उन रिक्वेस्ट को रोकता है जिनके पास परमिशन नहीं है। टर्न की छोटी लिमिट इस उदाहरण के एजेंट लूप को सीमित करती है; यह क्लाउड पर कुल खर्च की सीमा तय नहीं करती। Agent SDK रेफ़रेंस
स्क्रिप्ट के साथ एक छोटी README.md बनाएँ, फिर दोनों फ़ाइलें अपलोड करें:
lizard sandbox files put "$SB" ./summarize.mjs /workspace/agent/summarize.mjs
lizard sandbox files put "$SB" ./README.md /workspace/agent/README.md
lizard sandbox shell "$SB"3. वर्कस्पेस के अंदर इंस्टॉल करें और चलाएँ
सैंडबॉक्स के Bash शेल में:
cd /workspace/agent
npm init -y
npm install --save-exact @anthropic-ai/claude-agent-sdk
read -rsp 'Anthropic API key: ' ANTHROPIC_API_KEY
export ANTHROPIC_API_KEY
node summarize.mjs
unset ANTHROPIC_API_KEYअपेक्षित नतीजा stdout पर छपा एक छोटा सार और शून्य एग्ज़िट स्टेटस है। क्रेडेंशियल न होने, किसी ऑपरेशन की अनुमति न मिलने या टर्न की लिमिट खत्म होने पर रन फ़ेल होना चाहिए। बनी हुई लॉकफ़ाइल रखें और जब इस उदाहरण को दोहराए जा सकने वाले एनवायरनमेंट में बदलें, तो npm ci इस्तेमाल करें।
प्रॉम्प्ट की वजह से की शेल हिस्ट्री में नहीं जाती। टास्क चलते समय की फिर भी एजेंट के एनवायरनमेंट के अंदर मौजूद रहती है। अगर सर्विस ऐसा काम चलाती है जिस पर भरोसा नहीं किया जा सकता, तो ऐसी आउटबाउंड प्रॉक्सी पर विचार करें जो सैंडबॉक्स के बाहर क्रेडेंशियल जोड़े। SDK ऑथेंटिकेशन और होस्टिंग
4. ज़रूरी चीज़ें एक्सपोर्ट करें, फिर पॉज़ करें
सैंडबॉक्स शेल से बाहर निकलें और lizard sandbox files get से आउटपुट फ़ाइलें डाउनलोड करें। नतीजा सेव होने के बाद:
lizard sandbox pause "$SB"पुष्टि करें कि आखिरी स्टेटस paused है। सफल पॉज़ से कंप्यूट शुल्क रुक जाते हैं और वर्कस्पेस का स्टेट बना रहता है; Persistent Volumes स्टोरेज की बिलिंग अलग होती है। इस उदाहरण की लोकल डिस्क सिर्फ़ इसलिए टिकाऊ स्टोरेज नहीं बन जाती क्योंकि उसका पाथ /workspace से शुरू होता है। डेटा बनाए रखना, Persistent Volumes
रनर के साथ प्रोडक्शन के लिए ज़रूरी व्यवहार जोड़ें
एजेंट शुरू करने से पहले हर रिक्वेस्ट को टास्क रिकॉर्ड में दर्ज करें। मालिक, सैंडबॉक्स ID, स्टेटस, समय-सीमा और आउटपुट का स्थान सेव करें। कोऑर्डिनेटर के ज़रिए प्रगति स्ट्रीम करें और आखिरी नतीजा क्लाइंट कनेक्शन से अलग सेव रखें।
टास्क रद्द करने और क्लीनअप को अलग-अलग संभालें। क्लाइंट डिस्कनेक्ट होने पर उपयोगी काम रद्द करना ज़रूरी नहीं है; रद्द हुआ टास्क किसी मशीन को बिना दिखे चालू नहीं रखना चाहिए। अस्थायी विफलताओं के बाद क्लीनअप दोबारा आज़माएँ और टास्क रिकॉर्ड का सैंडबॉक्स की असली स्थिति से मिलान करें।
सेशन के लिए सेशन ID और ज़रूरी ट्रांसक्रिप्ट व फ़ाइल स्टेट सेव करें। डेटाबेस की किसी पंक्ति में सिर्फ़ ID होने से वर्कस्पेस की गायब फ़ाइलें दोबारा नहीं बन सकतीं। Anthropic के डॉक्यूमेंटेशन में सेशन स्टोरेज और वर्किंग डायरेक्टरी की फ़ाइलों के बारे में अलग-अलग जानकारी है। सेशन, होस्टिंग स्टेट
दोबारा इस्तेमाल होने वाले टेम्पलेट स्टेट में यूज़र क्रेडेंशियल और टास्क की निजी फ़ाइलें न रखें। हर असंबंधित टास्क के लिए वही साफ़ स्टेट बहाल करें। जब तक रीसेट का तरीका जांचा हुआ न हो, एक यूज़र की पॉज़ की गई मशीन को दूसरे यूज़र का वर्कस्पेस न बनने दें।
वर्कस्पेस की लागत कितनी है?
Lizard Small की लागत चलने के हर घंटे के लिए $0.0162 है। कुल एक सौ घंटे चलने पर $1.62 का कंप्यूट इस्तेमाल होता है; नए Pro अकाउंट पर फिर भी हर माह कम-से-कम $19 का शुल्क लगता है, जिसमें $19 का उपयोग शामिल है। मॉडल कॉल, Persistent Volumes और दूसरे रिसोर्स के लिए अलग बजट चाहिए। Lizard प्राइसिंग
Pro एक साथ 20 Small सैंडबॉक्स और हर दिन 400 नए स्टार्ट सपोर्ट करता है; हर मिनट और हर घंटे शुरू करने की लिमिट भी है। Pro 5x की कीमत $99 है, जिसमें $99 का उपयोग शामिल है, और यह 110 तक Small सैंडबॉक्स सपोर्ट करता है; Pro 20x की कीमत $499 है, जिसमें $499 का उपयोग शामिल है, और यह 600 तक सपोर्ट करता है। एक साथ ज़्यादा टास्क चलने का मतलब यह नहीं कि हर टास्क उसी गति से पूरा होगा। मौजूदा लिमिट
पूरा रनटाइम मापें, जिसमें पैकेज इंस्टॉल करना, मॉडल का इंतज़ार और आउटपुट ट्रांसफ़र शामिल हैं। अगर आप रिक्वेस्ट के बीच वर्कस्पेस पॉज़ करते हैं, तो कोऑर्डिनेटर उसके बाहर ही रहना चाहिए: पॉज़ किया हुआ प्रोसेस खुद को चालू करने वाली रिक्वेस्ट नहीं ले सकता।
क्या Claude Agent SDK की वर्किंग डायरेक्टरी एक सैंडबॉक्स है? नहीं। cwd चुनता है कि प्रोसेस कहां काम करेगा। उस डायरेक्टरी से बाहर का एक्सेस तय करने के लिए ऑपरेटिंग सिस्टम के कंट्रोल या अलग कंटेनर या VM इस्तेमाल करें।
क्या SDK सर्विस लिखने के बजाय Claude Code से शुरू कर सकते हैं? हाँ। एक कोडिंग टास्क के लिए Claude Code सैंडबॉक्स गाइड में छोटा CLI वर्कफ़्लो दिया है। जब आपके ऐप्लिकेशन को एजेंट के मैसेज, टूल पॉलिसी और सेशन का व्यवहार कोड में संभालना हो, तो SDK इस्तेमाल करें।
AI के साथ बिल्ड करें। Lizard के साथ शिप करें।
लाइव जाने के लिए आपको प्लेटफ़ॉर्म टीम की ज़रूरत नहीं है। आपका पूरा क्लाउड, बस एक CLI कमांड की दूरी पर।
- सर्विसेज़
- —
- ऐडऑन
- —
- डिप्लॉयमेंट्स
- —
- Sandbox स्टार्ट
- —