Tool coding CLI
BaruGunakan Shannon sebagai model di balik Claude Code, Codex CLI, dan CLI agen lainnya.
Tool coding membutuhkan tiga pengaturan agar berfungsi dengan Shannon: base URL API, API key Anda, dan id model Shannon. Halaman ini memberikan pengaturan yang tepat untuk Claude Code dan Codex CLI, menjelaskan cara model coding shannon-coder-1 dihitung, dan mencantumkan error yang ditemui tool-tool ini.
Endpoint mana yang dipakai setiap tool
| Tool | Endpoint | Base URL yang diatur | Catatan |
|---|---|---|---|
| Claude Code | POST /v1/messagesPOST /v1/messages/count_tokens | https://api.shannon-ai.com | Tool menambahkan /v1/messages ke base URL sendiri. |
| Codex CLI | POST /v1/responses | https://api.shannon-ai.com/v1 | Tool menambahkan /responses ke base URL. |
| Tool agen lain yang memakai format chat OpenAI | POST /v1/chat/completions | https://api.shannon-ai.com/v1 | Atur base URL, kunci, dan id model Shannon di pengaturan tool itu sendiri. |
Ketiga endpoint menerima API key yang sama, sebagai Authorization: Bearer atau sebagai x-api-key. Header anthropic-version, anthropic-beta, dan openai-beta yang dikirim tool-tool ini diterima.
Pilih model Shannon
Setiap permintaan harus menyebutkan id model yang dipublikasikan Shannon. Tool coding mengirim nama model default-nya sendiri kecuali Anda mengatakan lain, dan nama yang tidak dipublikasikan Shannon dijawab dengan 400 dan pesan unknown model: <name>. Tidak ada nama lain yang dipetakan ke model Shannon, jadi atur model di tool sebelum permintaan pertama.
GET /v1/models mencantumkan setiap id beserta jendela konteksnya. Tidak memerlukan kunci. Model & harga
| Model | Dihitung sebagai | Yang didapat |
|---|---|---|
shannon-coder-1 | Satu panggilan per permintaan di /v1/messages dan /v1/chat/completions. Token di /v1/responses. | Model coding. Input teks, panggilan tool, jendela konteks 131,072 token. |
shannon-1.6-liteshannon-1.6-pro | Token dari saldo Anda. | Model umum dengan panggilan tool. shannon-1.6-lite cocok untuk permintaan latar belakang singkat yang dibuat tool. |
| Model open-weight hosted | Token dari saldo Anda, dengan input ter-cache seharga 25% dari harga input. | Panggilan tool, prompt caching untuk sesi panjang, dan penghitungan tepat dari /v1/messages/count_tokens. |
Tool coding mengarahkan model dengan system prompt yang panjang. System prompt diterapkan oleh shannon-coder-1, shannon-1.6-lite, shannon-1.6-pro, shannon-2-lite, shannon-2-pro, dan model open-weight hosted, jadi pilih salah satunya untuk tool coding.
Claude Code
Claude Code membaca koneksinya dari environment variable. Atur di shell yang memulainya, atau di blok env pada ~/.claude/settings.json agar berlaku untuk setiap sesi.
# 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"
}
} | Variabel | Deskripsi |
|---|---|
ANTHROPIC_BASE_URL | Tempat Claude Code mengirim permintaannya. Gunakan alamat tanpa /v1. |
ANTHROPIC_AUTH_TOKEN | API key Shannon Anda, dikirim sebagai Authorization: Bearer. ANTHROPIC_API_KEY juga berfungsi: ia mengirim kunci sebagai x-api-key, dan Claude Code meminta persetujuan satu kali. |
ANTHROPIC_MODEL | Model untuk sesi. claude --model <id> dan /model <id> mengatur hal yang sama. |
ANTHROPIC_DEFAULT_HAIKU_MODEL | Model untuk permintaan latar belakang seperti judul sesi, dan untuk apa pun yang meminta haiku. |
ANTHROPIC_DEFAULT_SONNET_MODEL | Model yang dipakai ketika subagent atau perintah meminta sonnet. |
ANTHROPIC_DEFAULT_OPUS_MODEL | Model yang dipakai ketika subagent atau perintah meminta opus. |
CLAUDE_CODE_MAX_CONTEXT_TOKENS | Jendela konteks yang diasumsikan Claude Code untuk model. Gunakan context_window yang dilaporkan GET /v1/models untuk id yang Anda pilih. |
- Atur ketiga variabel
ANTHROPIC_DEFAULT_…_MODEL. Subagent dan beberapa perintah meminta model dengan nama bawaannya, dan setiap nama harus diarahkan ke id Shannon. - Contoh mengarahkan permintaan latar belakang ke
shannon-1.6-lite, yang dihitung dalam token. Judul sesi dan permintaan serupa kemudian tidak memakai panggilan Coder. - Claude Code meminta
POST /v1/messages/count_tokensuntuk ukuran konteks. Endpoint ini menghitung untuk model open-weight hosted. Dengan id Shannon, endpoint menjawab400; Claude Code menganggap penghitungan token opsional dan memperkirakan ukurannya sendiri. Penghitungan token
Untuk memeriksa alamat, kunci, dan id model sebelum Anda memulai tool, kirim satu permintaan secara manual:
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 berbicara ke Responses API. Deskripsikan Shannon sebagai model provider di ~/.codex/config.toml, pilih id model Shannon di sana, dan taruh API key Anda di environment variable yang disebut 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 | Key | Deskripsi |
|---|---|
model | Id model Shannon. codex --model <id> mengaturnya untuk satu kali jalan. |
model_provider | Nama blok provider yang dipakai, di sini shannon. |
base_url | Alamat API dengan /v1. |
env_key | Nama environment variable yang menyimpan API key Shannon Anda. |
wire_api | responses: Codex berbicara ke POST /v1/responses. |
model_context_window | Jendela konteks model, agar Codex meringkas sesi panjang tepat waktu. Gunakan context_window yang dilaporkan GET /v1/models. |
/v1/responsestidak menyimpan percakapan di server: setiap permintaan membawa percakapan diinput.previous_response_idditerima demi kompatibilitas.- Tool fungsi (
type: "function") ditawarkan ke model di/v1/responses. - Di
/v1/responses,shannon-coder-1dihitung dalam token dari saldo Anda, bukan dalam panggilan Coder.
Pemeriksaan yang sama untuk 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."
}' Model coding dan cara penghitungannya
shannon-coder-1 adalah model Shannon untuk agen coding. GET /v1/models melaporkannya dengan jendela konteks 131,072 token, panggilan tool, reasoning, dan input teks. Penghitungannya ada dua cara, tergantung endpoint yang dipakai tool.
| Endpoint | Biaya satu permintaan | Diambil dari |
|---|---|---|
/v1/messages | 1 panggilan per permintaan | Kuota panggilan Coder dari paket Anda. Tidak ada token yang diambil dari saldo Anda. |
/v1/chat/completions | 1 panggilan per permintaan | Kuota panggilan Coder dari paket Anda. Tidak ada token yang diambil dari saldo Anda. |
/v1/responses | Token, dengan $8.00 per 1M | Saldo Anda, seperti model lainnya. Kuota panggilan tidak dipakai. |
Satu panggilan adalah satu permintaan, berapa pun ukurannya. Panggilan dihitung ketika permintaan diterima, sebelum model menjawab. Sesi agen mengirim satu permintaan untuk setiap langkah yang diambilnya, sehingga tugas panjang memakai banyak panggilan. Kuota bergantung pada paket Anda dan dimulai lagi setiap 4 jam, pada pukul 00:00, 04:00, 08:00, 12:00, 16:00, dan 20:00 UTC.
| Paket | Panggilan per jendela 4 jam |
|---|---|
| Free | 3 |
| Plus | 20 |
| Standard | 40 |
| Pro | 60 |
Halaman paket menampilkan angka terkini. Paket
Ketika panggilan dalam satu jendela habis, permintaan dijawab dengan 429. Di /v1/messages, error yang sama datang dalam bentuk 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"
}
} Konteks melebihi batas
Ketika percakapan lebih besar daripada jendela konteks model, /v1/chat/completions dan /v1/messages menjawab dengan 400, tipe invalid_request_error, kode context_length_exceeded, dan pesan yang diawali prompt is too long. Tool coding membaca error ini untuk meringkas sesi dan mengirim permintaan sekali lagi. Error ini dihasilkan oleh shannon-coder-1, shannon-1.6-lite, dan 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
}
} Pesannya adalah prompt is too long: <sent> tokens > <limit> maximum. Ketika kedua angka tidak diketahui, pesannya prompt is too long. Please compact the conversation and try again.
Pada stream, statusnya sudah 200, jadi error tiba sebagai event dan stream kemudian ditutup secara normal:
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"} Yang dapat diandalkan oleh loop agen
| Topik | Perilaku |
|---|---|
| Schema tool | Definisi tool diambil seperti yang dikirim tool. Pada shannon-coder-1 dan shannon-1.6-*, keyword JSON Schema yang tidak dipakai model, seperti $schema, $ref, additionalProperties, default, dan title, dihilangkan dari yang dibaca model, dan oneOf dibaca sebagai anyOf. Tidak ada permintaan yang ditolak karenanya. |
| Argumen panggilan tool | Dalam stream, argumen panggilan tool tiba lengkap dalam satu delta: tool_calls[].function.arguments, input_json_delta.partial_json, atau response.function_call_arguments.delta. |
| Akhir giliran tool | finish_reason: "tool_calls" di Chat Completions, stop_reason: "tool_use" di Messages. |
| Keep-alive | Selama model bekerja, /v1/messages mengirim event: ping dan /v1/chat/completions mengirim baris komentar : ping setiap 15 detik. |
| Menghentikan permintaan | Menutup koneksi menghentikan stream. Giliran itu sendiri berjalan sampai selesai dan dihitung. |
Pemecahan masalah
| Gejala | Penyebab | Perbaikan |
|---|---|---|
400 dengan unknown model: claude-… atau unknown model: gpt-… | Tool mengirim nama model default-nya sendiri. Hanya id Shannon yang dipublikasikan yang dilayani, dan tidak ada nama lain yang dipetakan ke salah satunya. | Pilih id Shannon: ANTHROPIC_MODEL dan ketiga variabel ANTHROPIC_DEFAULT_…_MODEL di Claude Code, model di konfigurasi Codex. |
400 dengan unknown model: tanpa nama, dari Codex CLI | Permintaan tidak menyebutkan model. /v1/responses memerlukannya. | Atur model di ~/.codex/config.toml atau berikan --model. |
401 dengan Missing authentication atau Invalid API key | Kunci tidak sampai ke API, atau bukan kunci yang berlaku. Kunci Shannon diawali sk-. | Pastikan variabel diatur di shell yang memulai tool. Salin kunci sekali lagi dari Keys & usage. |
404 pada setiap permintaan | Base URL kelebihan atau kekurangan satu /v1 untuk tool tersebut. | Claude Code: alamat tanpa /v1. Codex CLI: alamat dengan /v1. |
429 dengan Shannon Coder call quota reached | Panggilan Coder pada jendela 4 jam saat ini sudah habis. | Tunggu jendela berikutnya, pindah ke paket dengan lebih banyak panggilan, atau pilih model yang dihitung dalam token. |
429 dengan Quota exceeded | Saldo Anda tidak mencukupi permintaan. | Tambah kredit, atau tunggu kuota harian paket Anda pada pukul 00:00 UTC. |
400 dengan prompt is too long | Percakapan lebih besar daripada jendela konteks model. | Ringkas sesi (/compact di kedua tool). Beri tahu tool jendela konteks model agar meringkas lebih awal. |
| Claude Code menampilkan angka konteks perkiraan | /v1/messages/count_tokens menghitung untuk model open-weight hosted. Dengan id Shannon, endpoint menjawab 400, dan Claude Code memperkirakan ukurannya sendiri. | Tidak ada yang perlu diperbaiki. Pilih model open-weight hosted jika Anda menginginkan penghitungan yang tepat. |
| Screenshot yang ditempel tidak diperhitungkan | shannon-coder-1 menerima input teks. | Pilih model yang menerima gambar untuk sesi itu. |
Kunci dan saldo Anda ada di halaman Keys & usage. Keys & usage