فاز 19 · درس 5

پروژه پایانی: ساخت ایجنت پژوهشی خودکار به سبک AI-Scientist

نوع
پروژه‌ی پایانی
زمان
حدود 10 دقیقه
زبان‌ها
Python (agent + sandbox), LaTeX (output)
پیش‌نیاز
فاز 2 (یادگیری ماشین)، فاز 3 (یادگیری عمیق)، فاز 7 (ترنسفورمرها)، فاز 10 (مدل‌های زبانی از صفر)، فاز 14 (ایجنت‌ها)، فاز 15 (سیستم‌های خودمختار)، فاز 16 (چندایجنت‌ها)، فاز 18 (ایمنی و امنیت)
یک درخت شاخه‌شاخه از گره‌های درخشان که نماد آزمایش‌ها هستند در کنار یک سند چاپ‌شده‌ی آکادمیک با نمودارهای علمی درون یک حباب شیشه‌ای ایزوله
فهرست مطالب
  1. صورت مسئله
  2. مفاهیم پایه
  3. معماری
  4. ابزارها و فناوری‌ها
  5. پیاده‌سازی از صفر
  6. استفاده از ابزارهای واقعی
  7. خروجی این درس
  8. تمرین‌ها
  9. اصطلاحات کلیدی
  10. برای مطالعه‌ی بیشتر

چرخه‌ی پژوهش علمی در هوش مصنوعی دیگر محدود به نگارش دستی کد و تحلیل‌های تک‌نفره نیست. سیستم‌های مدرن پژوهش خودکار مانند AI-Scientist نشان دادند که می‌توان ایده‌پردازی، طراحی آزمون‌های مقایسه‌ای سیستماتیک، اجرای آزمایش و نگارش مقاله در قالب LaTeX را به یک حلقه‌ی چندعاملی خودکار سپرد. در این پروژه، شما یاد می‌گیرید چگونه با معماری جست‌وجوی درختی (Tree Search) و ابزارهای ارکستراسیون، یک ایجنت پژوهشگر کامل بسازید که آزمایش‌ها را اجرا کرده و مقاله‌ای با داوری استاندارد تولید می‌کند.

چالش اصلی در ساخت چنین سیستمی، ایجاد زیرساخت امن و مدیریت بودجه است. اجرای کدهای تولیدشده توسط مدل‌های زبانی خطراتی مانند نشت به سیستم‌عامل، پر کردن بی‌رویه‌ی منابع یا حملات محروم‌سازی از سرویس (DoS) را به همراه دارد؛ بنابراین طراحی ساندباکس با سیاست‌های سخت‌گیرانه‌ی ایزولاسیون شبکه و رم/پردازنده نقشی حیاتی دارد. علاوه بر این، در این درس یاد می‌گیرید که چگونه با سقف بودجه‌ی معین و نظارت دقیق، هزینه‌های فراخوانی API را در یک چرخه‌ی برنامه‌ریزی-اجرا-اعتبارسنجی مهار کنید.

اگر از ایران روی این پروژه کار می‌کنید، توجه داشته باشید که فراخوانی مستقیم API مدل‌های زبانی تجاری نیازمند پرداخت ارزی است که با کارت‌های بانکی داخلی ممکن نیست؛ در این موارد می‌توانید از گیت‌وی‌های واسط سازگار با OpenAI استفاده کنید. همچنین اجرای محیط ساندباکس مبتنی بر ایمیج‌های Docker یا ابزارهای ابری به دلیل پایداری متغیر دسترسی به رجیستری‌ها، ممکن است نیاز به میرورهای محلی یا تنظیمات داکر محلی بدون ترافیک خروجی داشته باشد.

