docs: close Coder Agents coverage gaps and align nav references (#24971)

Closes coverage gaps in `docs/ai-coder/agents/` and aligns nav
references with the current UI (post #24574 Behavior split, post #24644
Insights removal).

**Content fixes:**

- Replace site-wide `coder users edit-roles` flow with org-scoped
`agents-access` role (per migration `000475`). CLI examples now preserve
existing org roles since `edit-roles` overwrites the full set.
- Correct computer-use claim: supports Anthropic *and* OpenAI providers,
configured under the Virtual desktop experiment.
- New `platform-controls/experiments.md` covering Virtual desktop,
Advisor, and Chat debug logging (each as: what, how to enable, API).
Includes the Debug tab in the chat right panel.
- Trim `models.md` "Model overrides" to essentials: two layers (admin
subagent, user personal), contexts table, resolution order, API pointer.
- Remove retired `platform-controls/pr-insights.md` (page + manifest +
cross-links).

**Nav cleanup:**

- Admin-only tabs use the full `Agents > Settings > Manage Agents >
<Tab>` path; user-side tabs keep `Agents > Settings > <Tab>`.
- Replace stale "Behavior" references with Instructions / Lifecycle /
Experiments to match the current sidebar.
- Replace references to the removed top-bar Admin dialog with the
Settings sidebar.

<details>
<summary>Decision log</summary>

- Experimental features were originally drafted as a standalone Advisor
page plus inline sections in `platform-controls/index.md`. Consolidated
into one `experiments.md` since no individual feature warrants a full
page yet and parallel short sections are easier to scan.
- Reviewer feedback on early drafts: drop the inline experiments list
from `index.md` (avoid drift), drop the "users created before this role
was introduced" note (handled transparently by migration `000475`),
specify the full nav path for per-model pricing, link the
`type=computer_use` row in `architecture.md` to the Experiments page.
- CLI bulk-grant script previously called `edit-roles <user>
agents-access`. That replaces the user's full org role set, so the
script would silently strip `organization-admin`,
`organization-template-admin`, etc. Rewrote to read each user's current
roles, append `agents-access`, dedupe, and write the union back.

</details>

PR generated with Coder Agents.
This commit is contained in:
Matt Vollmer
2026-05-05 12:40:03 -04:00
committed by GitHub
parent 526059e254
commit e189f73cc0
13 changed files with 261 additions and 167 deletions
+7 -7
View File
@@ -173,13 +173,13 @@ provider-native, and computer-use tools are not available.
These tools manage sub-agents — child chats that work on independent tasks in
parallel.
| Tool | What it does |
|---------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `spawn_agent` (`type=general` or `explore`) | Delegates a task to a sub-agent with its own context window. |
| `wait_agent` | Waits for a sub-agent to finish and collects its result. |
| `message_agent` | Sends a follow-up message to a running sub-agent. |
| `close_agent` | Stops a running sub-agent. |
| `spawn_agent` (`type=computer_use`) | Spawns a sub-agent with desktop interaction capabilities (screenshot, mouse, keyboard). Requires an Anthropic or OpenAI provider and the desktop feature to be enabled by an administrator. |
| Tool | What it does |
|---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `spawn_agent` (`type=general` or `explore`) | Delegates a task to a sub-agent with its own context window. |
| `wait_agent` | Waits for a sub-agent to finish and collects its result. |
| `message_agent` | Sends a follow-up message to a running sub-agent. |
| `close_agent` | Stops a running sub-agent. |
| `spawn_agent` (`type=computer_use`) | Spawns a sub-agent with desktop interaction capabilities (screenshot, mouse, keyboard). Requires an administrator-configured computer-use provider (Anthropic or OpenAI) and the [virtual desktop experiment](./platform-controls/experiments.md#virtual-desktop) to be enabled. |
### Provider tools
+56 -29
View File
@@ -22,22 +22,23 @@ Before you begin, confirm the following:
for the agent to select when provisioning workspaces.
- **Admin access** to the Coder deployment for configuring providers.
- **Coder Agents User role** assigned to each user who needs to interact with Coder Agents.
Owners can assign this from **Admin** > **Users**. See
[Grant Coder Agents User](#step-2-grant-coder-agents-user) below.
This role is granted **per organization**. Owners and organization admins can
assign it from **Admin settings** > **Organizations** > _[your organization]_ >
**Members**. See [Grant Coder Agents User](#step-2-grant-coder-agents-user)
below.
## Step 1: Configure an LLM provider and model
> [!IMPORTANT]
> Configuring providers, models, and system prompts requires the
> **Owner** role (Coder administrator). Non-admin users cannot access the
> Admin panel or modify deployment-level Agents configuration.
> admin Settings panel or modify deployment-level Agents configuration.
To configure Coder Agents:
1. Navigate to the **Agents** page in the Coder dashboard.
1. Click **Admin** to open the configuration dialog.
1. Under the **Providers** tab, select a provider, enter your API key, and
save.
1. Open **Settings** > **Manage Agents** and select the **Providers** tab.
Pick a provider, enter your API key, and save.
1. Switch to the **Models** tab, click **Add**, and configure at least one
model with its identifier, display name, and context limit.
1. Click the **star icon** next to a model to set it as the default.
@@ -51,37 +52,62 @@ Detailed instructions for each provider and model option are in the
## Step 2: Grant Coder Agents User
The **Coder Agents User** role controls which users can interact with Coder Agents.
Members do not have Coder Agents User by default.
The **Coder Agents User** role controls which users can interact with Coder
Agents. The role is assigned **per organization**, so a user must be granted
it in each organization where they need access. Members do not have it by
default.
Owners always have full access and do not need the role. Repeat the following steps for each user who needs access.
> [!NOTE]
> Users who created conversations before this role was introduced are
> automatically granted the role during upgrade.
Owners always have full access and do not need the role. Repeat the following
steps for each user who needs access in each organization.
**Dashboard (individual):**
1. Go to **Admin** > **Users** in the Coder dashboard.
1. Click the roles icon next to the user you want to grant access to.
1. Enable the **Coder Agents User** role and save.
1. Open **Admin settings** > **Organizations** in the Coder dashboard, then
select the organization where you want to grant access.
1. The **Members** tab opens by default. Find the user in the table.
1. Click the **Roles** cell for that user to open the role editor.
1. Toggle on **Coder Agents User** and save.
**CLI (bulk):**
> [!TIP]
> If your deployment has multiple organizations, repeat this for each
> organization where the user needs access.
You can also grant the role via CLI. For example, to grant the role to
all active users at once:
**CLI (bulk, per organization):**
Granting the role via CLI is org-scoped. The `edit-roles` command **replaces**
the member's full set of org roles, so include every role you want them to
keep. To grant `agents-access` to a single user while preserving their
existing org roles:
```sh
coder users list -o json \
| jq -r '.[].username' \
| while read u; do
coder users edit-roles "$u" \
--roles "$(coder users show "$u" -o json \
| jq -r '[.roles[].name, "agents-access"] | unique | join(",")')" \
--yes
ORG="my-org"
USER="alice"
ROLES=$(coder organizations members list -O "$ORG" -o json \
| jq -r --arg user "$USER" \
'.[] | select(.username == $user) | [.roles[].name, "agents-access"]
| unique | join(" ")')
# shellcheck disable=SC2086
coder organizations members edit-roles "$USER" -O "$ORG" $ROLES
```
To grant the role to every member of an organization while preserving their
existing roles:
```sh
ORG="my-org"
coder organizations members list -O "$ORG" -o json \
| jq -c '.[] | {user_id, roles: [.roles[].name]}' \
| while read -r row; do
user_id=$(echo "$row" | jq -r '.user_id')
roles=$(echo "$row" | jq -r '(.roles + ["agents-access"]) | unique | join(" ")')
# shellcheck disable=SC2086
coder organizations members edit-roles "$user_id" -O "$ORG" $roles
done
```
You can also set the organization with the `CODER_ORGANIZATION` environment
variable instead of `-O`.
## Step 3: Start your first Coder Agent
1. Go to the **Agents** page in the Coder dashboard.
@@ -158,7 +184,8 @@ deployment. Use this to encode organizational conventions:
- Required review processes before merging.
- Any guardrails specific to your environment.
Configure the system prompt from the **Admin** dialog on the Agents page
Configure the system prompt from **Agents** > **Settings** >
**Manage Agents** > **Instructions**
or via the API at `PUT /api/experimental/chats/config/system-prompt`.
See [Platform Controls](./platform-controls/index.md) for details.
@@ -187,8 +214,8 @@ sub-agent delegation, and complex multi-step work can consume significant
token volume. Consider:
- Starting with a single model to establish a cost baseline.
- Setting per-model token pricing in the admin panel (Input Price, Output
Price) to track spend.
- Setting per-model token pricing under **Agents** > **Settings** >
**Manage Agents** > **Models** (Input Price, Output Price) to track spend.
- Monitoring provider dashboards for usage trends during the evaluation.
### Pilot with a small group
+2 -2
View File
@@ -220,9 +220,9 @@ enterprise LLM proxies, self-hosted model endpoints, and internal gateways.
Administrators can configure multiple providers simultaneously and set a default
model. Developers select from enabled models when starting a chat.
<img src="../../images/guides/ai-agents/llm-providers.png" alt="Screenshot of the provider/model configuration admin panel">
<img src="../../images/guides/ai-agents/llm-providers.png" alt="Screenshot of the provider/model configuration in the Agents settings">
<small>The model configuration panel in the Coder dashboard.</small>
<small>The model configuration in the Agents settings panel.</small>
## Built-in tools
+40 -5
View File
@@ -32,15 +32,14 @@ models, internal gateways, or third-party proxies like LiteLLM.
### Add a provider
1. Navigate to the **Agents** page in the Coder dashboard.
1. Click **Admin** in the top bar to open the configuration dialog.
1. Select the **Providers** tab.
1. Open **Settings** > **Manage Agents** and select the **Providers** tab.
1. Click the provider you want to configure.
1. Enter the **API key** for the provider, if required.
1. Optionally set a **Base URL** to override the default endpoint. This is
useful for enterprise proxies, regional endpoints, or self-hosted models.
1. Click **Save**.
<img src="../../images/guides/ai-agents/models-providers.png" alt="Screenshot of the providers list in the admin dialog">
<img src="../../images/guides/ai-agents/models-providers.png" alt="Screenshot of the providers list in the Agents settings">
<small>The providers list shows all supported providers and their configuration
status.</small>
@@ -130,7 +129,7 @@ generation parameters, and provider-specific options.
### Add a model
1. Open the **Admin** dialog and select the **Models** tab.
1. Open **Settings** > **Manage Agents** and select the **Models** tab.
1. Click **Add** and select the provider for the new model.
1. Enter the **Model Identifier** — the exact model string your provider
expects (e.g., `claude-opus-4-6`, `gpt-5.3-codex`).
@@ -141,7 +140,7 @@ generation parameters, and provider-specific options.
1. Configure any provider-specific options (see below).
1. Click **Save**.
<img src="../../images/guides/ai-agents/models-list.png" alt="Screenshot of the models list in the admin dialog">
<img src="../../images/guides/ai-agents/models-list.png" alt="Screenshot of the models list in the Agents settings">
<small>The models list shows all configured models grouped by provider.</small>
@@ -247,6 +246,42 @@ Developers cannot add their own providers or models. If no models are
configured, the chat interface displays a message directing developers to
contact an administrator.
## Model overrides
Beyond the chat-level model picker, Coder Agents supports two override
layers:
- **Subagent overrides** (admin, deployment-wide): Pin specific subagent
contexts to a particular model. Configure them at **Agents** >
**Settings** > **Manage Agents** > **Agents**.
- **Personal overrides** (per user, opt-in by admin): Let users override
the model for their own root chats and delegated subagents. Admins
enable the toggle on the same admin page; once on, each user sees an
**Agents** tab in their personal **Agents** > **Settings**.
The configurable contexts:
| Context | Layer | Applies to |
|----------------------|--------------|--------------------------------------------------------------------------------|
| **General** | Admin + user | Write-capable subagents (`spawn_agent` with `type=general` or `computer_use`). |
| **Explore** | Admin + user | Read-only subagents (`spawn_agent` with `type=explore`). |
| **Title generation** | Admin only | Automatic title generation for new chats. |
| **Root** | User only | The user's own root chats. |
Resolution order, evaluated per chat or subagent:
1. Personal override (when the admin gate is on and a model is set).
1. Admin subagent override.
1. The chat's selected model (or the deployment default for new chats).
If a referenced model is later disabled or deleted, that layer is skipped
and resolution falls through to the next.
> [!NOTE]
> Both override layers are experimental and may change between releases.
> The same values are available through the experimental chat
> configuration API under `/api/experimental/chats/config/`.
## User API keys (BYOK)
When an administrator enables **Allow user API keys** on a provider,
@@ -0,0 +1,102 @@
# Experiments
The **Experiments** tab under **Agents** > **Settings** > **Manage Agents**
is where administrators opt in to features that are still iterating. The
behavior, configuration surface, and APIs documented here may change between
releases without notice.
> [!NOTE]
> Everything in this page is experimental. Pin a release before broad rollout
> and review the release notes before upgrading.
## Virtual desktop
Lets agents drive a graphical desktop inside the workspace through
`spawn_agent` with `type=computer_use` (screenshots, mouse, keyboard).
To enable, toggle **Virtual Desktop** on, then choose a **Computer use
provider** (Anthropic or OpenAI). It also requires:
- The [portabledesktop](https://registry.coder.com/modules/coder/portabledesktop)
module installed in the workspace template.
- An API key for the selected provider configured under the **Providers**
tab.
The Anthropic and OpenAI computer-use models are fixed by Coder per provider
and are not selectable from this UI. Anthropic is the default when no
provider is set.
## Advisor
Lets a root agent pause its current turn and request strategic guidance from
a separate, single-step model call. The advisor sees recent conversation
context, runs without any tools, and returns concise advice for the parent
agent rather than the end user. While active, it is the only tool the parent
can call for that turn.
Useful for planning ambiguity, architectural tradeoffs, debugging strategy
after repeated failures, or risk reduction before a destructive operation.
| Field | Default | Notes |
|-------------------|----------------------|-------------------------------------------------------------------------------------------------------------------------|
| Advisor (toggle) | Off | Master switch. When off, the advisor tool is not attached to new chats. |
| Max uses per run | `0` (unlimited) | Caps how many times an agent can call the advisor in a single chat run. Must be a non-negative integer. |
| Max output tokens | `0` (server default) | Caps the advisor model's response length. `0` uses the server default of 16,384 tokens. Must be a non-negative integer. |
| Reasoning effort | Use chat model | One of unset, `low`, `medium`, or `high`. Unset delegates to the underlying model's default. |
| Advisor model | Use chat model | Optional dedicated chat model config for the advisor. When unset, the advisor reuses the parent chat's model. |
The advisor is not available in plan mode or to subagents. Failed advisor
invocations refund the per-run budget, and advisor calls are not metered
against the parent chat's usage limit.
The same configuration is available at:
- `GET /api/experimental/chats/config/advisor`
- `PUT /api/experimental/chats/config/advisor`
## Chat debug logging
Records a detailed trace of each chat turn for troubleshooting: the
normalized request sent to the LLM provider, the full response, token usage,
retry attempts, and errors.
Off by default. Three layers control whether it runs for a given chat:
1. **Deployment override.** Setting `CODER_CHAT_DEBUG_LOGGING_ENABLED=true`
(or `--chat-debug-logging-enabled` at server start) forces debug logging
on for every chat. The runtime admin and user toggles become read-only.
1. **Runtime admin gate.** With the deployment override unset, the
*Let users record chat debug logs* toggle decides whether users can opt
in. Configure it at
`GET/PUT /api/experimental/chats/config/debug-logging`.
1. **Per-user toggle.** Users with the admin gate enabled can turn debug
logging on for their own chats from **Agents** > **Settings** > **General**
under *Record debug logs for my chats*. The endpoint
`PUT /api/experimental/chats/config/user-debug-logging` returns
`409 Conflict` if the deployment override is active and `403 Forbidden`
if the admin has not enabled user opt-in.
> [!IMPORTANT]
> Debug logs may contain sensitive content from prompts, responses, tool
> calls, and errors. Treat them with the same care as conversation history.
> Only the chat owner (or a user with read access to the chat) can fetch a
> chat's debug runs through the API. Administrators do not get blanket
> access to all users' debug data.
When debug logging is active for a chat, a **Debug** tab appears in the
right panel of the Agents page (alongside Git, Terminal, and Desktop) for
that chat's owner. The tab lists recent debug runs and lets you expand a run
into its per-step request, response, token usage, retry attempts, errors,
and policy metadata.
The same data is available through the experimental API:
- `GET /api/experimental/chats/{chat}/runs` lists the most recent runs for a
chat (up to 100, newest first).
- `GET /api/experimental/chats/{chat}/runs/{debugRun}` returns a single run
with all of its steps, including normalized request and response bodies.
Debug runs are stored alongside the chat and are removed when the parent
conversation is deleted (manually, by retention, or by chat purge). See
[Data Retention](./chat-retention.md) for the conversation retention
controls.
@@ -2,9 +2,9 @@
Coder Agents leverages your existing
[external authentication](../../../admin/external-auth/index.md) configuration
to power the in-chat diff viewer and [PR Insights](./pr-insights.md).
to power the in-chat diff viewer.
Self-hosted GitHub Enterprise deployments require one additional setting
(`API_BASE_URL`) for these features to work.
(`API_BASE_URL`) for this feature to work.
> [!NOTE]
> Only `github` type external auth providers are supported today.
@@ -30,8 +30,8 @@ CODER_EXTERNAL_AUTH_0_REGEX=github\.example\.com
Without `API_BASE_URL`, Coder defaults to `https://api.github.com`. Clone
and push still work (they use `AUTH_URL` and `TOKEN_URL` directly), but
the diff viewer and PR Insights silently fail because Coder builds its
URL-matching patterns from the API base URL.
the diff viewer silently fails because Coder builds its URL-matching
patterns from the API base URL.
> [!NOTE]
> If you have both a `github.com` and a GHE external auth config, only the
@@ -39,10 +39,10 @@ URL-matching patterns from the API base URL.
## Troubleshooting
### Diffs or PR data not appearing on GHE
### Diffs not appearing on GHE
Add `API_BASE_URL` to your GHE external auth config and restart Coder.
Data should appear within a couple of minutes.
Diffs should appear within a couple of minutes.
### Users not seeing diffs
+33 -43
View File
@@ -49,11 +49,12 @@ See [Models](../models.md) for setup instructions.
### System prompt
Administrators can set a system prompt that applies to all agent sessions. This
is useful for establishing organizational conventions coding standards,
is useful for establishing organizational conventions: coding standards,
commit message formats, preferred libraries, or repository-specific context.
The system prompt configuration is only accessible to administrators in the
dashboard. Developers do not see or interact with it.
This setting is available under **Agents** > **Settings** >
**Manage Agents** > **Instructions** and is only accessible to
administrators. Developers do not see or interact with it.
### Plan mode instructions
@@ -62,8 +63,8 @@ enters plan mode. These instructions supplement the built-in planning behavior
and are useful for organization-specific planning requirements such as required
plan sections, approval checkpoints, or review workflows.
This setting is available under **Agents** > **Settings** > **Behavior**.
Developers do not edit it directly.
This setting is available under **Agents** > **Settings** >
**Manage Agents** > **Instructions**. Developers do not edit it directly.
The same value is exposed over the experimental chat configuration API:
@@ -81,13 +82,14 @@ Python backend services in the payments repo" — platform teams can guide the
agent toward the correct infrastructure without requiring developers to
understand template selection at all.
Administrators can also restrict which templates are available to agents using
the template allowlist in **Agents** > **Settings** > **Templates**. When the
allowlist is configured, the agent can only see and provision workspaces from
the selected templates. When the allowlist is empty, all templates are
available. This is separate from what developers see when manually creating
workspaces, so you can apply stricter policies to agent-created workspaces
without affecting the manual workspace experience.
Administrators can also restrict which templates are available to agents
using the template allowlist at **Agents** > **Settings** >
**Manage Agents** > **Templates**. When the allowlist is configured, the
agent can only see and provision workspaces from the selected templates.
When the allowlist is empty, all templates are available. This is separate
from what developers see when manually creating workspaces, so you can apply
stricter policies to agent-created workspaces without affecting the manual
workspace experience.
See [Template Optimization](./template-optimization.md) for best practices on writing
discoverable descriptions, restricting template visibility, configuring network
@@ -104,31 +106,16 @@ opt-out, or opt-in for each chat.
See [MCP Servers](./mcp-servers.md) for configuration details.
### Virtual desktop
Administrators can enable a virtual desktop within agent workspaces.
When enabled, agents can use `spawn_agent` with
`type=computer_use` to interact with a
desktop environment using screenshots, mouse, and keyboard input.
This setting is available under **Agents** > **Settings** > **Behavior**.
It requires:
- The [portabledesktop](https://registry.coder.com/modules/coder/portabledesktop)
module to be installed in the workspace template.
- An Anthropic or OpenAI provider to be configured. Administrators select
which provider agents use under the **Computer use provider** dropdown
next to the virtual desktop toggle. Anthropic is the default.
### Workspace autostop fallback
Administrators can set a default autostop timer for agent-created workspaces
that do not define one in their template. Template-defined autostop rules always
take precedence. Active conversations extend the stop time automatically.
This setting is available under **Agents** > **Settings** > **Behavior**.
The maximum configurable value is 30 days. When disabled, workspaces follow
their template's autostop rules (or none, if the template does not define any).
This setting is available under **Agents** > **Settings** >
**Manage Agents** > **Lifecycle**. The maximum configurable value is 30
days. When disabled, workspaces follow their template's autostop rules (or
none, if the template does not define any).
### Spend management
@@ -142,27 +129,30 @@ See [Spend Management](./usage-insights.md) for details.
### Git providers
Coder Agents leverages your existing
[external authentication](../../../admin/external-auth/index.md) configuration to
power the in-chat diff viewer and PR Insights. Self-hosted GitHub Enterprise
deployments require additional configuration for these features.
[external authentication](../../../admin/external-auth/index.md) configuration
to power the in-chat diff viewer. Self-hosted GitHub Enterprise deployments
require additional configuration for this feature.
See [Git Providers](./git-providers.md) for details.
### PR Insights
PR Insights tracks pull requests created by Coder Agents and surfaces
analytics on PR activity, merge rates, and cost efficiency.
See [PR Insights](./pr-insights.md) for requirements and dashboard details.
### Data retention
Administrators can configure a retention period for archived conversations.
When enabled, archived conversations and orphaned files older than the
retention period are automatically purged. The default is 30 days.
This setting is available under **Agents** > **Settings** > **Behavior**.
See [Data Retention](./chat-retention.md) for details.
This setting is available under **Agents** > **Settings** >
**Manage Agents** > **Lifecycle**. See [Data Retention](./chat-retention.md)
for details.
### Experiments
Administrators can opt in to experimental features under **Agents** >
**Settings** > **Manage Agents** > **Experiments**. Behavior, configuration
surface, and APIs may change between releases.
See [Experiments](./experiments.md) for the current list of experiments, how
to enable them, and the relevant API endpoints.
## Where we are headed
@@ -5,11 +5,12 @@ for agent chat sessions. Configured servers are injected into or offered to
users during chat depending on the availability policy.
This is an admin-only feature accessible at **Agents** > **Settings** >
**MCP Servers**.
**Manage Agents** > **MCP Servers**.
## Add an MCP server
1. Navigate to **Agents** > **Settings** > **MCP Servers**.
1. Navigate to **Agents** > **Settings** > **Manage Agents** >
**MCP Servers**.
1. Click **Add**.
1. Fill in the configuration fields described below.
1. Click **Save**.
@@ -1,61 +0,0 @@
# PR Insights
PR Insights tracks pull requests created by Coder Agents and surfaces
analytics on PR activity, merge rates, and cost efficiency. The dashboard
(under **Agents** > **Insights** > **PR Insights**) shows merge rates,
cost per merged PR, per-model breakdowns, and individual PR status.
## How it works
A background worker monitors active agent chats for git activity. When an
agent pushes a branch or creates a pull request, the worker resolves the git
remote origin against configured external auth providers.
The worker uses the matched provider's API to fetch PR metadata: status, diff
stats, review state, and merge outcome.
> [!NOTE]
> Only `github` type external auth providers are supported for PR Insights
> today.
## Requirements
For PR data to appear in analytics, all of the following must be true:
1. **External auth is configured for your git host** — The external auth
config must have `type` set to `github` with a regex matching your
repository URLs. See
[External Authentication](../../../admin/external-auth/index.md).
1. **Users have linked their external auth** — The user who ran the agent
task must have authenticated with the relevant external auth provider.
Without a linked token, the worker cannot fetch PR data and retries on a
backoff schedule.
1. **The agent reported a git reference** — The agent must push to a branch
with a configured remote origin. If no branch or remote origin is
reported, the worker skips the chat.
For self-hosted GitHub Enterprise deployments, additional configuration is
required. See [Git Providers](./git-providers.md#github-enterprise-configuration).
## Troubleshooting
### PRs not appearing
Verify the user has linked their external auth. Check Coder logs for gitsync
warnings like `no provider for origin` or token resolution errors. For GitHub
Enterprise, confirm that `API_BASE_URL` is set — see
[Git Providers](./git-providers.md#troubleshooting).
### Only github.com PRs appear
If you have multiple external auth configs (e.g., `github.com` + GHE),
ensure the GHE config has `API_BASE_URL` set. The `github.com` config works
without it because the default is already correct.
### PR data delayed
The background worker polls on a ~10 second interval. New PRs typically
appear within a couple of minutes. If a token refresh fails, the worker
backs off for 10 minutes before retrying.
@@ -20,7 +20,7 @@ template allowlist.
To configure the allowlist:
1. Navigate to **Agents** > **Settings** > **Templates**.
1. Navigate to **Agents** > **Settings** > **Manage Agents** > **Templates**.
2. Select the templates you want agents to be able to use.
3. Click **Save**.
@@ -5,7 +5,7 @@ spend: usage limits and cost tracking.
## Usage limits
Navigate to **Agents** > **Settings** > **Spend**.
Navigate to **Agents** > **Settings** > **Manage Agents** > **Spend**.
Usage limits cap how much each user can spend on LLM usage within a rolling
time period. When enabled, the system checks the user's current spend before
@@ -53,7 +53,7 @@ their effective limit, current spend, and when the current period resets.
## Cost tracking
Navigate to **Agents** > **Settings** > **Spend**.
Navigate to **Agents** > **Settings** > **Manage Agents** > **Spend**.
This view shows deployment-wide LLM chat costs with per-user drill-down.
@@ -69,8 +69,8 @@ variables (e.g. `ANTHROPIC_API_KEY`). With Coder Agents, credentials are
configured once in the control plane:
1. Navigate to the **Agents** page in the Coder dashboard.
1. Click **Admin** > **Providers**, select a provider, enter your API key,
and save.
1. Open **Settings** > **Manage Agents** > **Providers**, pick a provider,
enter your API key, and save.
1. Under **Models**, add at least one model and set it as the default.
You no longer pass API keys in template variables or workspace environment. See https://coder.com/docs/ai-coder/agents/getting-started for more information.
+7 -7
View File
@@ -1259,16 +1259,10 @@
},
{
"title": "Git Providers",
"description": "Git provider configuration for the diff viewer and PR Insights",
"description": "Git provider configuration for the in-chat diff viewer",
"path": "./ai-coder/agents/platform-controls/git-providers.md",
"state": ["beta"]
},
{
"title": "PR Insights",
"description": "Pull request analytics for Coder Agents",
"path": "./ai-coder/agents/platform-controls/pr-insights.md",
"state": ["beta"]
},
{
"title": "Data Retention",
"description": "Automatic cleanup of old conversation data",
@@ -1280,6 +1274,12 @@
"description": "Automatic archiving of inactive conversations",
"path": "./ai-coder/agents/platform-controls/chat-auto-archive.md",
"state": ["beta"]
},
{
"title": "Experiments",
"description": "Experimental Coder Agents features admins can opt in to: virtual desktop, advisor, and chat debug logging",
"path": "./ai-coder/agents/platform-controls/experiments.md",
"state": ["beta"]
}
]
},