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 Gemini

Where 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.

ProfileVendorWhat it is for
gpt5_miniOpenAIText
gpt_imageOpenAIImage generation
claude_haikuAnthropicText
gemini_flashGoogle GeminiText
gemini_imageGoogle GeminiImage 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:

FieldWhat to set
adapteropenai, anthropic or gemini, matching the protocol the endpoint speaks.
vendorThe name the reports group spend under.
urlThe endpoint, for example https://api.openai.com.
headersAuthorization 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']}" }.
modelThe model name as the vendor writes it.
pricingThe 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.