ابزارهای CLI برای کدنویسی
جدیداز Shannon بهعنوان مدل پشت Claude Code، Codex CLI و دیگر CLIهای عامل (agent) استفاده کنید.
یک ابزار کدنویسی برای کار با Shannon به سه تنظیم نیاز دارد: base URL مربوط به API، کلید API شما و یک شناسه مدل Shannon. این صفحه تنظیمات دقیق Claude Code و Codex CLI را میدهد، توضیح میدهد مدل کدنویسی shannon-coder-1 چگونه شمرده میشود و خطاهایی را که این ابزارها با آنها روبهرو میشوند فهرست میکند.
هر ابزار از کدام endpoint استفاده میکند
| ابزار | Endpoint | Base URL برای تنظیم | یادداشت |
|---|---|---|---|
| Claude Code | POST /v1/messagesPOST /v1/messages/count_tokens | https://api.shannon-ai.com | ابزار خودش /v1/messages را به base URL اضافه میکند. |
| Codex CLI | POST /v1/responses | https://api.shannon-ai.com/v1 | ابزار /responses را به base URL اضافه میکند. |
| ابزارهای عامل دیگر که با فرمت چت OpenAI کار میکنند | POST /v1/chat/completions | https://api.shannon-ai.com/v1 | base URL، کلید و شناسه مدل Shannon را در تنظیمات خود ابزار وارد کنید. |
هر سه endpoint همان کلید 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را تنظیم کنید. subagentها و برخی دستورها مدل را با نام داخلیاش میخواهند و هر نام باید به یک شناسه Shannon تبدیل شود. - نمونه، درخواستهای پسزمینه را به
shannon-1.6-liteمیفرستد که بر حسب توکن شمرده میشود. عنوان نشستها و درخواستهای مشابه آنگاه از فراخوانیهای Coder مصرف نمیکنند. - Claude Code اندازه زمینه را از
POST /v1/messages/count_tokensمیپرسد. این endpoint برای مدلهای open-weight میزبانیشده میشمارد. با شناسه Shannon400پاسخ میدهد؛ 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 بهعنوان یک provider مدل تعریف کنید، در آنجا یک شناسه مدل Shannon انتخاب کنید و کلید API خود را در متغیر محیطیای که provider نام میبرد بگذارید.
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 | نام بلوک 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 توکن، فراخوانی ابزار، استدلال و ورودی متن گزارش میکند. بسته به 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"} آنچه یک حلقه عامل میتواند به آن تکیه کند
| موضوع | رفتار |
|---|---|
| schemaهای ابزار | تعریف ابزارها همانطور که ابزار میفرستد گرفته میشود. روی 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. |
| پایان یک نوبت ابزار | نوبت ابزار با این مقادیر پایان مییابد: finish_reason: "tool_calls" در Chat Completions و stop_reason: "tool_use" در Messages. |
| Keep-alive | تا وقتی مدل کار میکند، /v1/messages هر 15 ثانیه event: ping و /v1/chat/completions یک خط توضیح : ping میفرستد. |
| متوقف کردن یک درخواست | بستن اتصال 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 روی هر درخواست | base URL برای این ابزار یک /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 ورودی متن میپذیرد. | برای آن نشست مدلی را انتخاب کنید که تصویر میپذیرد. |
کلید و موجودی شما در صفحه «کلیدها و مصرف» است. کلیدها و مصرف