🧠هوش مصنوعی★ شاخصسال: ۲۰۲۶در حال توسعه فعال

نیگان ایجنت

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

نیگان ایجنت cover
راستTokioAxum + WebSocketRatatui / crosstermollama-rsserde / serde_jsonfutures / tower-httpمدل‌های محلی (Ollama، DeepSeek، Qwen، GGUF)

چیست؟

نیگان ایجنت یک ایجنت هوش مصنوعی «نسل بعدی» برای توسعه‌دهندگان است — اما برخلاف یک رپر ساده دور 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 با یک پرامپت هستند. نیگان ایجنت یک پروژه واقعی سیستم‌محور است: ایجنی که برنامه‌ریزی می‌کند، بازتابش می‌کند، قضاوت و خودانتقادی دارد، حافظه ماندگار و یک سندباکس امن واقعی — همه در ~۲٬۸۰۰ خط راست کم‌وابسته که آفلاین روی مدل‌های محلی اجرا می‌شود؛ این یعنی ساختن ماشین شناختی که می‌شود درباره‌اش استدلال و بنچمارک کرد.

پروژه‌های بیشتر