پروژه‌ی AI-Scientist-v2 از شرکت Sakana مقالات کاملی منتشر کرد. پروژه‌ی Agent Laboratory آزمایش‌ها را پیش برد. موسسه‌ی هوش مصنوعی آلن (Allen AI) ردگیری محاسبات (trace) را به اشتراک گذاشت. الگوی استاندارد سال 2026 بر پایه‌ی جست‌وجوی درختیِ برنامه‌ریزی-اجرا-اعتبارسنجی روی آزمایش‌ها، بودجه‌بندی هزینه‌ها، اجرای کد در ساندباکس (محیط ایزوله)، نویسنده‌ی لاتک (LaTeX) مجهز به بازخورد بینایی و گروه داوران خودکار به سبک NeurIPS بنا شده است. پروژه‌ی پایانی شما ساختن چنین سیستمی، اجرای سرتاسری آن با هزینه‌ی زیر 30 دلار به ازای هر مقاله و موفقیت در آزمون‌های تیم سرخ (red team) برای مقابله با فرار از ساندباکس — مشابه مواردی که Sakana مستند کرده است — خواهد بود.

فازهای تمرین‌شده: P0 · P2 · P3 · P7 · P10 · P14 · P15 · P16 · P18
مدت زمان: 40 ساعت

صورت مسئله

ایجنت‌های پژوهشی خودمختار در سال 2026 از یک نقطه‌ی عطف (threshold) گذشتند. مقالات تولیدشده توسط AI-Scientist-v2 از شرکت Sakana AI که داوری همتای کارگاه‌ها را با موفقیت پشت سر گذاشته بودند، در مجله‌ی Nature چاپ شدند. مقاله‌ی ShinkaEvolve (کنفرانس ICLR 2026) این مسیر را با تکامل فرضیه‌ها گسترش داد. پروژه‌ی Agent Laboratory از شرکت AMD ردگیری‌های قابل‌بازتولید ارائه کرد. عملکرد این ایجنت‌ها جادو نیست؛ بلکه یک حلقه‌ی «برنامه‌ریزی-اجرا-اعتبارسنجی» است که روی درختی از آزمایش‌های کاندید، با سقف هزینه، ساندباکس‌های مقید به سید (seed) تصادفی و داوری خودکار اجرا می‌شود. مهارت اصلی در طراحی همین حلقه، مدیریت بودجه و تضمین امنیت نهفته است.

شما این حلقه را با پیاده‌سازی روی یک ایده‌ی اولیه (seed idea) در حوزه‌ای محدود یاد می‌گیرید (مثلاً آزمون‌های مقایسه‌ای سیستماتیک روی تنک‌سازی اتنشن در یک مدل ترنسفورمر 100M پارامتری). ارزش کار در این نیست که در همان اجرای اول به کشف جدیدی برسید؛ ارزش اصلی در زیرساخت است: جست‌وجوی درختی، ساندباکس آزمایش‌ها، حلقه‌ی نویسنده-داور و گزارش تیم سرخ. تیم Sakana موارد نقض امنیت و فرار از ساندباکس را مستند کرده است؛ ایجنت شما باید در برابر همان سناریوهای تیم سرخ سربلند بیرون بیاید.

مفاهیم پایه

این ایجنت از یک الگوریتم جست‌وجوی درختی با اولویت بهترین (best-first tree search) استفاده می‌کند. گره‌ها در واقع مشخصات آزمایش هستند: (فرضیه، پیکربندی، کد، نتیجه‌ی مورد انتظار). مرحله‌ی گسترش (expand) گره‌های فرزند را با تغییرات کوچک پیشنهاد می‌دهد (تعویض بهینه‌ساز، تغییر اندازه‌ی بچ، آزمون مقایسه‌ای سیستماتیک روی یک مؤلفه). هر فرزند در یک ساندباکس تازه با محدودیت سخت‌گیرانه‌ی منابع اجرا می‌شود. نتایج به یک تابع امتیازدهی بازمی‌گردند که گره‌ها را بر اساس حاصل‌ضرب (نوآوری × کیفیت × بودجه‌ی باقی‌مانده) رتبه‌بندی می‌کند. درخت تا زمان اتمام بودجه رشد می‌کند و سپس بهترین شاخه برای نگارش مقاله انتخاب می‌شود.

بخش نویسنده چندوجهی است. این بخش یک پیش‌نویس LaTeX تولید می‌کند، آن را کامپایل می‌نماید، نمودارها را رسم می‌کند و سپس فایل PDF کامپایل‌شده را به حالت بینایی Claude Opus 4.7 برمی‌گرداند تا چیدمان صفحه، خوانایی نمودارها و هم‌راستایی ادعاها با شواهد نقد و بررسی شوند. گروه داوران متشکل از پنج مدل زبانی بزرگ، نمراتی به سبک NeurIPS ثبت می‌کنند (نوآوری، دقت علمی، وضوح، بازتولیدپذیری، تأثیرگذاری)؛ اگر میانگین نمرات از آستانه پایین‌تر بیاید، مقاله همراه با نقدها برای بازنویسی به نویسنده بازمی‌گردد.

