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

RAC-Core: تبدیل تصمیمات فنی تیم به کد برای جلوگیری از توهم عامل‌های AI

·۸ تیر ۱۴۰۵۵ دقیقه مطالعه۲ بازدید
مخزن rac-core: دانش تصمیم‌های تیمی را به عامل کدنویسی منتقل کنید تا از تکرار کارهای ردشده جلوگیری کند.
مخزن rac-core: دانش تصمیم‌های تیمی را به عامل کدنویسی منتقل کنید تا از تکرار کارهای ردشده جلوگیری کند.
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

جایگزینی RAG (که احتمالی است) با یک موتور قطعی (Deterministic) برای مدیریت تصمیمات فنی؛ به طوری که قوانین تیم به جای «پیشنهاد شدن به مدل»، به عنوان «محدودیت‌های سخت» در سطح مخزن کد تعریف می‌شوند.

تصور کنید عامل هوش مصنوعی شما درست همین حالا یک ماژول را با الگویی بازنویسی کرده است که تیم شما ۶ ماه پیش صراحتاً آن را ممنوع کرده بود. این شکست به این دلیل رخ می‌دهد که اکثر عامل‌ها برای به خاطر آوردن قوانین به بازیابی‌های تقریبی تکیه می‌کنند و همین موضوع باعث تخطی آن‌ها از دانش تثبیت‌شده‌ی محصول می‌شود. RAC-Core با تبدیل نیازمندی‌ها به کد، یک سیستم ثبت قطعی ایجاد می‌کند که عامل‌ها نمی‌توانند آن را نادیده بگیرند. محصول Lore، رابط کاربری این سیستم است که تمام دانش ثبت‌شده‌ی تیم — از نیازمندی‌ها، تصمیمات، طراحی‌ها، نقشه‌راه‌ها (Roadmaps) و پرامپت‌ها — را به‌صورت فایل‌های Markdown تایپ‌شده در مخزن (Repo) شما نگه می‌دارد.

بسیاری از توسعه‌دهندگان در حال حاضر از تولید بازیابی‌افزا (RAG) — که شبیه دانش‌آموزی است که قبل از جواب دادن، اول کتاب درسی را باز می‌کند و از آن نقل می‌آورد — برای دادن زمینه به عامل‌ها استفاده می‌کنند. طبق گزارش‌های فنی، RAG برای یافتن اسناد مرتبط با سوالات کلی عالی است، اما در دقت و تکرارپذیری مشکل دارد. این سیستم ممکن است یک تصمیم قدیمی و منسوخ را به عنوان مرتبط‌ترین پاسخ برگرداند و باعث شود عامل، منطقی تاریخ‌گذشته را پیاده کند. چون RAG بر اساس شباهت رتبه‌بندی می‌کند، نتایج در هر بار اجرا ممکن است تغییر کنند.

تفاوت این دو رویکرد را این‌گونه تصور کنید: RAG مثل کتابداری است که کتاب‌هایی را پیشنهاد می‌دهد که «شاید» مرتبط باشند، اما RAC-Core مثل یک کارمند حقوقی است که دقیقاً قانون فعال و جاری را به شما تحویل می‌دهد. همان‌طور که در تحلیل قبلی ما درباره‌ی امنیت مدل‌های بازمتن اشاره کردیم، کنترل دقیق بر ورودی‌ها کلید پایداری است؛ RAC-Core نیز همین نقش را برای تصمیمات فنی ایفا می‌کند و اطمینان حاصل می‌کند که عامل به جای تخطی از قوانین، به تصمیمات جاری استناد کند. این سیستم دانش را به‌صورت «فقط-خواندنی» از طریق پروتکل زمینه مدل (MCP) به ابزارهایی مثل Claude Code، Cursor و Claude Desktop می‌رساند. این یکپارچگی با ابزارهای کدنویس، یادآور رویکرد پروژه y در ایجاد رابط‌های کاربری پویا با Claude Code است که در آن مدل‌ها مستقیماً بر ساختار محصول اثر می‌گذارند.

مدیریت دانش قطعی

