Brains & tools

AI Models

Every AI Employee can register one or more AI Models — their brains — and keep exactly one active at a time. Connect Anthropic or OpenAI with an API key, point at your own OpenAI-compatible endpoint, or use eligible ChatGPT subscription access for OpenAI on a source-managed Linux server with bubblewrap isolation. Switch the active model any time without losing the others' credentials.

Connect an AI Model

  1. Open an AI Employee, then go to Settings → Model.
  2. Select Add model and choose Anthropic, OpenAI, or Custom.
  3. Choose the model and authentication method. For Custom, enter the endpoint and model id in the same form. Then select Add model.
  4. On the new card, paste the Anthropic / OpenAI API key, or select Sign in with ChatGPT for an OpenAI subscription. The newest model becomes active automatically; use Make active when you want to switch back to another.

Provider kinds

Three provider kinds cover every setup. API-key and custom-endpoint models talk straight to the model API from Genosyn's in-process agent loop. OpenAI subscription models use OpenAI's official Codex app-server; there is still no generic provider CLI to install or maintain.

Anthropic (Claude)
Anthropic
Credentials
Paste an API key.
Connects to
Claude models — Opus, Sonnet, Haiku.
OpenAI (GPT)
OpenAI
Credentials
API key, or source-managed Linux ChatGPT subscription access.
Connects to
Models available to the selected OpenAI access method.
Custom
OpenAI-compatible
Credentials
Base URL + model id, plus an optional key.
Connects to
Ollama, vLLM, llama.cpp, LM Studio, or any gateway.

The Custom kind is the path for any self-hosted or gatewayed LLM that speaks the OpenAI API — see Open-source LLMs for that flow.

Credentials

Everything a model needs is entered in the app. There is no persistent per-provider config directory to manage:

  • Anthropic. Paste an Anthropic Console API key. The runner picks the default Claude model, or you can name a specific model string.
  • OpenAI API key. Paste an OpenAI Platform API key for direct, usage-based access through Genosyn's in-process model loop.
  • OpenAI subscription. On a source-managed Linux Genosyn deployment with bubblewrap isolation, complete ChatGPT device sign-in or paste a Codex access token from an eligible Business or Enterprise workspace. Genosyn runs this model through the pinned @openai/codex app-server.
  • Custom. Paste a base URL and a model id, plus an optional API key if your endpoint requires one. The loop then points every request at that endpoint.

Use an OpenAI subscription

Subscription access is available only on a source-managed Linux deployment whose bubblewrap isolation check passes. In the add-model form, choose OpenAI (GPT), set Authentication to ChatGPT subscription, choose the model, then select Add model. The model card offers two official Codex authentication paths:

  • ChatGPT device sign-in. Select Sign in with ChatGPT, then Open ChatGPT sign-in. Sign in to the ChatGPT account and workspace you want to use and enter the displayed one-time code. Device sign-in must be enabled in your ChatGPT security settings or by your workspace admin.
  • Codex access token. Open Advanced: Business or Enterprise access token and paste a token created by a permitted member of that workspace. Workspace admins control whether members can create these tokens and use Codex Local.

This uses the Codex access and limits attached to the selected ChatGPT workspace; it does not turn a ChatGPT subscription into a general OpenAI Platform API key. OpenAI documents the device-code flow, the Business and Enterprise access-token flow, and the official Codex app-server.

Why Claude subscriptions are not offered

Genosyn does not ask for or accept Claude.ai or Claude Code subscription credentials. Anthropic's account authentication guidance tells developers building third-party products to use an API key and prohibits routing third-party traffic against subscription limits. Connect Anthropic with a Console API key instead.

Context window

Every turn sends the employee's Soul, their Skills, and their working set of tools, and each tool call adds its result on top. A long routine therefore grows until it reaches whatever the model will accept — so the direct agent loop needs to know how much room there is. When an API-key or custom-endpoint model connects, Genosyn asks the provider and shows the answer on the model card. For an OpenAI subscription model, the Codex app-server owns context management, so its card does not show the manual context-window controls.

Once it knows, a run budgets against it: when the next prompt wouldn't fit, the oldest tool results are dropped to a stub so recent work and the routine's instruction survive. The run log says [compact] whenever that happens, so a forgetful-looking employee is always explained by its transcript.

