ข้ามไปยังเนื้อหา
เครื่องมือเขียนโค้ดแบบ CLI

เครื่องมือเขียนโค้ดแบบ CLI

ใหม่

ใช้ Shannon เป็นโมเดลเบื้องหลัง Claude Code, Codex CLI และ agent CLI อื่นๆ

เครื่องมือเขียนโค้ดต้องมีการตั้งค่าสามอย่างเพื่อทำงานกับ Shannon: base URL ของ API, API key ของคุณ และ model id ของ Shannon หน้านี้ให้การตั้งค่าที่ถูกต้องสำหรับ Claude Code และ Codex CLI อธิบายวิธีนับโมเดลเขียนโค้ด shannon-coder-1 และรวบรวมข้อผิดพลาดที่เครื่องมือเหล่านี้พบ

แต่ละเครื่องมือใช้ endpoint ใด

เครื่องมือ Endpoint Base URL ที่ต้องตั้งค่า หมายเหตุ
Claude Code POST /v1/messages
POST /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
เครื่องมือ agent อื่นๆ ที่ใช้รูปแบบแชตของ OpenAI POST /v1/chat/completions https://api.shannon-ai.com/v1 ตั้งค่า base URL คีย์ และ model id ของ Shannon ในการตั้งค่าของเครื่องมือนั้นเอง

ทั้งสาม endpoint ใช้ API key เดียวกัน ทั้งแบบ Authorization: Bearer หรือ x-api-key ระบบรับเฮดเดอร์ anthropic-version, anthropic-beta และ openai-beta ที่เครื่องมือเหล่านี้ส่งมา

เลือกโมเดล Shannon

ทุกคำขอต้องระบุ model id ที่ Shannon เผยแพร่ เครื่องมือเขียนโค้ดจะส่งชื่อโมเดลเริ่มต้นของตัวเองเว้นแต่คุณจะบอกเป็นอย่างอื่น และชื่อที่ Shannon ไม่ได้เผยแพร่จะได้รับ 400 พร้อมข้อความ unknown model: <name> ไม่มีชื่ออื่นที่ถูกแมปไปยังโมเดลของ Shannon ดังนั้นให้ตั้งค่าโมเดลในเครื่องมือก่อนส่งคำขอแรก

GET /v1/models แสดงรายการทุก id พร้อม context window ไม่ต้องใช้คีย์ โมเดลและราคา

โมเดล นับเป็น สิ่งที่ได้
shannon-coder-1 หนึ่งการเรียกต่อหนึ่งคำขอบน /v1/messages และ /v1/chat/completions นับเป็น tokens บน /v1/responses โมเดลสำหรับเขียนโค้ด รับอินพุตข้อความ รองรับการเรียก tool, context window 131,072 tokens
shannon-1.6-lite
shannon-1.6-pro
Tokens จากยอดคงเหลือของคุณ โมเดลทั่วไปที่รองรับการเรียก tool shannon-1.6-lite เหมาะกับคำขอเบื้องหลังสั้นๆ ที่เครื่องมือส่งออกมา
โมเดล open-weight ที่โฮสต์ Tokens จากยอดคงเหลือของคุณ โดยอินพุตที่แคชไว้คิด 25% ของราคา input รองรับการเรียก tool, prompt caching สำหรับเซสชันยาว และการนับที่แม่นยำจาก /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
ตัวแปร คำอธิบาย
ANTHROPIC_BASE_URL ที่อยู่ที่ Claude Code ส่งคำขอไป ใช้ที่อยู่ที่ไม่มี /v1
ANTHROPIC_AUTH_TOKEN Shannon API key ของคุณ ส่งเป็น 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 context window ที่ Claude Code สันนิษฐานสำหรับโมเดล ใช้ค่า context_window ที่ GET /v1/models รายงานสำหรับ id ที่คุณเลือก
  • ตั้งค่าตัวแปร ANTHROPIC_DEFAULT_…_MODEL ทั้งสามตัว Subagent และบางคำสั่งขอโมเดลด้วยชื่อที่มีมาในตัว และแต่ละชื่อต้องชี้ไปที่ id ของ Shannon
  • ตัวอย่างชี้คำขอเบื้องหลังไปที่ shannon-1.6-lite ซึ่งนับเป็น tokens ดังนั้นชื่อเซสชันและคำขอลักษณะเดียวกันจะไม่ใช้การเรียก Coder
  • Claude Code เรียก POST /v1/messages/count_tokens เพื่อถามขนาดของ context endpoint นี้นับให้โมเดล open-weight ที่โฮสต์ ส่วน id ของ Shannon จะตอบ 400 โดย Claude Code ถือว่าการนับ tokens เป็นทางเลือกและประมาณขนาดเอง การนับ token

