پرش به محتوای اصلی
پرش به محتوای مقاله

درون Claude Code و Instinct؛ مدیریت وضعیت عامل‌ها با میکرو-ماشین‌های مجازی

·۱۷ شهریور ۱۴۰۵۱۰ دقیقه مطالعه۱ بازدید
جعبه‌ای که عامل در آن اجرا می‌شود — روهان ادووانکار
جعبه‌ای که عامل در آن اجرا می‌شود — روهان ادووانکار
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

افشای استفاده از Firecracker و معماری Git-based Memory برای مدیریت وضعیت عامل‌ها؛ این اولین بار است که جزئیات دقیق لایه ذخیره‌سازی و بوتِ دو رقیب اصلی عامل‌های هوش مصنوعی کالبدشکافی می‌شود.

نبرد برای تسلط بر عامل‌های هوش مصنوعی از پنجره‌های پرامپت به لایه‌های زیرساختی ماشین‌های مجازی منتقل شده است. اگر تصور می‌کنید عامل‌ها صرفاً متنی را تولید می‌کنند که در جای دیگری اجرا می‌شود، باید بدانید که اکنون این ابزارها در محیط‌های ایزوله و یک‌بارمصرف زندگی می‌کنند تا بتوانند بدون به خطر انداختن سیستم میزبان، کد اجرا کنند و فایل‌ها را مدیریت نمایند.

به نقل از تحلیل فنی روهان ادوانکار (Rohan Adwankar) در ۸ سپتامبر ۲۰۲۶، شرکت‌های Anthropic و Instinct بار محاسباتی را از سخت‌افزار محلی کاربر به میکرو-ماشین‌های مجازی (microVMs) در فضای ابری منتقل کرده‌اند. این تغییر به این معناست که عامل‌ها اکنون می‌توانند روی دستگاه‌های موبایل اجرا شوند، زیرا تمام پردازش‌های سنگین در یک فضای مستاجر (Tenant Space) دوردست انجام می‌شود.

این تغییر رویکرد حیاتی است زیرا عامل‌ها به یک «جعبه» نیاز دارند؛ محیطی امن و یک‌بارمصرف که در آن بتوانند کد اجرا کنند، فایل‌ها را مدیریت نمایند و وضعیت (State) خود را بدون به خطر انداختن سیستم میزبان حفظ کنند. همان‌طور که در بحث‌های گذشته ما درباره‌ی امنیت مدل‌های بازمتن اشاره کردیم، ایزوله‌سازی محیط اجرا برای جلوگیری از حملات تزریق کد حیاتی است.

معماری Claude Code

Claude Code در یک میکرو-ماشین مجازی Firecracker اجرا می‌شود که در واقع یک مهمان KVM با هسته (Kernel) اختصاصی است. این ابزار در مسیر تبدیل شدن به یک دستیار کاملاً مستقل است، به‌ویژه پس از آنکه حالت اجرای خودکار (Auto Mode) در ماه اوت به پیش‌فرض تبدیل شد تا تعامل کاربر به حداقل برسد. بر اساس مستندات این تحلیل، سیستم به‌جای استفاده از systemd سنتی، مستقیماً با یک init سفارشی به زبان Rust به نام process_api (با شناسه PID 1) بوت می‌شود. نسخه هسته شناسایی شده 6.18.5-fc-v20 است که در آن عبارت -fc- نشان‌دهنده هسته سفارشی Firecracker است. خط فرمان بوت (Boot command line) مقداردهی اولیه خاصی را نشان می‌دهد: rdinit=/process_api ... --listen-vsock-port 2024.

این process_api به‌عنوان عامل کنترل میزبان در داخل VM عمل می‌کند. این سرویس دیسک‌ها را مونت کرده و روی پورت vsock 2024 گوش می‌دهد تا میزبان بتواند جلسه را از بیرون هدایت کند. ویژگی تعیین‌کننده این پلتفرم این است که اپراتور دقیقاً در فضای مستاجر شما زندگی می‌کند. برای تضمین امنیت، پلتفرم این اپراتور را مهر و موم (Seal) می‌کند: PID 1 غیرقابل دامپ (non-dumpable) است و دسترسی به /proc/1/mem حتی با امتیازات CAP_SYS_PTRACE مسدود شده است. علاوه بر این، شل (Shell) کاربر از امتیاز CAP_SYS_RESOURCE تهی شده است تا از سوءاستفاده از منابع جلوگیری شود.

