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

ProofRun با رسیدهای رمزنگاری ادعای موفقیت عامل‌های کدنویس را می‌سنجد

·۲۵ مرداد ۱۴۰۵۵ دقیقه مطالعه
گیت‌هاب - ProofRun: رسید تأیید محلی برای عامل‌های کدنویسی هوشمند
گیت‌هاب - ProofRun: رسید تأیید محلی برای عامل‌های کدنویسی هوشمند
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

معرفی مکانیزم رسیدهای رمزنگاری‌شده برای پیوند دادن نتایج تست به هش فایل‌ها؛ این اولین بار است که یک ابزار محلی، وضعیت «کهنه شدن» (STALE) تست‌ها را بر اساس تغییرات بایت-به-بایت کد ردیابی می‌کند.

تغییر حتی یک بایت در کد منبع می‌تواند تستی را که پاس شده بود به شکست تبدیل کند، اما عامل‌های هوش مصنوعی اغلب بر اساس حافظه‌ای قدیمی ادعا می‌کنند که «همه تست‌ها پاس شدند». ProofRun که در ۱۶ اوت ۲۰۲۶ منتشر شد، این مشکل را با ایجاد یک رسید رمزنگاری‌شده حل می‌کند که نتایج اجرا را دقیقاً به وضعیت فعلی فایل‌های محلی شما گره می‌زند.

تصور کنید یک عامل (Agent) — شبیه دستیاری که کدها را تغییر می‌دهد اما گاهی فراموش می‌کند دوباره آن‌ها را امتحان کند — پروژه شما را سه بار ویرایش کند اما مجموعه تست‌ها را فقط یک بار در ابتدا اجرا کرده باشد. بدون یک لایه اعتبارسنجی، شما راهی ندارید تا بفهمید جمله «همین الان اجرا کردم و پاس شد» یک حقیقت است یا یک توهم (Hallucination) — یعنی وقتی مدل با اطمینان چیزی می‌گوید که اصلاً وجود ندارد، مثل دوستی که خاطره‌ای را اشتباه تعریف می‌کند. در چنین حالتی، عامل ممکن است صرفاً استنتاج کند که تغییرات اعمال شده «درست به نظر می‌رسند». این شکاف اعتماد، یک نقطه کور خطرناک در جریان‌های توسعه خودکار ایجاد می‌کند.

همان‌طور که در بحث‌های گذشته‌ی ما درباره‌ی امنیت مدل‌های بازمتن اشاره کردیم، اعتماد کورکورانه به خروجی مدل‌ها می‌تواند منجر به رگرسیون‌های شدید در نرم‌افزار شود. این چالش مشابه رویکرد صحت‌سنجی مبتنی بر داده در Crucible است که برای مقابله با اعتماد کورکورانه به عامل‌ها طراحی شده است. ProofRun به عنوان یک فایل باینری محلی عمل می‌کند که هیچ تماسی با مدل‌های زبانی یا تله‌متری شبکه ندارد. این ابزار با شروع یک زیرپردازش (Subprocess) واقعی و خواندن کد خروجی (Exit Code) واقعی دستور عمل می‌کند. هر نتیجه به یک اثر انگشت متصل است که از کامیت گیت و یک هش SHA-256 از تمام تغییرات ثبت‌نشده، شامل فایل‌های ردیابی‌نشده (Untracked files)، تشکیل شده است.

شکاف اعتماد

به نقل از مستندات پروژه، ProofRun سعی نمی‌کند قضاوت کند که آیا کد درست است یا خیر، یا بخواهد عامل هوش مصنوعی را صادق‌تر کند. در عوض، ادعای موفقیت را «قابل بررسی» می‌کند. این ابزار فاصله بین «اجرا کردم و پاس شد» و «تقریباً مطمئنم که پاس می‌شد» را از بین می‌برد.

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

سازوکار اصلی و وضعیت‌ها

این ابزار تضمین‌های مبهم هوش مصنوعی را با چهار وضعیت concrete جایگزین می‌کند و هیچ گزینه پنجمی به نام «احتمالاً درست است» وجود ندارد:

  • PASS: دستور با موفقیت روی وضعیت فعلی کد اجرا شد.
  • FAIL: دستور اجرا شد اما کد خروجی غیرصفر برگرداند.
  • STALE: تست قبلاً پاس شده بود، اما از آن زمان کد تغییر کرده است. حتی یک فاصله (Space) اضافی یا یک فایل جدید این وضعیت را فعال می‌کند.
  • NOT RUN: هیچ سابقه اجرایی برای وضعیت فعلی کد وجود ندارد.

گیت‌هاب - ProofRun: رسید تأیید محلی برای عامل‌های کدنویسی هوش مصنوعی

جزئیات فنی و پیاده‌سازی

پیکربندی از طریق فایل .proofrun.yml انجام می‌شود. در این فایل، بررسی‌ها به جای رشته‌های متنی شل، به صورت آرایه‌های آرگومان (argv lists) تعریف می‌شوند. این طراحی مانع از ترفندهای تزریق شل (Shell Injection) می‌شود و تضمین می‌کند دستوری مثل pytest -k "foo bar" را نتوان با دستوری مشابه اما متفاوت که پس از تبدیل به متن یکسان به نظر می‌رسد، جایگزین کرد.

گزینه‌های کلیدی پیکربندی عبارتند از:

  • command: یک لیست argv (مثلاً [pytest] یا [npm, run, build]).
  • required: یک مقدار بولی. اگر true باشد، عدم موفقیت این تست مانع از پاس شدن دستور proofrun status --strict می‌شود.