หากต้องการตรวจสอบที่อยู่ คีย์ และ model id ก่อนเริ่มใช้เครื่องมือ ให้ส่งคำขอหนึ่งครั้งด้วยตัวเอง:

cURL
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 เป็น model provider ใน ~/.codex/config.toml เลือก model id ของ Shannon ที่นั่น และใส่ API key ของคุณในตัวแปรสภาพแวดล้อมที่ provider ระบุชื่อไว้

~/.codex/config.toml
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"
Shell
# 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 model id ของ Shannon codex --model <id> กำหนดค่านี้สำหรับการรันหนึ่งครั้ง
model_provider ชื่อของบล็อก provider ที่จะใช้ ในที่นี้คือ shannon
base_url ที่อยู่ API พร้อม /v1
env_key ชื่อของตัวแปรสภาพแวดล้อมที่เก็บ Shannon API key ของคุณ
wire_api responses: Codex คุยกับ POST /v1/responses
model_context_window context window ของโมเดล เพื่อให้ Codex บีบอัดเซสชันที่ยาวได้ทันเวลา ใช้ค่า context_window ที่ GET /v1/models รายงาน
  • /v1/responses ไม่เก็บบทสนทนาไว้บนเซิร์ฟเวอร์: แต่ละคำขอส่งบทสนทนามาใน input ระบบรับ previous_response_id ไว้เพื่อความเข้ากันได้
  • Function tools (type: "function") ถูกเสนอให้โมเดลบน /v1/responses
  • บน /v1/responses shannon-coder-1 นับเป็น tokens จากยอดคงเหลือของคุณ ไม่ใช่เป็นการเรียก Coder

การตรวจสอบแบบเดียวกันสำหรับ endpoint Responses:

cURL
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 สำหรับ coding agent GET /v1/models รายงานว่ามี context window 131,072 tokens รองรับการเรียก tool การให้เหตุผล และอินพุตข้อความ โมเดลนี้นับได้สองวิธี ขึ้นอยู่กับ endpoint ที่เครื่องมือใช้

Endpoint ค่าใช้จ่ายของคำขอ หักจาก
/v1/messages 1 การเรียกต่อคำขอ โควตาการเรียก Coder ของแผนของคุณ ไม่มีการหัก tokens จากยอดคงเหลือ
/v1/chat/completions 1 การเรียกต่อคำขอ โควตาการเรียก Coder ของแผนของคุณ ไม่มีการหัก tokens จากยอดคงเหลือ
/v1/responses Tokens ในราคา $8.00 ต่อ 1M ยอดคงเหลือของคุณ เหมือนโมเดลอื่น ไม่ใช้โควตาการเรียก

การเรียกคือหนึ่งคำขอ ไม่ว่าขนาดเท่าใด จะนับเมื่อรับคำขอ ก่อนที่โมเดลจะตอบ เซสชัน agent ส่งหนึ่งคำขอต่อทุกขั้นที่ทำ งานยาวจึงใช้การเรียกหลายครั้ง โควตาขึ้นกับแผนของคุณ และเริ่มใหม่ทุก 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

429 /v1/chat/completions
{
  "error": {
    "type": "rate_limit_error",
    "message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
  }
}
429 /v1/messages
{
  "type": "error",
  "error": {
    "type": "rate_limit_error",
    "message": "Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan"
  }
}

Context ล้น

