Goose একটা open-source AI agent, যেটা আপনার নিজের মেশিনে CLI আর desktop app হিসেবে চলে। project-টা এখন আছে aaif-goose/goose-এ (আগে ছিল block/goose)। Tokens-এর সাথে এটা যুক্ত হয় openai engine-ওয়ালা একটা custom provider দিয়ে, যেটা chat completions পাঠায় https://tokens.bd/v1/chat/completions-এ।
Tokens CLI Goose-কে configure করে না। হয় Goose-এর নিজের wizard ব্যবহার করুন, নয়তো একটা provider file জায়গামতো রেখে দিন।
Goose install করুন#
curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash
# or with Homebrew
brew install block-goose-cli # CLI
brew install --cask block-goose # desktop app/dashboard/keys-এ গিয়ে একটা key তৈরি করুন। spend cap আর allow-list কীভাবে কাজ করে তা API keys পাতায় আছে।
Option A: goose configure#
goose configureচালান।- Custom Providers বেছে নিন, তারপর Add A Custom Provider।
- prompt-গুলোতে এই মানগুলো দিন:
| Prompt | Value |
|---|---|
| API Type | OpenAI Compatible |
| Name | Tokens |
| API URL | https://tokens.bd/v1/chat/completions |
| Authentication Required | Yes, static API key: your tok_live_... key |
| Available Models | deepseek/deepseek-v4.1-flash |
| Streaming Support | Yes |
Goose আপনার key রাখে system keychain-এ। keychain না থাকলে রাখে secrets.yaml-এ। desktop app-এ একই form পাবেন Settings > Add Custom Provider-এ।
API URL-টা খেয়াল করুন। Goose-এর custom provider-এ শুধু /v1 নয়, chat completions-এর পুরো path দিতে হয়।
Option B: provider file#
~/.config/goose/custom_providers/tokens.json নামে একটা file বানান। Windows-এ folder-টা হলো %APPDATA%\Block\goose\config\custom_providers\।
{
"name": "tokens",
"engine": "openai",
"display_name": "Tokens",
"description": "Tokens AI gateway",
"api_key_env": "TOKENS_API_KEY",
"base_url": "https://tokens.bd/v1/chat/completions",
"models": [{ "name": "deepseek/deepseek-v4.1-flash", "context_limit": 128000 }],
"supports_streaming": true,
"requires_auth": true
}context_limit একটা আন্দাজি মান। /models-এ model-এর পাতা থেকে আসল context window দেখে বসান। এই file-এ কোনো secret নেই, কারণ api_key_env Goose-কে বলে দেয় TOKENS_API_KEY থেকে key পড়তে:
export TOKENS_API_KEY="tok_live_your_key"
goose session start --provider tokens$env:TOKENS_API_KEY = "tok_live_your_key" # this window
setx TOKENS_API_KEY "tok_live_your_key" # new windows
goose session start --provider tokensOption C: built-in OpenAI provider#
আলাদা custom provider যোগ করতে না চাইলে Goose-এর built-in OpenAI provider-কেই Tokens-এর দিকে ঘুরিয়ে দিতে পারেন। এগুলো environment variable হিসেবে সেট করুন (bash-এ export, PowerShell-এ $env:):
GOOSE_PROVIDER=openai
OPENAI_HOST=https://tokens.bd
OPENAI_BASE_PATH=v1/chat/completions
OPENAI_API_KEY=tok_live_your_key
GOOSE_MODEL=deepseek/deepseek-v4.1-flashOPENAI_HOST হবে শুধু host, কোনো path ছাড়া। path যাবে OPENAI_BASE_PATH-এ। এতে Goose-এর OpenAI provider পুরোপুরি Tokens-এর দখলে চলে যায়। তাই Goose দিয়ে সরাসরি OpenAI-ও ব্যবহার করলে Option B অনেক পরিষ্কার।
model বদলান#
custom provider হলে models array-তে আরও entry যোগ করুন (অথবা wizard-এর "Available Models"-এ)। id দিন /models বা GET /v1/models থেকে নেওয়া হুবহু, প্রতিটার নিজস্ব context_limit সহ। তারপর desktop app-এ model picker থেকে model বেছে নিন, আর CLI-তে GOOSE_MODEL সেট করুন।
built-in OpenAI provider ব্যবহার করলে goose configure custom model name নেয় না। তখন GOOSE_MODEL সেট করুন, অথবা ~/.config/goose/config.yaml-এর providers: block এডিট করুন। কোন model নেবেন তা ঠিক করতে Choosing a model কাজে লাগবে।
ঠিকমতো চলছে কিনা দেখুন#
goose session start --provider tokensছোট কিছু জিজ্ঞেস করুন, যেমন "list the files in this folder"। উত্তর আসা উচিত, আর request-টা Dashboard-এর Usage analytics-এ দেখা যাওয়া উচিত। desktop app-এ Tokens দেখা যাবে model picker-এ।
Goose-কে বাদ দিয়ে দেখতে চাইলে endpoint-টা সরাসরি call করুন:
curl https://tokens.bd/v1/chat/completions \
-H "Authorization: Bearer $TOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "deepseek/deepseek-v4.1-flash", "messages": [{"role": "user", "content": "Reply with OK"}], "max_tokens": 10}'সমস্যা হলে#
No api key passed in। config.yaml-এ লেখা API key Goose পাত্তা দেয় না। keychain (goose configure-এর মাধ্যমে), secrets.yaml, অথবা api_key_env-এ যে environment variable-এর নাম দিয়েছেন সেটা ব্যবহার করুন।
প্রতিটা request-এ 404। custom provider-এ base_url হতে হবে পুরো https://tokens.bd/v1/chat/completions। built-in provider-এ OPENAI_HOST হবে শুধু https://tokens.bd আর OPENAI_BASE_PATH হবে v1/chat/completions। সাধারণত base path ভুল হলেই এটা হয়।
404 model_not_found বা 403 model_not_allowed_on_key। model id-তে বানান ভুল আছে, নয়তো key-র allow-list-এ ওই model নেই। allow-list পরে এডিট করা যায় না, তাই দরকার হলে নতুন key বানান।
agent tool ব্যবহার করতে পারছে না। Goose tool calling-এর ওপর নির্ভর করে। কোনো model tool call ভালোভাবে সামলাতে না পারলে অন্য একটা model নিন।
লম্বা session ফেল করছে। context_limit-এ model-এর আসল window বসান, যাতে Goose জানে তার হাতে কতটা জায়গা আছে।
402 আর 429 error-এর জন্য Troubleshooting দেখুন।