اگر در حال استقرار عاملهای هوش مصنوعی هستید که کد مینویسند و اجرا میکنند، تحمل ۴۰ ثانیه تأخیر برای شروع سرد (Cold Start) کتابخانههایی مثل pandas یا numpy یک کابوس مالی و عملیاتی است. پلتفرم jhansi.io در بهروزرسانی نسخه ۰.۳ خود، با جایگزینی کانتینرهای یکبارمصرف و پاکسازی شده با محیطهای کاری پایدار (Persistent Workspaces)، این گلوگاه را از بین برد.
شکاف اجرایی
بسیاری از محیطهای ایزولهی ابری (Sandboxes) هر بار از صفر شروع میکنند. شما یک فایل main.py را آپلود میکنید، دکمه اجرا را میزنید و با خطای ModuleNotFoundError: No module named 'requests' مواجه میشوید. راهکار سادهانگارانه، نصب کتابخانه در زمان اجرا است، اما دانلود مجدد از PyPI در هر بار اجرا، فرآیندی کند، گران و ناپایدار است.
برای یک انسان، ۳۰ ثانیه انتظار شاید فقط یک مزاحمت باشد؛ اما برای یک عامل هوش مصنوعی که برای حل یک مسئله باید ۵ استراتژی کدنویسی مختلف را امتحان کند، این تأخیر یک شکست سیستمی در بهرهوری است. طبق سری مقالات مربوط به ساخت jhansi.io، این اصطکاک باعث میشود تیمهای توسعه، بهخصوص در محیطهای دارای نظارت سختگیرانه که هر بسته جدید نیاز به بررسی زنجیره تأمین (Supply-chain review) دارد، از پذیرش عاملهای خودکار فاصله بگیرند.
محیطهای کاری پایدار
برای حل این مشکل، jhansi.io اکنون به هر محیط ایزوله یک پوشهی ماندگار اختصاص میدهد که در اجراهای متوالی باقی میماند. در نسخه ۰.۳، وابستگیها نیز در این پوشه ذخیره میشوند. سیستم برای شناسایی وابستگیها از منطق اولویتبندی دقیقی پیروی میکند:
- پایتون (Python): ابتدا فایل
pyproject.tomlو سپسrequirements.txtرا بررسی میکند و در نهایت با اسکنpipreqsواردها را بهطور خودکار شناسایی میکند.pipreqsابزاری هوشمند است؛ مثلاً میداندimport cv2به معنای نیاز بهopencv-pythonوimport sklearnبه معنایscikit-learnاست. - نود جیاس (Node.js): از فایل
package.jsonو دستورnpm installاستفاده میکند. - گو (Go): از
go.modبا دستورgo mod downloadبهره میبرد و در صورت نیاز بهgo mod initوgo mod tidyباز میگردد. - جاوا (Java): از طریق Maven یا Gradle فایلهای
pom.xmlوbuild.gradleرا پشتیبانی میکند و در نهایت قابلیت کامپایل مستقیم باjavacرا دارد.
با نصب یکبارهی وابستگیها در مسیر /sandbox/deps، اجرای دوم یک اسکریپت فوراً انجام میشود. برای مثال، اولین درخواست POST از طریق curl به مسیر /sandboxes/sb_abc123/exec ممکن است پیام «...Installing requests==2.31.0» را برگرداند، اما درخواست دوم خروجی را بلافاصله بازمیگرداند. این تفکیک محیطی (Workspace-scoping) تضمین میکند که نسخهی torch==2.1.0 در یک محیط، باعث تداخل یا «جهنم وابستگیها» برای torch==1.13 در محیطی دیگر نشود.
مرز اعتماد و امنیت
از نظر امنیتی، این پلتفرم خروج دادهها (Egress) را فقط به مخازن رسمی مانند PyPI، npm، Maven Central و proxy.golang.org محدود کرده است و هیچ دامنه دلخواهی مجاز نیست. اگرچه jhansi.io ایزولاسیون را تضمین کرده و «شعاع تخریب» (Blast Radius) را محدود میکند — مشابه مدلی که در AWS Lambda یا Cloud Run استفاده میشود — اما محتوای دقیق کتابخانههایی که کاربر برای نصب انتخاب میکند را بازرسی (Audit) نمیکند.
استفاده از یک مانیفست (Manifest) نه تنها سرعت را بالا میبرد، بلکه قابل بازرسی است و به بازرسان اجازه میدهد تفاوتهای وابستگیهای پینشده (Pinned) را بین اجراها مقایسه کنند. اگرچه ایجاد یک SBOM (صورتحساب نرمافزاری) کامل برای هر اجرا در نقشه راه آینده قرار دارد، اما هدف فعلی، مهار و ایزولاسیون است.
این تغییر، معیار سنجش عاملهای هوش مصنوعی را از «بیش از حد کند» به «سریعتر از یک برنامهنویس جونیور» تغییر میدهد. اکنون عاملها میتوانند بدون سوزاندن بودجهی پردازشی روی دانلودهای تکراری، در لحظه روی شکستها و موفقیتهای خود پیمایش کنند.
نقشه راه آینده
نقشه راه اکنون بر دو بخش گمشده تمرکز دارد: استریمینگ خروجی برای نصبهای طولانی (تا کاربر ۳۰ ثانیه در سکوت منتظر نماند) و شناسایی واردهای گمشده برای نمایش هوشمندتر پیامهای ImportError در پاسخها.
فاز بعدی توسعه به «سندباکسینگ سخت» (Hard-sandboxing) میپردازد تا از خروج غیرمجاز اعتبارنامههای حساس AWS توسط بستهها جلوگیری کند و بررسی کند که چرا Docker به تنهایی کافی نیست.
پروژه jhansi.io تحت لایسنس Apache 2.0 در آدرس github.com/jhansi-io بهصورت متنباز در دسترس است.




گفتگو