SSD Nodes Learn Hosting plans →
راهنماها Matt Connorتوسط Matt Connor · به‌روزرسانی شده 2026-08-27

اتصال Ollama به Coding Agent: راهنمای تنظیمات

با تغییر base URL و وارد کردن یک کلید صوری، Ollama را به coding agent خود متصل کنید. در این مطلب تنظیمات دقیق context length و پورت 11434 را برای عملکرد بهینه بررسی می‌کنیم.

آنچه به آن متصل می‌شوید

شما می‌توانید از Ollama در کنار coding agent خود استفاده کنید و اتصال آن بسیار ساده‌تر از آن چیزی است که تصور می‌کنید. کافی است یک base URL را تغییر دهید و یک نام مدل انتخاب کنید. فیلد API key همچنان به یک مقدار نیاز دارد، اما چون سرور محلی آن را نادیده می‌گیرد، هر رشته‌ای (string) در آن کار می‌کند.

Ollama روی پورت 11434 گوش می‌دهد و همزمان به دو نوع درخواست پاسخ می‌دهد. /v1/chat/completions فرمت سازگار با OpenAI است و مستندات Ollama ذکر کرده‌اند که کلید در آنجا الزامی است اما نادیده گرفته می‌شود. /v1/messages فرمت سازگار با Anthropic است که Claude Code از آن استفاده می‌کند. agent شما در حال حاضر از یکی از این دو پشتیبانی می‌کند، بنابراین هیچ تغییر دیگری لازم نیست.

این بخش حدود 5 دقیقه زمان می‌برد. اینکه آیا نتیجه نهایی قابل استفاده است یا خیر، به دو تنظیماتی بستگی دارد که تقریباً هیچ‌کس آن‌ها را تغییر نمی‌دهد: طول context و keep-alive، و همچنین سپردن کارهایی به مدل که در آن‌ها مهارت دارد. هر دو مورد بخش مخصوص به خود را دارند و محدودیت‌های واقعی در پایان ذکر شده‌اند.

کدام ایجنت‌های برنامه‌نویسی از base URL محلی پشتیبانی می‌کنند

آزمون این موضوع یک پرسش ساده است: آیا ابزار تنظیماتی برای base URL ارائه می‌دهد؟ اگر پاسخ مثبت است، می‌تواند با سرور شما ارتباط برقرار کند.

Ollama صفحات یکپارچه‌سازی را برای Claude Code، OpenCode، Codex، Cline، Roo Code، Zed، محیط‌های توسعه JetBrains و VS Code منتشر کرده است. Aider نیز پشتیبانی اختصاصی خود از Ollama را به‌طور جداگانه مستند کرده است. این موارد اکثر ابزارهایی را که در آگوست 2026 تحت عنوان ایجنت برنامه‌نویسی شناخته می‌شوند، پوشش می‌دهد. همه این ابزارها از پروتکل یکسانی استفاده نمی‌کنند و همین تفاوت، محل بروز خطا در تنظیمات است.

  • اکثر ایجنت‌ها به یک endpoint سازگار با OpenAI نیاز دارند. به آن‌ها base URL http://localhost:11434/v1 و هر رشته غیرخالی به عنوان API key بدهید.
  • ابزار Claude Code به‌هیچ‌وجه base URL مربوط به OpenAI را نمی‌پذیرد. این ابزار از Anthropic Messages API استفاده می‌کند، بنابراین نیاز دارد که ANTHROPIC_BASE_URL روی http://localhost:11434 تنظیم شود، جایی که Ollama از /v1/messages سرویس‌دهی می‌کند.
  • ابزار Codex از OpenAI Responses API استفاده می‌کند. Ollama از نسخه 0.13.3 به بعد، /v1/responses را نیز ارائه می‌دهد.
  • ایجنتی که تنظیمات base URL ندارد، قابل هدایت به مسیر دیگر نیست، زیرا endpoint در داخل کلاینت سخت‌کد شده است. در عوض، یک لایه واسط ترجمه مانند یک LiteLLM gateway خودمیزبان در مقابل آن قرار دهید و مدل خود را با فرمتی که کلاینت می‌طلبد، مجدداً ارائه کنید.

