Skip to content

Settings

At /admin/config/ai/site-agent/settings:

  • Agent name: shown on the admin menu link and the button that open the chat and as the chat's title, and given to the model as its name. Picked from a list of water names (Eddy, Dorp, Dewey, Burnie, Misty, Drizzle, Burble, Puddles, Rill) or entered as a custom name. "Eddy" by default.
  • Open the chat after logging in: sends accounts that may use a toolset to the chat after they log in. On by default.
  • Show a greeting in a new chat: a new chat asks one of a few questions, such as "What are you working on today?", above the message field. On by default.
  • Model: picked with AI's chat_with_tools pseudo operation type, so only models with the ChatTools capability are offered. "Default" uses the site's default provider for chat_with_tools, then for chat. No provider is hard-coded.
  • Let users choose the model: the composer gets a model menu, and a chat keeps the model picked for it; the browser remembers the last pick for new chats. Off by default. Models users may choose limits the menu; with none checked, every model of a usable provider with the ChatTools capability is offered. The site's settings for its own model apply when a user picks it; other models get their provider's defaults. With AI Effort installed, a model it reports effort levels for gets an effort slider, and the level goes to AI Effort as request metadata, which translates it for the provider. Starting effort is the level the slider starts at, and the level a chat uses until the user moves it; Highest effort users may pick caps the slider. As of 2026-10-02 AI Effort covers OpenRouter, Gemini 3, Cloudflare AI Gateway (Workers AI gpt-oss, Google AI Studio) and providers with their own effort setting, such as Anthropic Provider 1.3. Anthropic Provider 1.2 calls Anthropic's OpenAI-compatible endpoint, which ignores effort.
  • Site conventions: text added to every thread's system prompt before the toolset's fragment.
  • Tool call rounds per message: the chat stops after the model makes this many rounds of tool calls without a reply, and waits for a message. 100 by default.
  • Transcript retention: cron deletes the transcript of a thread idle for longer than this many days, and closes the thread, which cancels its calls waiting for a decision. A remote client's thread, which has no transcript, is closed the same way. 0 keeps transcripts and leaves threads open.
  • Audit log retention: cron deletes tool-call records older than this many days. 0, the default, keeps them. A call waiting for a decision in an open thread is kept whatever its age; one whose thread was deleted or closed is canceled, with the reason in its record, and deleted like the rest.

The Site Agent settings form: agent name, model and its configuration, the user model choice, login and greeting options, site conventions, and the two retention settings. The Site Agent settings form: agent name, model and its configuration, the user model choice, login and greeting options, site conventions, and the two retention settings.

Providers

The runner always streams the model's reply, so the provider module has to return tool calls from a streamed response. Checked on 2026-10-01:

Provider module Model Streamed tool calls
Anthropic 1.2.2 claude-sonnet-5-5 Work: parallel calls in one reply, approval and the following turn, in the chat.
Gemini Provider 1.1.0 models/gemini-flash-latest, models/gemini-3.8-flash Fail as released: the streamed iterator throws on a function-call chunk. Work with the patch on #3589188, checked on 2026-10-05: parallel calls in one reply, approval and the following turns.
OpenRouter 1.1.6 anthropic/claude-sonnet-5.5, google/gemini-3.8-flash Work: parallel calls in one reply.
Cloudflare AI Gateway Provider 1.0.0-alpha7 workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct, workers-ai/@cf/openai/gpt-oss-120b Work. Models billed through the gateway's unified billing returned HTTP 402 for lack of credits, which the provider reports as "Unknown error".