SSD Nodes Learn Hosting plans →
מדריכים Matt Connorמאת Matt Connor · עודכן 2026-08-31

איך לחבר את Ollama לסוכן הקידוד שלכם

חברו את סוכן הקידוד למודל מקומי עם הכתובת http://localhost:11434, מפתח API מדומה והגדרת context length נכונה, וגלו אילו משימות Ollama מבצע היטב.

מה אתם מחברים

אפשר להשתמש ב־Ollama עם סוכן הקוד שלכם, והחיבור פשוט יותר מכפי שנהוג לחשוב. משנים כתובת בסיס אחת ובוחרים שם מודל אחד. שדה מפתח ה־API עדיין דורש ערך, אבל השרת המקומי מתעלם ממנו, ולכן כל מחרוזת תעבוד.

Ollama מאזין בפורט 11434 ומספק שתי תבניות בקשות בו־זמנית. /v1/chat/completions היא התבנית התואמת ל־OpenAI, והתיעוד של Ollama מציין שהמפתח בה נדרש אך מתעלמים ממנו. /v1/messages היא התבנית התואמת ל־Anthropic, שבה משתמש Claude Code. הסוכן שלכם כבר משתמש באחת משתי התבניות, ולכן אין צורך לשנות בו דבר אחר.

החלק הזה אורך חמש דקות. השאלה אם התוצאה תהיה שימושית תלויה בשתי הגדרות שכמעט איש אינו משנה: אורך ההקשר ו־keep-alive, וכן בהתאמת סוג העבודה ליכולות של המודל. לכל אחת מההגדרות יש סעיף משלה, והמגבלות האמיתיות מופיעות בסוף.

אילו סוכני קידוד מקבלים כתובת בסיס מקומית

הבדיקה כוללת שאלה אחת: האם הכלי מציג הגדרה של כתובת בסיס? אם כן, הוא יכול לתקשר עם השרת שלכם.

Ollama מפרסם דפי אינטגרציה עבור Claude Code, OpenCode, Codex, Cline, Roo Code, Zed, סביבות הפיתוח של JetBrains ו־VS Code. Aider מתעד את התמיכה שלו ב־Ollama בנפרד. זה מכסה את רוב מה שמתכוונים אליו במונח סוכן קידוד ב־August 2026. לא כולם משתמשים באותו מבנה API, וההבדל הזה הוא שגורם לכשל בהגדרות.

  • רוב הסוכנים דורשים endpoint תואם ל־OpenAI. הגדירו להם את כתובת הבסיס http://localhost:11434/v1 ואת מחרוזת מפתח ה־API שאינה ריקה.
  • Claude Code אינו מקבל כתובת בסיס של OpenAI כלל. הוא משתמש ב־Anthropic Messages API, ולכן יש להגדיר את ANTHROPIC_BASE_URL לערך http://localhost:11434, שבו Ollama מספק את /v1/messages.
  • Codex משתמש ב־OpenAI Responses API. Ollama מספק גם את /v1/responses, החל מגרסה 0.13.3.
  • אי אפשר להפנות סוכן שאין בו הגדרה של כתובת בסיס, משום שה־endpoint מובנה בלקוח. במקום זאת, הציבו לפניו שכבת תרגום, כגון שער LiteLLM באירוח עצמי, וחשפו מחדש את המודל שלכם במבנה שהלקוח דורש.

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

תוכנית ההתקנה מוסיפה יחידת systemd ומפעילה אותה, לכן systemctl status ollama אמורה להדפיס את active (running). אם לא, journalctl -e -u ollama מדפיסה את הסיבה.

המודל חייב לתמוך בקריאות לכלים, משום שכך סוכן פועל. הוא קורא קובץ, כותב patch, מריץ את הבדיקה, קורא את הכשל ומנסה שוב. מודל שאינו יכול להפיק קריאה לכלי יתאר את העריכה בטקסט במקום לבצע אותה, והסוכן ייכנס ללולאה או ייעצר. לפני המשיכה, חפשו את התווית tools בדף המודל באתר ollama.com. qwen3-coder:30b כולל תווית זו, ונכון ל־August 2026 מדובר בהורדה בנפח 19 GB עם חלון הקשר בגודל 256K. אם השרת שלכם פועל על CPU בלבד או אם זיכרון ה־RAM בו מוגבל, החישוב של דרישות הזיכרון עבור התג Qwen 27B ב־VPS מראה מה באמת נכנס בטווח של 8 עד 64 GB, לפני שתתחילו את ההורדה. לאחר שתמשכו את המודל, הגיגה־בייטים האלה יישמרו בדיסק השורש של השרת. זהו בדרך כלל הרכיב ב־VPS שנותר בו הכי מעט מקום פנוי, לכן כדאי לקרוא את המיקום שבו Ollama שומר את קובצי המודל ואת הדרך להעביר אותם למקום אחר לפני שהדיסק יתמלא.

