Back to Nanobot

How to Configure an OpenAI-Compatible Provider in nanobot

docs/guides/configure-openai-compatible-provider.md

0.3.02.4 KB
Original Source

How to Configure an OpenAI-Compatible Provider in nanobot

nanobot can call OpenAI-compatible model providers by configuring an apiBase, optional apiKey, and a model preset that references that provider name.

What you will build

  • a custom provider entry
  • a model preset pointing at that provider
  • one successful nanobot agent run

When to use this

Use this for local or hosted services that expose OpenAI-compatible endpoints, including internal gateways, local model servers, and provider proxies that are not already named in nanobot.

Install

bash
python -m pip install nanobot-ai
nanobot onboard --wizard

Verify the endpoint responds before debugging nanobot:

bash
curl -sS https://api.example.com/v1/models

Minimal working example

Merge this into ~/.nanobot/config.json:

json
{
  "providers": {
    "custom": {
      "apiKey": "${CUSTOM_API_KEY}",
      "apiBase": "https://api.example.com/v1"
    }
  },
  "modelPresets": {
    "primary": {
      "label": "Custom",
      "provider": "custom",
      "model": "provider-model-name",
      "maxTokens": 4096,
      "contextWindowTokens": 65536,
      "temperature": 0.1
    }
  },
  "agents": {
    "defaults": {
      "modelPreset": "primary"
    }
  }
}

Then run:

bash
nanobot agent -m "Hello!"

Production notes

  • Include the version path in apiBase when the service expects /v1.
  • Use separate provider names for separate endpoints.
  • Use a placeholder key such as EMPTY only when the endpoint requires a non-empty key but does not validate it.
  • Leave apiType unset for OpenAI-compatible custom endpoints.

Security notes

  • Keep provider keys in environment variables.
  • Treat internal model gateways as sensitive network services.
  • Do not point nanobot at untrusted proxy endpoints for private workspaces.

Troubleshooting

  • If curl /models fails, fix the provider endpoint before changing nanobot.
  • If nanobot says the model is unknown, check the model ID expected by the provider.
  • If auth fails, confirm whether the provider wants Bearer auth and whether the key is present in the environment that starts nanobot.