ส่วนของฐานความรู้ ▾
การนำทาง
▸ เริ่มต้นที่นี่ ตามบทบาทหมวดหมู่
- Cursor + Gonka AI - LLM ราคาถูกสำหรับการเขียนโค้ด
- Claude Code + Gonka AI - LLM สำหรับเทอร์มินัล
- OpenClaw + Gonka AI - เอเจนต์ AI ที่เข้าถึงได้
- OpenCode: โมเดลของคุณเองในเทอร์มินัล
- Continue.dev + Gonka AI - AI สำหรับ VS Code/JetBrains
- Cline + Gonka AI - เอเจนต์ AI ใน VS Code
- Aider + Gonka AI - การเขียนโปรแกรมคู่กับ AI
- LangChain + Gonka AI - แอปพลิเคชัน AI ในราคาที่ถูกมาก
- n8n + Gonka AI - การทำงานอัตโนมัติด้วย AI ราคาถูก
- Open WebUI + Gonka AI - ChatGPT ของคุณเอง
- LibreChat + Gonka AI — open-source ChatGPT
- Hermes Agent + DeepSeek บนเครือข่าย Gonka — เอเจนต์อัตโนมัติในราคาประหยัด
- Kilo Code + Gonka AI — AI-agent ใน VS Code
- Roo Code + Gonka AI — AI-agent อัตโนมัติใน VS Code
- LlamaIndex + Gonka AI — แอป RAG ราคาถูก
- PydanticAI + Gonka — เอเจนต์ AI แบบมีไทป์ราคาถูก
- Vercel AI SDK + Gonka AI — แอปพลิเคชัน AI บน TypeScript ราคาถูก
- TanStack AI + Gonka — แอปพลิเคชัน AI บน TypeScript ราคาถูก
- API เริ่มต้นอย่างรวดเร็ว — curl, Python, TypeScript
- JoinGonka Gateway — ภาพรวมโดยละเอียด
- Management Keys — SaaS บน Gonka
- API AI ที่ถูกที่สุด: การเปรียบเทียบผู้ให้บริการปี 2026
- วิธีการซื้อโทเค็น AI และ API-key: 3 วิธีในปี 2026
- Cursor Pro ลิมิตคำขอหมด — วิเคราะห์ปัญหาและทางเลือกที่ถูกกว่า
- Claude Code ราคาประหยัดกว่า — วิเคราะห์บิลและการย้ายใช้งาน
- Cline เผาเงิน — ทำไมเอเจนต์ถึงใช้จ่ายเยอะเกินไป
- OpenClaw มีค่าใช้จ่ายสูง — ทำไมเอเจนต์ถึงใช้โทเค็นเปลืองและจะประหยัดได้อย่างไร
- OpenRouter: ทางเลือกราคาถูก — เปรียบเทียบกับ JoinGonka Gateway
- AI โมเดลที่ดีที่สุดสำหรับการเขียนโค้ดในปี 2026: เปรียบเทียบและราคา
- ทางเลือกราคาถูกแทนที่ GitHub Copilot แบบไม่จำกัด
- ทางเลือกราคาประหยัดสำหรับ Windsurf โดยไม่มีเครดิตหรือข้อจำกัด
- API ที่ถูกที่สุดสำหรับ AI-agent ในปี 2026
- ZCode: GLM-inferenced ราคาประหยัดแทนที่ GLM Coding Plan
- JetBrains IDE + JoinGonka Gateway — endpoint ของตัวเองแทนเครดิต
- GitHub Copilot BYOK — โมเดลของคุณเองแทนที่โควตา
- Zed + JoinGonka Gateway — อินเฟอเรนซ์ราคาประหยัดในโปรแกรมแก้ไข
- Pi + JoinGonka Gateway — เอเจนต์เทอร์มินัลบนอินเฟอเรนซ์ราคาถูก
- Codex CLI: คีย์ของคุณเองแทนการสมัครสมาชิก
- DeepSeek Harness: ผู้ให้บริการของคุณเองผ่าน JoinGonka Gateway
- MiniMax Code: MiniMax Agent ที่ใช้คีย์ของคุณเองผ่าน Gonka
- Warp + JoinGonka Gateway — เอเจนต์เทอร์มินัลบน endpoint ของคุณเอง
- Trae + JoinGonka Gateway — โมเดลเครือข่าย Gonka ใน AI-IDE
- Cherry Studio + JoinGonka Gateway — ไคลเอนต์ AI บนเดสก์ท็อป
- omp (Oh My Pi) + JoinGonka Gateway: เอเจนต์พร้อมบทบาทโมเดล
- OpenHands + JoinGonka Gateway: ตัวแทนบน Endpoint ของคุณเอง
- Qwen Code หลังจากปิดบริการ qwen-oauth: การทำงานผ่าน JoinGonka Gateway
- Goose + JoinGonka Gateway: ผู้ให้บริการของคุณและคีย์ใน keyring
- Crush + JoinGonka Gateway: เอเจนต์ Charm บนโมเดลของเครือข่าย Gonka
- Zoo Code + JoinGonka Gateway: ย้ายจาก Roo Code ไปยังโมเดล Gonka
- Kimi Code CLI: เอเจนต์ของ Moonshot AI บนคีย์ของคุณผ่าน Gonka
- Factory Droid + JoinGonka Gateway: BYOK บนโมเดลเครือข่าย Gonka
- MiMo Code + JoinGonka Gateway: Xiaomi Agent บนโมเดลเครือข่าย Gonka
เครื่องมือ
Crush + JoinGonka Gateway: เอเจนต์ Charm บนโมเดลของเครือข่าย Gonka
Crush คือเอเจนต์เขียนโค้ดผ่านเทอร์มินัลจาก Charm ซึ่งเป็นทีมที่สร้างไลบรารีสำหรับคอนโซลอินเทอร์เฟซที่ใช้ในซอฟต์แวร์นับหมื่นโปรแกรม มันสามารถอ่านและแก้ไขไฟล์โปรเจกต์ เรียกใช้คำสั่ง ดึงบริบทจาก Language Server (LSP) เชื่อมต่อเครื่องมือภายนอกผ่าน MCP และสามารถเปลี่ยนโมเดลระหว่างเซสชันได้โดยไม่สูญเสียบริบท ใช้งานได้บนเทอร์มินัลของ macOS, Linux, Windows รวมถึง Android และ BSD; ใช้ใบอนุญาต FSL-1.1-MIT โปรเจกต์นี้มีที่มาที่น่าสนใจ: ที่เก็บข้อมูล opencode-ai/opencode มีความเชื่อมโยงโดยตรงกับ Crush ซึ่งผู้พัฒนาคนแรกและทีม Charm เป็นผู้สานต่อโปรเจกต์นี้
Crush รองรับผู้ให้บริการภายนอกสองประเภท คือที่รองรับ API ของ OpenAI และ Anthropic JoinGonka Gateway เชื่อมต่อได้ในรูปแบบ openai-compat ด้วยคำสั่งติดตั้งเดียวหรือเพิ่มบรรทัดคอนฟิกเพียงไม่กี่บรรทัด หลังจากนั้นเอเจนต์จะทำงานบนโมเดลของเครือข่ายกระจายศูนย์ Gonka ได้แก่ DeepSeek V4 Flash, GLM-5.3 Flash และ MiniMax M2.7 ในราคาเดียวกันคือ $0.0069 ต่อล้านโทเค็นขาเข้า
มีสองสิ่งที่ควรรู้เกี่ยวกับ Crush ก่อนเริ่มใช้งานครั้งแรก: มันจะจัดเก็บโมเดลไว้ในสองสล็อตคือ large และ small และโมเดลที่เลือกในอินเทอร์เฟซจะถูกบันทึกไว้ในไฟล์สถานะแยกต่างหากซึ่งมีลำดับความสำคัญสูงกว่าไฟล์คอนฟิก ซึ่งมีส่วนอธิบายแยกไว้เฉพาะ คำสั่งและข้อความด้านล่างนี้ได้รับการตรวจสอบจากการใช้งานจริงของ Crush 0.96.1 ผ่านเกตเวย์เมื่อวันที่ 23 กันยายน 2026 หลังจากยืนยันที่อยู่แล้ว บัญชีของคุณจะได้รับ 3M โทเค็นฟรี ซึ่งเพียงพอสำหรับการลองทำทั้งหมดนี้ด้วยตัวเอง
เริ่มต้นอย่างรวดเร็ว: การติดตั้งและคำสั่งเดียว
ขั้นตอนที่ 1: ติดตั้ง Crush วิธีอย่างเป็นทางการจาก README ของโปรเจกต์:
# Homebrew
brew install charmbracelet/tap/crush
# npm
npm install -g @charmland/crush
# Arch Linux
yay -S crush-bin
# Windows
winget install charmbracelet.crush
# Go
go install github.com/charmbracelet/crush@latestในหน้าเดียวกันยังอธิบายถึงรีโพซิทอรีแพ็กเกจสำหรับ Debian, Ubuntu, Fedora และ RHEL, Nix และ Scoop ส่วนในหน้าปล่อยเวอร์ชันก็มีไบนารีสำเร็จรูปให้ดาวน์โหลด ตรวจสอบด้วยคำสั่ง crush --version จะได้ข้อความตอบกลับในรูปแบบ crush version v0.96.1
ขั้นตอนที่ 2: ขอคีย์ ลงทะเบียนที่ gate.joingonka.ai/register ยืนยันอีเมล แล้วสร้างคีย์ที่ขึ้นต้นด้วย jg- ในส่วน «คีย์ API» คีย์เดียวและยอดคงเหลือเดียวใช้ได้กับทุกโมเดลในเครือข่าย
ขั้นตอนที่ 3: รันตัวติดตั้ง
npx @joingonka/setup --tool crushตัวติดตั้งจะถามหาคีย์ — ไม่ส่งผ่านอาร์กิวเมนต์บรรทัดคำสั่งเพื่อไม่ให้ค้างอยู่ในประวัติเชลล์ — และจะทำสี่อย่างด้วยกัน:
- เขียนผู้ให้บริการ
joingonkaลงใน~/.config/crush/crush.json: ชนิดopenai-compat, ที่อยู่เกตเวย์, คีย์แบบข้อความธรรมดา และสามโมเดลของเครือข่ายพร้อมหน้าต่างบริบท เพดานคำตอบ และราคาต่อหนึ่งล้านโทเคน ซึ่งตัวติดตั้งดึงมาจากเกตเวย์แบบสด ๆ ในตอนติดตั้ง — Crush ใช้ข้อมูลเหล่านี้คำนวณค่าใช้จ่ายของเซสชัน ไฟล์จะได้สิทธิ์600; - กำหนดโมเดล: ช่อง large ใช้ DeepSeek V4 Flash, ช่อง small ใช้ MiniMax M2.7 ส่วน GLM-5.3 Flash จะยังอยู่ในรายการให้เลือกเอง ตัวติดตั้งจะทำเช่นนี้เฉพาะเมื่อช่อง large ว่างเปล่าหรือชี้ไปที่โมเดลของเราที่ออกจากเครือข่ายไปแล้ว หากเป็นการเลือกอื่นจะคงไว้ และจะแสดงคำแนะนำวิธีสลับในเอาต์พุต;
- ตรวจสอบว่าการเลือกจะมีผลจริง: โมเดลที่เลือกจากอินเทอร์เฟซของ Crush จะถูกเก็บไว้ในไฟล์สถานะ ซึ่งเขียนทับไฟล์คอนฟิก — เรื่องนี้อยู่ในหัวข้อว่าด้วย large และ small;
- สำรองข้อมูล ผู้ให้บริการรายอื่นและการตั้งค่าอื่น ๆ จะคงไว้เหมือนเดิม แล้วจบด้วยการยิงคำขอสดไปยังเกตเวย์ เพื่อทดสอบคีย์ ที่อยู่ และโมเดลทันที
โมเดลอื่นกำหนดได้ด้วยแฟล็ก --model พร้อมตัวย่อ deepseek, glm หรือ minimax; โมเดลที่ระบุไว้อย่างชัดเจนจะถูกเขียนลงเสมอ ตัวติดตั้งรองรับไดเรกทอรีที่ไม่ได้มาตรฐานเหมือนกับตัว Crush เอง: CRUSH_GLOBAL_CONFIG สำหรับคอนฟิก, CRUSH_GLOBAL_DATA สำหรับไฟล์สถานะ รวมทั้ง XDG_CONFIG_HOME และ XDG_DATA_HOME สำหรับเซิร์ฟเวอร์และสคริปต์มีโหมดไม่ถามคำถาม โดยดึงคีย์จากตัวแปรสภาพแวดล้อม:
JOINGONKA_API_KEY=jg-your-key npx @joingonka/setup --tool crush --model glm --non-interactiveรูปแบบหลักของ Crush ตอนนี้กลายเป็น crushrc แล้ว แต่ตัวติดตั้งยังเขียน crush.json: ทุกเวอร์ชันเข้าใจไฟล์นี้ หากคุณมี crushrc อยู่แล้ว Crush จะรวมทั้งสองไฟล์เข้าด้วยกัน เมื่อคีย์ซ้ำกัน crushrc จะชนะ และตัวติดตั้งจะไม่แตะต้องไฟล์นั้น
การตั้งค่าด้วยตนเอง: crush.json หรือ crushrc
ทุกอย่างที่ตัวติดตั้งทำ สามารถเขียนด้วยมือได้ นี่คือ ~/.config/crush/crush.json ที่ใช้งานได้จริง — ไฟล์นี้เราได้รันผ่าน gateway แล้ว:
{
"$schema": "https://charm.land/crush.json",
"providers": {
"joingonka": {
"name": "JoinGonka (Gonka)",
"type": "openai-compat",
"base_url": "https://gate.joingonka.ai/v1",
"api_key": "jg-your-key",
"models": [
{ "id": "deepseek-ai/DeepSeek-V4-Flash-0731", "name": "DeepSeek V4 Flash (Gonka)",
"context_window": 380000, "default_max_tokens": 32768,
"can_reason": true, "supports_attachments": false },
{ "id": "MiniMaxAI/MiniMax-M2.7", "name": "MiniMax M2.7 (Gonka)",
"context_window": 200000, "default_max_tokens": 8192,
"can_reason": false, "supports_attachments": false },
{ "id": "zai-org/GLM-5.3-Flash", "name": "GLM-5.3 Flash (Gonka)",
"context_window": 390000, "default_max_tokens": 8192,
"can_reason": true, "supports_attachments": false }
]
}
},
"models": {
"large": { "provider": "joingonka", "model": "deepseek-ai/DeepSeek-V4-Flash-0731" },
"small": { "provider": "joingonka", "model": "MiniMaxAI/MiniMax-M2.7" }
}
}| ฟิลด์ | ค่า | สิ่งที่ต้องรู้ |
|---|---|---|
type | openai-compat | ประเภทสำหรับบริการภายนอกที่ใช้ API เข้ากันได้กับ OpenAI ส่วนประเภท openai เอกสารของ Crush สงวนไว้สำหรับคำขอที่ส่งผ่าน OpenAI โดยตรง |
base_url | https://gate.joingonka.ai/v1 | ต้องมี /v1 ต่อท้าย เพราะ Crush จะเติมพาธ /chat/completions ให้เอง |
api_key | คีย์ของคุณ jg-… | Crush จะแทนค่าผ่าน shell substitution ดังนั้นแทนที่จะใส่คีย์ตรง ๆ ก็เขียนเป็น $JOINGONKA_API_KEY ได้ — แต่ตัวแปรต้องถูก export ไว้ในที่ที่รัน Crush |
context_window | หน้าต่างบริบทของโมเดล | Crush ใช้ค่านี้แสดงความจุของบริบทที่ใช้ไป และตัดสินใจว่าถึงเวลาบีบอัดประวัติหรือยัง |
default_max_tokens | เพดานคำตอบ | จะถูกส่งไปในทุกคำขอเป็น max_tokens สำหรับโมเดลที่คิดวิเคราะห์ได้ งบนี้รวมการคิดวิเคราะห์ด้วย |
Crush ยอมรับเฉพาะ JSON แบบเคร่งครัดเท่านั้น: มีคอมเมนต์หรือจุลภาคเกินมา — ก็ไม่สตาร์ท ฟิลด์ราคา (cost_per_1m_in, cost_per_1m_out และอีกสองฟิลด์สำหรับแคช) จำเป็นแค่กับตัวนับค่าใช้จ่าย: ตัวติดตั้งจะใส่ราคาสดของ gateway ลงไป แต่ถ้าไม่มีฟิลด์เหล่านี้ Crush ก็ทำงานได้และแสดงเป็นศูนย์ — เพียงแต่เอดิเตอร์ที่ใช้สคีมาจาก $schema จะไฮไลต์ว่าเป็นฟิลด์บังคับ
โปรไวเดอร์เดียวกันในรูปแบบ crushrc — นี่คือ Bash ธรรมดาที่มีคำสั่งในตัวของ Crush ไฟล์ ~/.config/crush/crushrc:
provider add joingonka \
--name "JoinGonka (Gonka)" \
--type openai-compat \
--base-url "https://gate.joingonka.ai/v1" \
--api-key "${JOINGONKA_API_KEY:?set JOINGONKA_API_KEY}"
model add joingonka/deepseek-ai/DeepSeek-V4-Flash-0731 \
--name "DeepSeek V4 Flash (Gonka)" \
--context-window 380000 --default-max-tokens 32768 --can-reason true
model add joingonka/MiniMaxAI/MiniMax-M2.7 \
--name "MiniMax M2.7 (Gonka)" \
--context-window 200000 --default-max-tokens 8192
model add joingonka/zai-org/GLM-5.3-Flash \
--name "GLM-5.3 Flash (Gonka)" \
--context-window 390000 --default-max-tokens 8192 --can-reason true
model large joingonka/deepseek-ai/DeepSeek-V4-Flash-0731
model small joingonka/MiniMaxAI/MiniMax-M2.7ในที่นี้โมเดลจะถูกอ้างถึงในรูปแบบ provider/model-id: ก่อนสแลชตัวแรกคือชื่อโปรไวเดอร์ หลังจากนั้นคือไอดีของเครือข่ายตามจริง รูปแบบ ${JOINGONKA_API_KEY:?…} ช่วยให้คีย์ไม่ต้องอยู่ในไฟล์ แต่ถ้าตัวแปรไม่ได้ถูก export ไว้ Crush ก็จะไม่สตาร์ท — เกิดข้อผิดพลาดตั้งแต่ตอนสตาร์ทยังดีกว่าส่งคำขอด้วยคีย์ว่าง
โมเดล large และ small รวมถึงไฟล์สถานะ
โมเดลใน Crush ไม่ได้เลือกเพียงโมเดลเดียวสำหรับทุกอย่าง แต่จะเลือกสำหรับสองสล็อต:
| สล็อต | สิ่งที่ทำงานบนสล็อต | สิ่งที่ตัวติดตั้งตั้งค่าไว้ | วิธีเปลี่ยน |
|---|---|---|---|
large | ตัวแทนหลัก: การดำเนินการทั้งหมดที่มีการอ่านและแก้ไขไฟล์และคำสั่ง | DeepSeek V4 Flash: หน้าต่าง 380K และขีดจำกัดการตอบสนองที่ใหญ่ที่สุดในเครือข่ายคือ 32768 | ctrl+l ในอินเทอร์เฟซ, -m ใน crush run, models.large ใน config |
small | งานเสริม: ชื่อเซสชันและตัวแทนย่อยที่ค้นหาในเครือข่ายและอ่านหน้าเว็บ หากโมเดลขนาดเล็กไม่สามารถตั้งชื่อได้ Crush จะทำซ้ำคำขอด้วยโมเดลใหญ่ | MiniMax M2.7: มีความจุมากที่สุดในเครือข่าย | --small-model ใน crush run, models.small ใน config, model small ใน crushrc |
โมเดลที่สามของเครือข่ายสำหรับการให้เหตุผล GLM-5.3 Flash จะถูกเลือกสำหรับตรรกะที่ซับซ้อน โดยต้องจำไว้ว่าขีดจำกัดการตอบสนองคือ 8192 และบางส่วนจะถูกใช้สำหรับการให้เหตุผล ดูรายละเอียดเพิ่มเติมได้ใน ภาพรวมโมเดล สำหรับการรันหนึ่งครั้ง โมเดลจะถูกกำหนดด้วยชื่อเต็ม: crush run -m joingonka/zai-org/GLM-5.3-Flash "…" ชื่อทั้งหมดที่มีอยู่สามารถพิมพ์ดูได้ด้วย crush models joingonka
ไฟล์สถานะ: โมเดลที่เลือกในอินเทอร์เฟซผ่าน ctrl+l จะไม่ถูกบันทึกโดย Crush ลงใน crush.json แต่จะบันทึกลงในไฟล์สถานะของเครื่อง: ~/.local/share/crush/crush.json หรือใน Windows คือ %LOCALAPPDATA%\crush\crush.json ไฟล์นี้มีความสำคัญเหนือกว่า config ของผู้ใช้และ crushrc: Crush จะอ่านตามลำดับ /etc/crush/crush.json → ~/.config/crush/crush.json → ~/.config/crush/crushrc → ไฟล์สถานะ โดยแต่ละอันจะทับอันก่อนหน้า สิ่งที่อยู่เหนือกว่านั้นคือการตั้งค่าโปรเจกต์เท่านั้น เช่น crush.json หรือ crushrc ในไดเรกทอรีของโปรเจกต์ คุณสามารถดูตำแหน่งไฟล์บนเครื่องของคุณได้ด้วยคำสั่ง crush dirs
ในการทดสอบของเรา เราได้เปิดตัวเลือกโมเดล ซึ่งผู้ให้บริการ "JoinGonka (Gonka)" จะแสดงเครื่องหมาย "✓ Configured" และเราได้เลือก MiniMax M2.7 Crush ตอบกลับว่า "Large model changed to MiniMax M2.7 (Gonka)" และบันทึกลงในไฟล์สถานะ:
{"models":{"large":{"model":"MiniMaxAI/MiniMax-M2.7","provider":"joingonka","max_tokens":8192}}, …}ตอนนี้โมเดลนี้มีความสำคัญกว่าสิ่งที่เขียนไว้ใน crush.json ตัวติดตั้งจะรับรู้สถานการณ์นี้และมีพฤติกรรมที่แตกต่างกันไป:
- ถ้าไม่มี
--modelมันจะไม่แก้ไขไฟล์สถานะ ซึ่งเป็นการตัดสินใจทำงานของคุณ แต่จะแจ้งเตือนว่า Crush จะเริ่มต้นด้วยโมเดลใดจริง ๆ:Heads-up: Crush will still start with joingonka/MiniMaxAI/MiniMax-M2.7, not joingonka/deepseek-ai/DeepSeek-V4-Flash-0731เช่นเดียวกันหากเลือก GLM-5.3 Flash หรือโมเดลของผู้ให้บริการอื่นไว้ในอินเทอร์เฟซ; - ถ้ามี
--modelแบบระบุเจาะจง มันจะแก้ไขเพียงรายการเดียวในไฟล์สถานะคือmodels.largeโดยสำรองข้อมูลไว้ก่อน และจะระบุสิ่งที่เปลี่ยนไป มิฉะนั้นแฟล็กนี้จะไม่มีผล หลังจากการรันนี้ Crush จะเปิดขึ้นด้วยโมเดลที่ระบุไว้ในแฟล็ก
การตรวจสอบ: สิ่งที่ควรเกิดขึ้น
เริ่มต้นด้วยการตรวจสอบว่า Crush มองเห็นผู้ให้บริการหรือไม่:
crush models joingonkaผลลัพธ์ที่ได้คือสามบรรทัด:
joingonka/MiniMaxAI/MiniMax-M2.7
joingonka/deepseek-ai/DeepSeek-V4-Flash-0731
joingonka/zai-org/GLM-5.3-Flashจากนั้นลองรันแบบครั้งเดียวโดยไม่ใช้ส่วนติดต่อผู้ใช้ วางไฟล์ที่มีข้อผิดพลาดชัดเจนไว้ในไดเรกทอรีโปรเจกต์ แล้วสั่งให้มันค้นหาข้อผิดพลาดนั้น:
crush run -q "Read calc.py and tell me in one sentence whether it has a bug."เอเจนต์ควรเรียกเครื่องมืออ่านไฟล์ด้วยตัวเองและตอบตรงประเด็น พร้อมระบุเลขบรรทัด ในการทดสอบของเรา โมเดลทั้งสามตัวในเครือข่ายต่างก็เจอข้อผิดพลาด ใช้เวลาประมาณ 20-40 วินาทีต่องาน แฟล็ก -q ซ่อนตัวบ่งชี้การรอ ในโหมด crush run การเรียกเครื่องมือทั้งหมดจะได้รับการอนุมัติโดยอัตโนมัติ ดังนั้นควรเรียกใช้ในโปรเจกต์ของคุณเอง ในส่วนติดต่อผู้ใช้ปกติ (คำสั่ง crush) โมเดลที่ใช้งานอยู่จะแสดงในแถบสถานะ: ◇ DeepSeek V4 Flash (Gonka) via JoinGonka (Gonka) เซสชันและบันทึกของ Crush จะถูกเก็บไว้ในไดเรกทอรี .crush ของโปรเจกต์ ซึ่งถูกปิดกั้นจาก git ด้วย .gitignore ของตัวเอง แสดงบันทึกได้ด้วย crush logs ในฝั่งเกตเวย์ คำขอจะปรากฏในแดชบอร์ด: ส่วน «การใช้งาน» แยกตาม «ตามโมเดล» และ «ตามคีย์»
หากมีอะไรผิดพลาด โดยปกติแล้วการวินิจฉัยสามารถอ่านได้จากข้อความที่แจ้งโดยตรง:
| สิ่งที่เห็น | ความหมาย | สิ่งที่ต้องทำ |
|---|---|---|
unauthorized: Invalid API key. | เกตเวย์ไม่ยอมรับคีย์ | ตรวจสอบ api_key: ต้องเป็นคีย์เต็ม ไม่มีช่องว่าง หากเป็นการอ้างอิงถึงตัวแปร ตัวแปรนั้นต้องถูก export ในเชลล์นี้ |
invalid JSON in config file …/crush.json | ในไฟล์มีคอมเมนต์ จุลภาคเกิน หรือพิมพ์ผิด | Crush รับเฉพาะ JSON แบบเคร่งครัดเท่านั้น: แก้ไขไฟล์ ตัวติดตั้งไม่ได้ลบคอมเมนต์ให้เอง แต่จะเตือนเกี่ยวกับคอมเมนต์ และจะไม่แตะไฟล์ที่แยกวิเคราะห์ไม่ได้เลย พร้อมระบุสาเหตุ |
failed to load shell config …/crushrc: … exit status 1 | เกิดข้อผิดพลาดใน crushrc ส่วนใหญ่มักเป็นเพราะไม่ได้ตั้งค่าตัวแปรที่มีคีย์ในรูปแบบ ${…:?} | Export ตัวแปรก่อนเรียกใช้ หรือแก้ไขบรรทัดที่สคริปต์ล้มเหลว |
Failed to override models: large model "…" not found | พิมพ์ชื่อโมเดลผิดในแฟล็ก -m | คัดลอกชื่อจากผลลัพธ์ของ crush models joingonka |
too many requests: Model "…" is currently overloaded in the Gonka network (rate limit) | โมเดลมีคิวเต็มในเครือข่ายช่วงเวลาเร่งด่วน | Crush จะส่งคำขอซ้ำโดยเพิ่มเวลาหน่วงขึ้นเรื่อย ๆ — ในการทดสอบของเราประมาณหนึ่งนาที — แล้วจึงยอมแพ้ สลับไปใช้โมเดลอื่นด้วย ctrl+l หรือ -m หรือรอสักครู่ สถานะดูได้ที่ หน้าสถานะ |
| Crush เปิดขึ้นมาด้วยโมเดลอื่นที่ไม่ใช่ที่ตัวติดตั้งแจ้งไว้ | การเลือกจากส่วนติดต่อผู้ใช้ถูกเก็บไว้ในไฟล์สถานะและเขียนทับคอนฟิก | เลือกโมเดลด้วย ctrl+l หรือติดตั้งใหม่ด้วย --model |
402 | ยอดคงเหลือในบัญชีหมด | เติมเงินในส่วน «การเรียกเก็บเงิน» คีย์ยังใช้งานได้ตามปกติ |
ราคาเท่าไหร่
เอเจนท์ใช้โทเค็นต่างจากแชท: ในทุกประโยคที่คุณพิมพ์ Crush จะเพิ่ม System prompt และคำอธิบายเครื่องมือของมันเข้าไป และงานมักใช้เวลาหลายขั้นตอน ในการรันของเรา แต่ละคำขอไปยังโมเดลใช้โทเค็นขาเข้าประมาณ 11,500 โทเค็น และงาน "อ่านไฟล์และหาข้อผิดพลาด" ใช้สองถึงสามคำขอและโทเค็น 23,000-35,000 โทเค็น เกือบทั้งหมดเป็นขาเข้า ดังนั้นราคาต่อโทเค็นจึงสำคัญที่นี่
ผ่าน JoinGonka Gateway โทเค็นมีราคา $0.0069 ต่อล้านที่ขาเข้า และ $0.021 ต่อล้านที่ขาออก - ราคาเท่ากันสำหรับทุกโมเดลในเครือข่ายและดึงข้อมูลจากแหล่งข้อมูลสดบนหน้านี้
| สถานการณ์ | การใช้งาน | ผ่าน Gateway |
|---|---|---|
| งานครั้งเดียว: อ่านไฟล์, หาข้อผิดพลาด | 23-35K โทเค็น | เศษเสี้ยวของเซนต์ |
| หนึ่งวันของการทำงานจริงจัง | 3-7M โทเค็น | ไม่กี่เซนต์ |
| หนึ่งเดือนของการพัฒนาจริงจัง | ~150M โทเค็น | ประมาณหนึ่งดอลลาร์ |
การประเมินในคอลัมน์ขวาอ้างอิงจากราคาในเดือนกันยายน 2026 สำหรับการเปรียบเทียบ - วิธีที่คุณสามารถจ่ายเงินสำหรับโมเดลใน Crush:
| วิธีการ | โมเดลการชำระเงิน | ข้อจำกัด |
|---|---|---|
| Hyper — ผู้ให้บริการอย่างเป็นทางการของ Charm | สมัครสมาชิก, มีระดับฟรี | เงื่อนไขภาษีจากฝั่ง Charm |
| คีย์ของผู้ให้บริการโดยตรง | จ่ายตามโทเค็นตามราคาของผู้ให้บริการ | ยอดค่าใช้จ่ายเพิ่มขึ้นตามความยาวของเซสชัน; ราคาขึ้นอยู่กับโมเดล |
| JoinGonka Gateway | จ่ายตามโทเค็น, ยอดเงินเติมล่วงหน้า | ดูการใช้งานได้ในบัญชี; ไม่มีการสมัครสมาชิกหรือโควตาเดือน |
ตัวนับค่าใช้จ่ายในอินเทอร์เฟซ Crush คำนวณตามฟิลด์ราคาจากไฟล์คอนฟิก ซึ่งจะรวมราคาของเกตเวย์ ณ เวลาที่ติดตั้ง และราคาดอลลาร์ในเครือข่ายจะผันผวนตามอัตราแลกเปลี่ยน GNK ดังนั้นตัวนับจึงเป็นเพียงแนวทางเท่านั้น การใช้งานที่แม่นยำและยอดคงเหลือจะอยู่ในบัญชีผู้ใช้ ในส่วน "Usage" และ "Billing" เหตุผลที่สล็อต large เลือก DeepSeek V4 Flash เป็นค่าเริ่มต้น มีการวิเคราะห์รายละเอียดใน ภาพรวมโมเดล
สิ่งที่ควรพิจารณาในการทำงาน
สิทธิ์การใช้งาน ในอินเทอร์เฟซของ Crush ค่าเริ่มต้นจะขออนุญาตก่อนเรียกใช้เครื่องมือ แฟล็ก --yolo ปิดคำถามทั้งหมดในคราวเดียว ส่วนเครื่องมือที่เชื่อถือแบบเจาะจงจะระบุไว้ในคอนฟิก:
# crushrc
permissions allow view ls grep
# crush.json
"permissions": { "allowed_tools": ["view", "ls", "grep"] }ขอเตือนว่า crush run อนุมัติทุกอย่างเอง นี่เป็นคุณสมบัติของ Crush ไม่ได้ขึ้นอยู่กับผู้ให้บริการโมเดล
เวลาหมดอายุของคำขอ Crush จะตัดคำขอทิ้ง หากไม่มีเศษข้อความตอบกลับจากโมเดลมาเป็นเวลานาน ในเวอร์ชัน 0.96.1 คือความเงียบสองนาที (เอกสารระบุ 60 วินาที แต่ในโค้ดและการทดสอบของเราคือสองนาที) พิงก์บริการที่เกตเวย์ส่งเพื่อรักษาการเชื่อมต่อไม่รีเซ็ตตัวนับนี้ — เราตรวจสอบบนสแตนด์ท้องถิ่นแล้ว ส่วนเกตเวย์ในช่วงเวลาที่มีโหลดสูงจะรอโทเคนแรกจากเครือข่ายได้ถึง 150 วินาที ดังนั้นควรเพิ่มระยะเผื่อ:
# crushrc
option request-timeout 300
# crush.json
"options": { "request_timeout": 300 }ลายเซ็นในคอมมิต คอมมิตและพูลรีเควสที่ Crush สร้างขึ้นโดยค่าเริ่มต้นจะมีบรรทัด Assisted-by: Crush:<model> และข้อความ "Generated with Crush" หากไม่ต้องการ:
# crushrc
option attribution-trailer-style none
option attribution-generated-with false
# crush.json
"options": { "attribution": { "trailer_style": "none", "generated_with": false } }เมตริก Crush ส่งสถิติการใช้งานแบบไม่ระบุตัวตนให้นักพัฒนา — เฉพาะเมตาดาตา ไม่มีพรอมป์หรือคำตอบ ปิดได้ด้วยตัวแปร CRUSH_DISABLE_METRICS=1 หรือ DO_NOT_TRACK=1 ส่วนเกตเวย์ในฝั่งของตนไม่เก็บเนื้อหาพรอมป์และคำตอบ — ในสถิติเหลือเพียงยอดรวมการใช้จ่าย
คอนฟิกคือโค้ด ทั้ง crushrc และ crush.json Crush รันด้วยสิทธิ์ของเชลล์ของคุณ: $(…) ในฟิลด์คีย์จะทำงานตอนโหลด และ crushrc ของโปรเจกต์จะทำงานทันทีที่คุณเปิด Crush ในไดเรกทอรีนั้น อย่ารันเอเจนต์ในรีโพของคนอื่นโดยไม่读过คอนฟิกของมัน
npx @joingonka/setup --tool crush — หรือใช้บล็อก providers.joingonka ใน ~/.config/crush/crush.json: ระบุประเภท openai-compat, ที่อยู่ https://gate.joingonka.ai/v1, คีย์ jg-…, และโมเดลที่มีค่า context_window และ default_max_tokens ที่ถูกต้อง สิ่งเดียวกันนี้สามารถเขียนได้โดยใช้คำสั่ง provider add และ model add หลายบรรทัดใน crushrc สล็อต large รองรับ DeepSeek V4 Flash, สล็อต small รองรับ MiniMax M2.7, ส่วน GLM-5.3 Flash เหมาะสำหรับตรรกะที่ซับซ้อน กับดักที่สำคัญคือไฟล์สถานะ: โมเดลที่เลือกด้วย ctrl+l จะมีความสำคัญเหนือไฟล์กำหนดค่า ดังนั้นตัวติดตั้งที่มี --model ระบุชัดเจนจะแก้ไขไฟล์นั้นด้วย ตรวจสอบความถูกต้องด้วย crush models joingonka และ crush run; ควรเพิ่มค่า timeout ของคำขอเป็น 300 วินาที