Ollama می‌تواند این پیکربندی‌ها را برای شما بنویسد. ollama launch opencode ابزار OpenCode را با یک پیکربندی داخلی برای مدل انتخابی شما اجرا می‌کند، ollama launch claude همین کار را برای Claude Code انجام می‌دهد و ollama launch droid --config پیکربندی را بدون اجرای ابزار، در فایل ذخیره می‌کند.

نصب Ollama و دریافت مدلی با قابلیت فراخوانی ابزار

curl -fsSL https://ollama.com/install.sh | sh
systemctl status ollama --no-pager
ollama pull qwen3-coder:30b
ollama ls

نصب‌کننده یک unit برای systemd اضافه کرده و آن را اجرا می‌کند، بنابراین systemctl status ollama باید عبارت active (running) را نمایش دهد. اگر این‌طور نیست، journalctl -e -u ollama دلیل آن را چاپ می‌کند.

مدل باید از قابلیت فراخوانی ابزار (tool calling) پشتیبانی کند، زیرا عامل (agent) از طریق همین قابلیت کار می‌کند. عامل یک فایل را می‌خواند، یک patch می‌نویسد، تست را اجرا می‌کند، سپس خطا را می‌خواند و دوباره تلاش می‌کند. مدلی که نتواند فراخوانی ابزار ایجاد کند، تغییرات را به‌جای اعمال کردن، به صورت متنی توصیف می‌کند و در نتیجه عامل دچار حلقه تکرار شده یا متوقف می‌شود. پیش از دریافت مدل، به دنبال برچسب tools در صفحه آن در ollama.com باشید. مدل qwen3-coder:30b این قابلیت را دارد و تا اوت 2026، این تگ یک دانلود 19 گیگابایتی با پنجره کانتکست 256K است. اگر سرور شما فقط CPU دارد یا با کمبود RAM مواجه است، محاسبات حافظه برای تگ Qwen 27B روی یک VPS نشان می‌دهد که پیش از صرف زمان برای دانلود، چه چیزی در بازه 8 تا 64 گیگابایت واقعاً جا می‌شود. پس از دریافت مدل، این گیگابایت‌ها روی دیسک root سرور قرار می‌گیرند که معمولاً بخشی از VPS با کمترین فضای خالی است، بنابراین مطالعه محل ذخیره فایل‌های مدل توسط Ollama و نحوه انتقال آن‌ها به مسیری دیگر پیش از پر شدن دیسک توصیه می‌شود.

اکنون تأیید کنید که سرور در حال حاضر چه مدل‌هایی را ارائه می‌دهد:

curl http://localhost:11434/v1/models

رشته‌های موجود در آن پاسخ، دقیقاً همان چیزی هستند که باید در پیکربندی عامل شما قرار بگیرند. بررسی این مورد در ابتدا، اکثر خطاهای مربوط به پیدا نشدن مدل را برطرف می‌کند. اگر Ollama هنوز نصب نشده است، راهنمای کامل‌تر در میزبانی شخصی یک LLM با Ollama روی یک VPS موجود است.

تنظیم OpenCode برای استفاده از Ollama

فایل ~/.config/opencode/opencode.json را ویرایش کنید:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "qwen3-coder:30b": {
          "name": "qwen3-coder 30b"
        }
      }
    }
  }
}

کلید موجود در models همان نام مدلی است که به Ollama ارسال می‌شود، بنابراین باید دقیقاً با ollama ls مطابقت داشته باشد. فیلد name صرفاً برچسبی است که در انتخاب‌گر مدل نمایش داده می‌شود. برنامه opencode را اجرا کنید، ارائه‌دهنده (provider) را روی Ollama قرار دهید و journalctl -e -u ollama را مانیتور کنید تا مطمئن شوید درخواست به سرور شما رسیده است و به مقصد دیگری ارسال نمی‌شود. راه‌اندازی خودِ agent در اجرای OpenCode روی یک VPS توضیح داده شده است.

