Kilo Code با یوتاپن — provider سفارشی و kilo.jsonc

افزودن یوتاپن به Kilo Code به‌عنوان Custom provider از نوع OpenAI Compatible، تنظیم limit.context و limit.output در kilo.jsonc و انتخاب Small Model ارزان.

به‌روزرسانی: ۳۱ شهریور ۱۴۰۵

Kilo Code در نسخهٔ ۷ روی هستهٔ opencode بازنویسی شده و در VS Code، JetBrains و ترمینال یک فایل پیکربندی مشترک دارد. یوتاپن را به‌صورت Custom provider اضافه می‌کنی. این صفحه با مستندات رسمی Kilo (نسخهٔ 7.x) بررسی شده است.

افزودن provider از رابط گرافیکی

۱. Settings (چرخ‌دنده) ← تب Providers ← پایین فهرست، دکمهٔ Custom provider. ۲. فرم را پر کن:

فیلدمقدار
Provider IDuttapen (حروف کوچک)
Display nameuttapen
Provider APIOpenAI Compatible
Base URLhttps://api.uttapen.ir/v1
API keyکلید sk-up-… از داشبورد ← کلیدها

۳. بعد از واردکردن آدرس، Kilo مدل‌ها را از GET /v1/models می‌آورد؛ از همان فهرست مدل‌های موردنظرت را انتخاب کن و Submit را بزن.

مستندات Kilo پیشنهاد می‌کند برای مدل‌های OpenAI گزینهٔ OpenAI Responses و برای مدل‌های Anthropic گزینهٔ Anthropic Messages را بگیری. برای یوتاپن این کار را نکن: هر دو به مسیرهایی می‌روند که ما نداریم. همیشه OpenAI Compatible را انتخاب کن، حتی برای شناسه‌های openai/… و anthropic/….

سقف خروجی و context در kilo.jsonc

فرم گرافیکی فیلد سقف توکن ندارد؛ این‌ها در فایل پیکربندی تنظیم می‌شوند: ~/.config/kilo/kilo.jsonc برای همهٔ پروژه‌ها یا kilo.jsonc در ریشهٔ پروژه.

{
  "$schema": "https://app.kilo.ai/config.json",
  "provider": {
    "uttapen": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "apiKey": "{env:UTTAPEN_API_KEY}",
        "baseURL": "https://api.uttapen.ir/v1"
      },
      "models": {
        "anthropic/claude-sonnet-5": {
          "name": "Claude Sonnet 5",
          "tool_call": true,
          "limit": { "context": 200000, "output": 8192 }
        },
        "openai/gpt-5-nano": {
          "name": "GPT-5 nano",
          "limit": { "context": 400000, "output": 1024 }
        }
      }
    }
  },
  "model": "uttapen/anthropic/claude-sonnet-5",
  "small_model": "uttapen/openai/gpt-5-nano"
}
  • limit.output به‌عنوان max_tokens به ما فرستاده می‌شود و پیش‌فرض داخلی Kilo برای آن ۳۲٬۰۰۰ است. چون یوتاپن پیش از ارسال، هزینهٔ همین سقف را از موجودی رزرو می‌کند (قیمت‌گذاری)، عدد بزرگ یعنی قفل‌شدن بی‌دلیل موجودی. 8192 برای ویرایش کد کافی است.
  • اگر limit را ننویسی، هر دو مقدار صفر می‌مانند و مدیریت خودکار context خاموش می‌شود؛ یعنی گفتگو خلاصه نمی‌شود و prompt مدام بزرگ‌تر و گران‌تر می‌شود.
  • {env:UTTAPEN_API_KEY} کلید را از متغیر محیطی می‌خواند، پس کلید در فایل نمی‌ماند.
  • شناسهٔ مدل در Kilo به شکل provider_id/model_id است و فقط اولین / جداکننده حساب می‌شود؛ بنابراین uttapen/anthropic/claude-sonnet-5 درست است.

Small Model را حتماً بگذار

Kilo برای ساخت عنوان جلسه، پیام commit و بهبود prompt از Small Model استفاده می‌کند (تب Settings ← Models یا کلید small_model). اگر خالی بگذاری، Kilo اول دنبال یک مدل ارزان روی همان provider می‌گردد و چون provider سفارشی ما در کاتالوگ داخلی‌اش نیست، یا به سرویس خود Kilo می‌افتد یا همان مدل اصلی را با همان رزرو بزرگ صدا می‌زند. یک مدل ارزان مثل openai/gpt-5-nano یا google/gemini-2.5-flash-lite را صریح انتخاب کن.

برای مدل اصلی، شناسه را از فهرست مدل‌ها بردار: anthropic/claude-sonnet-5 و openai/gpt-5 برای کار سنگین، qwen/qwen3-coder و deepseek/deepseek-v3.2 برای کار ارزان‌تر.

بررسی اتصال

در ترمینال یا پنل Kilo یک درخواست کوچک بزن و بعد در داشبورد ← مصرف دو ردیف ببین: یکی برای مدل اصلی و یکی کوچک برای Small Model.

عیب‌یابی

خطاعلت در Kiloراه‌حل
401 invalid_api_keyکلید در provider ذخیره نشده یا متغیر محیطی خالی استکلید را دوباره در فرم provider بگذار یا UTTAPEN_API_KEY را export کن
404 model_not_foundشناسهٔ مدل دستی و اشتباه نوشته شدهاز فهرست خودکار Kilo انتخاب کن (پیام 404 در uttapen.suggestions نزدیک‌ترین شناسه‌های محتمل را هم پیشنهاد می‌دهد)
404 not_foundProvider API روی OpenAI Responses یا Anthropic Messages استبه OpenAI Compatible تغییر بده
402 insufficient_balanceرزرو بزرگ به‌خاطر نبودن limit.output، یا موجودی کمlimit.output را بگذار و کیف پول را شارژ کن
429سقف نرخ یا سقف ماهانهٔ کلید (محدودیت نرخ)صبر کن یا سقف کلید را بالا ببر
هشدار «پاسخ ناتمام»مدل به limit.output رسیده استعدد را بالاتر بگذار یا reasoning را خاموش کن

اگر موجودی قابل‌استفاده کفاف کل max_tokens را ندهد، یوتاپن سقف خروجی را تا اندازهٔ موجودی کم می‌کند (حداقل ۱٬۰۲۴ توکن) و عدد اعطاشده را در هدر X-Uttapen-Max-Tokens می‌فرستد؛ در این حالت هشدار «پاسخ ممکن است ناقص باشد» Kilo را می‌بینی. اگر حتی ۱٬۰۲۴ توکن هم جا نشود، 402 برمی‌گردد.

ابزارهای دیگر در یکپارچه‌سازی و کدهای خطا در خطاها.

هنوز کلید API نداری؟

با شماره موبایل ثبت‌نام کن، کیف پول را از ۱۰۰٬۰۰۰ تومان شارژ کن و کلید بساز. مدل‌های رایگان بدون شارژ هم کار می‌کنند — تا ۵۰ درخواست در روز. ساخت کلید API ←