−25%

د Windows پر کلنۍ تادیه، تر ۳۱ اکتوبر. پلانونه وګورئ

EQVPS
پیل وکړئ

په sandbox کې ستاسو د اجنټ لومړۍ دنده: ژبنی ماډل کوډ لیکي، microVM یې چلوي

د AI په مرسته د کوډ چلولو تر ټولو کوچنۍ ګټوره کړۍ جوړه کړئ: ماډل د Python سکرېپټ لیکي، د Firecracker sandbox یې چلوي، او تېروتنې تر هغه ماډل ته ورګرځي چې سکرېپټ کار وکړي. شاوخوا ۴۰ کرښې، او همدا دنده د MCP له لارې پرته له هېڅ کوډه.

هغه اجنټ چې کوډ لیکي یوازې هغه وخت ګټور دی چې یو څه دا کوډ په خوندي ډول وچلوي او پایله ووايي. دا لارښود دا کړۍ له پیله تر پایه جوړوي: ماډل د Python سکرېپټ لیکي، sandbox یې چلوي، او که ناکام شي، تېروتنه ماډل ته ورګرځي. بیا همدا دنده پرته له یوې کرښې کوډ، د MCP له لارې.

تاسو Python 3.8+‎، د EQVPS حساب ټوکن (حساب نښلول وګورئ) او د یو ماډل API کیلي ته اړتیا لرئ.

۱. لومړی د لګښت پوله وټاکئ

اجنټ پخپله sandboxونه جوړوي، نو له پیل مخکې ورته چت وټاکئ. د تجربو لپاره په ورځ دوه ډالره او په میاشت شل ډالره له اړتیا ډېر دي:

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}'

کله چې پولې ته ورسېږي، نوي sandboxونه 429 budget_exceeded ترلاسه کوي او چلېدونکي لنډمهاله sandboxونه ړنګېږي. جزئیات په د sandbox پولې او بلینګ کې دي.

۲. دوه کتابتونونه نصب کړئ

pip install eqvps anthropic
export EQVPS_API_KEY="your-eqvps-token"
export ANTHROPIC_API_KEY="your-model-key"

بېلګه یو د ماډل چمتو کوونکی کاروي، خو هېڅ شی په هغه پورې تړلی نه دی. له ماډل سره یوازې ask() فنکشن خبرې کوي.

۳. د لیکلو، چلولو او سمولو کړۍ

دا د 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 چالانوي. که ستاسو سکرېپټ په منځ کې مړ شي، sandbox بیا هم له ۲ دقیقو بېکارۍ وروسته ځان ړنګوي.
  • sb.run(code, timeout=55) کوډ چلوي او د وتلو کوډ، stdout او stderr راګرځوي. د کوډ ماتېدل یوه عادي پایله ده نه استثنا، نو کړۍ کولی شي ماډل ته یې وښيي.
  • r.stderr[-3000:] یوازې د تېروتنې پای لېږي. د یو لوی سکرېپټ بشپړ traceback کولی شي د ماډل ډېر شرایط ضایع کړي.
  • درې هڅې یوه قصدي پوله ده. هغه ماډل چې په درې هڅو کې سکرېپټ سم نه کړي، معمولاً څلورمې هڅې ته نه، بلکې د دندې ښه تشریح ته اړتیا لري.

۴. کله چې دنده له ۵۵ ثانیو ډېر وخت غواړي

یو همغږی غږ تر ډېره ۵۵ ثانیې دوام کوي. اوږد کار په شالید کې پیل کړئ او انتظار وباسئ:

task = sb.run(code, background=True)
result = task.wait(timeout=1800)

حتی که ستاسو wait خپلې وخت پولې ته ورسېږي، دنده چلېږي، او کولی شئ په sb.task(task_id) بیا ورته راشئ.

۵. همدا دنده د MCP له لارې، پرته له کوډه

که د Claude Desktop یا Cursor په څېر MCP پیرودونکی د EQVPS د MCP سرور سره کاروئ، اجنټ دمخه د sandbox وسیلې لري: create_sandbox، run_code، exec_command، upload_file، download_file او kill_sandbox. یو پرامپټ بس دی:

یو کوچنی لنډمهاله sandbox جوړ کړه. یو Python سکرېپټ ولیکه چې له 1,000,000 کم لومړني عددونه وشمېري، هلته یې وچلوه، که ناکام شو سم یې کړه، پایله راته ووایه او sandbox ړنګ کړه.

اجنټ هماغه غږونه کوي چې پورتنی سکرېپټ یې کوي. کومې وسیلې پرته له تایید اجازه ورکول خوندي دي، په د MCP ساتنې کې تشریح شوي.

دې څومره لګښت درلود

sandbox له یوې دقیقې ډېر لږ ژوندی و او د لږ تر لږه ۶۰ ثانیو له مخې بل شو: په small کې $0.00055. د ماډل غږ له sandbox ډېر لګښت لري. د نوي حساب د $1 ازموینې کریډیټ د داسې شاوخوا ۱٬۸۰۰ اجراوو لپاره بس دی.

وروسته چېرې لاړ شئ

پوښتنې

ولې د ماډل کوډ مستقیم په خپل ماشین کې ونه چلوم؟

ځکه نه پوهېږئ چې څه به کوي. جوړ شوی کوډ کېدای شي فایلونه پاک کړي، ستاسو کیلي ولولي یا په پای‌نه‌لرونکې کړۍ کې ونښلي. په sandbox کې په یو جلا microVM کې له خپلې هستې سره چلېږي، او وروسته sandbox ړنګېږي.

ایا دا د بېلګې له ماډل پرته له نورو ماډلونو سره هم کار کوي؟

هو. کړۍ یوازې یو داسې فنکشن ته اړتیا لري چې پیغامونه واخلي او متن راوګرځوي. ask() فنکشن له هر چټ API سره بدل کړئ، د سیمه‌ییز ماډل په ګډون.

څه شی اجنټ له بې‌پایه sandboxونو جوړولو منع کوي؟

له پیل مخکې ورځنۍ او میاشتنۍ د لګښت پوله وټاکئ. کله چې پولې ته ورسېږي، نوي sandboxونه په 429 budget_exceeded ردېږي. سربېره پردې، په یوه حساب کې په یو وخت یوازې دوه کمانډونه چلېږي، نو له واکه وتلې کړۍ نه شي ډېرېدای.

ایا جوړ شوی کوډ انټرنیټ ته لاسرسی لري؟

هو، sandboxونه بهرني انټرنیټ ته لاسرسی لري څو کوډ کڅوړې نصب کړي او معلومات راوړي. ننوتونکي پورټونه نه لري. په پرامپټ یا کوډ کې رازونه مه ږدئ؛ هغه څه چې سکرېپټ ته په رښتیا اړین دي، د چاپېریال د متغیرونو په توګه ورکړئ.

تبصرې

لا تبصرې نشته. لومړی اوسئ.

یوه تبصره پریږدئ

تبصرې د ښکاره کیدو مخکې اعتدال کیږي.