تنظیم Claude Code برای استفاده از Ollama

export ANTHROPIC_AUTH_TOKEN=ollama
export ANTHROPIC_API_KEY=""
export ANTHROPIC_BASE_URL=http://localhost:11434
claude --model qwen3-coder:30b

متغیر ANTHROPIC_API_KEY عمداً خالی رها شده است. اگر یک کلید واقعی در محیط باقی بماند، درخواست‌های شما به‌جای پردازش محلی، به API ابری ارسال می‌شوند که منجر به صدور صورت‌حساب شده و استنتاج محلی انجام نخواهد شد. ollama launch claude تمام این موارد را برای شما تنظیم می‌کند.

محدودیت‌های لایهٔ سازگاری را بشناسید. این لایه tool_choice یا کش کردن پرامپت (prompt caching) را پیاده‌سازی نمی‌کند و فاقد endpoint برای شمارش توکن است؛ بنابراین اعداد توکنی که مشاهده می‌کنید، تخمین‌هایی هستند که از توکنایزر خود مدل به دست آمده‌اند. Claude Code همچنین یک پرامپت سیستمی بزرگ و مجموعه‌ای گسترده از ابزارها را به همراه دارد، بنابراین به context بیشتری نسبت به یک کلاینت چت معمولی نیاز دارد. پرسش کلی‌تر دربارهٔ اینکه چه مواردی منتقل می‌شوند و چه مواردی خیر، در امکان میزبانی شخصی Claude پوشش داده شده است.

تنظیم Aider برای استفاده از Ollama

export OLLAMA_API_BASE=http://127.0.0.1:11434
aider --model ollama_chat/qwen3-coder:30b

مستندات Aider استفاده از پیشوند ollama_chat/ را نسبت به ollama/ توصیه می‌کند. این ابزار همچنین به شما اجازه می‌دهد تا پنجره context را برای هر مدل در .aider.model.settings.yml تعیین کنید؛ این قابلیت زمانی مفید است که یک مدل خاص به پنجره‌ای متفاوت از مقدار پیش‌فرض سرور نیاز داشته باشد:

- name: ollama_chat/qwen3-coder:30b
  extra_params:
    num_ctx: 65536

چرا یک تنظیمات کارآمد همچنان خروجی بی‌معنی تولید می‌کند

این بخشی است که اهمیت دارد. Ollama طول کانتکست پیش‌فرض را بر اساس VRAM (حافظه ویدیویی روی GPU) که شناسایی می‌کند انتخاب می‌نماید و این مقادیر پیش‌فرض منتشر شده‌اند:

ChartOllama default context length by available VRAM, documented August 2026
The data behind this chart
[
  {
    "label": "Under 24 GiB VRAM",
    "default_context_tokens": "4,096"
  },
  {
    "label": "24 to 48 GiB VRAM",
    "default_context_tokens": "32,768"
  },
  {
    "label": "48 GiB VRAM or more",
    "default_context_tokens": "262,144"
  }
]

بیشتر پلن‌های VPS و تمام سرورهای مبتنی بر CPU، در ردیف اول قرار می‌گیرند: 4,096 توکن. تنها یک GPU بزرگ، 262,144 توکنِ ردیف آخر را دریافت می‌کند.

یک عامل (agent) پیش از انجام هر کاری، 4096 توکن را مصرف می‌کند. پرامپت سیستم، تعاریف ابزارها، لیست مخزن و اولین فایلی که باز می‌کند، از این مقدار بزرگ‌تر هستند. آنچه در ادامه رخ می‌دهد، کل مشکل است: هیچ خطایی رخ نمی‌دهد. مستندات Aider بیان می‌کند که Ollama به‌طور بی‌صدا کانتکستی را که از پنجره فراتر می‌رود، حذف می‌کند. قدیمی‌ترین توکن‌ها خارج می‌شوند، بنابراین مدل با اطمینان درباره فایلی که دیگر نمی‌تواند ببیند پاسخ می‌دهد یا دستوری را که دو مرحله قبل به آن داده‌اید فراموش می‌کند. این مکانیزم پشت بیشتر گزارش‌هایی است که می‌گویند یک مدل محلی برای نوشتن کد بیش از حد ضعیف است. انتخاب خودِ این عدد یک تصمیم مستقل است و مطالعه هزینه num_ctx در حافظه KV cache به ازای هر اندازه پیش از نهایی کردن آن، ارزشمند است.

