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

Copilot CLI Local Memory حافظهٔ پروژه‌ها را در فایل‌های Markdown ذخیره می‌کند

·۷ شهریور ۱۴۰۵۴ دقیقه مطالعه۱ بازدید
راهنما
دستیار خط فرمان گیت‌هاب کوپایلت را با حافظه‌ای شخصی مجهز کردم
دستیار خط فرمان گیت‌هاب کوپایلت را با حافظه‌ای شخصی مجهز کردم
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

پیاده‌سازی حافظهٔ بلندمدت برای Copilot CLI بدون نیاز به زیرساخت ابری یا Vector DB، صرفاً با استفاده از فایل‌های Markdown محلی.

تصور کنید هر بار که ترمینال را باز می‌کنید، باید دوباره به دستیار هوش مصنوعی خود یادآوری کنید که چرا تست‌های Redis در این پروژه باید به‌صورت تک‌رشته‌ای اجرا شوند. در ۲۹ اوت ۲۰۲۶، پروژه متن‌باز Copilot CLI Local Memory برای پایان دادن به این «فراموشی جلسات» که برنامه‌نویسان هنگام استفاده از GitHub Copilot CLI با آن دست‌وپنجه نرم می‌کنند، معرفی شد.

بیشتر دستیارهای کدنویسی با هوش مصنوعی، هر جلسه را مانند یک صفحهٔ سفید می‌بینند. در حالی که برنامه‌نویسان در حین کار، نکات حیاتی پروژه را کشف می‌کنند — مثلاً اینکه چرا یک تست خاص Redis باید به‌صورت متوالی (serially) اجرا شود — این درس‌ها معمولاً با بستن ترمینال از بین می‌روند. این ابزار یک رکورد دائمی و محلی از این یافته‌ها ایجاد می‌کند، بدون آنکه به پایگاه‌داده‌های پیچیده یا مدیریت وضعیت در فضای ابری نیاز داشته باشد. این رویکرد یادآور راهکار اندرو دی‌تایلر برای استفاده از فایل‌های Markdown است که برای حل مشکل فراموشی در عامل‌های هوش مصنوعی پیشنهاد شده بود.

نیاز به زمینه محلی (Local Context)

این پروژه از تمایلی برای صحبت با Copilot CLI مانند یک همکار برنامه‌نویس متولد شد. نویسنده می‌خواست یافته‌های خاص دیباگ را ذخیره کند؛ مواردی مانند اینکه تست‌های یکپارچه‌سازی Redis باید به‌صورت تک‌رشته‌ای اجرا شوند زیرا Workerها از DB 0 مشترک استفاده می‌کنند، یا اینکه تغییر زمان انتظار (timeout) احراز هویت نیازمند به‌روزرسانی هم‌زمان هر دو فایل gateway.yml و worker.yml است.

مثال‌های دیگر شامل تصمیمات مربوط به مهاجرت داده‌ها است؛ مانند استفاده از استراتژی «گسترش-مهاجرت-انقباض» (expand–migrate–contract) به این دلیل که APIها و Workerها به‌طور مستقل مستقر می‌شوند. این‌ها دقیقاً همان جزئیاتی هستند — مانند دلایل تست‌های ناپایدار (flaky-tests) و وابستگی‌های پیکربندی — که مهندسان در حین کار فعال یاد می‌گیرند اما اغلب با پایان یافتن یک جلسه، آن‌ها را گم می‌کنند. در موارد پیچیده‌تر، دسترسی به چنین داده‌های زمینه‌ای می‌تواند حیاتی باشد، مشابه زمانی که استفاده از داده‌های زمان‌اجرا در Claude Code منجر به حل یک نشت حافظه بحرانی در محیط Production شد.

به نقل از مستندات این پروژه در dev.to، این سامانه از طریق سه دستور اصلی عمل می‌کند: /remember برای ذخیره یک قانون، /memories برای فهرست کردن آن‌ها و /forget برای حذف. این افزونه برای ذخیره‌سازی از روشی «ساده و سنتی» (boring) استفاده می‌کند: فایل‌های متنی Markdown.

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

هر حافظه به‌صورت یک فایل دستورالعمل ماژولار در مسیر ~/.copilot/instructions/local-memory/ ذخیره می‌شود. ساختار این حافظه‌ها به شرح زیر است:

  • قالب: Markdown معمولی همراه با YAML frontmatter (مثلاً applyTo: "**"). یک قانون می‌تواند چنین باشد: «استقرارهای محیط Production باید همیشه با پرچم --dry-run اجرا شوند.»
  • محدوده‌بندی (Scoping): کاربران می‌توانند با پرچم --scope قوانین را به فایل‌های خاص محدود کنند. مثلاً با دستور /remember --scope "src/**/*.ts" Use Zod rather than Joi for validation، قوانین اعتبارسنجی Zod فقط برای فایل‌های تایپ‌اسکریپت اعمال می‌شود.
  • جست‌وجو: این ابزار به‌جای استفاده از پایگاه‌داده برداری (Vector Database) یا سرویس‌های Embedding — که شبیه به یک کتابدار است که مفاهیم را بر اساس شباهت معنایی دسته‌بندی می‌کند — از رتبه‌بندی کلمات محلی (local term ranking) برای جست‌وجوهای صریح استفاده می‌کند.

محدودیت‌های طراحی و امنیت

