diff patch ምን እንደሚያደርግ የሚለውን ያሳያል። ስህተቱ በእርግጥ መጥፋቱን፣ አዲሱ የif ቅርንጫፍ ጨርሶ መሄዱን፣ ወይም የጥገኛ ስሪት ማሻሻያ በንጹህ ጭነት ላይ importን መስበሩን አያሳይም። ገምጋሚዎች ይህን ያውቃሉ፣ ለዚህም ነው ብዙ ግምገማዎች "LGTM፣ ሙከራዎቹ ካለፉ" በሚል የሚያልቁት።
በAI በተጻፉ patches ይህ ክፍተት ይሰፋል። ሞዴል ተአማኒ የሚመስል ኮድ በፍጥነት ያመርታል፣ ተአማኒ የሚመስለው ደግሞ በትክክል የደከመውን ገምጋሚ የሚያመልጠው ነው። ርካሹ መፍትሄ ማንም ከማጽደቁ በፊት ለውጡን ማሄድ ነው — ምንም ሊጎዳ በማይችልበት ቦታ።
ፍተሻው፦ base፣ head፣ ሙከራዎች
አንድ patch ሊያቀርብ የሚችለው በጣም አሳማኝ ማስረጃ በአሮጌው ኮድ የሚወድቅና በአዲሱ የሚያልፍ ማስነሻ ነው። sandbox ይህን የ20 መስመር script ያደርገዋል። በአንድ ሰከንድ ገደማ የሚነሳ፣ Python 3.12፣ Node.js 22፣ git እና curl ያለው Firecracker microVM ነው፦
import os
from eqvps import Sandbox
REPO, BASE, HEAD = os.environ["REPO_URL"], os.environ["BASE_SHA"], os.environ["HEAD_SHA"]
def repro(sb, ref):
sb.exec(f"cd /root/app && git checkout -q {ref}", timeout=55)
return sb.exec("cd /root/app && python3 /root/repro.py", timeout=55).exit_code
with Sandbox.create(tariff="standard", ttl=1800) as sb:
sb.exec(f"git clone -q {REPO} /root/app", timeout=55)
sb.exec("cd /root/app && pip install -q -r requirements.txt", timeout=55)
sb.upload("/root/repro.py", open("repro.py").read())
before, after = repro(sb, BASE), repro(sb, HEAD)
tests = sb.exec("cd /root/app && python3 -m pytest -q", background=True).wait()
print(f"repro on base: {before}, on head: {after}; tests: {tests.state}, exit {tests.exit_code}")
repro.py ከስህተት ሪፖርቱ የተወሰደው ቁራጭ ኮድ ነው። በbase ላይ ዜሮ ባልሆነ ኮድ፣ በhead ላይ በዜሮ ካለቀ፣ patch የሚለውን ያስተካክላል ማለት ነው። ያንን መስመር ከሙከራዎቹ ማጠቃለያ ጋር በpull request ላይ እንደ አስተያየት ይለጥፉ፣ ገምጋሚውም ከእውነታዎች ይጀምራል።
የሙከራ ስብስቡ እንደ የጀርባ ስራ ይሄዳል፣ ምክንያቱም አንድ synchronous ትዕዛዝ በ55 ሰከንድ ይቆማል። የ30 ደቂቃው TTL የተቆለፈ ሩጫ ምን ያህል ጊዜ ሊያስከፍል እንደሚችል ይገድባል።
ኮድ የሚያሄዱ የግምገማ ኤጀንቶች
ይኸው ሀሳብ ለAI ገምጋሚም ይሰራል። በMCP ሰርቨር የተገናኘ ኤጀንት የsandbox መሳሪያዎች አሉት፦ sandbox መፍጠር፣ ትዕዛዝ ማሄድ፣ ፋይሎችን መስቀልና ማውረድ። "ይህ ከPython 3.8 ጋር ያለውን ተኳኋኝነት ሊሰብር ይችላል" ብሎ ከመጻፍ ይልቅ branchን ያመጣል፣ ኮዱን ያሄዳል፣ tracebackን ይጠቅሳል — ወይም ሁሉም ደህና መሆኑን ይናገራል።
ለእንደዚህ ያለ ኤጀንት የወጪ ጣሪያ እና ለንባብ ብቻ የሆነ token ይስጡ፣ ሳይጠይቅ የትኞቹን መሳሪያዎች መጥራት እንደሚችል ይወስኑ። የMCP ጥበቃዎች እያንዳንዱን መሳሪያ በአደጋ ደረጃ ይዘረዝራሉ።
የትኛው ታሪፍ
| Repository | ታሪፍ | የተለመደ ዙር | ግምታዊ ወጪ |
|---|---|---|---|
| ትንሽ library፣ ንጹህ Python ወይም JS | small (0.5 vCPU, 1 GB) | 2 ደቂቃ | $0.0011 |
| የሙከራ ስብስብ ያለው የድር መተግበሪያ | standard (1 vCPU, 2 GB) | 5 ደቂቃ | $0.0055 |
| Native extensions፣ compile የሚደረጉ ጥገኞች | plus (2 vCPU, 4 GB) | 15 ደቂቃ | $0.033 |
ጊዜያዊ sandboxes በሰከንድ ይከፈላሉ፣ ቢያንስ 60 ሰከንድ። ገምጋሚው ለጥቂት ቀናት ወደ ተመሳሳይ አካባቢ መመለስ ከፈለገ፣ እንደ persistent ይፍጠሩት፦ ዲስኩን እስከ 30 ቀን ያቆያል፣ ለእያንዳንዱ የተጀመረ ሰዓትም ይከፈላል፣ ስለዚህ ለሁለት ቀን ግምገማ የተቀመጠ standard sandbox ወደ $3.17 ገደማ ያስከፍላል። pull request ሲዋሃድ ይሰርዙት።
ሊያውቋቸው የሚገቡ ገደቦች
- በአንድ መለያ በአንድ ጊዜ ሁለት ትዕዛዞች። አንዱ ከሌላው በኋላ ለሚደረጉ ግምገማዎች በቂ ነው። በደርዘን የሚቆጠሩ pull requests በአንድ ጊዜ ከፈተሹ ወረፋ ይይዛሉ።
- ወደ ውስጥ የሚገቡ ports የሉም። መተግበሪያውን በbrowser መክፈት አይችሉም። ውስጥ ያስነሱትና ከሁለተኛ ትዕዛዝ በ
curl localhostይሞክሩት። - ውስጥ Docker የለም። containers የሚያስነሱ ሙከራዎች ቦታቸው በVPS ላይ ያለ runner ነው።
- ወደ ውጭ የሚወጣ ኢንተርኔት ክፍት ነው።
pip installእንዲሰራ የሚያደርገው ይኸው ነው። ለpatch ጸሐፊው የማይሰጡትን ማንኛውንም ነገር በsandbox ውስጥ አያስቀምጡ።
መጀመር
አዲስ መለያዎች የ$1 የsandbox ጊዜ ያገኛሉ፣ ይህም በstandard ታሪፍ ከመቶ በላይ የግምገማ ዙሮችን ይሸፍናል። የsandbox ገጹ ታሪፎቹን፣ SDK ማጣቀሻው ከላይ የተጠቀምንባቸውን ዘዴዎች ሁሉ፣ Python SDK በ5 ደቂቃ ደግሞ አዘገጃጀቱን ይዟል።
ተዛማጅ፦ ለሙሉ pipeline የተገለሉ የCI ሙከራዎች፣ ኮዱን ከመጀመሪያው ለሚጽፉ ኤጀንቶች ደግሞ ለAI ወኪሎች sandbox።
አስተያየቶች
እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።