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

Kumo؛ مدیریت متمرکز عامل‌های کدنویسی با معماری Rust

·۲۰ مرداد ۱۴۰۵۶ دقیقه مطالعه
ساخت Kumo's، یک چندبرگ‌ساز ترمینال برای عصر عامل‌های هوش مصنوعی
ساخت Kumo's، یک چندبرگ‌ساز ترمینال برای عصر عامل‌های هوش مصنوعی
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

معرفی نخستین Multiplexer ترمینال که به‌جای مدیریت ساده‌ی پنجره‌ها، وضعیت داخلی (State) عامل‌های هوش مصنوعی را به‌صورت بومی ردیابی و نمایش می‌دهد.

تصور کنید چندین عامل کدنویسی را به‌طور هم‌زمان روی پروژه‌تان فعال کرده‌اید، اما نمی‌دانید کدام‌یک در حال کار است و کدام‌یک ده دقیقه است که منتظر تایید شما مانده تا ادامه دهد. این دقیقاً همان نقطه‌ای است که Kumo وارد میدان می‌شود تا مدیریت این «ارتش کوچک» را از یک کابوس پنجره‌های باز به یک تجربه متمرکز تبدیل کند.

به نقل از مستندات پروژه، Kumo (به معنای عنکبوت در زبان ژاپنی) در ۱۰ اوت ۲۰۲۶ منتشر شد. فلسفه اصلی پشت این ابزار این است که «با عامل‌های کدنویسی هوش مصنوعی به‌جای پردازش‌های پس‌زمینه، به‌عنوان شهروندان درجه‌یک محیط توسعه برخورد شود». هدف Kumo حذف اصطکاک‌هایی است که برنامه‌نویسان هنگام جابجایی بین چندین پنجره ترمینال برای بررسی وضعیت اجرای یک عامل یا انتظار برای تایید کاربر با آن مواجه می‌شوند.

اکثر برنامه‌نویسان در حال حاضر از ابزارهای چندمنظوره مثل tmux یا zellij برای مدیریت عامل‌هایی مانند opencode یا claude استفاده می‌کنند. اگرچه این ابزارها بسیار قدرتمند هستند، اما فاقد آگاهی بومی (Native Awareness) لازم برای ردیابی چرخه حیات یک عامل خودمختار هستند. شما اغلب خودتان را در حالی می‌بینید که به چندین پنل خیره شده‌اید و مطمئن نیستید که آیا عامل در حال پردازش یک وظیفه پیچیده است یا ده دقیقه است که برای یک پاسخ ساده «بله» از سوی شما، در حالت مسدود (Blocked) مانده است.

زمینه و فلسفه طراحی

سازنده Kumo اشاره کرده است که فضای مالتی‌پلکسرهای ترمینال در حال حاضر در وضعیت بسیار خوبی قرار دارد و به ابزارهایی مانند herdr، cmux و amux اشاره می‌کند. او همچنین تحسین خود را نسبت به شرکت superlogical، شرکت جدیدی که توسط میچل هاشیموتو (خالق Ghostty) تأسیس شده، ابراز کرد. با این حال، هیچ‌یک از این ابزارها آن حس «گرم و آشنای» شخصی او را فراهم نمی‌کردند؛ حسی که حاصل ترکیبی از Ghostty + tmux + LazyVim بود.

Kumo طراحی نشده است تا یک «tmux بهتر» باشد، بلکه ابزاری است که آن محیط خاص را بازسازی کرده و در عین حال کاربردهای ویژه برای هوش مصنوعی به آن می‌افزاید. توسعه‌دهنده بر چندین هدف کلیدی در طراحی تمرکز کرد:

  • قابلیت استفاده فوری: او رابط کاربری‌ای می‌خواست که بدون نیاز به مطالعه صفحات راهنما (man pages) قابل استفاده باشد؛ چیزی که حتی پدرش بتواند از آن استفاده کند تا منحنی یادگیری تند و دشوار tmux کاهش یابد.
  • تجربه یکپارچه: به‌جای ایجاد یک اپلیکیشن مجزا که پنجره جدیدی باز کند، Kumo درون خود ترمینال زندگی می‌کند. این امر باعث می‌شود ابزار سبک باقی بماند و در تمامی پلتفرم‌ها، از جمله ویندوز، به‌درستی کار کند.
  • پیکربندی باز: Kumo به‌عنوان یک پروژه متن‌باز ساخته شده و به‌گونه‌ای طراحی شده است که کاملاً قابل پیکربندی باشد تا کاربران بتوانند آن را مطابق با ترجیحات شخصی خود شکل دهند.

این ابزار با زبان Rust توسعه یافته و از هسته libghostty-vt (هسته ترمینال بدون سر یا Headless از شبیه‌ساز Ghostty) استفاده می‌کند تا تضمین شود که شل‌ها و رابط‌های متنی (TUI) دقیقاً مشابه یک ترمینال بومی رفتار می‌کنند.

