> For the complete documentation index, see [llms.txt](https://docs.warp.dev/llms.txt).
> Markdown versions of each page are available by appending .md to any URL.

# Configuring factory agents

Configure a factory agent's instructions, tools, model, and harness, including authentication for Claude Code and Codex.

Change how an existing factory agent works by editing its instructions, tools, and runtime in the [Warp Factories web app](https://platform.warp.dev) or its definition files.

## Prerequisites

-   [Editor access to this factory, or team or workspace admin access](https://docs.warp.dev/factories/infrastructure-and-security/#factory-roles-and-permissions).
-   An existing factory agent. See [About factory agents](https://docs.warp.dev/factories/factory-agents/) for the default roles, or [Creating custom agents](https://docs.warp.dev/factories/factory-agents/creating-custom-agents/) to add a role.

## Edit agent settings and instructions

For a Warp-managed factory, edit agent settings in the web app. For a GitHub-backed factory, settings are read-only in the web app; edit the [factory definition files](https://docs.warp.dev/factories/factory-as-code/) instead. See [Where the definition lives](https://docs.warp.dev/factories/factory-as-code/#where-the-definition-lives).

1.  In the web app sidebar, click your factory to expand it, then click **Agents**.
    
    ![The Agents page in the factory dashboard, listing a foreman agent and its four default agents: triage, spec, implement, and review.](https://docs.warp.dev/_astro/factory-agents-list.lvxXrd-B_Z1wz6CC.webp?dpl=dpl_BpLxxsfBgza8BP3QyppkFxZ3y7CP)
    
    The Agents page lists a factory’s foreman and default agents.
    
2.  Click an agent to open its **Settings** tab.
    
    ![An Implement agent's Settings tab showing its description, MCPs, secrets, and Harness, Model, Host, and Runner dropdowns.](https://docs.warp.dev/_astro/factory-agent-edit.DW32ylsZ_Z2jETtV.webp?dpl=dpl_BpLxxsfBgza8BP3QyppkFxZ3y7CP)
    
    The Settings tab contains the agent’s description and resources.
    
3.  Edit the agent description, harness, model, runner, host, [MCP servers](https://docs.warp.dev/factories/mcp/), or [secrets](https://docs.warp.dev/factories/secrets/).
    
4.  To change the agent’s instructions, click **Prompt** and edit the prompt.
    
5.  In the top-right corner, click **Save**.
    

## Choose models and harnesses per agent

Choose each agent’s model and harness in its settings. Supported harnesses include the Warp Agent, Claude Code, and Codex. A foreman using Claude Code or Codex can still dispatch other factory agents, whose runs are tracked as its children.

Third-party harness access depends on your team’s plan and workspace settings. If a harness requires an upgrade, use the Warp Agent or review [Warp pricing](https://www.warp.dev/pricing).

Default model IDs change over time, so choose based on what each agent has to do well:

| Agent | What to optimize for |
| --- | --- |
| Foreman | Orchestration, instruction following, and long-running conversations |
| Triage | Research, evidence gathering, and working with connected tools |
| Spec | Synthesizing requirements, technical reasoning, and precise writing |
| Implement | Coding strength, with a harness that fits your repositories and toolchain |
| Review | A different model or harness from the implement agent, so the two don’t share blind spots |

The model picker also includes custom routers from factories you can access. See [Agent model choice](https://docs.warp.dev/agents/inference/model-choice/), [Custom routers](https://docs.warp.dev/agents/inference/custom-routers/), and [Agent harnesses](https://docs.warp.dev/factories/harnesses/) for available options.

For team-managed inference in definition files, see [custom endpoint and BYOK model values](https://docs.warp.dev/factories/factory-as-code/#custom-inference-endpoints-and-byok), including factory defaults and per-agent overrides.

## Reviewing inference for provider ZDR

Start with [factory ZDR coverage and its limits](https://docs.warp.dev/factories/infrastructure-and-security/#zero-data-retention-zdr-for-factory-inference). The procedures below remove known model exceptions from settings you control; they don’t certify coverage for every auxiliary request. Both work in a browser without Warp Terminal.

Before using Self-improvement with sensitive run data, ask Warp to confirm its separate analysis model and provider coverage. It doesn’t inherit the foreman’s model.

### Reviewing a dashboard-managed factory

For a Warp-managed definition, you need the [editing access listed above](#prerequisites). Use the [model exception list](https://docs.warp.dev/agents/inference/model-choice/#models-requiring-provider-retention) when making each selection.

1.  Open the [Warp Factories web app](https://platform.warp.dev) and expand your factory in the sidebar. In **Agents**, open each agent’s **Settings**. In the “Harness” and “Model” dropdowns, choose the Warp Agent and a model outside the exception list. Click **Save** for each changed agent.
2.  In the factory’s **Factory definition** tab, open `factory.yaml`. Set `agentDefaults.model`, or the model under `agentDefaults.harness`, outside the exception list. Don’t keep both `model` and `harness`. This default applies where an agent doesn’t override it; see [model and harness syntax](https://docs.warp.dev/factories/factory-as-code/#agentdefaultsmodel).
3.  In **Factory definition**, review each `automations/<name>/automation.md`. Change any `model` or `harness` [execution override](https://docs.warp.dev/factories/factory-as-code/#execution-overrides) that selects an exception. The **Automations** editor doesn’t expose these overrides.
4.  In **Factory definition**, review `agentDefaults.computerUseModel` and any `computerUseModel` in agent or automation files. Remove listed exceptions from these choices too. Omitted values inherit or use automatic selection; see [Computer Use model inheritance](https://docs.warp.dev/factories/factory-as-code/#agentdefaultscomputerusemodel).
5.  In **Scorers**, open each Scorer and review its “Judge model.” Change any exception and save. If an agent selects a custom router, review every router target and its default model, not only the router’s name.
6.  Save the definition changes. Before starting work, complete [the run-level checks below](#checking-new-runs).

### Reviewing a GitHub-backed factory

You need permission to propose and merge definition changes in the connected GitHub repository. Dashboard editors are read-only for a GitHub-backed factory.

1.  Open the [Warp Factories web app](https://platform.warp.dev), expand your factory, and open **Settings**. Follow its repository link to the connected definition. In GitHub, open the existing `factory.yaml` and create a branch for your edits.
2.  In `factory.yaml`, set `agentDefaults.model`, or the model under `agentDefaults.harness`, outside the [model exception list](https://docs.warp.dev/agents/inference/model-choice/#models-requiring-provider-retention). Use the Warp Agent harness (`type: oz`) for Warp-managed inference. Don’t keep both `model` and `harness`.
3.  Edit each existing `agents/<name>/agent.md` and `automations/<name>/automation.md`. Replace exception models in their frontmatter’s `model` or `harness` settings. Agent overrides replace the factory default; [automation overrides](https://docs.warp.dev/factories/factory-as-code/#execution-overrides) can replace the selected agent’s settings.
4.  Review `agentDefaults.computerUseModel` in `factory.yaml` and `computerUseModel` in agent and automation files. Remove listed exceptions from these separate choices. Check [inheritance and automatic selection](https://docs.warp.dev/factories/factory-as-code/#agentdefaultscomputerusemodel) when a value is omitted.
5.  Review the `model` in each `scorers/<name>/scorer.md`. Replace exceptions there too. If any selection uses a custom router, inspect every target and its default model in the connected router definition.
6.  Open a pull request in GitHub, pass the [factory-definition checks](https://docs.warp.dev/factories/factory-as-code/#pull-request-checks), and merge through your normal review process into the factory’s connected production branch. Confirm the definition synced successfully before starting a new run.

### Checking new runs

Team-managed keys can change whose provider account serves a named model. Review the [inference options and credentials](https://docs.warp.dev/factories/infrastructure-and-security/#inference-options-for-factory-runs), even when a model’s name hasn’t changed. For your own keys or endpoints, BYOLLM, or direct Claude Code or Codex calls, verify provider retention for the specific account, model, and configuration.

Before launching a [benchmark](https://docs.warp.dev/factories/benchmarks/#create-and-run-a-benchmark), check every trial’s harness, model, and selected Scorers. For runs started by an API, CLI, or another agent, check supplied model or harness overrides too.

Start a new run with non-sensitive test input. In the factory dashboard’s **Runs**, open the run and inspect its model and harness. Check child runs separately. Existing runs keep their selected model. This confirms the visible configuration, not the provider contract or every auxiliary call. Recheck when models, credentials, or workflows change.

### Configuring a third-party harness

Change an agent’s harness to Claude Code or Codex to run it with that provider’s own coding tool.

1.  In the web app sidebar, click your factory to expand it, then click **Agents**.
    
2.  Click an agent to open its **Settings** tab.
    
3.  In the “Harness” dropdown, choose **Claude Code** or **Codex**. The “Auth” field appears for these harnesses.
    
4.  In the “Auth” field, choose a compatible, team-owned secret. To create one, click **New auth secret** for Claude Code or **New OpenAI API Key** for Codex.
    
    ![An Implement agent's Settings tab with Claude Code selected in the Harness dropdown and the Auth dropdown open, showing a saved credential and New auth secret.](https://docs.warp.dev/_astro/factory-agent-auth-secret.BBtyYaA6_1qt9YA.webp?dpl=dpl_BpLxxsfBgza8BP3QyppkFxZ3y7CP)
    
    The Auth dropdown appears when a third-party harness is selected.
    
    Note
    
    -   Claude Code accepts an Anthropic API key, Anthropic Bedrock API key, or Anthropic Bedrock access key.
    -   Codex accepts an OpenAI API key.
    
    See [connecting Claude Code credentials](https://docs.warp.dev/factories/harnesses/authentication/#connecting-claude-code-credentials) and [connecting Codex credentials](https://docs.warp.dev/factories/harnesses/authentication/#connecting-codex-credentials) for how to obtain each key.
    
5.  In the “Model” dropdown, choose a model from that harness’s catalog.
    
6.  In the top-right corner, click **Save**.
    

With a Warp-managed factory, you can edit harness, auth, and model from the dashboard. A GitHub-backed factory sets them through [`agentDefaults.harness` or a per-agent `harness` override](https://docs.warp.dev/factories/factory-as-code/#agentdefaultsharness) in the definition files. For an example, see [`03-multi-harness`](https://github.com/warpdotdev/warp-factory-examples/tree/main/examples/03-multi-harness).

## Related pages

-   [About factory agents](https://docs.warp.dev/factories/factory-agents/) - Understand responsibilities and human decision points
-   [Creating custom agents](https://docs.warp.dev/factories/factory-agents/creating-custom-agents/)
-   [Factory skills](https://docs.warp.dev/factories/factory-skills/)
-   [Definitions as code](https://docs.warp.dev/factories/factory-as-code/)