כעת ודאו אילו שמות השרת באמת מספק:

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

המחרוזות בתגובה זו הן הערכים שעל תצורת הסוכן להכיל, תו אחר תו. בדיקה מקדימה זו פותרת את רוב השגיאות מסוג model-not-found. אם 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, עברו לספק Ollama, ועקבו אחר journalctl -e -u ollama כדי לוודא שהבקשה הגיעה לשרת שלכם ולא ליעד אחר. הגדרת הסוכן עצמו מתוארת ב־הפעלת 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 המתארח, ותחויבו בתשלום בלי לבצע inference מקומי. ollama launch claude מגדיר עבורכם את כל ההגדרות האלה.

חשוב לדעת מה שכבת התאימות אינה כוללת. היא אינה מממשת את tool_choice או שמירת prompts במטמון, ואין לה endpoint לספירת tokens. לכן מספרי ה־tokens שאתם רואים הם אומדנים המבוססים על ה־tokenizer של המודל עצמו. Claude Code מגיע גם עם system prompt גדול ועם ערכת כלים גדולה, ולכן הוא זקוק ליותר context מלקוח chat. השאלה הרחבה יותר, מה נשמר ומה אינו נשמר, מוסברת ב־האם אפשר לארח את Claude באופן עצמאי.

הפניית Aider אל Ollama

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

התיעוד של Aider ממליץ על הקידומת ollama_chat/ במקום על ollama/. בנוסף, הוא מאפשר להגדיר חלון הקשר קבוע לכל מודל באמצעות .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 הטוקנים שבשורה האחרונה.

סוכן מעביר 4096 טוקנים עוד לפני שהוא מבצע עבודה כלשהי. ה־system prompt, הגדרות הכלים, רשימת המאגר והקובץ הראשון שהוא פותח כבר גדולים יותר מכך. מכאן מתחילה הבעיה: לא מתקבלת שום שגיאה. בתיעוד של Aider מצוין ש־Ollama משמיט בשקט הקשר שחורג מחלון ההקשר. הטוקנים הישנים ביותר יוצאים מהחלון, ולכן המודל עונה בביטחון על קובץ שהוא כבר אינו יכול לראות, או שוכח הוראה שנתתם לו שני צעדים קודם לכן. מנגנון זה עומד מאחורי רוב הדיווחים שלפיהם מודל מקומי טיפש מדי לכתיבת קוד. גם בחירת הערך עצמו היא החלטה נפרדת, וכדאי לקרוא את העלות של num_ctx בזיכרון KV cache בכל גודל לפני שבוחרים ערך.

בתיעוד של Ollama מצוין שלמשימות כמו סוכנים וכלי קידוד יש להגדיר לפחות 64000 טוקנים. הגדירו זאת בשרת:

sudo systemctl edit ollama.service

הוסיפו את השורות האלה בקובץ override:

[Service]
Environment="OLLAMA_CONTEXT_LENGTH=64000"

לאחר מכן טענו מחדש והפעילו מחדש:

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

הגדירו את הערך בשרת ולא בסוכן, משתי סיבות. בסכמת OpenAI chat completions אין שדה עבור אורך ההקשר, ולכן לקוח תואם OpenAI אינו יכול לבקש ערך כזה. בנוסף, ההגדרה היא לכל שרת, ולכן כל סוכן שתפנו אל השרת יירש אותה. לצד הפלט יש תקרה נפרדת. בניגוד לאורך ההקשר, היא כן עוברת דרך נקודת הקצה התואמת, ולכן 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, קצב הטוקנים יורד במידה כזאת שלולאת סוכן נעשית בלתי שמישה, ומדידת טוקנים לשנייה ב־LLM מקומי היא הדרך למצוא את התקרה האמיתית של השרת שלכם. תכנון גודל המכונה לפני הרכישה מוסבר ב־כמות ה־RAM וה־CPU ש־VPS לסוכן קידוד צריך.

השארת המודל טעון בין בקשות

כברירת מחדל, Ollama פורק מודל 5 דקות לאחר הבקשה האחרונה שלו. התנהגות זו מתאימה לתיבת צ'אט, אך אינה מתאימה לעבודה של agent. אתם עוצרים כדי לקרוא diff, הטיימר מסתיים, והבקשה הבאה טוענת מחדש מהדיסק עשרות ג'יגה-בייט של משקלים לפני שה-token הראשון מופיע. הדבר נראה כאילו המערכת נתקעה.

OLLAMA_KEEP_ALIVE מקבל מחרוזת משך כגון 10m או 24h, מספר רגיל של שניות, -1 כדי להשאיר את המודל טעון ללא הגבלת זמן, או 0 כדי לפרוק אותו מיד. הגדירו אותו לצד אורך הקשר:

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