ردیابی چرخه حیات عامل

در محیط Kumo، «عامل‌ها» به رابط‌های خط فرمان (CLI) کدنویسی هوش مصنوعی اشاره دارند — مانند opencode یا claude — که فایل‌ها را ویرایش کرده و دستورات را اجرا می‌کنند و گهگاه برای کسب اجازه متوقف می‌شوند. ویژگی محوری Kumo، یک نوار کناری اختصاصی است که هر عامل در حال اجرا را نظارت می‌کند. به‌جای حدس زدن وضعیت یک پردازش، رابط کاربری یک نقطه وضعیت با کد رنگی ارائه می‌دهد:

  • 🟢 در حال کار (Working): عامل فعالانه در حال اجرای وظایف است.
  • 🟠 مسدود (Blocked): عامل منتظر تایید یا ورودی کاربر است.
  • ⚪ بیکار (Idle): وظیفه به پایان رسیده یا عامل غیرفعال است.

برای جلوگیری از نادیده گرفتن توقفات بحرانی، Kumo از زنگ‌های صوتی متمایز برای حالت‌های «مسدود» و «پایان» استفاده می‌کند. وقتی عاملی مسدود می‌شود، پنل آن نارنجی شده و به بالای لیست شناور می‌شود تا برنامه‌نویس فقط زمانی به محیط بازگردد که حضورش ضروری است. این ابزار همچنین از قابلیت‌های پایه مالتی‌پلکسرها، از جمله تقسیم پنل‌ها (Split Panes)، نشست‌ها (Sessions)، تب‌ها و انتخاب متن استاندارد پشتیبانی می‌کند. این تمرکز بر نظارت دقیق، یادآور رویکردهای سخت‌گیرانه‌تری است که در محیط‌های سازمانی برای ثبت ۱۰۰٪ فراخوانی‌های ابزار جهت پاسخگویی به کار می‌روند.

معماری فنی و مشکل ماوس

ساخت یک شبیه‌ساز ترمینال در Rust چالش‌های بزرگی داشت، به‌ویژه در مورد گزارش‌دهی ماوس. توسعه‌دهنده این موضوع را یک «جنگ خاموش» بر سر کنترل ماوس توصیف کرد. در ترمینال‌های استاندارد، برنامه‌هایی مثل vim یا less می‌توانند گزارش‌دهی ماوس را فعال کنند تا ماوس را «تملک» کنند؛ به این معنی که عملیات کشیدن (Drag) برای انتخاب متن داخلی برنامه در نظر گرفته شود، نه برای انتخاب متن توسط ترمینال.

Kumo برای حل این تضاد از یک رویکرد ترکیبی و کتابخانه portable-pty در سمت PTY استفاده می‌کند تا اطمینان حاصل شود که قابلیت کشیدن برای انتخاب (Drag-to-select) حتی در برنامه‌هایی که ماوس را تملک کرده‌اند (مانند vim یا TUI برنامه opencode) کار می‌کند:

  • انتخاب بومی: وقتی برنامه‌ای گزارش ماوس نمی‌دهد، Kumo انتخاب متن را از طریق قابلیت بومی libghostty-vt مدیریت می‌کند.
  • ارسال (Forwarding): وقتی برنامه‌ای مانند TUI در opencode کنترل را به دست می‌گیرد، Kumo کل ژست (فشار، کشیدن، رها کردن) را ارسال می‌کند تا برنامه بتواند انتخاب خود را مدیریت کند.
  • ترفند فنی: پنل‌ها خود را به‌عنوان xterm-256color ساده معرفی می‌کنند و از یک پاسخ‌دهنده سفارشی کوچک استفاده می‌کنند تا اعلام کنند هیچ قابلیت ماوسی ندارند. این کار مانع از آن می‌شود که برنامه‌ها ماوس را تصاحب کنند، مگر اینکه واقعاً به آن نیاز داشته باشند.

فرآیند توسعه شامل رفع باگ‌های ظریفی بود؛ مثلاً رویدادهای ارسالی ماوس با یک کد فرار (Escape) ریست در انتها می‌رسیدند که باعث هنگ کردن برنامه‌ها می‌شد. مشکل دیگر این بود که انتخاب متن از یک نمای کش‌شده (Cached View) قدیمی خوانده می‌شد و نه از یک snapshot تازه از Viewport، که باعث می‌شد هایلایت متن به‌درستی روی کلمات قرار نگیرد.

گردش کار «وایب کدینگ» (Vibe-Coding)

