> สำหรับเอเจนต์ AI: คำแนะนำการตั้งค่าทีละขั้นตอน — [`/docs/agents.md`](https://gate.joingonka.ai/docs/agents.md), ดัชนีเอกสาร — [`/llms.txt`](https://gate.joingonka.ai/llms.txt).

# สำหรับ AI Agent

วิธีมอบหมายการเชื่อมต่อให้เอเจนต์ AI: พรอมป์ต์สำเร็จรูปสำหรับเครื่องมือใดก็ได้ ด้านล่างนี้ — ที่อยู่เอกสารที่เครื่องอ่านได้ และสกิลที่เอเจนต์ติดตั้งได้ด้วยคำสั่งเดียว

## พร้อมต์สำหรับ Agent

ส่งพร้อมต์นี้ให้ AI Agent ของคุณ มันจะตั้งค่าเครื่องมือตามคำแนะนำด้านล่าง และจะขอคีย์จากคุณ

```text
เชื่อมต่อ เครื่องมือของคุณ เข้ากับ JoinGonka Gateway ซึ่งเป็น API ของเครือข่าย Gonka ที่เข้ากันได้กับ OpenAI และ Anthropic โดยทำตามคำแนะนำที่ https://gate.joingonka.ai/docs/agents.md คีย์เดี๋ยวผมให้เอง: อย่าบันทึกคีย์ลงในไฟล์ในรีโป และอย่าแก้ไขตัวแปรสภาพแวดล้อมส่วนกลาง สุดท้ายให้ทดสอบการเชื่อมต่อด้วยคำขอสั้น ๆ แล้วรายงานผล
```

ด้านล่างคือคำแนะนำ Agent จะได้รับเป็น Markdown ที่ [/docs/agents.md](https://gate.joingonka.ai/docs/agents.md)

## กฎ

- คีย์ API สร้างโดยคน — ในแดชบอร์ดที่ [gate.joingonka.ai](https://gate.joingonka.ai/keys) อย่าสมัครบัญชีหรือสร้างคีย์เอง ให้ขอคีย์จากผู้ใช้
- เก็บคีย์ไว้ในตัวแปรสภาพแวดล้อม `JOINGONKA_API_KEY` ของเซสชันเทอร์มินัลของคุณ อย่าเขียนลงไฟล์ที่อยู่ใน git อย่า commit และอย่าแสดงในรายงาน
- อย่าเปลี่ยนตัวแปรส่วนกลาง `OPENAI_*` และ `ANTHROPIC_*` — ทั้งในโปรไฟล์เชลล์หรือในระบบ: เครื่องมืออื่นของผู้ใช้จะอ่านค่าจากที่นั่น คีย์และที่อยู่จะถูกเขียนลงในคอนฟิกของเครื่องมือนั้น ๆ — ตัวติดตั้งจะทำเช่นนี้

## ข้อเท็จจริง

- Base URL สำหรับไคลเอนต์ OpenAI API: `https://gate.joingonka.ai/v1`
- Base URL สำหรับไคลเอนต์ Anthropic API โดยไม่มี `/v1`: `https://gate.joingonka.ai`
- คีย์ส่งผ่านเฮดเดอร์ `Authorization: Bearer jg-…` หรือ `x-api-key: jg-…`
- คีย์สำหรับเรียกใช้โมเดลขึ้นต้นด้วย `jg-`; คีย์จัดการ `gm-` ไม่สามารถเข้าถึงโมเดลได้
- โมเดลที่แนะนำ: `MiniMaxAI/MiniMax-M2.7`
- รายการโมเดลที่ใช้ได้: `GET https://gate.joingonka.ai/v1/models`
- ต่อคีย์ — สูงสุด 120 คำขอต่อนาที เกินขีดจำกัดจะได้การตอบกลับ 429 พร้อมส่วนหัว `Retry-After` ขีดจำกัดและ timeout อยู่ในคำตอบ `GET /v1/capabilities` ฟิลด์ `limits`

## การตั้งค่า

ค้นหาเครื่องมือของผู้ใช้ในตารางท้ายส่วนนี้ หากมีค่า `--tool` — ตั้งค่าด้วยตัวติดตั้ง หากไม่มี — ทำด้วยตนเองตามคู่มือ

### ผ่านตัวติดตั้ง

คำสั่งเดียวไม่ต้องตอบคำถาม: คีย์ — จากตัวแปรสภาพแวดล้อม โมเดล — ผ่านแฟล็ก ตัวติดตั้งจะเขียนคอนฟิกของเครื่องมือ เก็บสำเนาไฟล์เดิม และตรวจสอบการเชื่อมต่อด้วยการเรียกไปยังเกตเวย์

```bash
JOINGONKA_API_KEY=<key> npx -y @joingonka/setup --tool <id> --model MiniMaxAI/MiniMax-M2.7 --non-interactive
```

| แฟล็ก | ทำอะไร |
| --- | --- |
| `--tool <id>` | เครื่องมือที่จะตั้งค่า — ค่าจากตารางเครื่องมือ |
| `--model <id>` | รหัสโมเดล: ที่แนะนำ — `MiniMaxAI/MiniMax-M2.7` ที่มีทั้งหมด — `GET /v1/models` |
| `--non-interactive` | ไม่ต้องตอบคำถาม: คีย์จะถูกดึงจาก `JOINGONKA_API_KEY` |
| `--scope local` | คอนฟิกในโปรเจกต์ปัจจุบัน ไม่ใช่ในโฮมไดเรกทอรี เฉพาะ Claude Code เท่านั้น; ไฟล์คอนฟิกจะถูกเพิ่มใน `.gitignore` |
| `--no-verify` | ไม่ต้องตรวจสอบการเชื่อมต่อหลังเขียนคอนฟิก |

| รหัสออก | หมายความว่า |
| --- | --- |
| `0` | เสร็จสิ้น: เขียนคอนฟิกแล้ว คำขอตรวจสอบผ่าน หากตรวจสอบไม่ได้เนื่องจากเครือข่ายหรือยอดคงเหลือ ตัวติดตั้งจะแสดงคำเตือนแต่ออกด้วยรหัส 0 เช่นกัน — แจ้งให้ผู้ใช้ทราบ |
| `1` | การตั้งค่าไม่สำเร็จ สาเหตุอยู่ในเอาต์พุต: ตัวอย่างเช่น ค่า `--tool` ไม่รู้จัก `JOINGONKA_API_KEY` ไม่ได้ตั้งไว้ หรือคีย์ไม่ได้ขึ้นต้นด้วย `jg-` |
| `2` | เขียนคอนฟิกแล้ว แต่คำขอตรวจสอบไม่ผ่าน: ตรวจสอบคีย์และรหัสโมเดล |

หากเครื่องมือเปิดอยู่ ให้รีสตาร์ท: คอนฟิกจะถูกอ่านเมื่อเริ่มต้น

### ด้วยตนเอง

สำหรับเครื่องมือที่ไม่มีตัวติดตั้ง เปิดคู่มือ (ลิงก์ในตารางด้านล่าง) และตั้งค่าสามอย่าง:

- ที่อยู่ฐาน — `https://gate.joingonka.ai/v1` สำหรับไคลเอนต์ OpenAI API หรือ `https://gate.joingonka.ai` สำหรับไคลเอนต์ Anthropic API;
- คีย์ — ในช่องคีย์ API ในตั้งค่าของเครื่องมือ;
- โมเดล — `MiniMaxAI/MiniMax-M2.7` หรือตัวอื่นจาก `GET /v1/models`

### เครื่องมือและคู่มือ

| เครื่องมือ | `--tool` |
| --- | --- |
| [Cursor](https://joingonka.ai/th/knowledge/cursor/) | `cursor` |
| [Claude Code](https://joingonka.ai/th/knowledge/claude-code/) | `claude-code` |
| [OpenClaw](https://joingonka.ai/th/knowledge/openclaw/) | `openclaw` |
| [OpenCode](https://joingonka.ai/th/knowledge/opencode/) | `opencode` |
| [Continue](https://joingonka.ai/th/knowledge/continue-dev/) | `continue` |
| [Cline](https://joingonka.ai/th/knowledge/cline/) | `cline` |
| [Aider](https://joingonka.ai/th/knowledge/aider/) | `aider` |
| [LangChain](https://joingonka.ai/th/knowledge/langchain/) | — |
| [n8n](https://joingonka.ai/th/knowledge/n8n/) | — |
| [Open WebUI](https://joingonka.ai/th/knowledge/open-webui/) | — |
| [LibreChat](https://joingonka.ai/th/knowledge/librechat/) | — |
| [Hermes](https://joingonka.ai/th/knowledge/hermes/) | `hermes` |
| [Kilo Code](https://joingonka.ai/th/knowledge/kilo-code/) | `kilo` |
| [Roo Code](https://joingonka.ai/th/knowledge/roo-code/) | `roo` |
| [LlamaIndex](https://joingonka.ai/th/knowledge/llamaindex/) | — |
| [PydanticAI](https://joingonka.ai/th/knowledge/pydantic-ai/) | — |
| [Vercel AI SDK](https://joingonka.ai/th/knowledge/vercel-ai-sdk/) | — |
| [TanStack AI](https://joingonka.ai/th/knowledge/tanstack-ai/) | — |
| [ZCode](https://joingonka.ai/th/knowledge/zcode/) | `zcode` |
| [JetBrains](https://joingonka.ai/th/knowledge/jetbrains/) | `jetbrains` |
| [Copilot BYOK](https://joingonka.ai/th/knowledge/copilot-byok/) | `copilot-byok` |
| [Zed](https://joingonka.ai/th/knowledge/zed/) | `zed` |
| [Pi](https://joingonka.ai/th/knowledge/pi/) | `pi` |
| [Codex CLI](https://joingonka.ai/th/knowledge/codex/) | `codex` |
| [DeepSeek Harness](https://joingonka.ai/th/knowledge/deepseek-harness/) | — |
| [MiniMax Code](https://joingonka.ai/th/knowledge/minimax-code/) | `minimax-code` |
| [Warp](https://joingonka.ai/th/knowledge/warp/) | — |
| [Trae](https://joingonka.ai/th/knowledge/trae/) | — |
| [Cherry Studio](https://joingonka.ai/th/knowledge/cherry-studio/) | — |
| [omp (Oh My Pi)](https://joingonka.ai/th/knowledge/omp/) | `omp` |
| [OpenHands](https://joingonka.ai/th/knowledge/openhands/) | — |
| [Qwen Code](https://joingonka.ai/th/knowledge/qwen-code/) | `qwen-code` |
| [Goose](https://joingonka.ai/th/knowledge/goose/) | `goose` |
| [Crush](https://joingonka.ai/th/knowledge/crush/) | `crush` |
| [Zoo Code](https://joingonka.ai/th/knowledge/zoo-code/) | `zoo` |
| [Kimi Code](https://joingonka.ai/th/knowledge/kimi-code/) | `kimi-code` |
| [Factory Droid](https://joingonka.ai/th/knowledge/factory-droid/) | `droid` |
| [MiMo Code](https://joingonka.ai/th/knowledge/mimo-code/) | `mimo-code` |

## การตรวจสอบ

ตรวจสอบคีย์ — คำขอยอดคงเหลือ: ไม่ใช้โทเค็น คีย์ดึงจาก `JOINGONKA_API_KEY`:

```bash
curl -s https://gate.joingonka.ai/api/balance \
  -H "Authorization: Bearer $JOINGONKA_API_KEY"
```

ตรวจสอบที่อยู่ คีย์ และโมเดล — คำขอสั้นไปยังโมเดล:

```bash
curl -s https://gate.joingonka.ai/v1/chat/completions \
  -H "Authorization: Bearer $JOINGONKA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "MiniMaxAI/MiniMax-M2.7", "messages": [{"role": "user", "content": "Say OK"}], "max_tokens": 32}'
```

การตอบกลับ `200` พร้อมข้อความจากโมเดล — การเชื่อมต่อทำงานได้ ตัวติดตั้งจะตรวจสอบเช่นนี้เอง: หลังจากนั้นแค่รหัสออก 0 ก็เพียงพอ

## หากมีปัญหา

ข้อผิดพลาดจะมาในฟิลด์ `error` ของเนื้อหาการตอบกลับ — พร้อมประเภทและข้อความสาเหตุ

| การตอบกลับ | สิ่งที่ต้องทำ |
| --- | --- |
| `401 authentication_error` | คีย์ไม่ได้รับการยอมรับ ตรวจสอบว่าคัดลอกมาทั้งหมดและส่งใน `Authorization: Bearer` หรือ `x-api-key`; คีย์ใหม่สร้างโดยผู้ใช้ |
| `402 insufficient_funds` | ยอดคงเหลือไม่มีเงิน แจ้งผู้ใช้: เติมยอดได้ในแดชบอร์ด |
| `402 child_key_limit_exceeded` | ขีดจำกัดของคีย์ลูกหมดแล้ว ต้องใช้คีย์อื่นหรือขีดจำกัดที่มากขึ้น — เจ้าของคีย์เป็นผู้ตัดสินใจ |
| `403 forbidden` | นี่คือคีย์จัดการ `gm-`: ไม่สามารถเข้าถึงโมเดลได้ ต้องใช้คีย์ `jg-` |
| `400 invalid_request_error` | คำขอผิดพลาด หากไม่พบโมเดล ข้อความข้อผิดพลาดจะมีรายการรหัสที่มีอยู่ — เลือกจากที่นั่นหรือจาก `GET /v1/models` |
| `404 model_not_found` | ไม่มีโมเดลนี้ในขณะนี้ — เลือกตัวอื่นจาก `GET /v1/models` |
| `429` | คำขอมากเกินไปหรือเครือข่ายไม่ว่าง รอตามจำนวนวินาทีที่ระบุในส่วนหัว `Retry-After` แล้วลองใหม่ |
| `503 model_unavailable` | เครือข่ายไม่ให้บริการโมเดลนี้ในขณะนี้ เปลี่ยนไปใช้โมเดลจากข้อความข้อผิดพลาดหรือตัวอื่นจาก `GET /v1/models` |
| `504 upstream_timeout` | เครือข่ายไม่เริ่มตอบกลับทันเวลา ลองคำขออีกครั้ง; สำหรับคำตอบยาว ๆ ให้เปิด `stream: true` |
| `502` | เกิดข้อขัดข้องที่เกตเวย์หรือเครือข่าย — ไม่เกี่ยวกับคีย์ ลองใหม่ภายหลัง; สถานะเครือข่ายอยู่ที่หน้า [สถานะเครือข่าย](https://gate.joingonka.ai/th/status) |

รหัสการตอบกลับและขีดจำกัดทั้งหมดอยู่ในส่วน [ข้อผิดพลาดและขีดจำกัด](https://gate.joingonka.ai/th/docs/errors)

## รายงาน

ในตอนท้ายแจ้งผู้ใช้:

- เครื่องมือใดถูกตั้งค่าและไฟล์คอนฟิกใดถูกเขียน (เส้นทางจะแสดงโดยตัวติดตั้ง สำเนาไฟล์เดิมอยู่ข้าง ๆ);
- ที่อยู่ฐานและรหัสโมเดล;
- ผลการตรวจสอบ: รหัสตอบกลับและคำตอบของโมเดล — หรือเหตุผลที่ตรวจสอบไม่ได้;
- สิ่งที่ผู้ใช้ยังต้องทำเอง เช่น รีสตาร์ทเครื่องมือหรือเติมยอดคงเหลือ

อย่าใส่คีย์ลงในรายงาน

## ที่อยู่สำหรับเครื่อง

| ที่อยู่ | มีอะไรอยู่ที่นั่น |
| --- | --- |
| [/llms.txt](https://gate.joingonka.ai/llms.txt) | ดัชนีเอกสารสำหรับโมเดลภาษา |
| [/llms-full.txt](https://gate.joingonka.ai/llms-full.txt) | เอกสารทั้งหมดในไฟล์เดียว |
| `/docs/<page>.md` | เวอร์ชัน Markdown ของหน้าเอกสาร: ที่อยู่เดิมที่เติม `.md` ต่อท้าย ([/docs/models.md](https://gate.joingonka.ai/docs/models.md)) หรือการร้องขอหน้าพร้อมหัวข้อ `Accept: text/markdown` |
| `GET /v1/capabilities` | ความสามารถของเกตเวย์และขีดจำกัด — ฟิลด์ `limits` |
| `GET /v1/models` | โมเดลที่ใช้งานได้ในขณะนี้ |
| `GET /api/pricing` | ราคาต่อโมเดลต่อ 1M โทเคนและค่าคอมมิชชัน |
| `GET /v1/network-status` | สถานะโมเดลและเหตุการณ์ |

## สกิลสำหรับเอเจนต์

สามารถติดตั้งคำแนะนำให้เอเจนต์เป็นสกิล (skill) ได้ — จากนั้นมันจะพร้อมใช้ตลอดเวลาแม้ไม่มีพรอมป์ต์:

```bash
npx skills add https://gate.joingonka.ai
```
