نیگان ایجنت
ایجنت هوش مصنوعی شناختی با راست خالص — برنامهریز، خودانتقادی، حافظه مهارت و سندباکس امن، کاملاً آفلاین.
گالری
3 تصویر — کلیک برای بزرگنماییچیست؟
نیگان ایجنت یک ایجنت هوش مصنوعی «نسل بعدی» برای توسعهدهندگان است — اما برخلاف یک رپر ساده دور API، یک سیستم شناختی کامل است که با راست نوشته شده: برنامهریزی میکند، روی خروجی خودش بازتابش میکند، کیفیت کد را قضاوت میکند، از خودش انتقاد میکند، مهارتهای آموخته را به خاطر میسپارد و میتواند کل جلسات را دوباره اجرا کند. کاملاً آفلاین با مدلهای محلی اجرا میشود و از طریق WebSocket برای رابط وب هم در دسترس است.
کل ایجنت حدود ۲٬۸۳۰ خط راست در ۳۰+ ماژول است و پروفایل release برای تولید بهینه شده: opt-level=3، LTO کامل، codegen-units=1، panic=abort و باینری استریپشده.
قابلیتهای شناختی
| قابلیت | شرح |
|---|---|
| 📋 Planner | هدف را به قدمهای کوچک اجرایی میشکند |
| 🔍 Reflection | خروجی هر قدم را قبل از ادامه تحلیل میکند |
| ⚖️ Judge | کیفیت کد را با نمره ۱ تا ۱۰ میسنجد |
| 💬 Self-Critique | کار خودش را مرور و از اشتباهاتش یاد میگیرد |
| 🧠 Skill Memory | تجربههای قابلاستفاده را بهصورت فایل .toml ذخیره میکند |
| 🧹 Memory Hygiene | پنجره کانتکست را تمیز و متمرکز نگه میدارد |
| 🎥 Replay Engine | جلسات قبلی را برای صحتسنجی دوباره اجرا میکند |
| 🛡️ Sandbox | دستورات خطرناک را مسدود و دسترسی فایل را محدود میکند |
معماری
┌──────────────────────────────────────────────────────────┐
│ رابط کاربری │
│ 🖥️ TUI (Ratatui) 🌐 وب (HTML/CSS/JS) │
└────────────┬──────────────────────────────┬──────────────┘
│ │
┌────────────▼──────────────────────────────▼──────────────┐
│ سرور API (Axum + WebSocket) │
│ POST /api/chat • GET /api/health • WS /ws │
└───────────────────────────┬──────────────────────────────┘
│
┌───────────────────────────▼──────────────────────────────┐
│ هسته شناختی │
│ 🎯 انتخابگر ابزار → 📋 برنامهریز → 🔄 اجراکننده │
│ 🔍 بازتابش → ⚖️ قاضی → 💬 خودانتقادی │
│ 🛑 شرایط توقف (max_steps=10, max_retries=3) │
└───────────────────────────┬──────────────────────────────┘
│
┌───────────────────────────▼──────────────────────────────┐
│ لایه حافظه │
│ کانتکست • وظایف • حافظه پروژه • مهارتها • بهداشت │
│ Trace (تصمیمها) • Replay (جلسات) │
└───────────────────────────┬──────────────────────────────┘
│
┌───────────────────────────▼──────────────────────────────┐
│ لایه ابزار │
│ شل (۲۰+ دستور) • عملیات فایل • دیباگر خودکار • سندباکس │
└───────────────────────────┬──────────────────────────────┘
│
┌───────────────────────────▼──────────────────────────────┐
│ فراهمکنندههای AI (محلی) │
│ Ollama • DeepSeek Coder • Qwen Coder • GGUF محلی │
└──────────────────────────────────────────────────────────┘
جریان فکر برای یک درخواست
کاربر: «باگ main.rs را فیکس کن»
→ [انتخابگر ابزار] نوع کار: دیباگ
→ [برنامهریز] ۱. اجرای تست → ۲. خواندن لاگ
۳. دیباگ هوشمند فایل → ۴. اعمال فیکس
۵. اجرای دوباره تستها
→ [اجراکننده] قدم ۱ → [بازتابش] ۲ خطا پیدا شد
→ [برنامهریز] قدم ۲ → [بازتابش] خطا در خط ۴۲
→ [قاضی] کیفیت کد ۷ از ۱۰
→ [بررسی توقف] ادامه (قدم ۵ از ۱۰)
→ [حافظه] ذخیره تصمیم در trace
→ [خودانتقادی] «بهتر بود اول خطاها را میخواندم»
سندباکس امن
ماژول sandbox.rs یک محافظ واقعی است، نه یک وعده:
- دستورات مسدود (لیست سیاه):
rm -rf /،sudo،chmod 777،mkfs،dd if=، fork bomb (:(){ :|:& };:) - مسیرهای مجاز — لیست سفید مشخص از پوشههایی که ایجنت اجازه دسترسی دارد
- کنترل شبکه — فلگ
allow_networkدسترسی اینترنت را روشن/خاموش میکند
مهارتهای آموخته (حافظه مهارت)
مهارتها بهصورت فایل ساختاریافته .toml ذخیره میشوند و وقتی همان نوع مشکل دوباره پیش آید دوباره اعمال میشوند:
skills/
├── rust_borrow_checker.toml # رفع خطاهای Borrow Checker
├── git_conflict_resolution.toml # حل کانفلیکت گیت
└── performance_optimization.toml # الگوهای بهبود کارایی
ساختار پروژه
negan-agent/
├── src/
│ ├── main.rs # نقطه ورود
│ ├── api/ # سرور Axum، مسیرهای REST، هندلر WebSocket
│ ├── core/ # orchestrator، planner، reflection، judge،
│ │ # tool_selector، task_tracker، context،
│ │ # model_router، project_memory، skill_memory،
│ │ # memory_hygiene، trace، replay، sandbox
│ ├── tools/ # shell_exec، file_ops، auto_debugger
│ ├── optimizations/ # zero_copy، memory_pool، async_executor
│ └── tui/ # رابط ترمینال Ratatui
├── static/index.html # رابط وب مرورگر (از طریق WebSocket)
├── skills/ # مهارتهای آموخته (.toml)
└── benchmarks/ # fix_rust_bug / refactor_small / add_feature
بنچمارک
پوشه benchmarks/ کیفیت ایجنت را قابل اندازهگیری میکند — سه کار استاندارد (فیکس باگ راست، بازنویسی یک ماژول کوچک، افزودن فیچر) اجرا و امتیازدهی میشوند تا بهبودهای ایجنت حدسزده نشوند، بلکه تأیید شوند.
چرا برجسته است
بیشتر «ایجنتهای AI» یک رپر API با یک پرامپت هستند. نیگان ایجنت یک پروژه واقعی سیستممحور است: ایجنی که برنامهریزی میکند، بازتابش میکند، قضاوت و خودانتقادی دارد، حافظه ماندگار و یک سندباکس امن واقعی — همه در ~۲٬۸۰۰ خط راست کموابسته که آفلاین روی مدلهای محلی اجرا میشود؛ این یعنی ساختن ماشین شناختی که میشود دربارهاش استدلال و بنچمارک کرد.