hub.agent.provider: openai-compatible. You pick one endpoint and one model for the whole hub.
When investigations are enabled, the chart defaults to the Anthropic provider with claude-sonnet-4-6; a self-managed deployment can point at another supported model instead. The OpenAI-compatible path is for self-managed control planes only and needs Radar Hub 1.15.0 or later. The values for every provider are in AI investigations; this page covers how to point the hub at each OpenAI-compatible endpoint and how running another model differs from Claude.
Choosing a model
Pick a model your organization already allows and pays for, in a region and under data terms you accept. For investigations it also needs to be good at tool calling and to carry enough context to hold a growing conversation: a turn drives the model through many tool calls and resends the whole conversation on every step. The endpoint examples below name models we have run successfully; run a few representative investigations before you adopt one. Claude models and other models share the same tools, prompts, and evidence linking, but they run on different engines (the Claude Agent SDK and the Vercel AI SDK), and the behavior differs in a few ways worth knowing:- Notification lines. An alert analysis ends with a one-line cause and fix that the hub sends to Slack, email, and phones. Non-Claude models often leave these out. The analysis itself still posts.
- Evidence links. Some models cite Radar’s “not found” reply as their proof (for example, the Secret that doesn’t exist). Radar links only reads that returned data, so that evidence shows without a link even when the answer is right.
- No spend figure. Claude reports what each investigation cost; other models don’t. A self-managed control plane doesn’t meter or limit investigations either way: the model account is yours, and its spend shows in your provider’s billing.
Endpoint examples
The base URL is the API root including its version path. The hub adds/chat/completions or /responses itself.
For Claude through a company gateway, keep
provider: anthropic and set hub.agent.anthropic.baseUrl instead, so Claude stays on the Claude engine.
Example values
--set-file hub.agent.credentials.apiKey=./model.key, or put it in your own Secret under HUB_AGENT_OPENAI_COMPAT_API_KEY. Leave it empty for a model server that takes no key.
Chat Completions or Responses
Usechat unless you have a reason not to: every compatible server speaks it.
Use responses for OpenAI reasoning models (GPT-5.x, o-series, gpt-oss) on endpoints that serve OpenAI’s Responses API. Nothing is stored at the provider: each step resends the conversation, with the model’s reasoning in the encrypted form OpenAI returns. A model that doesn’t reason may reject that request on responses, so use chat for those.
Set reasoningEffort only for models that reason. On responses it also tells the client to treat the model as a reasoning model, which matters for model ids it doesn’t recognize, such as openai.gpt-oss-120b or an Azure deployment name.
Reply length
Each model reply may be up to 32,000 tokens long. A model with a lower output limit (GPT-4o allows 16,384; many vLLM deployments allow less) refuses every request with a “max tokens” error. SetmaxOutputTokens to the model’s limit.
Network egress
Investigation pods may reach only DNS, port 443, the hub, and Postgres. An endpoint on port 443 needs nothing extra. One on another port (vLLM on 8000, Ollama on 11434, a gateway on 4000) needs an egress rule, for example:http is accepted for in-cluster servers, since they commonly have no TLS. The key, if any, then crosses the cluster network unencrypted.
Not supported
- Images, files, and audio in investigations.
- The provider’s own tools: web search, file search, code interpreter, remote MCP servers, computer use.
- Provider-stored state: stored conversations, prompts, earlier responses, background jobs.
- More than one model per hub, or a model per organization.
- Endpoints that need custom request headers or query parameters, or a key in the URL.
- Shortening a long conversation. The whole conversation is sent on every step, so a model with a small context window can fail on a long investigation or a later follow-up.