امنیت نقشی حیاتی و ساختاری دارد. همه‌ی آزمایش‌ها در ساندباکس‌های E2B یا Daytona بدون خروج ترافیک شبکه (network egress)، با محدودیت زمانی مشخص و سقف منابع سخت‌افزاری اجرا می‌شوند. مرحله‌ی تولید کد ایجنت از یک لایه‌ی سیاست‌گذاری (policy layer) عبور می‌کند که فراخوان‌های سیستمی (syscalls) منجر به فرار از ساندباکس را مسدود می‌سازد. گزارش تیم سرخ، سطح حمله‌ی مستندشده توسط Sakana را بازتولید می‌کند (حملات fork bomb، فرار از سیستم فایل و فراخوان‌های شبکه‌ای نوشته‌شده توسط مدل زبانی).

معماری

seed idea + domain
      |
      v
  literature search (Semantic Scholar + OpenAlex + FAISS cache)
      |
      v
  LangGraph plan-execute-verify tree
      |
      v
  +--- expand node ----+      per-node sandbox
  |                    |      (E2B / Daytona)
  v                    v      resource caps
  child_1           child_k   no network egress
  |                    |      deterministic seeds
  v                    v
  run experiment       run experiment
  |                    |
  v                    v
  score nodes by (novelty, quality, budget)
      |
      v
  best branch -> LaTeX writer
      |
      v
  compile + vision critique (Opus 4.7 vision)
      |
      v
  reviewer ensemble (5 LLM judges, NeurIPS rubric)
      |
      v
  paper.pdf + review.md + trace.json

ابزارها و فناوری‌ها

  • ارکستراسیون: LangGraph با قابلیت چک‌پوینت‌گیری و دروازه‌های تأییدیه انسانی (human-approval gates)
  • جست‌وجوی درختی: الگوریتم سفارشی best-first روی گره‌های آزمایش (مشابه سبک AB-MCTS در Sakana v2)
  • ساندباکس: E2B به ازای هر آزمایش، با طرح پشتیبان Docker-in-Docker؛ محدودیت منابع از طریق cgroups
  • بررسی پیشینه‌ی پژوهش: Semantic Scholar Graph API به‌همراه OpenAlex و کش محلی چکیده‌ها با FAISS
  • نویسنده: قالب LaTeX به‌همراه Claude Opus 4.7 (حالت بینایی) برای نقد نمودارها و چیدمان صفحه
  • داور: گروهی متشکل از 5 مدل قضاوت‌کننده (Opus 4.7، GPT-5.4، Gemini 3 Pro، DeepSeek R1، Qwen3-Max) با تجمیع وزنی نمرات
  • فریم‌ورک آزمایش‌ها: PyTorch 2.5 برای اجرای فیزیکی آزمایش‌ها، W&B برای لاگ‌گیری
  • مشاهده‌پذیری: Langfuse برای ردگیری محاسبات ایجنت، سقف بودجه‌ی قطعی 30 دلار به ازای هر مقاله
جستجوی درخت آزمایشگسترش بهترین، مصرف بودجه
EXPERIMENT TREE SEARCHEach node is a sandboxed experiment scored after it runs. The search expands the best-scoring node, not the newest, so the 0.71 branch earns children while its siblings stall. The budget gauge drains with every run, and when it empties the best branch is written up as the paper.گسترش بهترین-ابتداseed0.420.550.710.620.83مقاله$30
هر گره یک آزمایش در ساندباکس (محیط ایزوله) است که پس از اجرا امتیازدهی می‌شود. جستجو بهترین گره از نظر امتیاز را گسترش می‌دهد، نه جدیدترین را؛ بنابراین branch با امتیاز 0.71 فرزندانی تولید می‌کند در حالی که هم‌سطح‌های آن متوقف می‌شوند. نشانگر بودجه با هر اجرا خالی می‌شود و وقتی تمام شد، بهترین branch به‌صورت مقاله نوشته می‌شود.