مستندات Ollama می‌گوید وظایفی مانند عامل‌ها و ابزارهای کدنویسی باید حداقل روی 64000 توکن تنظیم شوند. آن را روی سرور تنظیم کنید:

sudo systemctl edit ollama.service

این خطوط را در فایل override اضافه کنید:

[Service]
Environment="OLLAMA_CONTEXT_LENGTH=64000"

سپس reload و restart کنید:

sudo systemctl daemon-reload
sudo systemctl restart ollama
ollama ps

ollama ps بررسی نهایی است. این دستور ستون CONTEXT را چاپ می‌کند و آن عدد، مقداری است که مدل واقعاً دریافت کرده است. مقادیر ID و SIZE شما متفاوت خواهند بود:

NAME               ID              SIZE     PROCESSOR    CONTEXT    UNTIL
qwen3-coder:30b    a1b2c3d4e5f6    24 GB    100% GPU     64000      4 minutes from now

به دو دلیل، آن را روی سرور تنظیم کنید نه در عامل. طرح (schema) تکمیل چت OpenAI هیچ فیلدی برای طول کانتکست ندارد، بنابراین یک کلاینت سازگار با OpenAI نمی‌تواند آن را درخواست کند. همچنین این تنظیمات برای هر سرور است، بنابراین هر عاملی که به آن سرور متصل کنید، آن را به ارث می‌برد. سمت خروجی سقف خاص خود را دارد و برخلاف طول کانتکست، از طریق endpoint سازگاری منتقل می‌شود، بنابراین num_predict و فیلد max_tokens که به آن نگاشت می‌شود مواردی هستند که هنگام توقف پاسخ در میان یک patch باید به سراغشان بروید. اگر یک مدل به پنجره متفاوتی نیاز دارد، آن را با یک Modelfile در یک کپی بگنجانید:

FROM qwen3-coder:30b
PARAMETER num_ctx 65536
ollama create qwen3-coder-64k -f Modelfile

کانتکست رایگان نیست. پنجره طولانی‌تر حافظه بیشتری مصرف می‌کند، بنابراین ستون PROCESSOR را زیر نظر داشته باشید. 100% GPU همان چیزی است که می‌خواهید. هنگامی که بخشی از مدل به CPU منتقل شود (spill)، نرخ توکن به قدری افت می‌کند که حلقه عامل غیرقابل استفاده می‌شود و اندازه‌گیری توکن بر ثانیه در یک LLM محلی روشی است که سقف واقعی سرور خود را پیدا کنید. تعیین اندازه ماشین پیش از خرید آن در میزان RAM و CPU مورد نیاز برای یک VPS عامل کدنویسی پوشش داده شده است.

نگه داشتن مدل در حافظه بین درخواست‌ها

به‌طور پیش‌فرض، Ollama مدل را 5 دقیقه پس از آخرین درخواست از حافظه خارج می‌کند. این رفتار برای یک محیط چت مناسب است، اما برای کارهای مبتنی بر Agent مناسب نیست. وقتی برای خواندن یک diff مکث می‌کنید، تایمر به پایان می‌رسد و درخواست بعدی باعث می‌شود ده‌ها گیگابایت وزن (weights) مدل از دیسک بارگذاری شود تا اولین توکن ظاهر گردد. این وضعیت مانند هنگ کردن سیستم به نظر می‌رسد.

OLLAMA_KEEP_ALIVE یک رشتهٔ زمانی مانند 10m یا 24h، یا یک عدد ساده بر حسب ثانیه، -1 برای نگه داشتن دائمی مدل در حافظه، یا 0 برای تخلیه فوری آن می‌پذیرد. این تنظیم را در کنار طول کانتکست (context length) قرار دهید:

