Chuyển đến nội dung
Công cụ lập trình CLI

Công cụ lập trình CLI

Mới

Dùng Shannon làm model đứng sau Claude Code, Codex CLI và các agent CLI khác.

Một công cụ lập trình cần ba thiết lập để hoạt động với Shannon: base URL của API, API key của bạn và một model id của Shannon. Trang này đưa ra các thiết lập chính xác cho Claude Code và Codex CLI, giải thích cách model lập trình shannon-coder-1 được tính, và liệt kê các lỗi mà những tool này gặp phải.

Mỗi tool dùng endpoint nào

Tool Endpoint Base URL cần đặt Ghi chú
Claude Code POST /v1/messages
POST /v1/messages/count_tokens
https://api.shannon-ai.com Tool tự thêm /v1/messages vào base URL.
Codex CLI POST /v1/responses https://api.shannon-ai.com/v1 Tool tự thêm /responses vào base URL.
Các agent tool khác dùng định dạng chat của OpenAI POST /v1/chat/completions https://api.shannon-ai.com/v1 Đặt base URL, key và một model id của Shannon trong phần cài đặt riêng của tool.

Cả ba endpoint nhận cùng một API key, dưới dạng Authorization: Bearer hoặc x-api-key. Các header anthropic-version, anthropic-beta và openai-beta mà các tool này gửi đều được chấp nhận.

Chọn một model Shannon

Mỗi yêu cầu phải nêu một model id mà Shannon công bố. Công cụ lập trình gửi tên model mặc định của chính nó trừ khi bạn chỉ định khác, và tên mà Shannon không công bố được trả lời bằng 400 và thông báo unknown model: <name>. Không có tên nào khác được ánh xạ sang model Shannon, nên hãy đặt model trong tool trước yêu cầu đầu tiên.

GET /v1/models liệt kê mọi id cùng cửa sổ ngữ cảnh của nó. Không cần key. Model và giá

Model Được tính là Điểm mạnh
shannon-coder-1 Một lượt gọi cho mỗi yêu cầu trên /v1/messages và /v1/chat/completions. Tính theo token trên /v1/responses. Model lập trình. Đầu vào văn bản, gọi tool, cửa sổ ngữ cảnh 131,072 token.
shannon-1.6-lite
shannon-1.6-pro
Token từ số dư của bạn. Các model đa năng có gọi tool. shannon-1.6-lite phù hợp với các yêu cầu nền ngắn mà một tool thực hiện.
Các model open-weight hosted Token từ số dư của bạn, với đầu vào cached bằng 25% giá input. Gọi tool, prompt caching cho các phiên dài, và số đếm chính xác từ /v1/messages/count_tokens.

Các công cụ lập trình điều khiển model bằng một system prompt dài. System prompt được áp dụng bởi shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro và các model open-weight hosted, vì vậy hãy chọn một trong số này cho công cụ lập trình.

Claude Code

Claude Code đọc cấu hình kết nối từ biến môi trường. Hãy đặt chúng trong shell khởi chạy nó, hoặc trong khối env của ~/.claude/settings.json để giữ cho mọi phiên.

# 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
Biến Mô tả
ANTHROPIC_BASE_URL Nơi Claude Code gửi các yêu cầu. Dùng địa chỉ không có /v1.
ANTHROPIC_AUTH_TOKEN Shannon API key của bạn, được gửi dưới dạng Authorization: Bearer. ANTHROPIC_API_KEY cũng dùng được: nó gửi key dưới dạng x-api-key, và Claude Code sẽ hỏi một lần để bạn chấp thuận.
ANTHROPIC_MODEL Model của phiên. claude --model <id> và /model <id> đặt cùng một thứ.
ANTHROPIC_DEFAULT_HAIKU_MODEL Model cho các yêu cầu nền như tiêu đề phiên, và cho mọi thứ yêu cầu haiku.
ANTHROPIC_DEFAULT_SONNET_MODEL Model được dùng khi một subagent hoặc một lệnh yêu cầu sonnet.
ANTHROPIC_DEFAULT_OPUS_MODEL Model được dùng khi một subagent hoặc một lệnh yêu cầu opus.
CLAUDE_CODE_MAX_CONTEXT_TOKENS Cửa sổ ngữ cảnh mà Claude Code giả định cho model. Dùng context_window mà GET /v1/models báo cho id bạn đã chọn.
  • Hãy đặt cả ba biến ANTHROPIC_DEFAULT_…_MODEL. Subagent và một số lệnh yêu cầu model theo tên có sẵn của nó, và mỗi tên phải trỏ tới một id của Shannon.
  • Mẫu này trỏ các yêu cầu nền tới shannon-1.6-lite, được tính theo token. Khi đó tiêu đề phiên và các yêu cầu tương tự không dùng lượt gọi Coder.
  • Claude Code gọi POST /v1/messages/count_tokens để biết kích thước ngữ cảnh. Endpoint này đếm cho các model open-weight hosted. Với id của Shannon, nó trả lời 400; Claude Code coi việc đếm token là tùy chọn và tự ước tính kích thước. Đếm token