توسعه‌دهنده این ابزار را «عامدانه کوچک» طراحی کرده است. بر اساس مستندات، این افزونه هیچ فرآیند پس‌زمینه، تله‌متری، وابستگی زمان‌اجرایی یا سروری ندارد. همچنین افزونه ورودی‌های مشابه را حذف (deduplicate) می‌کند و اگر چندین حافظه با یک متن مطابقت داشته باشند، از حذف بر اساس متن خودداری می‌کند.

برای جلوگیری از نشت امنیتی، این افزونه شامل یک مسدودکننده (blocker) ابتدایی برای فرمت‌های رایج اعتبارنامه‌ها (Credentials) است، هرچند نویسنده هشدار می‌دهد که اسرار (Secrets) هرگز نباید در دستورالعمل‌های عامل ذخیره شوند. اگرچه افزونه هیچ تماس شبکه‌ای برقرار نمی‌کند، اما Copilot ممکن است متن دستورالعمل‌ها را در پرامپت‌های ارسالی به مدل بگنجاند؛ این بدان معناست که ذخیره‌سازی محلی، اسرار را برای پرامپت‌ها امن نمی‌کند.

این رویکرد تمایزی روشن بین استانداردهای تیمی و دانش فردی ایجاد می‌کند. در حالی که قراردادهای پایدار مخزن — مانند نسخه‌ی زبان و استانداردهای فرمت‌بندی — باید در یک فایل copilot-instructions.md باشند که در مخزن ثبت شده است، این حافظه محلی برای «دانش نوظهور» (emergent knowledge) است که در حین انجام یک تسک خاص اتفاق می‌افتد. این تفکیک میان ابزارهای مختلف اهمیت دارد، چرا که تفاوت‌های ساختاری در انتقال عامل‌های هوش مصنوعی می‌تواند منجر به شکست در حفظ زمینه‌های عملیاتی شود.

برای برنامه‌نویس، این امر نقش هوش مصنوعی را از یک دستیار عمومی به یک شریک آگاه از پروژه تغییر می‌دهد. با ارتقای حافظه‌های محلی به مستندات رسمی پس از اثبات پایداری آن‌ها، تیم‌ها می‌توانند یک پایگاه دانش زنده بسازند که به‌طور ارگانیک از جلسات واقعی دیباگ تکامل می‌یابد. این رویکرد با مستندات Memory گیت‌هاب همسو است که زمینه یادگرفته‌شده را شامل تصمیمات معماری، دستورات Build و الگوهای اتصال به پایگاه‌داده می‌داند.

این ابزار به‌ویژه برای برنامه‌نویسانی مفید است که در سازمان‌هایی کار می‌کنند که قابلیت Memory مدیریت‌شده توسط گیت‌هاب را غیرفعال کرده‌اند اما اجازه نصب افزونه‌های سفارشی را می‌دهند. این ابزار راهی برای داشتن یک «برگه تقلب» (cheat sheet) شخصی فراهم می‌کند که هوش مصنوعی می‌تواند در هر جلسه جدید به‌طور خودکار به آن ارجاع دهد.

اگر از تکرار دستورالعمل‌ها خسته شده‌اید، اکنون می‌توانید این وضعیت محلی را پیاده‌سازی کنید. این مخزن نصب‌کننده‌هایی برای ویندوز، macOS و لینوکس و همچنین حذف‌کننده‌هایی (uninstallers) فراهم کرده است که به‌طور پیش‌فرض حافظه‌های ذخیره‌شده را حفظ می‌کنند. شما می‌توانید این پروژه را در آدرس https://github.com/shankarnarayanb/copilot-cli-local-memory بیابید.

گام بعدی شما

  • اگر از تکرار دستورالعمل‌ها خسته شده‌اید، مخزن پروژه را از گیت‌هاب کلون کرده و روی سیستم‌عامل خود نصب کنید.
  • قوانینی که در طول دیباگ‌های طولانی کشف می‌کنید را بلافاصله با دستور /remember ثبت کنید.
  • حافظه‌هایی که پس از مدتی ثابت و مورد نیاز کل تیم شدند را به مستندات رسمی پروژه منتقل کنید.

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

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

این ابزار با تکیه بر اعتبار متن‌باز، کنترل حافظه را از سرورهای ابری به سیستم محلی توسعه‌دهنده بازمی‌گرداند. این تغییر باعث می‌شود AI از یک دستیار عمومی به یک شریک آگاه از جزئیات معماری پروژه تبدیل شود.

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

برنامه‌نویسان ایرانی که به‌دلیل محدودیت‌های سازمانی یا امنیتی از قابلیت‌های ابری Memory گیت‌هاب استفاده نمی‌کنند، می‌توانند با این ابزار متن‌باز، حافظهٔ محلی برای پروژه‌های خود ایجاد کنند.

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

جایگزینی پایگاه‌داده‌های برداری پیچیده با فایل‌های Markdown ساده، بازگشت به فلسفهٔ یونیکس (ابزارهای کوچک و تک‌منظوره) در عصر هوش مصنوعی است. این رویکرد نشان می‌دهد که برای بسیاری از کاربردهای عملی، «قابلیت خوانایی توسط انسان» و «سادگی در پشتیبان‌گیری» ارزشمندتر از جست‌وجوی معنایی پیشرفته است.

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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