در قلب این سیستم، یک موتور متن‌بازی به نام RAC (Requirements as Code) قرار دارد. بر اساس مستندات پروژه، RAC برخلاف پایگاه‌داده‌های برداری، از بردار معنایی (Embedding) — که مثل کارت معرفی عددی برای هر واژه است تا همسایه‌هایش را بشناسد — یا ایندکس‌های جست‌وجو یا فراخوانی‌های مدل برای تعیین مرتبط بودن استفاده نمی‌کند. در عوض، دانش را به‌صورت فایل‌های Markdown تایپ‌شده که مستقیماً در مخزن ذخیره شده‌اند، می‌بیند. هر مصنوع (Artifact) یک فایل Markdown ساده با یک پوشه‌ی کوچک متاداده (frontmatter) است؛ موتور آن را به‌صورت قطعی طبقه‌بندی کرده و با یک طرحواره (Schema) مخصوص هر نوع اعتبارسنجی می‌کند.

این معماری امکان اجرای سخت‌گیرانه قوانین را در چرخه توسعه از طریق چندین مکانیسم کلیدی فراهم می‌کند:

  • یکپارچگی با CI: تیم‌ها می‌توانند با دستورات rac validate و rac gate از ادغام (Merge) اسنادی که ساختار غلط دارند، لینک‌های شکسته یا مبهم دارند، یا به تصمیمات منسوخ ارجاع می‌دهند، جلوگیری کنند.
  • دسترسی فقط-خواندنی: سرور MCP در Lore هرگز اجازه تغییر در داده‌ها را ندارد؛ مرز اعتماد تنها در دست بررسی انسانی در Pull Requestهاست. این موضوع تضمین می‌کند که عامل‌ها می‌توانند به تصمیمات استناد کنند اما نمی‌توانند ذخیره‌گاه دانش را تغییر دهند.
  • طراحی ایزوله (Air-Gapped): این موتور هیچ تماس شبکه‌ای و هیچ فراخوانی LLM ندارد. تنها خروجی شبکه، یک پینگ گزارش‌دهی بدون محتوا و مشروط به رضایت کاربر است (که به‌صورت پیش‌فرض غیرفعال است). نصب‌های تحت نظارت می‌توانند با دستور rac telemetry off --enterprise (مطابق با ADR-086) ثابت کنند که این قابلیت خاموش می‌ماند.

جزئیات پیاده‌سازی

برای نصب این موتور به پایتون ۳.۱۱ یا بالاتر نیاز دارید. کاربران می‌توانند از طریق pip install rac-core یا uv tool install rac-core آن را نصب کنند. بسته به قابلیت‌های مورد نیاز، پرچم‌های نصب متفاوتی در دسترس است:

  • pip install 'rac-core[ingest]': قابلیت وارد کردن فایل‌های DOCX و HTML را اضافه می‌کند.
  • pip install 'rac-core[ingest-all]': پشتیبانی از وارد کردن PDF، PPTX و XLSX را فعال می‌کند.
  • pip install 'rac-core[explorer]': شامل مرورگر ترمینالی (rac explorer) است.

برای اتصال یک عامل، کاربران می‌توانند دستور claude mcp add lore -- rac mcp را در ریشه مخزن اجرا کنند. برای Claude Desktop یا Cursor، پیکربندی mcpServers نیاز به دستور rac با آرگومان --root دارد که دقیقاً به مسیر مطلق مخزن اشاره کند. این قابلیت اتصال به ابزارهای مختلف، مشابه سیستم Klaussy-Agents است که مهارت‌های کدنویسی را میان چندین عامل برتر همگام‌سازی می‌کند.

گردش کار نویسندگی و اعمال قوانین از طریق یک جریان CLI خاص است. کاربر ممکن است با rac quickstart برای تنظیم هویت شروع کند، سپس از rac new decision adr.md برای ایجاد یک مصنوع تایپ‌شده و تخصیص شناسه‌ی آن استفاده نماید. برای نگهداری بدنه دانش، rac inspect کامل بودن اسناد را چک می‌کند، در حالی که rac review یک بازبینی کامل از مخزن ارائه می‌دهد و بدترین مشکلات را در اولویت قرار می‌دهد.

مهاجرت و Interoperability

برای تیم‌هایی که از سیستم‌های قدیمی مثل Confluence یا Notion مهاجرت می‌کنند، این پلتفرم ابزارهای خاصی برای جذب داده‌ها فراهم کرده است. قابلیت rac-import اجازه می‌دهد هر سند موجود به یک مصنوع معتبر تبدیل شود. این فرآیند شامل یک مرحله بررسی انسانی است که در آن عامل، پیش‌نویسی را فقط بر اساس آنچه در سند آمده تهیه کرده و یک نوع، عنوان و روابط پیشنهادی را برای تأیید کاربر ارائه می‌دهد. برای تبدیل‌های انبوه، از قابلیت rac-ingest استفاده می‌شود.