طبق گزارش توسعه‌دهنده، بخش قابل توجهی از Kumo با استفاده از مدل DeepSeek V4 Flash و روش «وایب کدینگ» نوشته شده است. این فرآیند شامل توصیف ویژگی‌های مورد نظر برای هوش مصنوعی و سپس بررسی خط‌به‌خط هر کد تولید شده بود. این رویکرد به سازنده اجازه داد تا مفاهیم پیچیده Rust — مانند زمان‌بندی‌ها (Lifetimes) و مالکیت (Ownership) — را به‌جای مطالعه آموزش‌ها، از طریق کاربرد عملی پیاده کند.

فراتر از کدنویسی، این پروژه به یک غواصی عمیق در internals شبیه‌سازهای ترمینال تبدیل شد. فرآیند توسعه نیازمند پیاده‌سازی PTYها، کدهای فرار ANSI، بافرهای اسکرول‌بک (Scrollback Buffers) و مدیریت سیگنال‌های SIGWINCH بود تا اطمینان حاصل شود که رابط کاربری هنگام تغییر اندازه پنجره، پاسخگو باقی می‌ماند. پروژه به‌عنوان یک فایل باینری واحد در Rust و با استفاده از ratatui برای بخش TUI ساخته شده است.

این تغییر در گردش کار برای توسعه‌دهنده رهایی‌بخش بود، زیرا پیش از این تنها از Claude برای کارهای ساده CLI استفاده می‌کرد. او وضعیت فعلی خود را یک نقطه میانی توصیف می‌کند: او کورکورانه به هوش مصنوعی اعتماد نمی‌کند، اما درک کافی برای بررسی کدها را دارد و اجازه می‌دهد هوش مصنوعی پیش‌نویس اول را بنویسد. این مدل همکاری میان انسان و ماشین، مشابه ساختاری است که در پلتفرم AgentCrew MCN برای خودکارسازی چرخه بازاریابی با استفاده از چندین عامل به کار گرفته شده است.

وضعیت فعلی و نقشه راه

در زمان انتشار در ۱۰ اوت، Kumo در مراحل اولیه است و دیدگاه‌های شخصی سازنده در آن مشهود است. در حالی که opencode و claude دارای تشخیص کامل چرخه حیات هستند، سایر عامل‌ها به‌طور خودکار شناسایی می‌شوند اما به‌صورت پیش‌فرض در وضعیت «بیکار» (Idle) قرار می‌گیرند. توسعه‌دهنده اشاره کرده است که کلیدهای میانبر در حال حاضر به‌صورت سخت‌افزاری (Hard-coded) هستند، اما بازنگری در آن‌ها و ایجاد یک سرور برای جدا شدن/اتصال مجدد (Detach/Re-attach) در به‌روزرسانی‌های آینده برنامه‌ریزی شده است.

برای برنامه‌نویس مدرن، این ابزار نشان‌دهنده تغییری در نحوه تعامل با گردش کارهای عامل‌محور است. ما در حال حرکت از «چت کردن» با یک هوش مصنوعی به سمت «ارکستره کردن» ناوگانی از کارگران خودمختار هستیم. Kumo نشان می‌دهد که گلوگاه بعدی در بهره‌وری هوش مصنوعی، هوشمندی مدل نیست، بلکه رابط کاربری است که برای مدیریت آن هوشمندی به کار می‌رود.

اگر در حال حاضر از چندین عامل CLI برای کدنویسی استفاده می‌کنید، می‌توانید کد منبع و مراحل نصب را در مخزن گیت‌هاب پروژه در github.com/marcrdgz/kumo بررسی کنید.

گام بعدی شما

  • اگر از چندین عامل CLI برای کدنویسی استفاده می‌کنید، مخزن گیت‌هاب github.com/marcrdgz/kumo را بررسی کنید.
  • برای تجربه بهتر، آن را در کنار ترمینال Ghostty تست کنید تا قدرت هسته مشترکشان را ببینید.
  • بررسی کنید که آیا مدل‌های فعلی شما می‌توانند با ساختار خروجی Kumo برای تشخیص وضعیت (Working/Blocked) سازگار شوند یا خیر.

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

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

این ابزار با کاهش هزینه شناختی (Cognitive Load) در جابه‌جایی بین تسک‌ها، بهره‌وری برنامه‌نویسان را در محیط‌های عامل‌محور بالا می‌برد. اعتبار این رویکرد در استفاده از هسته Ghostty است که استانداردهای بالای عملکرد ترمینال را تضمین می‌کند.

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

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

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

Kumo نشان می‌دهد که ما از عصر «چت کردن» با هوش مصنوعی به عصر «ارکستراسیون» یا مدیریت مجموعه‌ای از کارگران خودمختار حرکت می‌کنیم. جالب‌ترین بخش این پروژه، استفاده از Vibe Coding برای عبور از پیچیدگی‌های زبان Rust است؛ این یعنی ابزارهای AI حالا حتی برای ساخت ابزارهای مدیریت AI به کار گرفته می‌شوند.

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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