[Service]
Environment="OLLAMA_CONTEXT_LENGTH=64000"
Environment="OLLAMA_KEEP_ALIVE=-1"

فیلد درخواست keep_alive فقط در endpointهای بومی /api/generate و /api/chat در Ollama وجود دارد و در endpointهای سازگار (compatibility) در دسترس نیست، بنابراین یک Agent نمی‌تواند آن را برای هر درخواست به‌صورت جداگانه تنظیم کند. متغیر محیطی (environment variable) تنها ابزار در دسترس شماست. هر زمان که به حافظه نیاز داشتید، ollama stop qwen3-coder:30b مدل را بدون متوقف کردن سرور از حافظه خارج می‌کند. اگر می‌خواهید این تنظیم پس از reboot باقی بماند، یا می‌خواهید بین نگه داشتن وزن‌های مدل در حافظه در تمام طول روز و آزاد کردن آن حافظه تصمیم بگیرید، نگه داشتن مدل Ollama در حافظه هر دو مورد را پوشش می‌دهد.

اجرای Ollama روی یک سرور مجزا

برنامه Ollama به‌صورت پیش‌فرض روی localhost گوش می‌دهد. برای دسترسی به آن از یک ماشین دیگر، مقدار OLLAMA_HOST=0.0.0.0:11434 را در همان فایل override مربوط به systemd تنظیم کرده و سرویس را restart کنید.

این کار را فقط در یک شبکه خصوصی انجام دهید. مستندات Ollama بیان می‌کند که API محلی نیازی به احراز هویت ندارد؛ بنابراین باز گذاشتن پورت 11434 روی اینترنت به این معناست که هر کسی می‌تواند از سخت‌افزار شما استفاده کرده و تمام داده‌های ارسالی توسط agent شما را بخواند. دو گزینه امن وجود دارد. اتصال را روی localhost نگه دارید و پورت را از طریق SSH از لپ‌تاپ خود forward کنید:

ssh -N -L 11434:localhost:11434 you@your-vps

در این حالت، agent شما همچنان به http://localhost:11434/v1 اشاره می‌کند و متوجه هیچ تفاوتی نخواهد شد. گزینه دیگر استفاده از VPN است، به‌طوری که Ollama به‌جای 0.0.0.0، روی آدرس VPN گوش دهد. اگر قرار است چندین نفر یا چندین agent از یک سرور استفاده کنند، باید بدانید که scheduler برنامه Ollama برای چنین باری طراحی نشده است و مقایسه بین Ollama و vLLM نشان می‌دهد که تفاوت در توان عملیاتی (throughput) از کجا به بعد مشکل‌ساز می‌شود.

کجا مدل‌های کدنویسی محلی برتری دارند و کجا خیر

عاملی که توسط مدلی که خودتان میزبانی می‌کنید هدایت می‌شود، جایگزین APIهای پیشرفته در همه وظایف نیست. این مدل‌ها در چهار نوع کار برتری آشکار دارند:

  • ویرایش‌های مکانیکی انبوه، که در آن هر تغییر کوچک است و می‌توانید آن را بررسی کنید. تغییر نام در کل مخزن، افزودن type hintها، نوشتن docstringها و ترجمه کامنت‌ها. مدل می‌تواند ساعت‌ها اجرا شود و هزینه‌ای برای شما نداشته باشد.
  • کارهایی که نباید از سخت‌افزار شما خارج شوند. کدهای مشتری که تحت توافق‌نامه محرمانگی هستند، یا مخازن داخلی که اجازه ندارید آن‌ها را برای شخص ثالث ارسال کنید.
  • ماشین‌های آفلاین و ایزوله (air-gapped)، که در آن‌ها اصلاً API میزبانی‌شده‌ای برای فراخوانی وجود ندارد.
  • هزینه قابل پیش‌بینی. وقتی هزینه سرور پرداخت شد، عاملی که توکن‌ها را در یک حلقه مصرف می‌کند هزینه اضافی ندارد، که این دقیقاً برعکس APIهای مبتنی بر مصرف است. محاسبات مربوط به نقطه سر به سر شدن هزینه GPU VPS در برابر توکن‌های API محاسبات این موضوع را نشان می‌دهد.