Để kiểm tra địa chỉ, key và model id trước khi khởi chạy tool, hãy gửi thử một yêu cầu bằng tay:

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 trao đổi với Responses API. Hãy mô tả Shannon như một model provider trong ~/.codex/config.toml, chọn một model id của Shannon ở đó, và đặt API key của bạn vào biến môi trường mà provider nêu tên.

~/.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
Key Mô tả
model Model id của Shannon. codex --model <id> đặt nó cho một lần chạy.
model_provider Tên của khối provider cần dùng, ở đây là shannon.
base_url Địa chỉ API kèm /v1.
env_key Tên biến môi trường chứa Shannon API key của bạn.
wire_api responses: Codex trao đổi với POST /v1/responses.
model_context_window Cửa sổ ngữ cảnh của model, để Codex nén một phiên dài đúng lúc. Dùng context_window mà GET /v1/models báo.
  • /v1/responses không lưu cuộc hội thoại trên server: mỗi yêu cầu mang cuộc hội thoại trong input. previous_response_id được chấp nhận để tương thích.
  • Function tool (type: "function") được cung cấp cho model trên /v1/responses.
  • Trên /v1/responses, shannon-coder-1 được tính theo token từ số dư của bạn, không tính theo lượt gọi Coder.

Cách kiểm tra tương tự cho 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."
  }'

Model lập trình và cách nó được tính

shannon-coder-1 là model Shannon dành cho các agent lập trình. GET /v1/models báo nó với cửa sổ ngữ cảnh 131,072 token, gọi tool, suy luận và đầu vào văn bản. Nó được tính theo một trong hai cách, tùy endpoint mà tool sử dụng.

Endpoint Một yêu cầu tốn Trừ từ
/v1/messages 1 lượt gọi cho mỗi yêu cầu Hạn mức lượt gọi Coder của gói bạn. Không có token nào bị trừ khỏi số dư của bạn.
/v1/chat/completions 1 lượt gọi cho mỗi yêu cầu Hạn mức lượt gọi Coder của gói bạn. Không có token nào bị trừ khỏi số dư của bạn.
/v1/responses Token, với giá $8.00 mỗi 1M Số dư của bạn, như mọi model khác. Hạn mức lượt gọi không được dùng.

Một lượt gọi là một yêu cầu, bất kể kích thước. Nó được tính khi yêu cầu được chấp nhận, trước khi model trả lời. Một phiên agent gửi một yêu cầu cho mỗi bước nó thực hiện, nên một tác vụ dài dùng nhiều lượt gọi. Hạn mức tùy theo gói của bạn và bắt đầu lại sau mỗi 4 giờ, vào 00:00, 04:00, 08:00, 12:00, 16:00 và 20:00 UTC.

Gói Lượt gọi mỗi khung 4 giờ
Free 3
Plus 20
Standard 40
Pro 60

Trang gói hiển thị các con số hiện tại. Các gói

Khi các lượt gọi của một khung thời gian đã dùng hết, yêu cầu được trả lời bằng 429. Trên /v1/messages, cùng lỗi đó đến theo cấu trúc của 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"
  }
}

Tràn ngữ cảnh

