Saltar al contenido principal
Una CLI de agente de IA ligera. Repositorio oficial: https://github.com/HKUDS/nanobot
Protocolo: compatible con OpenAI
  • URL base: https://api.orcarouter.ai/v1 (debe incluir /v1)

Instalación

Requiere primero uv, luego instala el comando nanobot:
uv tool install nanobot-ai

Configuración

Edita ~/.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"
    }
  }
}

Ejecución

nanobot agent -m "Reply with exactly: OK" --no-logs --no-markdown
Espera la respuesta OK.

Notas

  • Usa el proveedor predefinido customno inventes tu propio nombre de proveedor. Los nombres personalizados se ignoran y obtienes un error provider 'None'.
  • No añadas un campo apiType al proveedor custom. Solo el proveedor integrado openai admite apiType; añadirlo a custom falla la validación.
  • La URL base conserva el /v1 final, y agents.defaults.provider debe configurarse a custom.
  • Los nombres de modelo usan el formato vendor/model. Cambia orcarouter/auto por un modelo específico como anthropic/claude-opus-4.8 o google/gemini-2.5-flash.

Activar pensamiento / razonamiento

Configura reasoningEffort bajo agents.defaults (o una entrada modelPresets). Valores válidos: none / low / medium / high / max. Omitirlo (o null) sigue el valor por defecto del modelo.
{
  "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 debe ser mayor que el presupuesto de pensamiento. nanobot traduce reasoningEffort: high en un thinking.budget_tokens de Anthropic; si maxTokens (p. ej. el valor por defecto 4096) es menor, el upstream devuelve 400 max_tokens must be greater than thinking.budget_tokens. Subir maxTokens a ~16000 lo soluciona. (Verificado: devuelve ✻ 391.)