ذخیره‌سازی در Claude Code به دو لایه متمایز تقسیم می‌شود:

  • فضای کاربر (vda): یک حجم ۲۵۶ گیگابایتی قابل نوشتن و پایدار که پس از بازپس‌گیری (Reclaim) نیز باقی می‌ماند. این امر تضمین می‌کند که گفتگوها حتی پس از نابودی محیط محاسباتی بین جلسات، تداوم یابند.
  • فضای پلتفرم (vdc/vdd/vde/vdf): دیسک‌های مشترک فقط-خواندنی. این بخش شامل vdc (۳۴۱ مگابایت) حاوی هارنس claude (یک باینری Bun کامپایل شده)، vdd (۴۵.۶ مگابایت) برای لانچر وظایف، و vde/vdf برای «مهارت‌های» مختلف است.

نکته کلیدی این است که استنتاج (Inference) روی این ماشین مجازی رخ نمی‌دهد. در عوض، داده‌ها به صورت Server-Sent Events (SSE) روی HTTPS/2 به آدرس /v1/messages از طریق یک درگاه خروجی MITM ارسال می‌شوند. این درگاه فقط روی پورت ۴۴۳ فعال است و آدرس api.anthropic.com در فایل /etc/hosts پین شده است. هیچ اتصال ورودی وجود ندارد و سیستم از آدرس 192.0.2.2 (یک آدرس تست RFC-5737) استفاده می‌کند. سیستم برای سرعت طراحی شده است؛ تحلیل‌ها زمان راه‌اندازی اولیه را حدود ۴۳۰ میلی‌ثانیه و اجرای فرآیند هارنس را حدود ۶.۴ ثانیه اندازه‌گیری کرده‌اند.

چرخه حیات (Lifecycle) توسط میزبان هدایت می‌شود. فعال‌سازی با یک پیام ورودی تحریک می‌شود که در آن میزبان VM را از طریق vsock بیدار کرده و دستور --session-mode resume را اجرا می‌کند. خاموش شدن توسط بازپس‌گیری در حالت بیکاری (Idle reclaim) مدیریت می‌شود. هنگام بازپس‌گیری، فرآیندها می‌میرند، اما حجم vda دست‌نخورده جدا شده و در بوت سرد بعدی دوباره متصل می‌شود.

رویکرد Instinct و E2B

برخلاف ناوگان مدیریت‌شده Anthropic، شرکت Instinct سندباکس‌های خود را از E2B (سرویس Sandbox-as-a-Service) اجاره می‌کند. این‌ها ماشین‌های یک‌بارمصرف Ubuntu 22.04.5 با ۲ پردازنده مجازی (vCPU)، ۱.۹ گیگابایت رم و ۲۹ گیگابایت فضای دیسک هستند. نام میزبان معمولاً e2b.local است و سیستم خود را از طریق فایل /.e2b با یک شناسه منحصر‌به‌فرد (مثلاً n038afjvewg7jnc9pwdz) شناسایی می‌کند.

در حالی که Instinct نیز از Firecracker استفاده می‌کند، اما یک محیط کامل اوبونتو شامل systemd و دسکتاپ XFCE را بوت می‌کند. امضای Firecracker در پارامترهای بوت مشهود است: pci=off ،virtio_mmio.device=4K ،i8042.noaux ،i8042.nokbd و نبود کامل SMBIOS (نام محصول خالی). تحلیل‌ها زمان راه‌اندازی سرد (Cold Boot) را برای رسیدن به دسکتاپ گرافیکی حدود ۱.۲۶ ثانیه تخمین زده‌اند (۲۶۵ میلی‌ثانیه برای هسته + ۹۹۲ میلی‌ثانیه برای فضای کاربر).

