
بر اساس تجربه یکی از نویسندگان XDA Developers، میتوان مدلهای محلی هوش مصنوعی را در OpenCode، رقیب رایگان Claude، به کار گرفت تا کارهای ساده و تکراری برنامهنویسی بدون مصرف سهمیه Claude انجام شوند. این آزمایش روی یک رایانه شخصی با کارت گرافیک ۸ گیگابایتی (8GB GPU) انجام شده و نشان میدهد مدلهای ۹B محلی میتوانند بخشی از بار کاری روزمره را بر عهده بگیرند.
- شناسایی خودکار مدلهای محلی از LM Studio، Ollama و vLLM
- پشتیبانی از فراخوانی ابزار (Tool Calling) برای باز و ویرایش فایلها
- نمایش تفاوت تغییرات (Diff) و عکسبرداری از فایلها (Snapshot) برای بازگردانی
- امکان تنظیم طول زمینه (Context Length) حدود ۳۰ هزار توکن
اتصال مدلهای محلی به OpenCode
نویسنده برای سادهتر شدن کار از اپلیکیشن دسکتاپ OpenCode استفاده کرده است. او مدلهای محلی را از طریق سرور LM Studio اجرا میکند و در تب Developer همان برنامه، مدل موردنظر را بارگذاری میکند. دو مدل آزمایششده عبارتاند از Qwen 3.5 9B و Qwythos 9B؛ مدل دوم نسخهای از Qwen است که با استدلال Claude آموزش دیده است. هر دو مدل با کمیتسازی (Quantization) در سطح Q4_K_M اجرا شدهاند و در فراخوانی ابزار (Tool Calling) توانمندند.
طول زمینه (Context Length) برای این مدلها حدود ۳۰ هزار توکن تنظیم شده است؛ مقداری که به گفته نویسنده برای نشستهای پایه کافی است و تعادل مناسبی با سختافزار او ایجاد میکند. OpenCode مدلهای LM Studio، Ollama و vLLM را بهصورت خودکار شناسایی میکند، به شرطی که روی نشانیهای محلی معمول خود در حال اجرا باشند. کتابخانه LM Studio نویسنده در تب Models تنظیمات OpenCode نمایش داده شده و او مدلهای دلخواه را برای انتخاب فعال کرده است. با نگهداشتن نشانگر روی هر مدل، اندازه زمینه و پشتیبانی از ابزارها مشخص میشود؛ موضوعی مهم چون ابزارها همان مکانیزمی هستند که OpenCode با آن فایلها را باز و ویرایش میکند.
اجرای محلی یک محدودیت سمت Claude را هم دور میزند: نمیتوان اشتراک Claude Pro یا Max را به OpenCode متصل کرد، زیرا Anthropic این کار را ممنوع کرده است.
خواندن فایلها با مدل محلی؛ محدودیت ۸ گیگابایت VRAM
پیش از آنکه یک عامل برنامهنویسی (Coding Agent) کاری مفید انجام دهد، باید فایلها را بخواند. OpenCode ابزارهایی برای جستوجو در پوشه و باز کردن فایلها در اختیار مدل میگذارد و هر فایلی که باز میشود به گفتوگو اضافه میشود. همین موضوع میتواند با سرعت بالا به محدودیت طول زمینه برسد، بهویژه اگر مقدار زمینه کم تنظیم شده باشد.
نخستین تلاش نویسنده این بود که از Qwen بخواهد یادداشتهای بدون برچسب را در کل خزانه Obsidian او پیدا کند، اما مدل از عهده این کار برنیامد. Qwen آنقدر فایل باز کرد تا زمینه پر شد و سپس OpenCode نشست را فشرده کرد (Session Compaction)؛ فرایندی خودکار که گفتوگو را با خلاصهای کوتاهتر جایگزین میکند. پس از هر فشردهسازی، Qwen فراموش کرد کدام یادداشتها را بررسی کرده و دوباره شروع به خواندن آنها کرد. نویسنده در همین نقطه کار را متوقف کرد و مدل را به یک پوشه کوچک محدود کرد که این بار نتیجه داد. همین رفتار برای یک برنامه کوچک ردیابی عادت (Habit Tracker) هم تکرار شد و پرسیدن درباره کارکرد هر فایل، خروجی مفیدی به او داد.
Qwythos پیش از پاسخدادن درباره مسئله استدلال میکند و همین میتواند آن را کمی کند کند. در یکی از نشستها، پاسخدادن به پرسشی درباره همپوشانی یادداشتها بیش از شش دقیقه طول کشید، اما مدل در نهایت دو یادداشت را پیدا کرد که نویسنده هرگز به ارتباطشان فکر نمیکرد و پیشنهاد داد به هم پیوند داده شوند. به باور او، این مدل جای Claude را در پروژههای بزرگ نمیگیرد و هنوز مشخص نیست تا چه تعداد فایل میتواند دوام بیاورد؛ اما کار میکند و بزرگترین محدودیت، سختافزار و مدلهایی است که میتوان اجرا کرد.
ویرایش فایلها و مدیریت تغییرات
OpenCode تغییرات را روی خطوط مشخص اعمال میکند و تفاوت تغییرات (Diff) را نشان میدهد. این برنامه بهصورت پیشفرض از تغییرات فایلها عکسبرداری (Snapshot) هم میکند تا هر کاری که عامل انجام میدهد، در همان نشست قابل بازگردانی باشد.
نویسنده از هر دو مدل خواست تغییراتی اعمال کنند و مثلاً برچسبهایی به فایلهایش اضافه کنند، بدون آنکه چیز دیگری را دست بزنند. Qwen و Qwythos هر دو پایبندی خوبی به دستورها نشان دادند و دقیقاً همان کاری را کردند که خواسته شده بود؛ رفتاری که حتی برخی مدلهای ابری پرچمدار هم گاهی از آن فراتر میروند. ابزار Diff در OpenCode هم بررسی اینکه مدل دقیقاً چه چیزی را تغییر داده آسان کرد.
مشکل اصلی، قالببندی (Formatting) بود. یک مدل ۹B دستورها را بسیار تحتاللفظی دنبال میکند و ممکن است تغییری ایجاد کند که در Diff درست به نظر برسد، اما از نحوی (Syntax) استفاده کند که برنامه خواننده آن فایل آن را نمیشناسد. به همین دلیل نویسنده پیش از نهایی دانستن ویرایش، فایل را در برنامهای که واقعاً از آن استفاده میکند باز میکند و صرفاً به خلاصه مدل اتکا نمیکند.
محدودیت توکنهای زمینه اینجا هم اثر دارد. نشانگر زمینه OpenCode نشان داد خواندن هشت فایل حدود ۱۷ هزار توکن را اشغال کرده است؛ بنابراین نویسنده هر نشست را فقط برای یک فایل یا دستهای کوچک از فایلها کافی میداند و برای هر کار تازه نشست جدیدی آغاز میکند. این روش همچنان برای موارد متعددی کافی است، مثلاً اصلاح برچسب یک دکمه در چند فایل از یک کدبیس.
چه بخشی از مصرف Claude کاهش مییابد؟
به گفته نویسنده، همین کارهای ساده و تکراری هستند که سهمیه Claude را مصرف میکنند. اشتراک Pro با یک پنجره غلتان پنجساعته (Rolling Five-Hour Window) و یک سقف هفتگی کار میکند و هر دو از یک استخر مشترک میان claude.ai، Claude Code و اپلیکیشن دسکتاپ تغذیه میشوند. او برآورد میکند که انتقال فقط همین کارهای روزمره به مدل محلی، حدود یکچهارم مصرف هفتگی او را آزاد کند و در هفتههای پرمصرف شاید یکسوم.
با این حال، Claude همچنان برای کارهای سختتر به کار میرود. نویسنده میگوید کارت گرافیکش بهطور شگفتانگیزی از عهده کارهای کوچک و خستهکنندهای برمیآید که بهراحتی در Claude انباشته میشوند و سهمیه را مصرف میکنند. او قصد ندارد بهزودی سختافزارش را ارتقا دهد و بنابراین به مدلهایی نسبتاً قدیمی تکیه میکند، اما به نظر او همین مدلها کار را بهخوبی انجام میدهند.