เมื่อบทสนทนาใหญ่กว่า context window ของโมเดล /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

400 /v1/chat/completions
{
  "error": {
    "type": "invalid_request_error",
    "code": "context_length_exceeded",
    "message": "prompt is too long: 140211 tokens > 131072 maximum",
    "param": null
  }
}
400 /v1/messages
{
  "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.

บนสตรีม สถานะเป็น 200 ไปแล้ว ดังนั้นข้อผิดพลาดจะมาถึงเป็นอีเวนต์ แล้วสตรีมจะปิดตามปกติ:

/v1/chat/completions, สตรีม
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]
/v1/messages, สตรีม
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"}

สิ่งที่ลูปของ agent พึ่งพาได้

หัวข้อ พฤติกรรม
Tool schema นิยาม tool จะถูกรับตามที่เครื่องมือส่งมา บน shannon-coder-1 และ shannon-1.6-* คีย์เวิร์ด JSON Schema ที่โมเดลไม่ใช้ เช่น $schema, $ref, additionalProperties, default และ title จะถูกตัดออกจากสิ่งที่โมเดลอ่าน และ oneOf จะถูกอ่านเป็น anyOf ไม่มีคำขอใดถูกปฏิเสธเพราะคีย์เวิร์ดเหล่านี้
อาร์กิวเมนต์ของการเรียก tool ในสตรีม อาร์กิวเมนต์ของการเรียก tool จะมาถึงครบใน delta เดียว: tool_calls[].function.arguments, input_json_delta.partial_json หรือ response.function_call_arguments.delta
จุดสิ้นสุดของรอบ tool ค่า finish_reason: "tool_calls" ในรูปแบบ Chat Completions และค่า stop_reason: "tool_use" ในรูปแบบ Messages
Keep-alive ระหว่างที่โมเดลทำงาน /v1/messages ส่ง event: ping และ /v1/chat/completions ส่งบรรทัดคอมเมนต์ : ping ทุก 15 วินาที
การหยุดคำขอ การปิดการเชื่อมต่อจะหยุดสตรีม แต่รอบนั้นจะทำงานต่อจนจบและถูกนับ

การแก้ปัญหา

อาการ สาเหตุ วิธีแก้
400 พร้อม unknown model: claude-… หรือ unknown model: gpt-… เครื่องมือส่งชื่อโมเดลเริ่มต้นของตัวเอง ระบบให้บริการเฉพาะ id ของ Shannon ที่เผยแพร่แล้ว และไม่มีชื่ออื่นถูกแมปไปยัง id เหล่านั้น เลือก id ของ 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 ชั่วโมงปัจจุบันครบแล้ว รอช่วงเวลาถัดไป เปลี่ยนไปใช้แผนที่มีการเรียกมากกว่า หรือเลือกโมเดลที่นับเป็น tokens
429 พร้อม Quota exceeded ยอดคงเหลือของคุณไม่พอสำหรับคำขอ เติมเครดิต หรือรอโควตารายวันของแผนที่เวลา 00:00 UTC
400 พร้อม prompt is too long บทสนทนาใหญ่กว่า context window ของโมเดล บีบอัดเซสชัน (/compact ในทั้งสองเครื่องมือ) แจ้งเครื่องมือถึง context window ของโมเดลเพื่อให้บีบอัดเร็วขึ้น
Claude Code แสดงตัวเลข context โดยประมาณ /v1/messages/count_tokens นับให้โมเดล open-weight ที่โฮสต์ กับ id ของ Shannon จะตอบ 400 และ Claude Code จะประมาณขนาดเอง ไม่มีอะไรต้องแก้ เลือกโมเดล open-weight ที่โฮสต์หากต้องการตัวเลขที่แม่นยำ
ภาพหน้าจอที่วางไว้ไม่ถูกนำมาพิจารณา shannon-coder-1 รับอินพุตข้อความ เลือกโมเดลที่รับรูปภาพสำหรับเซสชันนั้น

คีย์และยอดคงเหลือของคุณอยู่ในหน้าคีย์และการใช้งาน คีย์และการใช้งาน