ส่วนของฐานความรู้ ▾

การนำทาง

▸ เริ่มต้นที่นี่ ตามบทบาท

หมวดหมู่

เครื่องมือ 52
อภิธานศัพท์ 12

เครื่องมือ

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" }
  }
}
ฟิลด์ค่าสิ่งที่ต้องรู้
typeopenai-compatประเภทสำหรับบริการภายนอกที่ใช้ API เข้ากันได้กับ OpenAI ส่วนประเภท openai เอกสารของ Crush สงวนไว้สำหรับคำขอที่ส่งผ่าน OpenAI โดยตรง
base_urlhttps://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 และขีดจำกัดการตอบสนองที่ใหญ่ที่สุดในเครือข่ายคือ 32768ctrl+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 ในไดเรกทอรีนั้น อย่ารันเอเจนต์ในรีโพของคนอื่นโดยไม่读过คอนฟิกของมัน

Crush เชื่อมต่อกับ JoinGonka Gateway ด้วยคำสั่งเดียว — 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 วินาที

ต้องการเรียนรู้เพิ่มเติมหรือไม่?

สำรวจส่วนอื่นๆ หรือเริ่มรับ GNK ทันที

รับคีย์และโทเค็นฟรี →