Diff inaonyesha kile kiraka kinadai kufanya. Haionyeshi kama hitilafu imeondoka kweli, kama tawi jipya la if huwahi kutekelezwa, au kama kupandisha toleo la kitegemezi kunavunja import kwenye usakinishaji safi. Wakaguzi wanajua hilo, ndiyo sababu ukaguzi mwingi huishia na "LGTM, ikiwa majaribio yatapita".
Kwa viraka vilivyoandikwa na AI pengo hili huongezeka. Modeli huzalisha msimbo unaoonekana kuaminika haraka, na unaoonekana kuaminika ndio hasa ule unaompita mkaguzi aliyechoka. Suluhisho la bei nafuu ni kuendesha mabadiliko kabla mtu yeyote hajayaidhinisha — mahali ambapo hayawezi kuharibu chochote.
Ukaguzi: base, head, majaribio
Ushahidi wenye nguvu zaidi ambao kiraka kinaweza kutoa ni uzalishaji upya unaoshindwa kwenye msimbo wa zamani na kupita kwenye mpya. Sandbox inageuza hilo kuwa hati ya mistari 20. Ni microVM ya Firecracker yenye Python 3.12, Node.js 22, git na curl, inayowaka ndani ya takriban sekunde moja:
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 ni kipande cha msimbo kutoka ripoti ya hitilafu. Kikitoka na msimbo usio sifuri kwenye base na sifuri kwenye head, kiraka kinarekebisha kile kinachodai kurekebisha. Weka mstari huo pamoja na muhtasari wa majaribio kama maoni kwenye pull request, na mkaguzi ataanza na ukweli.
Seti ya majaribio inaendeshwa kama kazi ya chinichini kwa sababu amri moja ya sinkroni inasimama kwenye sekunde 55. TTL ya dakika 30 inaweka kikomo cha muda ambao mzunguko uliokwama unaweza kukutoza.
Mawakala wa ukaguzi wanaoendesha msimbo
Wazo hilohilo linafanya kazi kwa mkaguzi wa AI. Akiunganishwa kupitia seva ya MCP, wakala ana zana za sandbox: kuunda sandbox, kuendesha amri, kupakia na kupakua faili. Badala ya kuandika "hili linaweza kuvunja upatanifu na Python 3.8", analeta tawi, anaendesha msimbo na kunukuu traceback — au anaripoti kuwa kila kitu kiko sawa.
Mpe wakala wa aina hiyo kikomo cha matumizi na token ya kusoma tu, na uamue ni zana gani anaweza kuziita bila kuuliza. Kinga za MCP zinaorodhesha kila zana kwa kiwango chake cha hatari.
Ushuru upi
| Hazina | Ushuru | Mzunguko wa kawaida | Gharama ya takriban |
|---|---|---|---|
| Maktaba ndogo, Python au JS tupu | small (0.5 vCPU, 1 GB) | dak 2 | $0.0011 |
| Programu ya wavuti yenye seti ya majaribio | standard (1 vCPU, 2 GB) | dak 5 | $0.0055 |
| Viendelezi asilia, vitegemezi vinavyokusanywa | plus (2 vCPU, 4 GB) | dak 15 | $0.033 |
Sandbox za muda hutozwa kwa sekunde na kiwango cha chini cha sekunde 60. Ikiwa mkaguzi anataka kurudi kwenye mazingira yaleyale kwa siku kadhaa, yaunde kama persistent: yanahifadhi diski yake hadi siku 30 na hutozwa kwa kila saa iliyoanza, kwa hiyo sandbox ya standard inayowekwa kwa ukaguzi wa siku mbili hugharimu takriban $3.17. Ifute pull request ikishaunganishwa.
Mipaka inayofaa kujua
- Amri mbili kwa wakati mmoja kwa kila akaunti. Zinatosha kabisa kwa ukaguzi, unaofanyika mmoja baada ya mwingine. Ukikagua pull request kadhaa kwa wakati mmoja, zitapanga foleni.
- Hakuna porti za kuingia. Huwezi kufungua programu kwenye kivinjari. Ianzishe ndani na uijaribu kwa
curl localhostkutoka amri ya pili. - Hakuna Docker ndani. Majaribio yanayoanzisha kontena yanafaa kwenye runner iliyo kwenye VPS.
- Intaneti ya kutoka iko wazi. Hiyo ndiyo inayofanya
pip installifanye kazi. Usiweke ndani ya sandbox kitu ambacho usingempa mwandishi wa kiraka.
Kuanza
Akaunti mpya hupata $1 ya muda wa sandbox, inayotosha zaidi ya mizunguko mia moja ya ukaguzi kwenye ushuru wa standard. Ukurasa wa sandbox una ushuru, marejeo ya SDK yana kila mbinu iliyotumika hapo juu, na SDK ya Python kwa dakika 5 inaeleza usanidi.
Zinazohusiana: majaribio ya CI yaliyotengwa kwa pipeline nzima, na sandbox kwa mawakala wa AI kwa mawakala wanaoandika msimbo tangu mwanzo.
Maoni
Bado hakuna maoni. Kuwa wa kwanza.