Khi một cuộc hội thoại lớn hơn cửa sổ ngữ cảnh của model, /v1/chat/completions và /v1/messages trả lời bằng 400, loại invalid_request_error, mã context_length_exceeded và một thông báo bắt đầu bằng prompt is too long. Các công cụ lập trình đọc lỗi này để nén phiên và gửi lại yêu cầu. Lỗi này do shannon-coder-1, shannon-1.6-lite và shannon-1.6-pro tạo ra.

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
  }
}

Thông báo là prompt is too long: <sent> tokens > <limit> maximum. Khi không biết hai con số đó, thông báo là prompt is too long. Please compact the conversation and try again.

Trên stream, trạng thái đã là 200, nên lỗi đến dưới dạng một sự kiện và stream sau đó đóng lại bình thường:

/v1/chat/completions, 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]
/v1/messages, stream
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"}

Những gì một vòng lặp agent có thể dựa vào

Chủ đề Hành vi
Schema của tool Định nghĩa tool được lấy đúng như tool gửi. Trên shannon-coder-1 và shannon-1.6-*, các từ khóa JSON Schema mà model không dùng, như $schema, $ref, additionalProperties, default và title, được bỏ khỏi phần model đọc, và oneOf được đọc như anyOf. Không yêu cầu nào bị từ chối vì chúng.
Đối số của lần gọi tool Trong stream, các đối số của một lần gọi tool đến đầy đủ trong một delta: tool_calls[].function.arguments, input_json_delta.partial_json hoặc response.function_call_arguments.delta.
Kết thúc một lượt tool finish_reason: "tool_calls" trên Chat Completions, stop_reason: "tool_use" trên Messages.
Keep-alive Trong khi model làm việc, /v1/messages gửi event: ping và /v1/chat/completions gửi một dòng chú thích : ping cứ 15 giây một lần.
Dừng một yêu cầu Đóng kết nối sẽ dừng stream. Bản thân lượt đó vẫn chạy đến cùng và được tính.

Khắc phục sự cố

Triệu chứng Nguyên nhân Cách khắc phục
400 với unknown model: claude-… hoặc unknown model: gpt-… Tool đã gửi tên model mặc định của chính nó. Chỉ các id Shannon đã công bố được phục vụ, và không có tên nào khác được ánh xạ sang chúng. Chọn một id Shannon: ANTHROPIC_MODEL và ba biến ANTHROPIC_DEFAULT_…_MODEL trong Claude Code, model trong cấu hình Codex.
400 với unknown model: và không có tên, từ Codex CLI Yêu cầu không nêu model nào. /v1/responses cần có một model. Đặt model trong ~/.codex/config.toml hoặc truyền --model.
401 với Missing authentication hoặc Invalid API key Key chưa đến được API, hoặc không phải là key hiện tại. Key Shannon bắt đầu bằng sk-. Kiểm tra biến đã được đặt trong shell khởi chạy tool. Sao chép lại key từ Keys & usage.
404 trên mọi yêu cầu Base URL có thừa hoặc thiếu một /v1 so với yêu cầu của tool. Claude Code: địa chỉ không có /v1. Codex CLI: địa chỉ có /v1.
429 với Shannon Coder call quota reached Các lượt gọi Coder của khung 4 giờ hiện tại đã dùng hết. Chờ khung tiếp theo, chuyển sang gói có nhiều lượt gọi hơn, hoặc chọn một model được tính theo token.
429 với Quota exceeded Số dư của bạn không đủ cho yêu cầu. Nạp thêm tín dụng, hoặc chờ hạn mức hàng ngày của gói bạn vào 00:00 UTC.
400 với prompt is too long Cuộc hội thoại lớn hơn cửa sổ ngữ cảnh của model. Nén phiên (/compact trong cả hai tool). Cho tool biết cửa sổ ngữ cảnh của model để nó nén sớm hơn.
Claude Code hiển thị số liệu ngữ cảnh gần đúng /v1/messages/count_tokens đếm cho các model open-weight hosted. Với id của Shannon, nó trả lời 400, và Claude Code tự ước tính kích thước. Không cần sửa gì. Hãy chọn một model open-weight hosted nếu bạn muốn số đếm chính xác.
Ảnh chụp màn hình đã dán không được xét đến shannon-coder-1 nhận đầu vào văn bản. Chọn một model nhận hình ảnh cho phiên đó.

Key và số dư của bạn nằm ở trang Keys & usage. Keys & usage