کوڈ لکھنے والا ایجنٹ تبھی کام کا ہے جب کوئی چیز اس کوڈ کو محفوظ طریقے سے چلائے اور نتیجہ بتائے۔ یہ گائیڈ وہ لوپ شروع سے آخر تک بناتی ہے: ماڈل Python اسکرپٹ لکھتا ہے، سینڈباکس اسے چلاتا ہے، اور ناکام ہونے پر غلطی ماڈل کو لوٹتی ہے۔ پھر یہی ٹاسک ایک بھی لائن کوڈ کے بغیر، MCP سے۔
آپ کو Python 3.8+، EQVPS اکاؤنٹ ٹوکن (اکاؤنٹ جوڑنا دیکھیں) اور کسی ماڈل کی API کی چاہیے۔
1. پہلے خرچ کی حد مقرر کریں
ایجنٹ خود سینڈباکس بناتا ہے، اس لیے شروع ہونے سے پہلے اسے ایک چھت دیں۔ تجربات کے لیے روزانہ دو ڈالر اور ماہانہ بیس ڈالر کافی سے زیادہ ہیں:
curl -X PUT https://api.eqvps.com/api/v1/eqvps/sandboxes/budget \
-H "Authorization: Bearer $EQVPS_API_KEY" -H "Content-Type: application/json" \
-d '{"daily_usd": 2, "monthly_usd": 20}'
حد پوری ہونے پر نئے سینڈباکس کو 429 budget_exceeded ملتا ہے اور چلتے ہوئے عارضی سینڈباکس حذف ہو جاتے ہیں۔ تفصیل سینڈباکس کی حدیں اور بلنگ میں ہے۔
2. دو لائبریریاں انسٹال کریں
pip install eqvps anthropic
export EQVPS_API_KEY="your-eqvps-token"
export ANTHROPIC_API_KEY="your-model-key"
مثال ایک ماڈل فراہم کنندہ استعمال کرتی ہے، مگر کچھ بھی اس پر منحصر نہیں۔ ماڈل سے صرف ask() فنکشن بات کرتا ہے۔
3. لکھو، چلاؤ، ٹھیک کرو لوپ
اسے agent.py کے نام سے محفوظ کریں:
import re
import anthropic
from eqvps import Sandbox
TASK = "Count the prime numbers below 1,000,000 and print only the number."
client = anthropic.Anthropic()
def ask(messages):
msg = client.messages.create(model="claude-sonnet-5", max_tokens=2000, messages=messages)
return msg.content[0].text
def extract_code(text):
m = re.search(r"`{3}(?:python)?\n(.*?)`{3}", text, re.S)
return m.group(1) if m else text
messages = [{"role": "user", "content": "Write a Python 3 script for this task. "
"Reply with a single code block and nothing else.\n\nTask: " + TASK}]
with Sandbox.create(tariff="small", idle_timeout=120) as sb:
for attempt in range(1, 4):
reply = ask(messages)
r = sb.run(extract_code(reply), timeout=55)
print(f"attempt {attempt}: exit code {r.exit_code}")
if r.ok:
print(r.stdout.strip())
break
messages += [
{"role": "assistant", "content": reply},
{"role": "user", "content": f"The script failed with exit code {r.exit_code}.\n"
f"stderr:\n{r.stderr[-3000:]}\nFix it. Reply with a single code block."},
]
چلائیں:
python3 agent.py
عام طور پر یہ attempt 1: exit code 0 اور پھر 78498 چھاپتا ہے۔ اگر پہلی اسکرپٹ ناکام ہو تو آپ کو غلطی ٹھیک کی ہوئی دوسری کوشش نظر آئے گی۔
ہر حصہ کیا کرتا ہے:
Sandbox.create(..., idle_timeout=120)تقریباً ایک سیکنڈ میں microVM چلاتا ہے۔ اگر آپ کی اسکرپٹ بیچ میں بند ہو جائے تب بھی سینڈباکس 2 منٹ کی غیرفعالیت کے بعد خود حذف ہو جاتا ہے۔sb.run(code, timeout=55)کوڈ چلاتا ہے اور ایگزٹ کوڈ، stdout اور stderr لوٹاتا ہے۔ کوڈ کا کریش ہونا عام نتیجہ ہے، exception نہیں، اس لیے لوپ اسے ماڈل کو دکھا سکتا ہے۔r.stderr[-3000:]غلطی کا صرف آخری حصہ بھیجتا ہے۔ بڑی اسکرپٹ کا پورا traceback ماڈل کا بہت سا کانٹیکسٹ ضائع کر سکتا ہے۔- تین کوششیں جان بوجھ کر رکھی گئی حد ہے۔ جو ماڈل تین بار میں اسکرپٹ ٹھیک نہ کر سکے، اسے عام طور پر چوتھی کوشش نہیں، بہتر ٹاسک وضاحت چاہیے۔
4. جب ٹاسک کو 55 سیکنڈ سے زیادہ چاہیے
ایک ہم وقت کال زیادہ سے زیادہ 55 سیکنڈ چلتی ہے۔ لمبے کام کو بیک گراؤنڈ میں شروع کریں اور انتظار کریں:
task = sb.run(code, background=True)
result = task.wait(timeout=1800)
آپ کا wait ٹائم آؤٹ ہو جائے تب بھی ٹاسک چلتا رہتا ہے، اور آپ sb.task(task_id) سے اسے دوبارہ اٹھا سکتے ہیں۔
5. یہی ٹاسک MCP سے، بغیر کوڈ
اگر آپ Claude Desktop یا Cursor جیسا MCP کلائنٹ EQVPS کے MCP سرور کے ساتھ استعمال کرتے ہیں تو ایجنٹ کے پاس سینڈباکس ٹولز پہلے سے ہیں: create_sandbox، run_code، exec_command، upload_file، download_file اور kill_sandbox۔ ایک پرامپٹ کافی ہے:
ایک چھوٹا عارضی سینڈباکس بناؤ۔ ایک Python اسکرپٹ لکھو جو 1,000,000 سے کم مفرد اعداد گنے، اسے وہاں چلاؤ، ناکام ہو تو ٹھیک کرو، مجھے نتیجہ بتاؤ اور سینڈباکس حذف کر دو۔
ایجنٹ وہی کالز کرتا ہے جو اوپر کی اسکرپٹ کرتی ہے۔ کون سے ٹولز بغیر تصدیق اجازت دینا محفوظ ہے، یہ MCP حفاظتی اقدامات میں بتایا گیا ہے۔
اس پر کتنا خرچ آیا
سینڈباکس ایک منٹ سے کافی کم چلا اور کم از کم 60 سیکنڈ کے حساب سے بل ہوا: small پر $0.00055۔ ماڈل کال کا خرچ سینڈباکس سے زیادہ ہے۔ نئے اکاؤنٹ کا $1 ٹرائل کریڈٹ ایسے تقریباً 1,800 رنز کے لیے کافی ہے۔
آگے کہاں جائیں
- SDK مرحلہ وار: 5 منٹ میں سینڈباکس کے لیے Python SDK یا TypeScript۔
- تمام میتھڈز اور غلطیاں: SDK حوالہ۔
- ٹیرف اور ٹرائل کریڈٹ: سینڈباکس صفحہ۔
تبصرے
ابھی کوئی تبصرہ نہیں۔ پہلے بنیں۔