پیاده‌سازی از صفر

  1. انتخاب ایده‌ی اولیه و تعیین محدوده‌ی دامنه. یک ایده‌ی اولیه بردارید (مثلاً «بررسی الگوهای تنک‌سازی در نقشه‌های اتنشنِ ترنسفورمرهای زیر 1B پارامتر»). فضای جست‌وجو را تعریف کنید: مدل‌ها، مجموعه‌داده‌ها و بودجه‌ی پردازشی.

  2. بررسی پیشینه‌ی پژوهش. 50 مقاله‌ی مرتبط با بیشترین ارجاع را از Semantic Scholar و OpenAlex واکشی کنید؛ چکیده‌ها را در حافظه‌ی محلی کش کنید؛ یک خلاصه‌ی تک‌صفحه‌ای از دامنه‌ی پژوهش بسازید.

  3. داربست درخت. ریشه‌ی درخت را با فرضیه‌ی اولیه مقداردهی کنید. متد expand(node) -> children را با پیشنهاد تغییرات کوچک پیاده‌سازی کنید (هر فرزند فقط یک تغییر در پیکربندی داشته باشد). متد score(node) را بر اساس یک عبارت وزنی از حاصل‌ضرب نوآوری × کیفیت × بودجه پیاده کنید.

  4. پوشش ساندباکس. هر آزمایش را با دستور docker run --network=none --memory=8g --cpus=2 --pids-limit=256 --read-only (یا معادل آن در سیاست‌های E2B) اجرا کنید. سیدها به داخل ساندباکس نوشته می‌شوند؛ خروجی‌ها نیز به‌صورت فقط‌خواندنی به بیرون مانت (mount) می‌گردند.

  5. حلقه‌ی برنامه‌ریزی-اجرا-اعتبارسنجی. مرحله‌ی plan فرزندان را پیشنهاد می‌دهد. مرحله‌ی execute ساندباکس را اجرا کرده و لاگ‌ها و متریک‌ها را ثبت می‌کند. مرحله‌ی verify تست‌های واحد را روی متریک‌ها می‌سنجد (آیا تابع زیان (loss) کاهش یافت؟ آیا آزمون مقایسه‌ای سیستماتیک اثر را جداسازی کرد؟). دلیل شکست گره‌های ناموفق در ساختار درخت ذخیره می‌شود.

  6. نویسنده. پس از اتمام بودجه، بهترین شاخه را برگزینید. نمودارها را با matplotlib رسم کنید. با قرار دادن ردگیری محاسبات شاخه در زمینه‌ی متنی، پیش‌نویس LaTeX را توسط Claude Opus 4.7 تولید کنید. فایل را کامپایل کنید. خروجی PDF کامپایل‌شده را برای نقد و بازخورد به حالت بینایی Opus 4.7 بفرستید. این روند را تکرار کنید.

  7. گروه داوران. پنج مدل قضاوت‌کننده پیش‌نویس را بر اساس معیارهای (نوآوری، دقت علمی، وضوح، بازتولیدپذیری، تأثیرگذاری) با شیوه‌نامه‌ی نمره‌دهی مشابه NeurIPS ارزیابی می‌کنند. اگر میانگین نمرات کمتر از 4.0 از 5 باشد، مقاله با نقدهای دریافت‌شده به نویسنده بازمی‌گردد. بازنویسی حداکثر پس از 3 بار متوقف می‌شود.

  8. تیم سرخ. مجموعه‌ای از وظایف تهاجمی را با هدف نفوذ به ساندباکس بسازید یا ادغام کنید: حملات fork bomb، تلاش برای استخراج غیرمجاز از شبکه، فرار از سیستم فایل و کاراکترهای کنترلی شل (shell metacharacters) تولیدشده توسط مدل زبانی. مطمئن شوید همه‌ی آن‌ها مسدود می‌شوند. یافته‌ها را مکتوب کنید.

  9. بازتولیدپذیری. هر مقاله باید همراه با فایل JSON ردگیری محاسباتِ جست‌وجوی درختی، سیدها، لینک اجراهای W&B، پیکربندی ساندباکس‌ها و یک فایل README برای بازتولید کامل و صفر تا صدی تحویل داده شود.