این مدل‌ها در وظایف طولانی و چندمرحله‌ای شکست می‌خورند. «یافتن دلیل شکست این تست، رفع علت و به‌روزرسانی فراخواننده‌ها» نیاز به فراخوانی‌های ابزاری صحیح و متوالی دارد، در حالی که کل تاریخچه باید در context باقی بماند. مدلی در محدوده 8B تا 14B روی یک سرور معمولی، یک فراخوانی ابزار ناقص تولید می‌کند یا پس از چند مرحله طرح کلی را فراموش می‌کند، و شما زمان بیشتری را صرف هدایت آن می‌کنید تا اینکه خودتان کار را انجام دهید. این یک مشکل در prompt نیست که بتوان با نوشتن بهتر آن را حل کرد؛ این یک محدودیت ظرفیت است.

همچنین در هر جایی که اشتباه کردن هزینه‌بر باشد و شما نخواهید هر خط را بخوانید، این مدل‌ها شکست می‌خورند. به مدل محلی کارهای محدودی بدهید که خروجی آن را تأیید می‌کنید، و برای کارهایی که نمی‌خواهید مرحله به مرحله بررسی کنید، از یک مدل میزبانی‌شده استفاده کنید.

حالت‌های شکست و پیام‌هایی که مشاهده خواهید کرد

curl: (7) Failed to connect to localhost port 11434 after 0 ms: Connection refused. سرور در حال اجرا نیست یا agent به میزبان دیگری اشاره می‌کند. دستور systemctl status ollama و سپس journalctl -e -u ollama را اجرا کنید.

agent گزارش می‌دهد که مدل وجود ندارد. نام موجود در فایل پیکربندی شما با نامی که سرور ارائه می‌دهد مطابقت ندارد. آن را با curl http://localhost:11434/v1/models مقایسه کرده و رشته نام را از آنجا کپی کنید. تگ بخشی از نام است، بنابراین پیکربندی که به تگی اشاره می‌کند که هرگز آن را دریافت (pull) نکرده‌اید، حتی با وجود نصب بودن مدل مشابه، با شکست مواجه می‌شود.

agent به صورت متنی پاسخ می‌دهد و هیچ فایلی را ویرایش نمی‌کند. یا مدل از ابزارها پشتیبانی نمی‌کند، یا درخواست به همراه تعاریف ابزارهای آن، پنجره کانتکست (context window) را پر کرده است. برچسب tools را در صفحه مدل بررسی کنید، سپس ستون CONTEXT را در ollama ps چک کنید.

سکوت طولانی پیش از تولید اولین توکن و سپس سرعت عادی. زمان keep-alive به پایان رسیده و وزن‌ها دوباره از روی دیسک خوانده می‌شوند. مقدار OLLAMA_KEEP_ALIVE را تنظیم کنید.

مدل با فایلی که به‌تازگی خوانده است تناقض دارد. کوتاه‌سازی کانتکست (Context truncation) رخ داده است. ollama ps معمولاً مقداری برای CONTEXT نشان می‌دهد که از آنچه تصور می‌کردید تنظیم کرده‌اید کمتر است؛ زیرا متغیر محیطی (environment variable) به‌جای اعمال در systemd unit، به shell شما ارسال شده است.

همه چیز کار می‌کند اما کند است و PROCESSOR برابر با 100% GPU نیست. مدل به همراه کانتکست آن در VRAM جا نمی‌شود. طول کانتکست را کاهش دهید یا از مدل کوچک‌تر یا کوانتیزاسیون (quantisation) پایین‌تر استفاده کنید. پیش از دریافت مجدد، هزینه حافظه برای q4_K_M، q8_0 و fp16 و اینکه کیفیت در کجا افت می‌کند به شما می‌گوید که با یک پله کاهش، چقدر فضا آزاد می‌شود و چه چیزی را از دست می‌دهید.

