Tired of endless configuration and unstable runtime? Try nagobot.
nagobot is a ultra light AI assistant built with Go.
Inspired by nanobot (github.com/HKUDS/nanobot) and openclaw (github.com/openclaw).
This project is evolving rapidly.
- Providers:
openrouter,anthropic,deepseek,moonshot-cn,moonshot-global - Tools
- Skills
- Agent
- Cron
- Multi Thread
nagobot enforces a model whitelist. Only validated provider/model pairs are supported:
Default recommendation (unless you need a specific vendor): provider=deepseek, modelType=deepseek-reasoner.
deepseek:deepseek-reasoner,deepseek-chat(recommended default)openrouter:moonshotai/kimi-k2.5anthropic:claude-sonnet-4-5,claude-opus-4-6moonshot-cn:kimi-k2.5moonshot-global:kimi-k2.5
For OpenRouter, support is currently whitelist-only. Only verified model routes are treated as supported. In particular, reasoning/chain-of-thought behavior and tool-calling are guaranteed only for validated routes.
- Go
1.23.3+
go build -o nagobot .- Initialize config and workspace:
./nagobot onboard- Edit config (default:
~/.nagobot/config.yaml) and set your API key. If you don't have a provider preference, start withdeepseek-reasoner.
OpenRouter (Kimi K2.5):
agents:
defaults:
provider: openrouter
modelType: moonshotai/kimi-k2.5
# modelName: your-openrouter-preset-or-alias # optional
providers:
openrouter:
apiKey: sk-or-v1-xxxWhen using moonshotai/kimi-k2.5, route to OpenRouter's official moonshot provider.
If routing falls back to other upstream providers, chain-of-thought and tool-calling can fail.
DeepSeek config example (recommended: deepseek-reasoner):
agents:
defaults:
provider: deepseek
modelType: deepseek-reasoner
providers:
deepseek:
apiKey: sk-xxx
# apiBase: https://api.deepseek.com # optionalAnthropic config example:
agents:
defaults:
provider: anthropic
modelType: claude-opus-4-6 # or claude-sonnet-4-5
providers:
anthropic:
apiKey: sk-ant-xxx
# apiBase: https://api.anthropic.com # optionalMoonshot CN (official) config example:
agents:
defaults:
provider: moonshot-cn
modelType: kimi-k2.5
providers:
moonshotCN:
apiKey: sk-xxx
# apiBase: https://api.moonshot.cn/v1 # optionalMoonshot Global (official) config example:
agents:
defaults:
provider: moonshot-global
modelType: kimi-k2.5
providers:
moonshotGlobal:
apiKey: sk-xxx
# apiBase: https://api.moonshot.ai/v1 # optional- Start service:
./nagobot serve# CLI (default)
./nagobot serve
# Enable Telegram
./nagobot serve --telegram
# Enable all configured channels
./nagobot serve --allTelegram config example (token redacted):
channels:
adminUserID: "1234567890" # Optional: open @userinfobot in Telegram, send /start, and paste your user ID here
telegram:
token: "1234567890:AA***************" # Open @BotFather in Telegram, run /newbot, and paste the generated token here
allowedIds:
- 1234567890 # Open @userinfobot in Telegram, send /start, and paste allowed user IDs here