استفاده از ابزارهای واقعی

$ ai-scientist run --seed "attention sparsity in sub-1B transformers" --budget 30
[lit]    50 papers, digest in 12s
[tree]   expanded 8 nodes, budget 12/30
[exec]   node #3 sparsity=top-8, loss=2.83 (best so far)
[exec]   node #6 sparsity=top-4, loss=3.12 (worse)
[exec]   ...
[tree]   chose branch rooted at node #3 (novelty 0.62, quality 0.81)
[write]  LaTeX draft v1 complete
[vision] critique: figure 2 legend too small, claim-evidence ok
[write]  draft v2 after 3 edits
[review] mean 4.2/5 (novelty 3.9, rigor 4.3, clarity 4.1, repro 4.5, impact 4.2)
[done]   paper.pdf + review.md + trace.json     $28.40 spent

خروجی این درس

فایل outputs/skill-ai-scientist.md خروجی تحویلی نهایی است. این سیستم با دریافت یک ایده‌ی اولیه + دامنه‌ی پژوهش + بودجه‌ی 30 دلاری، کل پایپ‌لاین را اجرا کرده و یک مقاله‌ی آماده‌ی داوری به‌همراه بسته‌ی کامل بازتولیدپذیری ارائه می‌دهد.

ضریب معیار نحوه‌ی ارزیابی
25 کیفیت مقاله داوری دوسوکور با شیوه‌نامه‌ی نمره‌دهی در مقایسه با مقالات منتشرشده در کارگاه‌ها
20 دقت علمی آزمایش‌ها خطوط مبنا، سیدها، آزمون‌های مقایسه‌ای سیستماتیک؛ مستند بودن هر ادعا به یک خانه در جدول نتایج
20 انضباط در هزینه و پردازش اعمال سقف بودجه‌ی 30 دلاری برای هر مقاله با ردگیری در Langfuse
20 امنیت موفقیت در آزمون تیم سرخ ساندباکس؛ تأیید سیاست‌های شبکه و عملکرد کلید قطع اضطراری (kill-switch)
15 بازتولیدپذیری اجرای مجدد با یک دستور و با سیدهای یکسان، دقیقاً همان مقاله را بازتولید کند
100

تمرین‌ها

  1. پایپ‌لاین را با سه ایده‌ی اولیه‌ی متفاوت در یک دامنه‌ی یکسان اجرا کنید. مقایسه کنید کدام بخش‌های جست‌وجوی درختی هم‌پوشانی دارند. پردازش‌های تکراری و هدررفته را شناسایی کنید.

  2. قبل از اجرای آزمایش برای گره‌هایی که هزینه‌ی تخمینی آن‌ها بالای 5 دلار است، یک دروازه‌ی نظارت انسان در چرخه اضافه کنید. بسنجید که این کار چقدر هزینه‌ی کل را کاهش می‌دهد.

  3. گروه داوران را با یک قضاوت‌کننده‌ی منفرد جایگزین کنید. نرخ پذیرش نادرست (false-accept rate) را روی مجموعه‌ای جداگانه از مقالاتی که ضعف آن‌ها محرز است بسنجید.

  4. یک آزمون تیم سرخ برای ارزیابی تلاش برای استخراج غیرمجاز از شبکه طراحی کنید: کدی توسط ایجنت نوشته شود که سعی کند با curl به یک آدرس خارجی متصل شود. بررسی کنید که آیا سیاست --network=none مانع آن می‌شود یا خیر. تلاش انجام‌شده را ثبت کنید.

  5. جست‌وجوی درختی خود را با یک خط مبنای تصادفی ساده (با همان بودجه و بدون استراتژی گسترش) مقایسه کنید. میزان بهبود در شاخص نوآوری × کیفیت را گزارش دهید.

اصطلاحات کلیدی

