OpenAiChatBackend

class OpenAiChatBackend(baseUrl: String, model: String, apiKey: String = "", systemPrompt: String = "", tools: List<AgentTool> = emptyList(), approver: ToolApprover = ToolApprover.AlwaysApprove, maxSteps: Int = 8, client: OkHttpClient = DefaultHttpClient, extraHeaders: Map<String, String> = emptyMap()) : ChatBackend(source)

Any OpenAI-compatible Chat Completions endpoint (OpenAI, CLIProxyAPI, Ollama /v1, OpenRouter, Gemini's OpenAI endpoint, LiteLLM, vLLM…).

Runs the agent loop on-device: when the model returns tool_calls, the matching AgentTools are executed locally (after approver for tools that need it) and their results fed back, up to maxSteps model calls. Reasoning deltas (reasoning_content / reasoning) become reasoning parts; image attachments are sent as image_url content.

Constructors

Link copied to clipboard
constructor(baseUrl: String, model: String, apiKey: String = "", systemPrompt: String = "", tools: List<AgentTool> = emptyList(), approver: ToolApprover = ToolApprover.AlwaysApprove, maxSteps: Int = 8, client: OkHttpClient = DefaultHttpClient, extraHeaders: Map<String, String> = emptyMap())

Functions

Link copied to clipboard
open override fun stream(history: List<Message>): Flow<ChatEvent>