Setelan tool agentic
Tool agentic mengirim isi berkas, hasil perintah, dan seluruh riwayat percakapan di setiap langkah. Prompt sebesar itu bisa butuh puluhan detik sebelum token pertama keluar. Kalau aplikasimu menyerah lebih dulu, request tetap terhitung tetapi kamu tidak menerima apa pun. Setel timeout, stream, retry, dan ukuran konteks seperti di bawah.
Kenapa ini penting
- Request yang putus sebelum jawaban keluar tetap terhitung. Begitu request sampai, server AI langsung memproses seluruh prompt. Kalau aplikasimu memutusnya lebih dulu (timeout, tombol stop, koneksi putus), biaya pemrosesan sudah terjadi, tetapi kamu tidak menerima jawaban.
- Prompt raksasa butuh lebih dari 30 detik sebelum token pertama. Prompt agentic ratusan KB dengan ribuan pesan bisa melewati batas bawaan banyak aplikasi (30 atau 60 detik) sebelum satu token pun keluar.
- Stream menjaga koneksi tetap hidup. Saat stream aktif, server kami langsung mengirim header lalu sinyal keepalive tiap 10 detik selama menunggu jawaban. Yang tetap bisa memutus adalah batas waktu total di aplikasimu, karena itu setel minimal 300 detik.
- Pilih model cepat untuk konteks besar. Untuk sesi panjang atau repo besar, pakai model yang lebih cepat dan simpan model besar untuk langkah yang benar-benar butuh. Bandingkan di halaman Harga.
Pedoman untuk semua tool
- Timeout
- Minimal 300 detik. Perhatikan satuannya: sebagian tool memakai detik (
300), sebagian milidetik (300000). - Stream
- Aktifkan. Tanpa stream, tidak ada data yang mengalir sampai jawaban selesai, jadi proxy dan aplikasi lebih cepat menyerah.
- Retry
- Secukupnya (0–3). Percobaan ulang setelah timeout adalah request baru yang ikut ditagih. Perbaiki timeout dulu, jangan menaikkan retry.
- Konteks
- Jaga tetap kecil. Pakai compact/ringkas otomatis, mulai sesi baru per tugas, dan kecualikan folder besar (node_modules, build, data).
Claude Code
- Base URL & key
- Ikuti panduan Claude Code:
ANTHROPIC_BASE_URL=https://ai.geraikita.com(tanpa /v1) danANTHROPIC_AUTH_TOKEN= key gk- kamu. Variabel bisa ditaruh di blokenvpada~/.claude/settings.json. - Timeout
API_TIMEOUT_MS(milidetik): waktu tunggu header jawaban per percobaan, bawaan 600000 (10 menit). Jangan diturunkan; kalau pernah kamu kecilkan, kembalikan minimal300000.- Stream
- Selalu stream. Tidak ada setelan untuk mematikannya.
- Retry
CLAUDE_CODE_MAX_RETRIES, bawaan 10, termasuk untuk timeout sebelum jawaban mengalir. Untuk prompt besar setel 2–3 supaya satu langkah tidak ditagih berulang kali.- Konteks
/compactmeringkas percakapan,/clearmemulai percakapan baru. Auto-compact aktif bawaan (autoCompactEnabled);CLAUDE_AUTOCOMPACT_PCT_OVERRIDEdengan angka lebih kecil (mis. 60) membuat compact lebih awal.
{
"env": {
"ANTHROPIC_BASE_URL": "https://ai.geraikita.com",
"ANTHROPIC_AUTH_TOKEN": "gk-xxxxxxxx",
"API_TIMEOUT_MS": "600000",
"CLAUDE_CODE_MAX_RETRIES": "3",
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "60"
}
}Cline
- Base URL & key
- Ikuti panduan Cline: provider OpenAI Compatible (Base URL
https://ai.geraikita.com/v1) atau Anthropic dengan Use custom base URLhttps://ai.geraikita.com. - Timeout
- Dokumentasi resmi Cline tidak menyediakan setelan timeout untuk provider OpenAI Compatible maupun Anthropic (Request Timeout hanya untuk Ollama). Supaya token pertama keluar cepat: perkecil konteks dan pilih model yang lebih cepat untuk konteks besar.
- Stream
- Tidak ada setelan stream di dokumentasi resmi; tidak perlu diubah.
- Retry
- Tidak ada setelan retry di dokumentasi resmi.
- Konteks
- Auto Compact meringkas otomatis saat konteks hampir penuh.
/smol(alias/compact) meringkas manual,/newtaskmemindahkan ringkasan ke tugas baru. Isi Context Window size di Model Configuration sesuai model.
Roo Code
- Base URL & key
- Catatan: ekstensi Roo Code resmi dihentikan sejak 15 Mei 2026. Bagi yang masih memakainya: provider OpenAI Compatible, Base URL
https://ai.geraikita.com/v1, API key gk- kamu (sama seperti Cline). - Timeout
roo-cline.apiRequestTimeoutdi settings.json VS Code, dalam detik (bawaan 600, rentang 0–3600, 0 = tanpa batas). Jangan di bawah300.- Stream
- Pastikan Enable streaming di profil OpenAI Compatible tetap tercentang.
- Retry
- Saat Auto-Approve aktif, request gagal diulang otomatis dengan jeda yang makin panjang; tidak ada toggle terpisah.
- Konteks
- Intelligent Context Condensing (Settings → Context): turunkan ambangnya dari bawaan 100% supaya ringkasan jalan lebih awal, atau tekan Condense Context. Kecualikan folder besar lewat
.rooignore.
Kilo Code
- Base URL & key
- Settings → Providers → Custom provider → OpenAI Compatible, Base URL
https://ai.geraikita.com/v1, API key gk- kamu. Bisa juga lewat berkas~/.config/kilo/kilo.jsoncseperti contoh di bawah. - Timeout
options.timeoutdi provider (milidetik) menunggu header dan byte pertama. Bawaannya 300000, tepat di batas; isi600000. Jangan setelchunkTimeoutterlalu kecil.- Stream
- Tidak ada setelan stream di dokumentasi resmi; tidak perlu diubah.
- Retry
- Tidak ada setelan retry di dokumentasi resmi.
- Konteks
compaction.auto(bawaantrue) dan/compact. Wajib isilimit.contextper model (angka lebih kecil = compact lebih awal): tanpa itu auto-compaction tidak berjalan. Kecualikan folder besar lewat.kilocodeignoreatau aturan permission.
{
"provider": {
"geraikita": {
"npm": "@ai-sdk/openai-compatible",
"name": "Geraikita AI",
"options": {
"baseURL": "https://ai.geraikita.com/v1",
"apiKey": "gk-xxxxxxxx",
"timeout": 600000
},
"models": {
"claude-sonnet-5": {
"name": "Claude Sonnet 5",
"limit": { "context": 128000, "output": 16000 }
}
}
}
},
"compaction": { "auto": true }
}Cursor
- Base URL & key
- Cursor Settings → Models → API key OpenAI. Dokumentasi resmi Cursor tidak menjelaskan base URL kustom; bila versi Cursor-mu menampilkan Override OpenAI Base URL, isi
https://ai.geraikita.com/v1. API key sendiri hanya untuk model chat (Tab tetap model bawaan Cursor), dan request lewat server Cursor. - Timeout
- Tidak ada setelan timeout yang bisa diubah di dokumentasi resmi. Alternatifnya: perkecil konteks, mulai chat baru per tugas, dan pilih model cepat supaya token pertama keluar sebelum batas aplikasi.
- Stream
- Diatur Cursor; tidak ada setelan.
- Retry
- Tidak ada setelan retry di dokumentasi resmi.
- Konteks
- Cursor meringkas bagian lama percakapan otomatis saat konteks hampir penuh. Mulai chat baru setiap ganti tugas, dan kecualikan berkas besar lewat
.cursorignore.
OpenCode
- Base URL & key
- Ikuti panduan OpenCode: provider
@ai-sdk/openai-compatibledenganbaseURLhttps://ai.geraikita.com/v1. - Timeout
- Di
provider.geraikita.options(milidetik):headerTimeout(tunggu header, bawaan 300000) danchunkTimeout(jeda antar-potongan stream, bawaan 300000).timeout(batas total) mati secara bawaan; kalau kamu mengisinya, pakai minimal300000. - Stream
- Selalu stream. Tidak ada setelan untuk mematikannya.
- Retry
- Tidak ada setelan retry di dokumentasi resmi. Kalau request sering putus, perbaiki timeout dan perkecil konteks.
- Konteks
compaction.auto(bawaantrue) meringkas sesi otomatis saat konteks penuh./compactmeringkas manual,/newmemulai sesi baru.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"geraikita": {
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "https://ai.geraikita.com/v1",
"apiKey": "{env:GERAIKITA_API_KEY}",
"headerTimeout": 300000,
"chunkTimeout": 300000
}
}
},
"compaction": { "auto": true }
}Continue
- Base URL & key
- Di
config.yaml:provider: openai,apiBase: https://ai.geraikita.com/v1,apiKey= key gk- kamu. - Timeout
requestOptions.timeoutdalam detik (bawaan 7200). Isi minimal300, bukan 300000.- Stream
- Provider
openaiselalu stream. - Retry
- Tidak ada setelan retry di dokumentasi resmi.
- Konteks
defaultCompletionOptions.contextLengthdanmaxTokensmembatasi ukuran konteks dan jawaban. Mulai chat baru per tugas; di Continue CLI ada/compactdan/clear.
models:
- name: Claude Sonnet 5 (Geraikita)
provider: openai
model: claude-sonnet-5
apiBase: https://ai.geraikita.com/v1
apiKey: gk-xxxxxxxx
requestOptions:
timeout: 600 # detik, bukan milidetik
defaultCompletionOptions:
contextLength: 64000 # lebih kecil = riwayat dipangkas
maxTokens: 8192n8n
- Base URL & key
- Credentials OpenAI: isi Base URL
https://ai.geraikita.com/v1dan API Key gk- kamu. Credentials Anthropic: Base URLhttps://ai.geraikita.com. - Timeout
- Node OpenAI Chat Model → Options → Timeout (milidetik). Bawaannya 60000 (60 detik), sering jadi penyebab putus di 60 detik; setel minimal
300000. Node HTTP Request → Options → Timeout juga milidetik. Self-host: jangan setelEXECUTIONS_TIMEOUT(detik) lebih kecil dari itu. - Stream
- AI Agent → Options → Enable Streaming (bawaan aktif; butuh Chat Trigger atau Webhook dengan Response Mode Streaming). Anthropic Chat Model → Stream Responses. OpenAI Chat Model tidak punya opsi stream, jadi andalkan Timeout yang cukup.
- Retry
- OpenAI Chat Model → Options → Max Retries, bawaan 2. Percobaan ulang setelah timeout ikut ditagih; perbaiki Timeout dulu.
- Konteks
- Sub-node Simple Memory → Context Window Length = jumlah interaksi lama yang ikut dikirim. Kecilkan, mis. 5–10.
SDK OpenAI (Python & Node.js)
- Base URL & key
base_url/baseURL=https://ai.geraikita.com/v1,api_key/apiKey= key gk- kamu. Contoh dasar ada di Request pertama.- Timeout
timeout: Python dalam detik, Node.js dalam milidetik. Bawaan SDK 10 menit, aman asal tidak kamu turunkan di bawah 300 detik.- Stream
stream=True(Python) /stream: true(Node.js).- Retry
max_retries/maxRetries, bawaan 2, termasuk mengulang request yang timeout. Untuk prompt besar setel 0–1.- Konteks
- Kirim hanya riwayat yang perlu: potong pesan lama atau ringkas dulu sebelum dikirim.
from openai import OpenAI
client = OpenAI(
base_url="https://ai.geraikita.com/v1",
api_key="gk-xxxxxxxx",
timeout=600.0, # detik
max_retries=1, # percobaan ulang setelah timeout ikut ditagih
)
stream = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "Halo!"}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)SDK Anthropic (Python & Node.js)
- Base URL & key
base_url/baseURL=https://ai.geraikita.com(tanpa /v1, SDK menambah /v1/messages sendiri),api_key/apiKey= key gk- kamu.- Timeout
timeout: Python dalam detik, Node.js dalam milidetik; bawaan 10 menit. SDK menolak request tanpa stream yang diperkirakan lebih dari ±10 menit, jadi pakai stream.- Stream
client.messages.stream(...), ataustream=True/stream: truedimessages.create.- Retry
max_retries/maxRetries, bawaan 2. Untuk prompt besar setel 0–1.- Konteks
- Kirim hanya riwayat yang perlu; batasi
max_tokenssesuai kebutuhan jawaban.
import anthropic
client = anthropic.Anthropic(
base_url="https://ai.geraikita.com", # tanpa /v1
api_key="gk-xxxxxxxx",
timeout=600.0, # detik
max_retries=1, # percobaan ulang setelah timeout ikut ditagih
)
with client.messages.stream(
model="claude-sonnet-5",
max_tokens=4096,
messages=[{"role": "user", "content": "Halo!"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)curl
- Base URL & key
- Header
Authorization: Bearer gk-...kehttps://ai.geraikita.com/v1/chat/completions. Contoh dasar ada di Request pertama. - Timeout
- Tanpa
--max-timecurl tidak membatasi durasi total. Kalau memakainya, isi minimal300(detik). - Stream
"stream": truedi body, plus-N(--no-buffer) supaya potongan jawaban tampil langsung.- Retry
--retrybawaan 0 dan ikut mengulang saat timeout. Jangan menambahkannya untuk prompt besar.- Konteks
- Kamu yang menyusun body: kirim hanya pesan yang perlu.
curl https://ai.geraikita.com/v1/chat/completions \
--max-time 600 -N \
-H "Authorization: Bearer gk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-5","stream":true,"messages":[{"role":"user","content":"Halo!"}]}'Ketentuan penagihan
Request yang dibatalkan dari sisi pembeli (timeout aplikasi, tombol stop, koneksi putus) sebelum jawaban keluar tetap ditagih. Kompensasi output kosong hanya untuk gangguan di sisi kami (jawaban kosong/galat dari server, atau tanpa output ≥60 detik). Berlaku mulai 1 November 2026.
Syarat & Ketentuan Pasal 10Pertanyaan umum
Aplikasiku timeout dan output-nya kosong. Apakah tetap ditagih?
Ya, bila aplikasimu yang memutus sebelum jawaban keluar: server AI sudah memproses prompt-mu. Ketentuan ini tertulis di Syarat & Ketentuan dan berlaku mulai 1 November 2026.
Kapan output kosong dikompensasi?
Saat gangguannya di sisi kami: server membalas jawaban kosong atau galat, atau tidak ada output sama sekali selama 60 detik atau lebih.
Kenapa tidak menaikkan retry saja?
Setiap percobaan ulang adalah request baru. Kalau penyebabnya timeout yang terlalu pendek, retry hanya mengulang tagihan tanpa hasil. Naikkan timeout ke minimal 300 detik dan aktifkan stream.
Prompt-ku sangat besar. Apa yang paling membantu?
Ringkas atau mulai sesi baru, kecualikan folder besar, dan pakai model yang lebih cepat untuk konteks besar. Bandingkan model di halaman Harga.