اصطلاح برداشتی که دیگران دارند معنای واقعی در عمل
جست‌وجوی درختی (Tree search) «گسترش به سبک AB-MCTS» پیمایش Best-first روی گره‌های آزمایش با نمره‌ی مبتنی بر حاصل‌ضرب نوآوری × کیفیت × بودجه
ساندباکس (Sandbox) «ایزوله‌سازی آزمایش» کانتینری بدون دسترسی به شبکه، با محدودیت پردازنده و رم، سیدهای فیکس‌شده و ورودی‌های فقط‌خواندنی
نقد بینایی (Vision critique) «رندر بگیر و بخوان» کامپایل مقاله به PDF و بازگرداندن فایل به یک مدل بینایی-زبانی (VLM) برای ارزیابی چیدمان و انطباق ادعاها با شواهد
گروه داوران (Reviewer ensemble) «داوری همتای خودکار» ارزیابی مقاله توسط چند مدل زبانی با شیوه‌نامه‌ی نمره‌دهی NeurIPS که خروجی تجمیعی و وزنی آن‌ها ادامه‌ی پایپ‌لاین را مشروط می‌کند
امتیاز نوآوری (Novelty score) «آیا این ایده جدید است؟» یک معیار هیوریستیک که نزدیکی به کش 50 مقاله‌ی پیشینه‌ی پژوهش را جریمه می‌کند
سقف هزینه (Cost ceiling) «بودجه‌ی دلاری» محدودیت سخت‌گیرانه روی کل هزینه‌ی پرداختی برای هر مقاله با کمک شمارنده‌های Langfuse و تخمین‌های پیش از اجرا
تیم سرخ (Red team) «وارسی فرار از ساندباکس» وظایف تهاجمی که در صورت نقص سیاست‌های امنیتی، از محیط ساندباکس فرار می‌کنند

برای مطالعه‌ی بیشتر

خودآزمایی

به سؤال‌ها جواب بدهید تا ببینید چقدر از درس در ذهنتان مانده است.

  1. پیش از درسایجنت در رده‌ی AI-Scientist از چه ساختار جستجویی برای کاوش آزمایش‌ها استفاده می‌کند؟
  2. پیش از درسچرا ساندباکس (محیط ایزوله) با آرگومان network=none-- و سقف منابع محدود پیکربندی می‌شود؟
  3. حین درسنقش مرحله‌ی نقد بینایی (vision critique) در حلقه‌ی نویسنده چیست؟
  4. حین درسمجموعه‌ی داوران (reviewer ensemble) چگونه پایپ‌لاین را کنترل و هدایت می‌کند؟
  5. حین درسپروژه‌ی پایانی چه انضباط هزینه‌ای را به ازای هر مقاله اعمال می‌کند؟
  6. پس از درسکدام تابع امتیازدهی گره‌های درخت را برای گسترش بیشتر رتبه‌بندی می‌کند؟
  7. پس از درسگزارش تیم قرمز (red-team) چه مواردی را علیه سیستم آزمایش و ارزیابی می‌کند؟

سؤالات متداول

چگونه از حملات فرار از ساندباکس (Sandbox Escape) توسط کد تولیدی مدل جلوگیری کنیم؟

با اجرای آزمایش‌ها درون کانتینرهای ایزوله (مانند Docker یا E2B) همراه با سیاست‌های سخت‌گیرانه شامل بستن دسترسی به شبکه (--network=none)، محدود کردن رم و پردازنده با cgroups، تنظیم فایل‌سیستم به‌صورت فقط‌خواندنی و فیلتر کردن فراخوان‌های سیستمی خطرناک.

نقش نقد بینایی (Vision critique) در فرایند تولید مقاله چیست؟

پس از کامپایل متن به PDF، خروجی نمودارها و صفحات به مدل‌های بینایی-زبانی ارسال می‌شود تا چیدمان، خوانایی برچسب‌ها و انطباق متن مقاله با شواهد بصری ارزیابی و اصلاح شود.

گروه داوران (Reviewer ensemble) چگونه از پذیرش مقالات بی‌کیفیت جلوگیری می‌کند؟

گروهی متشکل از چند مدل زبانی مستقل بر اساس شیوه‌نامه‌ی نمره‌دهی NeurIPS معیارهایی چون نوآوری، دقت علمی و بازتولیدپذیری را ارزیابی کرده و در صورت کسب نکردن میانگین لازم، مقاله را همراه با بازخورد برای بازنویسی برمی‌گردانند.

ما رو توی گوگل بیشتر ببین

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