−25%

በWindows ዓመታዊ ክፍያ ላይ፣ እስከ ኦክቶበር 31። ዕቅዶችን ይመልከቱ

EQVPS
ጀምር

በsandbox ውስጥ የመጀመሪያው የወኪል ተግባርዎ፦ የቋንቋ ሞዴል ኮድ ይጽፋል፣ microVM ያሄደዋል

በAI ኮድ ለማሄድ በጣም ትንሹን ጠቃሚ ዑደት ይገንቡ፦ ሞዴል የPython ስክሪፕት ይጽፋል፣ የFirecracker sandbox ያሄደዋል፣ ስህተቶችም ስክሪፕቱ እስኪሰራ ድረስ ወደ ሞዴሉ ይመለሳሉ። ወደ 40 መስመሮች፣ በተጨማሪም ያለ ምንም ኮድ በMCP ተመሳሳዩ ተግባር።

ኮድ የሚጽፍ ወኪል የሚጠቅመው ያንን ኮድ በደህንነት የሚያሄድ እና ውጤቱን የሚያሳውቅ ነገር ሲኖር ብቻ ነው። ይህ መመሪያ ያንን ዑደት ከመጀመሪያ እስከ መጨረሻ ይገነባል፦ ሞዴል የPython ስክሪፕት ይጽፋል፣ sandbox ያሄደዋል፣ ከወደቀም ስህተቱ ወደ ሞዴሉ ይመለሳል። ከዚያ ተመሳሳዩ ተግባር አንድም የኮድ መስመር ሳይጻፍ፣ በMCP በኩል።

Python 3.8+፣ የEQVPS መለያ ቶከን (መለያዎን ማገናኘት ይመልከቱ) እና የአንድ ሞዴል API ቁልፍ ያስፈልግዎታል።

1. መጀመሪያ የወጪ ገደብ ያስቀምጡ

ወኪሉ 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 ገደቦች እና ክፍያ ውስጥ ነው።

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 ያስነሳል። ስክሪፕትዎ በመሃል ቢሞት እንኳ sandboxኡ ከ2 ደቂቃ እንቅስቃሴ-አልባነት በኋላ እራሱን ይሰርዛል።
  • sb.run(code, timeout=55) ኮዱን ያሄዳል እና የመውጫ ኮድ፣ stdout እና stderr ይመልሳል። የኮድ መውደቅ ልዩ ሁኔታ ሳይሆን መደበኛ ውጤት ስለሆነ ዑደቱ ለሞዴሉ ሊያሳየው ይችላል።
  • 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 አገልጋይ ጋር የሚጠቀሙ ከሆነ ወኪሉ የsandbox መሳሪያዎች አሉት፦ create_sandbox፣ run_code፣ exec_command፣ upload_file፣ download_file እና kill_sandbox። አንድ ጥያቄ ይበቃል፦

ትንሽ ጊዜያዊ sandbox ፍጠር። ከ1,000,000 በታች ያሉትን ዋና ቁጥሮች የሚቆጥር የPython ስክሪፕት ጻፍ፣ እዚያ አሂደው፣ ከወደቀ አስተካክለው፣ ውጤቱን ንገረኝ እና sandboxኡን ሰርዝ።

ወኪሉ ከላይ ያለው ስክሪፕት የሚያደርጋቸውን ተመሳሳይ ጥሪዎች ያደርጋል። የትኞቹን መሳሪያዎች ያለ ማረጋገጫ መፍቀድ ደህንነቱ የተጠበቀ እንደሆነ በየMCP ጥበቃዎች ውስጥ ተብራርቷል።

ምን ያህል ወጣ

sandboxኡ ከአንድ ደቂቃ በጣም ባነሰ ጊዜ ቆይቶ በዝቅተኛው 60 ሰከንድ ተከፍሎበታል፦ በsmall $0.00055። የሞዴል ጥሪው ከsandbox የበለጠ ያስከፍላል። የአዲስ መለያ የ$1 የሙከራ ክሬዲት ለ1,800 ገደማ እንደዚህ ያሉ ሩጫዎች ይበቃል።

ቀጥሎ ወዴት

FAQ

የሞዴሉን ኮድ በቀጥታ በራሴ ማሽን ላይ ለምን አላሄደውም?

ምን እንደሚያደርግ ስለማያውቁ ነው። የተፈጠረ ኮድ ፋይሎችን ሊሰርዝ፣ ቁልፎችዎን ሊያነብ ወይም ማለቂያ በሌለው ዑደት ውስጥ ሊገባ ይችላል። በsandbox ውስጥ የራሱ ከርነል ባለው የተለየ microVM ይሰራል፣ ከዚያም sandboxኡ ይሰረዛል።

ከምሳሌው ሞዴል ውጪ ካሉ ሞዴሎች ጋርም ይሰራል?

አዎ። ዑደቱ የሚያስፈልገው መልዕክቶችን ተቀብሎ ጽሑፍ የሚመልስ ተግባር ብቻ ነው። የask() ተግባሩን በማንኛውም የውይይት API ይተኩ፣ የአካባቢ ሞዴልንም ጨምሮ።

ወኪል ማለቂያ የሌላቸው sandboxዎችን እንዳይፈጥር የሚከለክለው ምንድን ነው?

ከመጀመርዎ በፊት ዕለታዊ እና ወርሃዊ የወጪ ገደብ ያስቀምጡ። ገደቡ ሲደረስ አዲስ sandboxዎች በ429 budget_exceeded ውድቅ ይደረጋሉ። በተጨማሪም በአንድ መለያ ላይ በአንድ ጊዜ የሚሰሩት ሁለት ትዕዛዞች ብቻ ስለሆኑ ከቁጥጥር የወጣ ዑደት ሊባዛ አይችልም።

የተፈጠረው ኮድ ኢንተርኔት መድረስ ይችላል?

አዎ፣ ኮዱ ጥቅሎችን እንዲጭን እና ውሂብ እንዲያመጣ sandboxዎች ወደ ውጭ የኢንተርኔት ግንኙነት አላቸው። ገቢ ፖርቶች የላቸውም። ምስጢሮችን በጥያቄው ወይም በኮዱ ውስጥ አያስቀምጡ፤ ስክሪፕቱ በእውነት የሚያስፈልገውን እንደ የአካባቢ ተለዋዋጮች ያስተላልፉ።

አስተያየቶች

እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።

አስተያየት ይተዉ

አስተያየቶች ከመታየታቸው በፊት ይጣራሉ።