سندکسل: اجرای ایجنتهای کدنویسی توی سندباکس ایزوله
خلاصهٔ کاملتر
سندکسل (Sandcastle) یه کتابخونهی TypeScript برای ارکستر کردن ایجنتهای کدنویسی هوش مصنوعیه. ایدهش سادهست: ایجنت رو با یه فراخوانی run() صدا میزنی، سندکسل خودش اون رو توی یه محیط ایزوله با یه استراتژی برنچ مشخص اجرا میکنه، و آخرش کامیتهایی که روی برنچ زده شدن رو دوباره مرج میکنه.
بزرگترین مزیتش اینه که مستقل از پرووایدره. بهصورت توکار از Docker و Podman (با bind-mount) و Vercel (میکرو-VMهای Firecracker ابری) پشتیبانی میکنه، یه گزینهی noSandbox() هم داره که ایجنت رو مستقیم روی هاست اجرا میکنه، و میتونی پرووایدر دلخواه خودتم بسازی.
استفادهی پایهش این شکلیه: مدل رو به claudeCode() میدی و سندباکس رو مشخص میکنی:
import { run, claudeCode } from "@ai-hero/sandcastle";
import { docker } from "@ai-hero/sandcastle/sandboxes/docker";
await run({
agent: claudeCode("claude-opus-4-7"),
sandbox: docker(),
promptFile: ".sandcastle/prompt.md",
});تابع run() کلی آپشن داره: استراتژی برنچ، پرامپت بهصورت فایل یا رشته، آرگومانهای جایگزینی توی پرامپت، تعداد ایتریشنها، هوکهای چرخهی حیات (مثلاً اجرای npm install موقع آماده شدن سندباکس)، تنظیم تایماوتها و حتی خروجی ساختاریافتهی تایپدار از خروجی ایجنت.
برای وقتی که میخوای چند ایجنت یا چند راند پشتهم رو توی یه سندباکس اجرا کنی، createSandbox() هست؛ سندباکس رو یهبار میسازه و هزینهی راهاندازی مکرر کانتینر رو حذف میکنه. یه الگوی رایجش «پیادهسازی-بعد-ریویو» روی همون برنچ و همون کانتینره.
کاربردهای اصلیش موازیسازی چند ایجنت AFK، ساختن پایپلاینهای ریویو، یا ارکستر کردن ایجنتهای خودته.
نکات کلیدی:
- سندکسل ایجنتهای کدنویسی رو توی محیط ایزوله اجرا میکنه و کامیتهاشون رو مرج میکنه.
- مستقل از پرووایدره: Docker، Podman، Vercel و حالت بدونسندباکس بهصورت توکار.
- تابع run() آپشنهای زیادی مثل استراتژی برنچ، هوکها و خروجی ساختاریافته داره.
- با createSandbox() میشه چند راند رو توی یه کانتینر اجرا کرد و هزینهی راهاندازی رو کم کرد.




