Registration for Perplexity's Agent API: provider = "perplexity".
The Agent API (POST https://api.perplexity.ai/v1/agent) replaced Sonar Chat Completions, whose support Perplexity ended on 27 September 2026. It speaks the OpenAI Responses format, so it is a client of its own rather than an openai-compatible dialect. A section names an Agent API model in its provider/model form and takes the key as apiKey, or from llm4s.credentials.perplexity.apiKey, which PERPLEXITY_API_KEY binds:
perplexity-main {
provider = "perplexity"
model = "perplexity/sonar"
}
Extras: webSearch (default true) offers the model Perplexity's web_search tool on every request; contextWindow and reserveCompletion override the window, which otherwise comes from the model registry entry of the model's own vendor (anthropic/claude-sonnet-5-5 looks up anthropic's claude-sonnet-5-5), else org.llm4s.llmconnect.config.PerplexityConfig.DEFAULT_CONTEXT_WINDOW.
Constructs the client for a ProviderConfig this provider produced.
Constructs the client for a ProviderConfig this provider produced.
config is whatever the caller passed, so implementations must check the type rather than cast — ProviderDescriptor.expectConfig does that and produces the standard mismatch error.
A client that sends its own HTTP requests sends them through options.httpClient when it is set, and does not close that client, and declares so with features.customHttpClient = true (it defaults to false, which a provider built on a vendor SDK keeps).
Turns a validated config section into the runtime ProviderConfig for this provider.
Turns a validated config section into the runtime ProviderConfig for this provider.
The section has already been checked against configSpec, so required fields are present and section.extras holds exactly the declared provider-specific keys that have a value (defaults applied, deprecated aliases resolved). A Left here means something configSpec cannot express (a malformed value, say).
Value parameters
providerName
the user's instance name (llm4s.providers.<name>), for error messages.