Documentation
¶
Overview ¶
Package openai adapts the OpenAI Chat Completions API to agent.Model. Because that API is the de-facto standard, this one adapter — via WithBaseURL — runs on OpenAI, Ollama (local), DeepSeek, Groq, Together, OpenRouter, vLLM, LM Studio, Azure, Mistral, xAI, and any other OpenAI-compatible endpoint. That's how "run on any model" is one adapter, not N.
Zero external deps (net/http + stdlib). Tool schemas use schema.OpenAIStrict when WithStrictSchema is set (genuine OpenAI structured-output strict mode — which many SDKs, incl. agenticenv, leave unused); off by default for max compatibility.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Model ¶
type Model struct {
// contains filtered or unexported fields
}
func New ¶
New constructs an OpenAI-compatible adapter. For non-OpenAI endpoints set WithBaseURL (e.g. "http://localhost:11434/v1" for Ollama) and WithModel.
func (Model) Format ¶ added in v0.7.0
Format writes String for every verb, so no fmt verb (%v, %+v, %#v, %s, %x, ...) prints the key.
type Option ¶
type Option func(*Model)
func WithBaseURL ¶
func WithHTTPClient ¶
func WithMaxCompletionTokens ¶ added in v0.7.0
WithMaxCompletionTokens chooses the request field that carries the token limit (WithMaxTokens, or Sampling.MaxTokens): max_completion_tokens when use is true, max_tokens when false. Without it the adapter decides: max_completion_tokens on OpenAI's own endpoint (api.openai.com, where max_tokens is deprecated and the reasoning models reject it) and for an OpenAI reasoning model (an o-series or gpt-5 model id, optionally behind a "vendor/" prefix) on any endpoint, and max_tokens otherwise, which is what OpenAI-compatible servers such as Ollama and vLLM implement. Set it for an endpoint the default gets wrong, such as Azure OpenAI serving a reasoning model under a deployment name.
func WithMaxTokens ¶
func WithStrictSchema ¶
func WithStrictSchema() Option
func WithToolResultCodec ¶ added in v0.2.0
func WithToolResultCodec(c agent.ToolResultCodec) Option
WithToolResultCodec encodes tool results sent to the model with c instead of raw JSON (for example GCF, to cut tokens on structured output). The journal keeps the JSON form; only what the model reads changes. Default is JSON.