برای ادغام در CI/CD، یک GitHub Action ارائه شده است که کامیت سرِ PR را مستقلاً چک‌اوت می‌کند. طبق گزارش توسعه‌دهندگان، این اکشن برای جلوگیری از کامیت‌های پیش‌نمایش مصنوعی (Synthetic merge-preview commits)، هرگز به چک‌اوتِ جریان کاری فراخواننده اعتماد نمی‌کند. این اکشن هرگونه receipt.json را از شاخه PR پاک کرده و یک باینری تاییدشده از طریق چک‌سام (Checksum) را برای اجرای proofrun run-all دانلود می‌کند تا پیش از تایید نهایی، وضعیت proofrun status --strict را بررسی کند.

یک محدودیت شناخته‌شده این است که این اکشن نمی‌تواند PRهایی را که خودِ فایل .proofrun.yml را تضعیف می‌کنند مسدود کند. اگرچه ابزار یک هشدار (Build annotation) در صورت تفاوت پیکربندی با شاخه پایه ارائه می‌دهد، اما کاربران باید این تغییرات را به صورت دستی بررسی کنند.

توسعه و پاسخگویی

نکته جالب این است که ProofRun توسط یک عامل هوش مصنوعی (Claude Code) و تحت هدایت انسان توسعه یافته است. فرآیند توسعه شامل بررسی‌های خصمانه (Adversarial reviews) بود که یک نقص را آشکار کرد: آرگومان‌های اشتباه شل می‌توانستند سیستم را فریب دهند تا برای صفر تست، وضعیت PASS گزارش کند.

توسعه‌دهندگان این مشکل را با تایید هر پچ در برابر یک مورد بازتولید واقعی (Real reproduction case) حل کردند، نه با تکیه بر بررسی‌های ظاهری و احتمال. این رویکرد تضمین می‌کند ابزار بتواند در برابر همان سخت‌گیری‌هایی که روی عامل‌ها اعمال می‌کند، دوام بیاورد.

این تغییر، صنعت را از «اعتماد به عامل» به سمت «تایید ادعا» می‌برد. این رویکرد شباهت زیادی به سیستم Railward دارد که امنیت عامل‌ها را از طریق گواهه‌های امضاشده تأیید می‌کند تا از اجرای دستورات ناامن جلوگیری شود. با treating کردن هوش مصنوعی به عنوان یک بازیگر غیرقابل اعتماد و پذیرفتن شل محلی به عنوان منبع حقیقت، توسعه‌دهندگان می‌توانند proofrun status --strict را در pre-commit hookها قرار دهند تا هر کدی که اثبات رمزنگاری‌شده‌ای برای پاس شدن ندارد، مسدود شود.

برای یک توسعه‌دهنده معمولی، این یعنی پایان بهانه‌ی «روی سیستم عامل کار می‌کرد». این ابزار انضباطی را تحمیل می‌کند که در آن عامل باید کار خود را از طریق اجرا ثابت کند، نه فقط با متقاعد کردن انسان.

نصب و آینده

کاربران می‌توانند ابزار را از طریق اسکریپت curl نصب کنند:
curl -L https://github.com/yebiguo/proofrun/releases/download/v0.2.0/proofrun_linux_amd64.tar.gz | tar xz
یا با استفاده از زبان Go آن را از منبع بسازند:
go install github.com/yebiguo/proofrun/cmd/proofrun@latest

نقشه راه نسخه ۰.۳ شامل موارد زیر است:

  • پشتیبانی از خروجی‌های ساختاریافته برای اجراکننده‌های رایج مانند pytest، Jest و JUnit.
  • رسیدهای امضا شده و مقاوم در برابر دستکاری (Tamper-evident).
  • حفاظت از فایل .proofrun.yml برای جلوگیری از تضعیف آن در همان PRی که کد را تغییر می‌دهد.

گام بعدی شما

  • اگر از عامل‌های کدنویس استفاده می‌کنید، ProofRun را در pre-commit hookهای خود قرار دهید تا از ورود کدهای «احتمالاً درست» به مخزن جلوگیری کنید. در کنار این ابزار، استفاده از مرورگر hwatu برای کاهش تأخیر بررسی صفحات می‌تواند سرعت چرخه توسعه را افزایش دهد.
  • فایل .proofrun.yml را برای تست‌های حیاتی پروژه خود تعریف کنید تا هر تغییر کوچک، وضعیت تست‌ها را به STALE تغییر دهد.
  • در PRهای آینده، تغییرات فایل پیکربندی ProofRun را با دقت بررسی کنید تا مطمئن شوید عامل هوش مصنوعی برای دور زدن تست‌ها، قوانین را تغییر نداده است.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

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

این ابزار با حذف اعتماد به ادعاهای متنی مدل‌ها، استانداردی برای تاییدپذیری (Verifiability) در توسعه نرم‌افزار ایجاد می‌کند. این تغییر از نظر اعتبار فنی، ریسک رگرسیون در پروژه‌هایی که توسط AI مدیریت می‌شوند را به شدت کاهش می‌دهد.

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

به دلیل متن‌باز بودن و اجرای کاملاً محلی (Offline)، توسعه‌دهندگان ایرانی بدون نیاز به VPN یا پرداخت هزینه API می‌توانند از این ابزار برای افزایش کیفیت کدهای تولید شده توسط AI استفاده کنند.

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

ProofRun پارادایم تعامل با AI را از «همکاری» به «نظارت» تغییر می‌دهد. به جای تلاش برای آموزش مدل جهت صادق بودن، این ابزار لایه‌ای از عدم اعتماد (Zero Trust) را روی محیط اجرا می‌کشد. این رویکرد نشان می‌دهد که آینده‌ی توسعه‌ی عامل‌محور نه در بهبود استدلال مدل‌ها، بلکه در ساخت ابزارهای نظارتی است که خروجی مدل را با واقعیت‌های سخت‌افزاری و سیستمی تطبیق دهند.

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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