تصور کنید به جای توصیف متنیِ پیچیده برای یک معماری نرمافزاری، کافی باشد روی تختهسیاه بنویسید «اینجا یک دیتابیس اضافه کن» و یک عامل هوش مصنوعی در لحظه آن را رسم کند. Drawgent این تخیل را به واقعیت تبدیل کرده است تا بومهای بصری را به محیطی برای همکاری میان انسان و ماشین تبدیل کند. آیا یک تختهسیاه زنده واقعاً میتواند به عنوان یک فضای کدنویسی مشارکتی عمل کند؟ با Drawgent، پاسخ مثبت است.
این ابزار که با زبان Rust توسعه یافته، نسخههای محلی Claude Code، Codex یا opencode را مستقیماً به بومهای Excalidraw متصل میکند. این اتصال به یک عامل هوش مصنوعی اجازه میدهد تا نمودارها را در زمان واقعی ببیند، رسم کند و ویرایش نماید. در حالی که اکثر عاملها در محیطهای متنی یا ترمینالها محدود هستند و مدلهای بینایی معمولاً فقط میتوانند اسکرینشاتهای آپلود شده را تحلیل کنند، آنها بهطور معمول نمیتوانند با یک صحنه بصری زنده و در حال تکامل تعامل داشته باشند. Drawgent این مشکل را با ایجاد یک پل ارتباطی بین CLI عامل و یک رندرر کروم بدون رابط گرافیکی (Headless) حل میکند که با بوم را به عنوان یک فضای کاری قابل دستکاری میبیند.
همانطور که در تحلیلهای پیشین ما دربارهی پروتکلهای ارتباطی مدلها اشاره کردیم، کلید این تحول در جداسازی لایهی اجرا از لایهی نمایش است. Drawgent مانند یک واسط (Middleware) عمل میکند که جلسات عامل و وضعیت بوم را مدیریت میکند. طبق مستندات این پروژه، این ابزار از پروتکل ارتباطی عامل (ACP) استفاده میکند تا دستورات را به باینریهای محلی کاربر بفرستد؛ به این ترتیب، دسترسیهای امنیتی، لاگینهای خاص، پیکربندیها و دسترسیهای مخزن (Repository) کاربر حفظ میشود.
معماری فنی و استقرار
این ابزار به صورت یک فایل اجرایی تکفایلی (Single Binary) توزیع میشود که چندین وظیفه پیچیده ارکستراسیون را بر عهده دارد. فرآیند راهاندازی با دستور drawgent setup <agent> آغاز میشود که ابتدا بررسی میکند آیا CLI عامل در PATH سیستم قرار دارد یا خیر و وضعیت ورود کاربر را چک میکند (مثلاً از طریق دستورات claude auth status یا codex login status یا opencode auth list).
- پل ارتباطی عامل: آداپتورهای ACP در مسیر
~/.cache/drawgent/adaptersایجاد میشوند (حجم این بخش تقریباً ۶۰ مگابایت است). در حالی که opencode بهصورت بومی و از طریقopencode acpبا این پروتکل صحبت میکند، Claude Code و Codex از آداپتورهای رسمی ACP استفاده میکنند. این آداپتورها بدون باینریهای باندل شدهی عامل نصب میشوند و از طریق متغیرهای محیطی مانندCLAUDE_CODE_EXECUTABLEیاCODEX_PATHبه CLI کاربر اشاره میکنند. - رندرینگ بصری: برای اینکه عامل بتواند بوم را «ببیند»، Drawgent از یک نسخه بدون رابط گرافیکی (Headless) مرورگر کروم استفاده میکند. اگر این مرورگر یافت نشود، ابزار پیشنهاد دانلود Chrome Headless Shell (نسخه Chrome for Testing با حجم حدود ۱۲۰ مگابایت) را در مسیر
~/.cache/drawgent/chromeمیدهد که بدون نیاز به دسترسی sudo نصب میشود. همچنین امکان نصب Chromium از طریق مدیریت بستههایی مانند apt، snap، dnf، pacman، zypper، apk، brew یا nix وجود دارد. - مدیریت جلسه: دستور
drawgent upیک ویرایشگر و API روی آدرس127.0.0.1:7300(یا اولین پورت آزاد بعدی) فعال میکند. این دستور جلسهای ایجاد میکند که فضای کاری فعلی را آینه میکند و صحنه را در فایل.drawgent/scene.jsonذخیره میکند؛ فایلی که بهطور خودکار در.gitignoreقرار میگیرد تا در مخزن کد ذخیره نشود.
شناسایی و اتصال عاملها
کاربران میتوانند چندین جلسه را از طریق دستور drawgent up --attach [id] مدیریت کنند. اگر شناسهای وارد نشود، ابزار لیست جلسات موجود را نمایش داده و اولویت را به دایرکتوری فعلی میدهد.
- Claude Code: از دستور
claude agents --jsonبرای یافتن جلسات تعاملی و پسزمینه استفاده میکند. Drawgent یک «فورک» ایجاد میکند؛ یعنی یک جلسه جدید که تمام تاریخچه گفتگو را از طریق ACP حمل میکند، در حالی که جلسه ترمینال اصلی کاربر دستنخورده باقی میماند. - opencode: به سرورهایی متصل میشود که بهصورت محلی در حال گوش دادن هستند (مثلاً سرورهایی که با
opencode --port 4096یاopencode serveشروع شدهاند). پیامها در رابط کاربری متنی (TUI) در حال اجرا منعکس میشوند و Drawgent ابزارهای MCP را در زمان اجرا به سرور اضافه میکند. - Codex: جلسات را در مسیر
~/.codex/sessionsردیابی میکند. این ابزار ازcodex queue --thread <id>استفاده میکند تا پاسخها را از فایل rollout جلسه آینه کند، که این امر مستلزم ثبت MCP drawgent در هنگام راهاندازی است.
مکانیزمهای تعامل روی بوم
تعاملات از دو کانال اصلی رخ میدهد. اول، یک پنل چت در سمت راست صفحه برای درخواستهای استریمینگ استاندارد و تایید مجوزها وجود دارد. کاربران میتوانند برای لغو یک نوبت (Turn)، دکمه "Stop" را فشار دهند.
دوم، یک سیستم نوآوری به نام «پرامپت روی بوم» معرفی شده است. کاربر میتواند در کنار هر شکل، متنی را با پیشوند :AGENT بنویسد یا فلشی از یک یادداشت به یک المان خاص رسم کند.
این محرک (Trigger) تقریباً ۲.۵ ثانیه پس از توقف تایپ کاربر فعال میشود. Drawgent موقعیت یادداشت، آنچه به آن اشاره شده و المانهای اطراف را ثبت کرده و به عامل میفرستد. پس از اجرای درخواست، عامل یادداشت را به رنگ سبز و با عبارت :DONE تغییر میدهد. اگر کاربر دوباره متن را به :AGENT برگرداند، درخواست مجدداً ارسال میشود. پرامپتها در صف قرار گرفته و یکییکی پردازش میشوند؛ هر یادداشتی که قبلاً پردازش شده باشد و در صف باقی مانده باشد، نادیده گرفته میشود.
ادغام با پروتکل MCP
Drawgent برای دادن ابزارهای بصری به عاملها، از پروتکل زمینه مدل (MCP) استفاده میکند. این ابزارها از طریق یک سرور stdio MCP (drawgent mcp) اجرا میشوند که بهطور خودکار نمونهی در حال اجرای drawgent up را مییابد:
- بینایی و وضعیت: ابزار
get_sceneوضعیت فعلی بوم را بازیابی میکند، در حالی کهget_screenshotقابلیتهای بینایی را فراهم کرده و امکان زوم روی المانهای خاص را با استفاده ازelement_idsمیدهد. - تغییر المانها: ابزار
add_elementsاسکلتهای Excalidraw را ایجاد میکند که در آن فلشها از طریق ID متصل شده و لبهبهلبه مسیریابی میشوند. ابزارupdate_elementsتضمین میکند که برچسبها (Labels) اشکال را دنبال کنند و فلشهای متصل مجدداً مسیریابی شوند. ابزارهایdelete_elementsوclear_canvasنیز مدیریت پاکسازی را بر عهده دارند. - نمودارهای Mermaid: ابزار
add_mermaidبه عامل اجازه میدهد نمودارهایی با چیدمان خودکار را با استفاده از سینتکس Mermaid تولید کند. - ردیابی دستورات: ابزارهای
list_instructions،resolve_instructionوset_statusبه عامل اجازه میدهند پیشرفت خود را روی بوم ردیابی کند.
گردشکارهای collaborative و دورکار
علاوه بر استفاده محلی، Drawgent از اتاقهای excalidraw.com از طریق فلگ --room پشتیبانی میکند (مثلاً drawgent up --room 'https://excalidraw.com/#room=<id>,<key>'). عامل با نام «🤖 Agent» به عنوان یک همکار وارد اتاق شده و مکاننمای (Cursor) او تغییرات را بهصورت زنده نشان میدهد.
به دلیل رمزنگاری سرتاسری (End-to-End) با کلید اتاق، همکاران انسانی میتوانند در سایت رسمی Excalidraw بمانند در حالی که تغییرات عامل بهصورت زنده ظاهر میشود. اتاقهای خالی از حافظه Firestore مربوط به Excalidraw بارگذاری و در آن ذخیره میشوند. ویرایشگر محلی Drawgent اتاق را آینه کرده و در عین حال پنل چت را حفظ میکند.
برای کسانی که به استقرار سمت سرور نیاز دارند، یک ایمیج Docker از طریق docker compose up --build در دسترس است. این ایمیج سرور بوم و Chromium را برای میزبانی یک بوم مشترک یا پل اتاق اجرا میکند. با این حال، عاملها هرگز در ایمیج باندل نمیشوند؛ آنها باید روی سیستم خود کاربر اجرا شوند تا امنیت و احراز هویت حفظ شود.
جزئیات API و توسعهدهندگان
سیستم یک API جامع برای ادغام ارائه میدهد، شامل GET /api/health برای بررسی سلامت، GET /api/scene برای دریافت وضعیت صحنه و POST /api/chat برای ارسال پیامها. برای همگامسازی مرورگر و رویدادهای چت از وبساکتها (WS /ws) استفاده میشود.
برای توسعهدهندگانی که میخواهند از سورس کد بسازند، پروژه از یک Makefile با بیلدهای استاتیک musl و یک Nix dev shell (fish) استفاده میکند. فرانتاند با دستورات npm ci && npm run build ساخته شده و بکاند از طریق cargo install --path . نصب میشود.
این چرخش به سمت «گردشکارهای عاملمحور فضایی» به این معناست که توسعهدهندگان دیگر مجبور نیستند طرحهای معماری متنی را دستی به نمودار تبدیل کنند. اکنون عامل میتواند همزمان با نوشتن کد، نمایش بصری سیستم را بهروزرسانی کند و فاصله بین طراحی و اجرا را از بین ببرد.
برای کاربر نهایی، این یعنی کاهش بار شناختی در مستندسازی. به جای بهروزرسانی دستی فایل README و نمودارهای جداگانه، عامل وضعیت بصری را در فایل .drawgent/scene.json مدیریت میکند و تختهسیاه را به افزونهای زنده برای IDE تبدیل میکند.
توسعهدهندگانی که علاقهمند به تست این گردشکار هستند، باید ابتدا اطمینان حاصل کنند که Node.js نسخه ۱۸ یا بالاتر برای پلهای Claude و Codex نصب شده است و سپس دستور drawgent setup را اجرا کنند.
گام بعدی شما
- اگر از Claude Code استفاده میکنید، ابتدا Node.js نسخه ۱۸ یا بالاتر را نصب کرده و سپس دستور
drawgent setupرا اجرا کنید. - برای پروژههای تیمی، از فلگ
--roomاستفاده کنید تا عامل هوش مصنوعی را به عنوان یک عضو فعال در جلسات طوفان فکری بصری به بوم اضافه کنید. - سعی کنید با استفاده از پیشوند
:AGENTروی بوم، تبدیل یک نمودار Mermaid به المانهای قابل ویرایش Excalidraw را تست کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو