NOOA؛ ایجنتی که فقط یه کلاس پایتونه
خلاصهٔ کاملتر
انویدیا NOOA (NVIDIA Labs Object-Oriented Agents) رو بهعنوان یه «research preview» متنباز منتشر کرده، همراه با فریمورک پایتون، سیستم حافظه، تستهای قابلیت و ایجنتهای بنچمارک. ایدهٔ اصلی پست اینه که انتخاب مدل تنها عامل کیفیت یه ایجنت نیست؛ harness — یعنی معماری دور مدل که تعیین میکنه کانتکست چطور رندر بشه، اکشنها چطور اجرا بشن، وضعیت کجا بمونه و کار کِی تمومشده حساب بشه — بهتنهایی میتونه نتیجهٔ بنچمارک رو دهها درصد و هزینهٔ توکن رو خیلی جابهجا کنه.
مدل کاری NOOA سادهست: هر ایجنت یه کلاس پایتونه. متدها تواناییهاشن، فیلدها وضعیتش، docstringها همون پرامپت و type annotationها قرارداد الزامشده. متدی که بدنهش فقط سهنقطه باشه موقع اجرا با یه حلقهٔ LLM پر میشه، و متدی که بدنهٔ عادی داره مثل پایتون معمولی و قطعی اجرا میشه:
class SupportAgent(Agent):
"""You are a support agent for a customer service system."""
order_db: OrderDB # object state: model-visible, passed by reference
async def triage(self, message: str, order: Order | None) -> Ticket:
"""Triage a customer message and create a support ticket."""
...نتیجهش به گفتهٔ انویدیا اینه که ساخت ایجنت برمیگرده به توسعهٔ نرمافزار معمولی — diff، کدریویو، یونیتتست، تریس و ریفکتور، هم بهدست آدم هم بهدست ایجنتهای کدنویس. پست شش ایدهٔ رابط با مدل رو فهرست میکنه: ورودی/خروجی تایپدار، pass by reference، کد بهعنوان اکشن، حلقهٔ ارکستراسیون برنامهپذیر، وضعیت صریح روی آبجکت، و APIهای harness که خود مدل میتونه صداشون بزنه.
حافظهٔ بلندمدتش هم بهجای خلاصهسازی خودکار پسزمینه، انباریه که خود ایجنت با ابزار مدیریتش میکنه: رکوردها نوع، اهمیت و تگ دارن و با رابطههایی مثل supports و contradicts به یه گراف دانش وصل میشن، همه تو یه فایل SQLite خوانا.
اعداد هم منتشر شدن: ۸۲.۲٪ روی SWE-bench Verified با GPT-5.5 (بالاتر از ۷۹.۲٪ لیدربورد در زمان ارسال) با یه ایجنت عمومی ۲۵۳ خطی و بدون پرامپت مخصوص بنچمارک، ۸۶.۸٪ روی CyberGym L1 با دسترسی شبکهٔ بسته، و ۸۵.۱٪ میانگین RHAE روی ARC-AGI-3 با GPT-5.6-sol و حدود ۱۳.۳ دلار هر بازی. تو ARC-AGI-3، مهارت مدلسازی جهان ۸.۵ واحد و زیرسیستم حافظه ۱۱.۸ واحد به امتیاز اضافه کردن.
جالبتر از دقت، هزینهست: همون ۸۲.۲٪ با ۲۹ فراخوانی مدل و حدود ۱.۱ میلیون توکن بهدست اومده، در حالی که harnessهای مقایسهای ۶۶ فراخوانی و ۲.۲ میلیون توکن خرج کردن تا فقط به ۷۸.۲٪ برسن. به گفتهٔ انویدیا دلیلش pass by reference ـه: خروجی ابزارها بهجای رفتوبرگشت متنی تو پنجرهٔ کانتکست، متغیر زندهٔ پایتون میشن و مدل فقط یه پیشنمایش تایپدار و محدود میبینه. برای همین NOOA برای حل SWE-bench به فشردهسازی کانتکست نیاز نداره — پیک نشستها بین ۲۲ تا ۷۲ هزار توکن میمونه — و ترنسکریپت append-only و cache-valid باقی میمونه. کد، تستها و گزارش فنی همگی عمومی شدن.
نکات کلیدی:
- هر ایجنت یه کلاس پایتونه: متد = توانایی، فیلد = وضعیت، docstring = پرامپت
- متد با بدنهٔ خالی رو حلقهٔ LLM پر میکنه، بقیه پایتون قطعی میمونن
- شش ایدهٔ کلیدی، از ورودی/خروجی تایپدار تا APIهای قابلفراخوانی harness
- حافظهٔ بلندمدت رو خود ایجنت میسازه و هرس میکنه، تو یه فایل SQLite
- ۸۲.۲٪ روی SWE-bench Verified و ۸۶.۸٪ روی CyberGym L1
- تقریباً نصف توکن، بدون نیاز به فشردهسازی کانتکست




