כלי קידוד ב-CLI
חדשהשתמשו ב-Shannon כמודל שמאחורי Claude Code, Codex CLI וכלי CLI אחרים מבוססי סוכנים.
כלי קידוד צריך שלוש הגדרות כדי לעבוד עם Shannon: כתובת הבסיס של ה-API, מפתח ה-API שלכם ומזהה מודל של Shannon. הדף הזה נותן את ההגדרות המדויקות ל-Claude Code ול-Codex CLI, מסביר איך מודל הקידוד shannon-coder-1 נספר, ומפרט את השגיאות שהכלים האלה פוגשים.
באיזה endpoint כל כלי משתמש
| כלי | Endpoint | כתובת בסיס להגדרה | הערה |
|---|---|---|---|
| Claude Code | POST /v1/messagesPOST /v1/messages/count_tokens | https://api.shannon-ai.com | הכלי מוסיף /v1/messages לכתובת הבסיס בעצמו. |
| Codex CLI | POST /v1/responses | https://api.shannon-ai.com/v1 | הכלי מוסיף /responses לכתובת הבסיס. |
| כלי סוכנים אחרים שמדברים בפורמט הצ'אט של OpenAI | POST /v1/chat/completions | https://api.shannon-ai.com/v1 | הגדירו את כתובת הבסיס, המפתח ומזהה מודל של Shannon בהגדרות של הכלי עצמו. |
שלושת ה-endpoints מקבלים את אותו מפתח API, כ-Authorization: Bearer או כ-x-api-key. הכותרות anthropic-version, anthropic-beta ו-openai-beta שהכלים האלה שולחים מתקבלות.
בחירת מודל Shannon
כל בקשה חייבת לציין מזהה מודל ש-Shannon מפרסם. כלי קידוד שולח את שם מודל ברירת המחדל שלו אלא אם אומרים לו אחרת, ושם ש-Shannon לא מפרסם נענה ב-400 ובהודעה unknown model: <name>. אף שם אחר אינו ממופה למודל של Shannon, ולכן הגדירו את המודל בכלי לפני הבקשה הראשונה.
GET /v1/models מפרט כל מזהה עם חלון ההקשר שלו. הוא אינו צריך מפתח. מודלים ותמחור
| מודל | נספר כ | מה זה מביא |
|---|---|---|
shannon-coder-1 | קריאה אחת לבקשה ב-/v1/messages וב-/v1/chat/completions. טוקנים ב-/v1/responses. | מודל הקידוד. קלט טקסט, קריאות לכלים, חלון הקשר של 131,072 טוקנים. |
shannon-1.6-liteshannon-1.6-pro | טוקנים מהיתרה שלכם. | מודלים כלליים עם קריאות לכלים. shannon-1.6-lite מתאים לבקשות הרקע הקצרות שכלי שולח. |
| מודלי open-weight מתארחים | טוקנים מהיתרה שלכם, כשקלט במטמון ב-25% ממחיר הקלט. | קריאות לכלים, מטמון פרומפטים לסשנים ארוכים, וספירות מדויקות מ-/v1/messages/count_tokens. |
כלי קידוד מכוונים את המודל עם system prompt ארוך. ה-system prompt מיושם על ידי shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro ומודלי ה-open-weight המתארחים, ולכן בחרו אחד מהם עבור כלי קידוד.
Claude Code
Claude Code קורא את החיבור שלו ממשתני סביבה. הגדירו אותם במעטפת שמפעילה אותו, או בבלוק env של ~/.claude/settings.json כדי לשמור אותם לכל סשן.
# Install Claude Code
npm install -g @anthropic-ai/claude-code
# Where to send requests, and your Shannon API key
export ANTHROPIC_BASE_URL=https://api.shannon-ai.com
export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY
# Shannon model ids: the session model, and the model behind each built-in name
export ANTHROPIC_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_OPUS_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_SONNET_MODEL=shannon-coder-1
export ANTHROPIC_DEFAULT_HAIKU_MODEL=shannon-1.6-lite
# The context window of the session model
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=131072
claude {
"env": {
"ANTHROPIC_BASE_URL": "https://api.shannon-ai.com",
"ANTHROPIC_AUTH_TOKEN": "YOUR_API_KEY",
"ANTHROPIC_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "shannon-coder-1",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "shannon-1.6-lite",
"CLAUDE_CODE_MAX_CONTEXT_TOKENS": "131072"
}
} | משתנה | תיאור |
|---|---|
ANTHROPIC_BASE_URL | לאן Claude Code שולח את הבקשות שלו. השתמשו בכתובת בלי /v1. |
ANTHROPIC_AUTH_TOKEN | מפתח ה-API שלכם ב-Shannon, נשלח כ-Authorization: Bearer. גם ANTHROPIC_API_KEY עובד: הוא שולח את המפתח כ-x-api-key, ו-Claude Code מבקש פעם אחת לאשר אותו. |
ANTHROPIC_MODEL | המודל של הסשן. claude --model <id> ו-/model <id> קובעים את אותו דבר. |
ANTHROPIC_DEFAULT_HAIKU_MODEL | המודל לבקשות רקע כמו כותרות סשן, ולכל דבר שמבקש haiku. |
ANTHROPIC_DEFAULT_SONNET_MODEL | המודל שבשימוש כש-subagent או פקודה מבקשים sonnet. |
ANTHROPIC_DEFAULT_OPUS_MODEL | המודל שבשימוש כש-subagent או פקודה מבקשים opus. |
CLAUDE_CODE_MAX_CONTEXT_TOKENS | חלון ההקשר ש-Claude Code מניח עבור המודל. השתמשו ב-context_window ש-GET /v1/models מדווח עבור המזהה שבחרתם. |
- הגדירו את שלושת המשתנים
ANTHROPIC_DEFAULT_…_MODEL. Subagents וחלק מהפקודות מבקשים מודל לפי שמו המובנה, וכל שם חייב להיפתר למזהה של Shannon. - בדוגמה בקשות הרקע מופנות ל-
shannon-1.6-lite, שנספר בטוקנים. כותרות סשן ובקשות דומות אינן משתמשות אז בקריאות Coder. - Claude Code שואל את
POST /v1/messages/count_tokensמה גודל ההקשר. ה-endpoint סופר עבור מודלי ה-open-weight המתארחים. עם מזהה של Shannon הוא עונה400; Claude Code רואה בספירת טוקנים דבר אופציונלי ומעריך את הגודל בעצמו. ספירת טוקנים
כדי לבדוק את הכתובת, המפתח ומזהה המודל לפני שמפעילים את הכלי, שלחו בקשה אחת ידנית:
curl https://api.shannon-ai.com/v1/messages \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-1.6-lite",
"max_tokens": 16,
"messages": [{"role": "user", "content": "Say OK."}]
}' Codex CLI
Codex CLI מדבר עם ה-Responses API. תארו את Shannon כספק מודלים ב-~/.codex/config.toml, בחרו שם מזהה מודל של Shannon, והכניסו את מפתח ה-API שלכם למשתנה הסביבה שהספק מציין.
model = "shannon-coder-1"
model_provider = "shannon"
model_context_window = 131072
[model_providers.shannon]
name = "Shannon"
base_url = "https://api.shannon-ai.com/v1"
env_key = "SHANNON_API_KEY"
wire_api = "responses" # Install Codex CLI
npm install -g @openai/codex
# Your Shannon API key, under the name given as env_key
export SHANNON_API_KEY=YOUR_API_KEY
# Start it; --model selects another Shannon id for one run
codex
codex --model shannon-1.6-pro | מפתח | תיאור |
|---|---|
model | מזהה מודל Shannon. codex --model <id> קובע אותו להרצה אחת. |
model_provider | שם בלוק הספק לשימוש, כאן shannon. |
base_url | כתובת ה-API עם /v1. |
env_key | שם משתנה הסביבה שמחזיק את מפתח ה-API שלכם ב-Shannon. |
wire_api | responses: Codex מדבר עם POST /v1/responses. |
model_context_window | חלון ההקשר של המודל, כדי ש-Codex יכווץ סשן ארוך בזמן. השתמשו ב-context_window ש-GET /v1/models מדווח. |
/v1/responsesאינו שומר שיחה בשרת: כל בקשה נושאת את השיחה ב-input.previous_response_idמתקבל לצורכי תאימות.- כלי פונקציה (
type: "function") מוצעים למודל ב-/v1/responses. - ב-
/v1/responses,shannon-coder-1נספר בטוקנים מהיתרה שלכם, לא בקריאות Coder.
אותה בדיקה עבור ה-endpoint של Responses:
curl https://api.shannon-ai.com/v1/responses \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-1.6-lite",
"input": "Say OK."
}' מודל הקידוד ואיך הוא נספר
shannon-coder-1 הוא מודל Shannon לסוכני קידוד. GET /v1/models מדווח עליו עם חלון הקשר של 131,072 טוקנים, קריאות לכלים, reasoning וקלט טקסט. הוא נספר באחת משתי דרכים, לפי ה-endpoint שהכלי משתמש בו.
| Endpoint | עלות בקשה | נלקח מ |
|---|---|---|
/v1/messages | 1 קריאה לבקשה | מכסת קריאות Coder של התוכנית שלכם. לא נלקחים טוקנים מהיתרה שלכם. |
/v1/chat/completions | 1 קריאה לבקשה | מכסת קריאות Coder של התוכנית שלכם. לא נלקחים טוקנים מהיתרה שלכם. |
/v1/responses | טוקנים, ב-$8.00 ל-1M | היתרה שלכם, כמו בכל מודל אחר. מכסת הקריאות אינה בשימוש. |
קריאה היא בקשה אחת, בכל גודל. היא נספרת כשהבקשה מתקבלת, לפני שהמודל עונה. סשן של סוכן שולח בקשה אחת לכל צעד שהוא עושה, ולכן משימה ארוכה משתמשת בהרבה קריאות. המכסה תלויה בתוכנית שלכם ומתחדשת כל 4 שעות, ב-00:00, 04:00, 08:00, 12:00, 16:00 ו-20:00 UTC.
| תוכנית | קריאות בחלון של 4 שעות |
|---|---|
| Free | 3 |
| Plus | 20 |
| Standard | 40 |
| Pro | 60 |
דף התוכניות מציג את המספרים הנוכחיים. תוכניות
כשקריאות החלון נוצלו, הבקשה נענית ב-429. ב-/v1/messages אותה שגיאה מגיעה בצורת Anthropic.
{
"error": {
"type": "rate_limit_error",
"message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
}
} {
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
}
} גלישת הקשר
כששיחה גדולה מחלון ההקשר של המודל, /v1/chat/completions ו-/v1/messages עונים ב-400, בסוג invalid_request_error, בקוד context_length_exceeded ובהודעה שמתחילה ב-prompt is too long. כלי קידוד קוראים את השגיאה הזו כדי לכווץ את הסשן ולשלוח את הבקשה שוב. היא מופקת על ידי shannon-coder-1, shannon-1.6-lite ו-shannon-1.6-pro.
{
"error": {
"type": "invalid_request_error",
"code": "context_length_exceeded",
"message": "prompt is too long: 140211 tokens > 131072 maximum",
"param": null
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"code": "context_length_exceeded",
"message": "prompt is too long: 140211 tokens > 131072 maximum",
"param": null
}
} ההודעה היא prompt is too long: <sent> tokens > <limit> maximum. כששני המספרים אינם ידועים היא prompt is too long. Please compact the conversation and try again.
ב-stream הסטטוס כבר 200, ולכן השגיאה מגיעה כאירוע וה-stream נסגר אחר כך בדרך הרגילה:
data: {"error":{"message":"prompt is too long: 140211 tokens > 131072 maximum","type":"invalid_request_error","code":"context_length_exceeded","param":null}}
data: {"id":"chatcmpl-…","object":"chat.completion.chunk","created":…,"model":"shannon-coder-1","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{…}}
data: [DONE] event: error
data: {"type":"error","error":{"type":"invalid_request_error","message":"prompt is too long: 140211 tokens > 131072 maximum"}}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{…}}
event: message_stop
data: {"type":"message_stop"} על מה לולאת סוכן יכולה לסמוך
| נושא | התנהגות |
|---|---|
| סכמות כלים | הגדרות כלים נלקחות כפי שהכלי שולח אותן. ב-shannon-coder-1 וב-shannon-1.6-*, מילות מפתח של JSON Schema שהמודל אינו משתמש בהן, כמו $schema, $ref, additionalProperties, default ו-title, מושמטות ממה שהמודל קורא, ו-oneOf נקרא כ-anyOf. שום בקשה אינה נדחית בגללן. |
| ארגומנטים של קריאה לכלי | ב-stream, הארגומנטים של קריאה לכלי מגיעים שלמים ב-delta אחד: tool_calls[].function.arguments, input_json_delta.partial_json או response.function_call_arguments.delta. |
| סוף תור של כלי | ב-Chat Completions הערך הוא finish_reason: "tool_calls", וב-Messages הערך הוא stop_reason: "tool_use". |
| Keep-alive | בזמן שהמודל עובד, /v1/messages שולח event: ping ו-/v1/chat/completions שולח שורת הערה : ping כל 15 שניות. |
| עצירת בקשה | סגירת החיבור עוצרת את ה-stream. התור עצמו רץ עד סופו ונספר. |
פתרון תקלות
| תסמין | סיבה | פתרון |
|---|---|---|
400 עם unknown model: claude-… או unknown model: gpt-… | הכלי שלח את שם מודל ברירת המחדל שלו. רק מזהים שפורסמו של Shannon מוגשים, ואף שם אחר אינו ממופה אליהם. | בחרו מזהה של Shannon: ANTHROPIC_MODEL ושלושת המשתנים ANTHROPIC_DEFAULT_…_MODEL ב-Claude Code, model בהגדרות Codex. |
400 עם unknown model: ובלי שם, מ-Codex CLI | הבקשה לא ציינה מודל. /v1/responses צריך אחד. | הגדירו model ב-~/.codex/config.toml או העבירו --model. |
401 עם Missing authentication או Invalid API key | המפתח לא הגיע ל-API, או שאינו מפתח נוכחי. מפתח Shannon מתחיל ב-sk-. | ודאו שהמשתנה מוגדר במעטפת שמפעילה את הכלי. העתיקו את המפתח שוב מהדף מפתחות ושימוש. |
404 בכל בקשה | בכתובת הבסיס יש /v1 אחד יותר או פחות מדי עבור הכלי. | Claude Code: הכתובת בלי /v1. Codex CLI: הכתובת עם /v1. |
429 עם Shannon Coder call quota reached | קריאות ה-Coder של חלון ה-4 שעות הנוכחי נוצלו. | המתינו לחלון הבא, עברו לתוכנית עם יותר קריאות, או בחרו מודל שנספר בטוקנים. |
429 עם Quota exceeded | היתרה שלכם אינה מכסה את הבקשה. | הוסיפו קרדיט, או המתינו למכסה היומית של התוכנית שלכם ב-00:00 UTC. |
400 עם prompt is too long | השיחה גדולה מחלון ההקשר של המודל. | כווצו את הסשן (/compact בשני הכלים). ספרו לכלי מהו חלון ההקשר של המודל כדי שיכווץ מוקדם יותר. |
| Claude Code מציג מספרי הקשר מקורבים | /v1/messages/count_tokens סופר עבור מודלי ה-open-weight המתארחים. עם מזהה של Shannon הוא עונה 400, ו-Claude Code מעריך את הגודל בעצמו. | אין מה לתקן. בחרו מודל open-weight מתארח אם אתם רוצים ספירות מדויקות. |
| צילום מסך שהודבק אינו נלקח בחשבון | shannon-coder-1 מקבל קלט טקסט. | בחרו לאותו סשן מודל שמקבל תמונות. |
המפתח והיתרה שלכם נמצאים בדף מפתחות ושימוש. מפתחות ושימוש