Not every server reports a window. vLLM, LM Studio, and llama.cpp publish one; plain Ollama and OpenAI's own API don't. When the card reads Unknown, use Ask the provider to retry, or Set manually and type the number in — whatever the server was launched with, such as vLLM's --max-model-len or llama.cpp's -c. A number you set by hand always wins over the probe, and Clear hands the field back to it.

Built-in agent tools

API-key and custom-endpoint models run through Genosyn's in-process agent loop; an OpenAI subscription model runs through the official Codex app-server. The employee keeps the same granted catalogue either way, except that subscription turns omit parallel delegation because they serialize on the model's credential-refresh lock. An employee is shown a small working set every turn and looks the rest up on demand; see How tools reach the model. The catalogue is:

  • Coding tools. bash, read_file, write_file, edit_file, glob, and grep — run inside the employee's sandboxed directory.
  • genosyn — the tools the employee calls to run Routines and Todos, write journal notes, save Memory, work with Bases, Notes, Resources, charts, mail, finance and attachments, and reach any registered Integration tool. Always available; the frequently-used ones are loaded up-front and the rest are a find_tools call away.
  • find_tools and call_tool — how the employee searches the catalogue and runs anything in it. Always on.
  • browser — browser tools backed by a headless Chromium when browserEnabled is true on the employee. Skipped when off.
  • Company MCP servers. HTTP MCP servers your company has configured are added alongside the built-ins. User-configured stdio servers are omitted whenever bubblewrap mode is active, across every model turn, because an arbitrary same-UID child would break the subscription credential boundary.

How many tools an employee can hold

The direct OpenAI API path accepts at most 128 tools on a request and rejects the whole turn if you send more. Anthropic publishes no such limit, and a custom endpoint sets its own.

In practice this no longer binds. Only the working set goes on the request — around 20 tools — so the catalogue behind it can grow without approaching any provider's ceiling. An employee with a dozen Connections is fine.

The old trimming behaviour is still there as a backstop: if the working set somehow did exceed a cap, Genosyn drops the lowest-value tools until it fits, preferring ones the employee holds no Grant for, and writes a [tools] line into the run log naming exactly what it dropped. Every run also logs how the catalogue was split, so you can always see what the employee was shown.

Multiple models & the active one

An employee can hold several models side by side — say an Anthropic key for everyday work and an OpenAI subscription model for a second opinion. Exactly one is active at a time; the active model is the default brain for employee Chat and the model inherited by Routines and other AI surfaces. The most recently added model becomes active automatically — hit Make active on any other to switch, instantly and as often as you like.

Open an employee, then Settings → Model to see the roster: each card shows the provider kind, model string, connection status, and an Active badge on the current brain. Use Add model to register another.

When at least two models are connected, the dedicated employee Chat composer shows an AI Model picker. It starts on the active model, but you can choose a different brain for the next message without changing the employee's active model or any Routine. Follow-ups remember the model selected when each message entered the queue, including while a durable turn recovers after a disconnect or server restart.

When a chat or Run reports a model error

For API-key and custom-endpoint models, temporary model-service and network failures are retried automatically before Genosyn reports an error. Each model turn gets up to five attempts with a short exponential backoff; provider Retry-After guidance is respected up to 30 seconds, and cancelling the chat or Run cancels the wait. A turn is never replayed after visible output has started, because doing so could duplicate a partial answer. Run transcripts record each retry on a [model] line. The Codex app-server manages retries for subscription-auth turns, so those turns do not use Genosyn's five-attempt loop or its retry transcript lines.

The error names the model used for that turn, shows the safe host-only endpoint, preserves the provider's detail and request ID when available, and lists checks for that failure type. In chat, use Review AI Model settings on the error to jump straight to the active employee's model roster. A separate chat connection interrupted message means the browser lost its stream to the Genosyn server; confirm the server is running and inspect its logs before retrying. A Genosyn couldn't complete this chat turn message includes the conversation ID to search for in those logs and usually points to server-side setup such as a Browser or company MCP connection.

Removing a model

Remove on a model card deletes that AIModel row along with its encrypted credentials. If you remove the active model, the most recently added survivor is promoted to active. No data on Soul, Skills, Routines, or past Runs is affected.