Перейти к основному содержанию
Лёгкий CLI AI-агент. Официальный репозиторий: https://github.com/HKUDS/nanobot
Протокол: OpenAI-совместимый
  • Базовый URL: https://api.orcarouter.ai/v1 (должен включать /v1)

Установка

Сначала требуется uv, затем установите команду nanobot:
uv tool install nanobot-ai

Настройка

Отредактируйте ~/.nanobot/config.json:
{
  "agents": {
    "defaults": {
      "model": "orcarouter/auto",
      "provider": "custom",
      "maxTokens": 4096,
      "temperature": 0.1
    }
  },
  "providers": {
    "custom": {
      "apiKey": "sk-orca-...",
      "apiBase": "https://api.orcarouter.ai/v1"
    }
  }
}

Запуск

nanobot agent -m "Reply with exactly: OK" --no-logs --no-markdown
Ожидайте ответ OK.

Примечания

  • Используйте предопределённый провайдер customне придумывайте собственное имя провайдера. Пользовательские имена игнорируются, и вы получаете ошибку provider 'None'.
  • Не добавляйте поле apiType к провайдеру custom. Только встроенный провайдер openai поддерживает apiType; добавление его к custom не проходит валидацию.
  • Базовый URL сохраняет завершающий /v1, а agents.defaults.provider должен быть равен custom.
  • Имена моделей используют формат vendor/model. Замените orcarouter/auto на конкретную модель, например anthropic/claude-opus-4.8 или google/gemini-2.5-flash.

Включение thinking / reasoning

Задайте reasoningEffort под agents.defaults (или в записи modelPresets). Допустимые значения: none / low / medium / high / max. Если его опустить (или null), следует поведению модели по умолчанию.
{
  "agents": {
    "defaults": {
      "model": "anthropic/claude-sonnet-4.6",
      "provider": "custom",
      "maxTokens": 16000,
      "reasoningEffort": "high"
    }
  },
  "providers": { "custom": { "apiKey": "sk-orca-...", "apiBase": "https://api.orcarouter.ai/v1" } }
}
maxTokens должен быть больше бюджета мышления. nanobot переводит reasoningEffort: high в Anthropic thinking.budget_tokens; если maxTokens (например, по умолчанию 4096) меньше, апстрим возвращает 400 max_tokens must be greater than thinking.budget_tokens. Увеличение maxTokens до ~16000 решает это. (Проверено: возвращает ✻ 391.)