RAC-Core همچنین سازگاری بالایی با فرمت دانش باز گوگل (OKF) دارد. در حالی که OKF فقط حامل داده (یک درخت Git از Markdown با متاداده YAML) را استاندارد می‌کند، RAC نظارت بر زمان نوشتن را اضافه می‌کند. هر مخزن RAC را می‌توان با دستور rac export --okf به یک بسته مطابق با استاندارد OKF تبدیل کرد.

برای تسهیل زنجیره‌های ابزاری خارجی، این موتور چندین حالت خروجی (Export) ارائه می‌دهد:

  • --html: یک «پورتال» ایجاد می‌کند (کل گراف دانش در یک فایل).
  • --documents: فایل‌های JSONL برای سیستم‌های حافظه و پشتیبان‌های RAG تولید می‌کند.
  • --graph: یک گراف تصمیمات تایپ‌شده برای پشتیبان‌های گرافی می‌سازد.

مدل بازیابی ترکیبی

هدف RAC-Core جایگزینی کامل RAG نیست، بلکه تکمیل آن است. جریان کاری ایده‌آل، الگوی «یادآوری سپس تأیید» است: استفاده از بازیابی تقریبی (RAG/حافظه عامل) برای یافتن موارد نزدیک به سوال، و سپس استفاده از Lore برای تأیید تصمیم دقیق و جاری.

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

برای کسانی که ابزارهای سفارشی می‌سازند، این موتور به عنوان یک کتابخانه پایتونی از طریق rac.__all__ در دسترس است. توسعه‌دهندگان می‌توانند از توابع parse_file ،classify و find_artifacts برای تعامل برنامه‌نویسی با پایگاه دانش استفاده کنند.

اگر در حال گسترش تیمی هستید که به شدت از Claude Code یا Cursor استفاده می‌کند، می‌توانید با ایجاد اولین سند تصمیم معماری خود با دستور rac new decision adr.md شروع کنید تا ببینید موتور چگونه کامل بودن اسناد را تحمیل می‌کند. برای جزئیات فنی کامل، پروژه مستندات گسترده‌ای شامل مرجع سرور MCP، راهنمای CLI و منطق موتور اصلی دارد.

گام بعدی شما

  • اگر از Claude Code یا Cursor استفاده می‌کنید، اولین سند تصمیم معماری خود را با rac new decision adr.md بسازید تا قدرت نظارت موتور را ببینید.
  • اسناد پراکنده در Notion یا Confluence را با rac-import به ساختار کد-محور منتقل کنید.
  • تنظیمات MCP را در IDE خود فعال کنید تا عامل شما دیگر تصمیمات فنی تیم را نادیده نگیرد.

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

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

این ابزار با جایگزینی بازیابی‌های احتمالی با سیستم‌های قطعی، خطای عامل‌های AI در پروژه‌های بزرگ را به شدت کاهش می‌دهد. اعتبار این رویکرد در تکیه بر ساختار Git و حذف وابستگی به LLM برای یافتن قوانین فنی است.

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

با توجه به متن‌باز بودن موتور RAC-Core، توسعه‌دهندگان ایرانی می‌توانند بدون نیاز به APIهای ابری گران‌قیمت، مدیریت دانش فنی تیم‌های خود را در محیط‌های درون‌سازمانی (On-premises) پیاده کنند.

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

انتقال «منبع حقیقت» از اسناد متنی پراکنده به ساختار کد-محور (Requirements as Code)، در واقع پذیرش این واقعیت است که پرامپت‌نویسی برای کنترل عامل‌های پیچیده کافی نیست. RAC-Core با حذف لایه احتمالاتی در بازیابی تصمیمات، همراستاسازی را از یک هنر تجربی به یک فرآیند مهندسی تبدیل می‌کند. این یعنی در آینده، «قانون‌مند کردن» رفتار AI نه از طریق آموزش مجدد، بلکه از طریق تعریف سخت‌گیرانه Schema در Git رخ خواهد داد.

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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