שדה הבקשה keep_alive קיים רק ב-endpoints המקוריים של Ollama, /api/generate ו-/api/chat, ולא ב-endpoints של התאימות. לכן agent אינו יכול להגדיר אותו בכל בקשה בנפרד. משתנה הסביבה הוא אמצעי השליטה היחיד שזמין לכם. כאשר אתם צריכים לפנות את הזיכרון, ollama stop qwen3-coder:30b פורק את המודל בלי לעצור את השרת. אם אתם רוצים שההגדרה תישמר לאחר אתחול, או רוצים לשקול את היתרון שבהשארת המשקלים בזיכרון לאורך כל היום מול האפשרות לקבל את הזיכרון בחזרה, השארת מודל Ollama טעון בזיכרון פועלת בשני המצבים.

הפעלת Ollama בשרת נפרד

Ollama מאזין ב־localhost. כדי לגשת אליו ממחשב אחר, הגדירו את OLLAMA_HOST=0.0.0.0:11434 באותו override של systemd והפעילו מחדש את השירות.

בצעו זאת רק ברשת פרטית. בתיעוד של Ollama מצוין שאין צורך באימות עבור ה־API המקומי. לכן, פתיחת הפורט 11434 לאינטרנט מאפשרת לכל אדם להשתמש בחומרה שלכם ולקרוא כל מידע שה־agent שלכם שולח. קיימות שתי אפשרויות בטוחות. השאירו את ההאזנה ב־localhost והעבירו את הפורט באמצעות SSH מהמחשב הנייד שלכם:

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

ה־agent שלכם ימשיך להפנות אל http://localhost:11434/v1 ולא יבחין בהבדל. האפשרות האחרת היא VPN, כאשר Ollama מאזין בכתובת ה־VPN במקום ב־0.0.0.0. אם כמה אנשים או כמה agents ישתפו את אותו שרת, ה־scheduler של Ollama אינו מיועד לעומס כזה, וההשוואה בין Ollama ל־vLLM מראה באיזה שלב הפער ב־throughput מתחיל להיות משמעותי. ההשוואה בין Ollama ל־vLLM

מתי מודל קידוד מקומי עדיף, ומתי לא

Agent שמופעל באמצעות מודל שאתם מארחים אינו מחליף API מתקדם בכל משימה. הוא עדיף בבירור בארבעה סוגי עבודה.

  • עריכות מכניות בהיקף גדול, כאשר כל שינוי קטן ואפשר לבדוק אותו. שינוי שמות ברחבי repository, הוספת type hints, כתיבת docstrings ותרגום הערות. המודל יכול לפעול במשך שעות, והחיוב אינו משתנה.
  • עבודה שאסור להוציא מהחומרה שלכם. לדוגמה, קוד לקוח הכפוף להסכם סודיות, או repository פנימי שאסור לכם לשלוח לצד שלישי.
  • מחשבים במצב offline או בסביבה מבודדת, שבהם אין כלל API מתארח שאפשר לקרוא לו.
  • עלות צפויה. לאחר ששילמתם על השרת, Agent שצורך tokens בלולאה אינו עולה דבר נוסף. זהו ההפך מ־API המחויב לפי שימוש. ב־מתי GPU VPS מגיע לאיזון מול tokens של API מופיע החישוב.

הוא פחות מתאים למשימות ארוכות הכוללות שלבים רבים. המשימה "מצאו מדוע הבדיקה נכשלת, תקנו את הגורם ועדכנו את הקוראים" דורשת רצף של קריאות כלי נכונות, תוך שמירה על כל ההיסטוריה בהקשר. מודל בטווח 8B עד 14B בשרת בעל משאבים מוגבלים עלול להפיק קריאת כלי שגויה, או לאבד את התוכנית לאחר כמה תורות. במקרה כזה תבזבזו יותר זמן בהכוונתו מהזמן שהמשימה עצמה הייתה דורשת. זו אינה בעיית prompt שאפשר לפתור באמצעות ניסוח אחר. זו מגבלת קיבולת.

הוא פחות מתאים גם כאשר לטעות יש עלות גבוהה, ואתם לא תקראו כל שורה. תנו למודל המקומי משימות ממוקדות שאת הפלט שלהן אתם מאמתים, ושמרו את המודל המתארח לעבודה שלא תבדקו שלב אחר שלב.

תקלות נפוצות והמחרוזות שיופיעו

curl: (7) Failed to connect to localhost port 11434 after 0 ms: Connection refused. השרת אינו פועל, או שהסוכן מצביע על מארח אחר. הפעילו את systemctl status ollama ולאחר מכן את journalctl -e -u ollama.

הסוכן מדווח שהמודל אינו קיים. השם בקובץ התצורה אינו תואם לשם שהשרת מספק. השוו אותו לפלט של curl http://localhost:11434/v1/models והעתיקו משם את המחרוזת. התג הוא חלק מהשם, לכן תצורה שמציינת תג שלא הורדתם תיכשל, גם אם מותקן מודל דומה.