FAQ

آیا می‌توانم Claude Code را به Ollama متصل کنم؟

بله، اما نه با استفاده از URL سازگار با OpenAI. برنامه Claude Code از API پیام‌های Anthropic استفاده می‌کند و Ollama این ساختار را در /v1/messages روی همان پورت 11434 ارائه می‌دهد. متغیرهای ANTHROPIC_BASE_URL=http://localhost:11434، ANTHROPIC_AUTH_TOKEN=ollama و یک ANTHROPIC_API_KEY خالی را export کنید و سپس آن را با claude --model qwen3-coder:30b اجرا نمایید. دستور ollama launch claude همین تنظیمات را برای شما می‌نویسد. این لایه سازگاری، tool_choice یا کش کردن پرامپت را پیاده‌سازی نمی‌کند و فاقد endpoint برای شمارش توکن است، بنابراین تعداد توکن‌های گزارش‌شده صرفاً تخمینی هستند.

چرا مدل محلی من درباره کدی که نمی‌بیند پاسخ می‌دهد؟

زیرا درخواست دیگر در پنجره کانتکست (context window) جا نمی‌شود و قدیمی‌ترین بخش آن بدون هیچ خطایی حذف شده است. Ollama کانتکست پیش‌فرض خود را بر اساس VRAM شناسایی‌شده تنظیم می‌کند و در مقادیر کمتر از 24 GiB، این مقدار پیش‌فرض 4,096 توکن است که پرامپت سیستمی و تعاریف ابزارهای یک ایجنت، به تنهایی از این مقدار فراتر می‌روند. متغیر OLLAMA_CONTEXT_LENGTH=64000 را در unit فایل systemd تنظیم کنید، Ollama را ری‌استارت کنید و تأیید کنید که ستون CONTEXT در ollama ps مقدار جدید را نشان می‌دهد.

برای یک ایجنت کدنویسی روی VPS، کدام مدل را اجرا کنم؟

بزرگ‌ترین مدلی را انتخاب کنید که دارای برچسب tools باشد و همچنان با پنجره کانتکست 64k در حافظه جا شود؛ همچنین مدل‌های بهینه‌شده برای کدنویسی را در اولویت قرار دهید. qwen3-coder:30b پاسخ رایج برای سرورهای دارای GPU با VRAM کافی است. اگر این مدل برای سرور شما بیش از حد بزرگ است، ارقام مربوط به RAM و سرعت‌های CPU-only برای Nemotron 3.5 Lightning پیش از اقدام به دانلود، مقایسه مفیدی ارائه می‌دهند. در مدل‌های کمتر از حدود 14B پارامتر، مدل همچنان می‌تواند به سؤالات درباره کد به‌خوبی پاسخ دهد اما در ویرایش‌های چندمرحله‌ای شکست می‌خورد، زیرا کار ایجنت به دلیل خطاهای کوچک در فرمت‌بندی فراخوانی ابزارها، مدل‌های کوچک را با مشکل مواجه می‌کند. مدل را با یک وظیفه واقعی از مخزن کد خود تست کنید، نه با یک پرامپت نمونه.

آیا برای اجرای یک ایجنت کدنویسی روی مدل شخصی خودم به GPU نیاز دارم؟

در عمل بله. استنتاج (inference) فقط با CPU کار می‌کند و برای سؤالات تکی مناسب است، اما یک ایجنت برای هر وظیفه درخواست‌های متعددی می‌فرستد و هر درخواست، تاریخچه طولانی را دوباره می‌خواند؛ بنابراین نرخ پایین تولید توکن، یک وظیفه دو دقیقه‌ای را به یک ساعت تبدیل می‌کند. ستون PROCESSOR را در ollama ps بررسی کنید: هر مقداری غیر از 100% GPU به این معنی است که بخشی از مدل روی CPU در حال اجراست و نرخ تولید توکن به‌شدت افت می‌کند.

#ollama#coding-agent#openai-compatible#local-llm#self-hosted-ai