LLM vendors
Search2o ships with adapters for OpenAI, Anthropic and Google Gemini. One API key is enough to start, and a new account already has a profile for each vendor.
The key
Each seeded profile reads its key from the agent server's environment. Set the key for the vendor you use before starting the server:
$ export OPENAI_API_KEY=... # OpenAI
$ export ANTHROPIC_API_KEY=... # Anthropic
$ export GEMINI_API_KEY=... # Google GeminiWhere a key is read from is configurable; see Secrets.
The seeded profiles
A new account has these LLM profiles. An agent names one of them in its llm command.
| Profile | Vendor | What it is for |
|---|---|---|
gpt5_mini | OpenAI | Text |
gpt_image | OpenAI | Image generation |
claude_haiku | Anthropic | Text |
gemini_flash | Google Gemini | Text |
gemini_image | Google Gemini | Image generation |
The prices on a seeded profile are the list prices at the time the account was created. Please edit them to match your own contract, so that the cost report is right.
A profile for another model
A profile is one model at one vendor, so a second model needs a second profile. Create one under Profiles › LLM in the GUI and set:
| Field | What to set |
|---|---|
adapter | openai, anthropic or gemini, matching the protocol the endpoint speaks. |
vendor | The name the reports group spend under. |
url | The endpoint, for example https://api.openai.com. |
headers | Authorization and anything else the vendor wants. The values are dynamic strings, so the key can be read at call time: { f"Bearer {sys.secret['OPENAI_API_KEY']}" }. |
model | The model name as the vendor writes it. |
pricing | The prices per million tokens. |
Every field is described in LLM profiles. An agent changes model by naming a different profile; nothing in the agent's code changes.
Any compatible LLM
These three adapters are not limited to the three vendors. Any endpoint that speaks one of the three protocols works with the matching adapter and a profile that points at the endpoint's URL — a private deployment, a gateway, or another vendor's compatible API. See Connecting to other LLMs.