הסוכן משיב בפרוזה ואינו עורך קובץ. או שלמודל אין תמיכה בכלים, או שהבקשה יחד עם הגדרות הכלים שלה כבר ממלאות את חלון ההקשר. בדקו את התווית tools בדף המודל, ולאחר מכן את העמודה CONTEXT ב־ollama ps.

המתנה ארוכה לפני האסימון הראשון ולאחר מכן מהירות רגילה. זמן ה־keep-alive פג, והמשקלים נקראים שוב מהדיסק. הגדירו את OLLAMA_KEEP_ALIVE.

המודל סותר קובץ שזה עתה קרא. זהו קיטוע של ההקשר. ollama ps מציג בדרך כלל ערך CONTEXT קטן מזה שסברתם שהגדרתם, משום שמשתנה הסביבה הוגדר ב־shell שלכם ולא ביחידת systemd.

הכול פועל, אך באיטיות, ו־PROCESSOR אינו 100% GPU. המודל וההקשר שלו אינם נכנסים ל־VRAM. הקטינו את אורך ההקשר, או עברו למודל קטן יותר או ל־quantisation קטן יותר. לפני שתורידו את המודל מחדש, מה העלות של q4_K_M, q8_0 ו־fp16 בזיכרון, והיכן באמת יורדת האיכות מסביר כמה מקום מתפנה במעבר לרמה נמוכה יותר ומה אתם מוותרים עליו.

FAQ

האם אפשר להפנות את Claude Code אל Ollama?

כן, אך לא באמצעות כתובת URL תואמת OpenAI. Claude Code משתמש ב־Anthropic Messages API, ו־Ollama מספק ממשק כזה ב־/v1/messages, באותו פורט 11434. הגדירו את ANTHROPIC_BASE_URL=http://localhost:11434 ואת ANTHROPIC_AUTH_TOKEN=ollama, הגדירו את ANTHROPIC_API_KEY כמחרוזת ריקה, ולאחר מכן הפעילו באמצעות claude --model qwen3-coder:30b. ollama launch claude כותב עבורכם את אותן הגדרות. שכבת התאימות אינה מממשת את tool_choice או caching של prompts, ואין לה נקודת קצה לספירת tokens, לכן ספירות ה־tokens המדווחות הן בקירוב.

מדוע המודל המקומי שלי משיב על קוד שאינו יכול לראות?

משום שהבקשה כבר אינה מתאימה לחלון ההקשר, והחלק העתיק ביותר שלה הושמט ללא הודעת שגיאה. Ollama קובע את הקשר ברירת המחדל לפי כמות ה־VRAM שהוא מזהה, ומתחת ל־24 GiB ברירת המחדל היא 4,096 tokens. כמות זו אינה מספיקה לבדה עבור system prompt והגדרות הכלים של agent. הגדירו את OLLAMA_CONTEXT_LENGTH=64000 ביחידת systemd, הפעילו מחדש את Ollama, וודאו שהעמודה CONTEXT ב־ollama ps מציגה את הערך החדש.

איזה מודל כדאי להפעיל עבור coding agent ב־VPS?

בחרו את המודל הגדול ביותר הנושא תווית tools ועדיין מתאים לזיכרון עם חלון הקשר של 64k, והעדיפו מודל שעבר התאמה לקוד. qwen3-coder:30b הוא הבחירה הנפוצה בשרת GPU עם כמות VRAM מספקת. אם תג זה גדול מדי עבור השרת שלכם, נתוני ה־RAM ומהירויות העבודה ללא GPU של Nemotron 3.5 Lightning יכולים לשמש להשוואה לפני שתתחייבו להורדה. מתחת לכ־14B פרמטרים, מודל עדיין יכול להשיב היטב על שאלות הנוגעות לקוד, אך להיכשל בעריכות מרובות־שלבים, משום שעבודת agent רגישה לטעויות עיצוב קטנות בקריאות לכלים. בדקו באמצעות משימה אמיתית אחת מה־repository שלכם, ולא באמצעות prompt לדוגמה.

האם דרוש GPU כדי להפעיל coding agent על המודל שלי?

בפועל, כן. הסקה באמצעות CPU בלבד עובדת ומתאימה לשאלות יחידות, אך agent שולח בקשות רבות עבור כל משימה, וכל בקשה קוראת מחדש היסטוריה ארוכה. לכן קצב tokens נמוך עלול להפוך משימה של שתי דקות למשימה של שעה. בדקו את העמודה PROCESSOR ב־ollama ps: כל ערך שאינו 100% GPU פירושו שחלק מהמודל פועל על ה־CPU, וקצב ה־tokens יורד בחדות.

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