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

آیا Drawgent می‌تواند نقشه‌ی فنی سیستم‌ها را به‌صورت خودکار ترسیم کند؟

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

نخستین پیوند زنده بین عامل‌های CLI و بوم‌های بصری تعاملی؛ برخلاف مدل‌های Vision معمولی که فقط عکس را تحلیل می‌کنند، Drawgent به عامل اجازه می‌دهد به‌صورت دوطرفه و در لحظه، المان‌های بوم را تغییر دهد.

تصور کنید به جای توصیف متنیِ پیچیده برای یک معماری نرم‌افزاری، کافی باشد روی تخته‌سیاه بنویسید «اینجا یک دیتابیس اضافه کن» و یک عامل هوش مصنوعی در لحظه آن را رسم کند. 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 مراجعه کنید.

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

این ابزار با تکیه بر اعتبار پروتکل MCP، شکاف بین تفکر بصری انسان و اجرای متنی ماشین را پر می‌کند. این تغییر باعث می‌شود سرعت تبدیل ایده‌های معماری به کد در تیم‌های مهندسی به‌شدت افزایش یابد.

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

به‌دلیل نیاز به دسترسی به APIهای Claude و Codex، استفاده از این ابزار برای توسعه‌دهندگان ایرانی مستلزم استفاده از ابزارهای تغییر IP و حساب‌های فعال است.

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

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

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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