جزئیات سندباکس E2B:

  • مجازی‌سازی: از طریق systemd-detect-virt به عنوان KVM تأیید شده است.
  • شبکه: از tap0 با آی‌پی 169.254.0.21 استفاده می‌کند.
  • اپراتور: اپراتور در اینجا envd است که به عنوان یک سرویس استاندارد systemd اجرا می‌شود، نه یک PID 1 مهر و موم شده.
  • پیکربندی: سندباکس‌های E2B بسیار انعطاف‌پذیر هستند. کاربران می‌توانند vCPU، رم، دیسک و مهلت‌های بیکاری (Idle timeouts) را تعیین کنند. همچنین از توقف و ازسرگیری از طریق اسنپ‌شات حافظه (Memory snapshot) به‌جای بوت سرد کامل پشتیبانی می‌کنند.

مدل حافظه مبتنی بر Git

نوآوری اصلی Instinct در نحوه مدیریت حافظه بلندمدت است. به‌جای استفاده از APIهای سنتی پایگاه‌داده، این عامل با حافظه خود مانند یک مخزن Git از فایل‌های Markdown در مسیر /memory برخورد می‌کند. این «گاوصندوق» مانند یک ویکی با لینک‌های داخلی [[wiki-links]] ساختار یافته و از طریق grep پیمایش می‌شود.

عامل در واقع نویسنده (Author) این مخزن Git است ([email protected]) و مشاهدات و دانش خود را کامیت می‌کند. این مخزن به‌صورت یک باندل Git واحد در Amazon S3 ذخیره می‌شود که با شناسه کاربر کلیدگذاری شده است (مثلاً s3://instinct-prod-agent-memory/filesystem-memory/user-01M1VW7...). فرمت باندل یک جزئیات کلیدی است: دستور ls در باکت S3 فقط فایل .bundle را نشان می‌دهد و نه فایل‌های مجزا.

سازماندهی حافظه به این صورت است:

  • Timeline: سوابق زمانی که با گذشت زمان «خشن‌تر» می‌شوند (خام $
    ightarrow$ ساعتی $
    ightarrow$ روزانه $
    ightarrow$ هفتگی $
    ightarrow$ ماهانه)، که تقلیدی از حافظه انسان است.
  • Entities: فایل‌های مجزا برای افراد و پروژه‌ها (اسم‌های دنیای کاربر). این‌ها به‌عنوان وضعیت فعلی به‌روزرسانی می‌شوند، نه به صورت لاگ. فایل‌هایی که از یک صفحه بزرگ‌تر شوند، به یک دایرکتوری با فایل _index.md ارتقا می‌یابند.
  • Workstreams: واحدهای کاری فعال، تکمیل شده و «زمانی در آینده». وضعیت از طریق frontmatter مطابق با زیردایرکتوری ردیابی می‌شود.
  • Knowledge: حقایق، رویه‌ها، ترجیحات و تصمیمات. این بخش شامل یک پوشه خاص instinct/ (مانند autonomy.md و iteration-style.md) است که نحوه رفتار دستیار را تعریف می‌کند.
  • Comms: برای هر رشته گفتگو (چت، ایمیل، جلسات) یک فایل با نام‌گذاری مطابق الگوی <who>--<topic>--<date>.md ایجاد می‌شود.

اجرا و ابزارها

Instinct «مغز» را کاملاً از «جعبه» جدا کرده است. سندباکس صرفاً یک سطح اجراست؛ شامل یک agent-exec-server (نوشته شده به زبان Go روی پورت ۸۰۸۰) و یک باینری tools (نوشته شده به زبان Rust). هیچ نام مدلی یا کلید API برای OpenAI یا Anthropic در باینری‌های داخل ماشین کامپایل نشده است. این جداسازی لایه‌ها یادآور معماری پلاگین‌محور در DeepSeek Harness است که اجازه می‌دهد قابلیت‌های عامل بدون تغییر در هسته مرکزی، به‌صورت ماژولار گسترش یابند.

وقتی عامل نیاز به استفاده از ابزاری مانند Gmail, Notion, Slack یا پرداخت‌های Stripe دارد، یک درخواست GraphQL به api.instinct.com از طریق یک سوکت پل در /tmp/.tools/bridge.sock می‌فرستد. اجرای واقعی در سمت سرور رخ می‌دهد، نه در سندباکس E2B. رابط خط فرمان (CLI) ابزارها، سطحی گسترده با حدود ۵۰ فضای نام (Namespace) فراهم می‌کند.

جزئیات سطح ابزارها:

  • داخلی‌ها: شامل help ،async wait و async list است.
  • ارتباطات عامل: فضای نام agent_message اجازه ارسال پیام به سایر عامل‌ها را می‌دهد.
  • راهنمای مرورگر: فضای نام browser_guidance (با ۳ اکشن) پیش از ناوبری، راهنمای وب‌سایت‌های پیکربندی شده و نتایج گذشته را جستجو می‌کند.
  • مرورگر ابری: فضای نام cloud_browser (با ۲۷ اکشن) یک لیس (Lease) کروم ابری با لاگین‌های ذخیره شده را برای کارهایی مانند سفارش غذا یا رزرو تاکسی هدایت می‌کند.
  • اکشن‌های تفویض شده: برخی اقدامات مانند generate_referral_link یا speak (تولید فایل‌های WAV) به عامل اصلی تفویض شده‌اند.

این موضوع در مکانیسم «مرورگر ابری» مشهود است. به‌جای اجرای مرورگر در VM، Instinct یک نمونه Chrome ابری را از یک استخر مجزا اجاره می‌کند. این مرورگرها کوکی‌ها و لاگین‌های ذخیره شده کاربر را دارند. فرآیند به این صورت است:
۱. اکتساب: عامل tools cloud_browser_scheduler acquire را فراخوانی می‌کند تا یک lease_id برای یک پروفایل خاص بگیرد.
۲. اجرا: عامل از tools cloud_browser <action> برای کلیک، تایپ یا اسکرین‌شات از کروم راه دور استفاده می‌کند.
۳. پایداری: هر پروفایل دقیقاً یک لیس نوشتنی دارد (تنها جلسه‌ای که اجازه ذخیره لاگین‌های جدید را دارد)، در حالی که تا پنج لیس می‌توانند همزمان اجرا شوند. هنگام آزاد شدن لیس، سیستم ابتدا کوکی‌ها را ذخیره می‌کند تا لیس بعدی آن‌ها را بارگذاری کند.

برای مدیریت احراز هویت بدون اینکه اسرار (Secrets) با ماشین تماس داشته باشند، Instinct از دو مکانیسم استفاده می‌کند: tools browser_guidance search برای بررسی یادداشت‌های منتخب هر سایت و نتایج گذشته، و tools vault fill برای تایپ مستقیم اعتبارنامه‌ها از یک گاوصندوق سمت سرور در صفحه وب. اگر گاوصندوق فاقد رمز باشد، tools vault request لینکی برای کاربر ایجاد می‌کند تا آن را در app.instinct.com/vault/fill?t=… پر کند. کدهای یک‌بار مصرف به‌طور خودکار از حساب‌های متصل Gmail یا Outlook خوانده می‌شوند.

امنیت و احراز هویت

احراز هویت در این دو پلتفرم کاملاً متفاوت است. Claude Code از توکن‌های OAuth صادر شده توسط میزبان استفاده می‌کند که به‌صورت root-only روی دیسک کش شده و در هر بوت چرخش (Rotate) می‌شوند.

Instinct از اعتبارنامه‌های کوتاه‌مدت AWS STS (Security Token Service) استفاده می‌کند که با پیشوند ASIA شناسایی می‌شوند. این توکن‌ها دارای محدوده نقش (Role-scoped) هستند (مثلاً instinct-sandbox-observations-role) و در /etc/instinct-aws-creds ذخیره می‌شوند. به دلیل موقتی بودن این توکن‌ها، اگر یک سندباکس لو برود، به محض انقضای توکن، سیستم خودبه‌خود ترمیم شده و پنجره آسیب‌پذیری بسته می‌شود.

خلاصه مقایسه فنی

ویژگی Claude Code Instinct
ایزوله‌سازی میکرو-VM Firecracker (KVM) میکرو-VM Firecracker (KVM)
اپراتور ناوگان Anthropic (داخلی) E2B (اجاره‌ای/شخص ثالث)
سیستم‌عامل مهمان init سفارشی تهی‌شده (process_api) اوبونتو کامل + systemd + XFCE
بوت سرد ۴۳۰ میلی‌ثانیه init / ۶.۴ ثانیه هارنس ۱.۲۶ ثانیه تا دسکتاپ گرافیکی
لایه پایدار virtio-block محلی (vda) مخزن Git در S3 (باندل هر کاربر)
مدل حافظه وضعیت گفتگو روی دیسک گاوصندوق Markdown، نسخه‌بندی شده با git
اعتبارنامه‌ها OAuth صادر شده توسط میزبان (چرخشی) توکن‌های کوتاه‌مدت AWS STS
هارنس روی ماشین (باینری Bun ۳۲۴ مگابایتی) خارج از ماشین (فقط شیم‌های اجرا)
استنتاج SSE به /v1/messages از طریق درگاه GraphQL سمت سرور به api.instinct.com

این واگرایی معماری، دو مسیر برای هوش مصنوعی عامل‌محور را نشان می‌دهد: یکی که یک دستگاه تخصصی و به‌شدت مهر و موم شده می‌سازد (Anthropic) و دیگری که یک محیط عملیاتی منعطف و حافظه‌محور ایجاد می‌کند (Instinct). برای توسعه‌دهندگان، این بدان معناست که مرز بعدی طراحی عامل‌ها، تنها مدل نیست، بلکه «لایه پایدار» است؛ یعنی اینکه یک عامل چگونه شما را می‌شناسد و کارهای انجام شده را در طول جلسات محاسباتی یک‌بارمصرف به یاد می‌آورد.

گام بعدی شما

  • اگر توسعه‌دهنده عامل هستید، بررسی کنید که آیا برای حفظ وضعیت (State) به دیسک‌های پایدار نیاز دارید یا مدل Git-based Instinct برای شما کارآمدتر است.
  • برای کاهش زمان Cold Boot در محیط‌های ایزوله، معماری Rust-based init مشابه Claude Code را مطالعه کنید.
  • امنیت توکن‌های موقت (STS) را به‌جای توکن‌های بلندمدت در محیط‌های Sandbox پیاده‌سازی کنید.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این معماری‌ها استاندارد جدیدی برای امنیت و مقیاس‌پذیری عامل‌های هوش مصنوعی تعریف می‌کنند. با انتقال اجرا به میکرو-ماشین‌های مجازی، ریسک اجرای کد توسط AI در سیستم کاربر حذف و امکان استقرار در هر دستگاهی فراهم می‌شود.

تأثیر برای ایران

به‌دلیل محدودیت‌های API و تحریم‌های سرویس‌های ابری مانند AWS، دسترسی توسعه‌دهندگان ایرانی به این زیرساخت‌های پیشرفته محدود است، اما مدل حافظه مبتنی بر Git یک الگوی قابل پیاده‌سازی برای پروژه‌های داخلی است.

·نگاه ما
تحریریه دات‌هوش

تمرکز بر لایه «پایداری» (Durable Layer) نشان می‌دهد که رقابت مدل‌ها به پایان رسیده و اکنون نبرد بر سر «سیستم‌عامل عامل» است. تفکیک کامل مغز از محیط اجرا در Instinct، مدل‌های آینده را از وابستگی به سخت‌افزار خاص جدا می‌کند و اجازه می‌دهد عامل‌ها مانند پردازش‌های توزیع‌شده در ابری عمل کنند.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.