Templates and Skills
Concept

Use Agent overrides

Use Agent-private Template snapshots: one mutable draft, immutable published versions, exact Skill Version requirements, direct-source updates that never change the draft, and Apply stopped or Apply & Restart running.

For
Agent operators, Agent editors, Template authors, and Organization administrators
On this page
  1. Before you begin
  2. Choose the boundary
  3. How Agent Overrides work
  4. Understand the isolation boundary
  5. What an Override contains
  6. 1. Create an Override
  7. 2. Work with an Override Draft
  8. 3. Publish an Override Version
  9. Publishing does not activate
  10. 4. Apply an Override
  11. 5. Create another Override Version
  12. 6. Roll back an Override
  13. Switch back to a shared Template
  14. Understand source updates
  15. Apply a source update
  16. Rebase private changes
  17. Source updates preserve drafts
  18. Source availability
  19. Required Skills
  20. Permissions and lifecycle
  21. API reference
  22. Optimistic concurrency
  23. History and retention
  24. Troubleshooting
  25. Recommended practices
  26. Next steps
  • Templates and Skills
  • 12–15 minutes

An Agent Override is a private template configuration owned by one Agent.

Use an Override when an Agent needs instructions, identity, required Skills, or other template content that should not be published to a shared Organization Template.

Before you begin

You need:

  • Access to the Agent
  • Permission to view its configuration
  • agent.update permission to create, edit, publish, or select an Override
  • Lifecycle permission to apply an Override to a running Agent
  • Any Skills required by the Override assigned to the Agent
  • Required provider credentials configured for those Skills

You can safely create, edit, and publish an Override while the Agent is running. Applying a published version to a running Agent requires Apply & Restart.

Choose the correct customization boundary

Use the narrowest boundary that matches the intended audience.

Requirement Use
Make behavior available globallyPlatform Template
Share behavior across an organizationOrganization Template
Customize a built-in for an organizationOrganization fork
Customize only one AgentAgent Override
Test a private change before promoting itAgent Override
Give several Agents the same changeOrganization Template, not multiple Overrides

Agent Overrides are useful for:

  • Agent-specific tone or identity
  • Instructions tied to one business function
  • Temporary behavior experiments
  • Private escalation rules
  • Testing changes before updating a shared template
  • Required Skills that apply only to one Agent

Avoid duplicating the same Override across several Agents. Publish common behavior to an Organization Template instead.

How Agent Overrides work

An Override has its own Agent-scoped lifecycle.

  1. Shared Template
  2. Agent-owned draft
  3. Published Override Version
  4. Apply
  5. Restart

Publishing and selecting are separate operations. Publishing creates an immutable Override Version, but the Agent remains on its currently selected configuration until you explicitly apply the published version.

Understand the isolation boundary

Suppose three Agents use the same Organization Template. Creating and applying an Override for Agent B affects only Agent B.

Shared Template, before

Shared Template
Organization Template v4
├── Agent A
├── Agent B
└── Agent C

Agent-owned Override, after

Agent Override
Organization Template v4
├── Agent A
└── Agent C

Agent B
└── Agent Override v1
    Source: Organization Template v4

Agent A and Agent C remain unchanged. The Override is visible only through Agent B’s access boundary, not in the Organization catalog or to sibling Agents. The Override:

  • Belongs to Agent B
  • Has an independent version sequence
  • Preserves its shared source metadata
  • Is not added to the Organization Templates catalog
  • Cannot be applied to Agent A or Agent C
  • Remains available if Agent B later switches back to a shared version

Users need Agent access to view this configuration and agent.update to create, edit, publish, or select it. Agent-private Skills are likewise visible only through their owning Agent; shared Template and Skill management remains separate.

What an Override contains

Included in the snapshot

  • Template name
  • Description
  • SOUL.md
  • IDENTITY.md
  • USER.md
  • TOOLS.md
  • AGENTS.md
  • BOOT.md
  • BOOTSTRAP.md
  • HEARTBEAT.md
  • Standalone and grouped Skill requirements
  • The exact required Skill Version for every requirement
  • Each grouped requirement’s group_key
  • Source Template type, key, and version
  • Author information
  • Creation and update timestamps

Not copied or versioned

  • Secrets
  • Provider credentials
  • Channel configuration
  • Runtime selection
  • Deployment settings
  • Agent access assignments
  • Logs or activity history

An Override Draft and every published Override Version are complete snapshots, not deltas. Runtime configuration outside the Template boundary is not included. Rolling back an Override changes Template behavior only.

Create an Override

To create an Agent-specific Override:

  1. Open the Agent.
  2. Go to Configuration.
  3. Select Agent-owned override.
  4. Select Create override.
  5. Edit the template name or description if needed.
  6. Edit the required Markdown artifacts.
  7. Review the required Skills.
  8. Select Save draft.
  9. Review the saved draft.
  10. Select Publish when it is ready.

The initial draft is seeded from the Agent’s currently active configuration. If the Agent uses a shared Template, the draft copies that exact Platform or Organization version. If the Agent already uses an Override, Create new draft copies the active Override Version.

Work with an Override Draft

Each Agent can have one Override Draft at a time. The draft is private to the Agent and remains editable until it is published. Saving the draft does not change the Agent’s active configuration.

The draft editor supports the Template name, description, all eight Markdown artifacts, standalone required Skills, and “at least one of” required Skill groups. Retained requirements preserve their exact Skill Version pins; a newly added requirement resolves to that Skill’s latest published version when added.

Omitted requirement fields retain their saved values. Supplying only standalone requirements preserves existing groups, and supplying only groups preserves existing standalone requirements. A Skill cannot be both standalone and grouped, or appear in multiple groups. The Override Draft update contract does not accept required_skill_versions.

To continue an existing draft:

  1. Open the Agent’s configuration.
  2. Select Agent-owned override.
  3. Find Override draft.
  4. Select Edit.
  5. Make the required changes.
  6. Select Save draft.

Selecting Cancel exits the current editing session and leaves the previously saved draft intact.

Publish an Override Version

Publishing freezes the current draft as the next immutable Override Version.

  1. Open the saved Override Draft.
  2. Review every artifact.
  3. Confirm its required Skills.
  4. Select Publish.
  5. Review the confirmation.
  6. Select Publish override.

Publishing:

  • Creates the next Agent-owned Override Version
  • Records the author
  • Copies the complete draft snapshot
  • Clears the published draft slot
  • Preserves previous Override Versions
  • Leaves the Agent’s active configuration unchanged

If the Agent has no published Override Versions, the first publish creates Override v1.

Publishing does not activate the Override

After publication, the Agent keeps its current pin until you select the new version.

After publishing

Not yet active
Active configuration: Organization Template v4

Published Override history:
└── Override v1

The Agent continues using Organization Template v4.

After applying

Active
Active configuration: Agent Override v1

Published Override history:
└── Override v1 · Active

Select Override v1 in Template selection and apply it.

This separation lets you publish safely without restarting or changing a production Agent.

Apply a published Override

  1. Open the Agent.
  2. Go to Configuration.
  3. Select Template selection.
  4. Open the Template version selector.
  5. Find the entry labeled Agent override.
  6. Select the exact Override Version.
  7. Preview its artifacts and required Skills.
  8. Select Apply or Apply & Restart.
  9. Confirm the change.

For a stopped Agent, Apply changes the pin and leaves the Agent stopped. For a running Agent, Apply & Restart stops the Agent, selects the Override Version, and starts the Agent again.

The restart is required because Agent Barn generates runtime configuration when the Agent starts.

Create another Override Version

After applying an Override, you can create another revision:

  1. Open Agent-owned override.
  2. Select Create new draft.
  3. Edit the new draft.
  4. Save it.
  5. Publish it.
  6. Open Template selection.
  7. Apply the new published version.

The new draft is copied from the Agent’s active Override.

Version sequence
Active Override v1
        │
        ├── Create new draft
        │
        ├── Edit and publish
        ▼
Published Override v2

Active remains Override v1
until Override v2 is applied.

Roll back an Override

Rollback means selecting a previous immutable Override Version. It does not create another version, and it does not alter an existing draft.

  1. Open the Agent’s configuration.
  2. Select Template selection.
  3. Find the previous Agent override version.
  4. Preview the complete snapshot.
  5. Verify its required Skills.
  6. Select Apply or Apply & Restart.
  7. Verify the Agent after activation.

Published Override history after rolling back to v1:

  • Override v3

    Published from the third draft

  • Override v2

    Published from the second draft

  • Override v1 Active

    Published from the first draft

There is no separate rollback endpoint. Historical selection is the rollback operation.

Switch back to a shared Template

An Agent can leave its Override history and return to a Platform or Organization Template.

  1. Open Template selection.
  2. Find the required shared Template.
  3. Check whether it is labeled Built-in platform, Organization-owned, or Organization fork.
  4. Select the exact version.
  5. Preview its content and required Skills.
  6. Select Apply or Apply & Restart.

The published Override history is preserved. You can return to an Override later by selecting it again.

Switching between sources
Override v2 ── switch ── Organization Template v5
     ▲
     └──────── select Override v2 later

Switching to a shared Template does not publish, merge, or delete an Override.

Understand source updates

Every Override records the exact shared version from which its lineage was created. The direct source can be a Platform Template Version or an Organization Template Version.

A source update exists only for the active Override’s exact direct Platform or Organization source lineage when that lineage publishes a newer version. An Override sourced from an Organization Template does not independently follow that Template’s Platform origin.

Platform source

Platform update
Override source: Platform v2
Latest source:   Platform v4
Label:           Platform update

Organization source

Organization update
Override source: Organization v3
Latest source:   Organization v5
Label:           Organization update

Only the direct source lineage is checked. If the source can no longer be resolved, no update candidate appears, but the self-contained Override remains valid.

Apply a source update

A source update selects the complete newer shared Template Version as the Agent’s active pin. Its exact required Skill Versions must be satisfied. It does not update the Override itself.

Before

Current state
Active: Override v2
Source: Organization Template v3
Draft:  Local unpublished work

After

Resulting state
Active:  Organization Template v5
Draft:   Local unpublished work remains unchanged
History: Override v1 and v2 remain unchanged

To apply a source update:

  1. Open Template selection.
  2. Find the entry marked Platform update or Organization update.
  3. Preview the complete shared snapshot.
  4. Review and satisfy its exact required Skill Versions.
  5. Select Apply or Apply & Restart.
  6. Confirm the change.

Rebase private changes on a newer source

Agent Barn does not perform a three-way merge between an Override and its source.

To build a new Override from a newer shared version:

  1. Record the private changes that must be retained.
  2. Resolve any existing Override Draft.
  3. Apply the newer Platform or Organization source version.
  4. Confirm that the shared version is active.
  5. Open Agent-owned override.
  6. Select Create override.
  7. Reapply the required private changes.
  8. Save the new draft.
  9. Publish it.
  10. Apply the new Override Version.
  11. Test the Agent.

This produces an explicit history:

Rebased history
Override v2
Source: Organization v3
        │
        ├── Select Organization v5
        ▼
Active shared source: Organization v5
        │
        ├── Create and publish new Override
        ▼
Override v3
Source: Organization v5

Source updates preserve draft work

A source update never overwrites an existing Override Draft. This matters when one user is editing private Agent instructions while another user applies a newer shared source.

Draft preservation
Saved Override Draft
├── Custom SOUL.md
└── Custom required Skills

Apply source update
        │
        ├── Active Agent pin changes
        └── Saved Override Draft remains unchanged

The draft can be reviewed and published separately. Because its original source metadata remains unchanged, review it carefully before publishing after a source update.

Source availability

Published Overrides are self-contained snapshots. They remain valid even if their original source row is no longer available.

If Agent Barn cannot resolve the exact recorded source:

  • The Override remains usable
  • Its published history remains available
  • The Agent can stay pinned to it
  • No source-update candidate is shown

An unavailable source does not invalidate an existing Override.

Required Skills

Required Skill rules are copied into the Override Draft and can be changed for that Agent. Every requirement must be visible to the owning Agent: Platform Skills, its Organization’s Skills, and its own Agent-private Skills are eligible; another Agent’s private Skills are never visible or eligible.

Agent Barn validates the requirements when the draft is saved or published, and when a version is selected. Validation checks that:

  • Every standalone Skill is assigned to the Agent at its exact required Skill Version
  • At least one Skill from each group is assigned at that member’s exact required Skill Version
  • Required Skill providers are configured for the Agent

Having the correct Skill lineage at a different version does not satisfy the requirement. Validation runs when requirements are saved, the Override Draft is published, and a published Override Version is selected. Publishing a newer Skill Version never changes an existing Override Draft, published Override Version, or Agent Skill pin.

Example errors include:

Validation errors
Required template skills must be assigned to the Agent: Jira

At least one of these template skills must be assigned to the Agent: Jira, Linear

Required Skill 'Jira' needs configured providers: jira

Assign or repin the required Skills at their exact versions, then configure required provider credentials and retry.

Permissions and lifecycle behavior

Action Required authority
View Agent configurationAccess to the Agent
Create or edit an Override Draftagent.update
Publish an Overrideagent.update
Apply to a stopped Agentagent.update
Apply to a running Agentagent.update and lifecycle permission
Change a shared Template definitionSeparate Template management permission

API reference

Read configuration and Override history

HTTP
GET /api/v1/organizations/{organization_id}/agents/{agent_id}/configuration

The response includes active, draft, source_update, shared_versions, and override_versions.

Response
{
  "agent_id": "928ae950-586f-4b5d-8f01-096116e60c7b",
  "active": {
    "pin_type": "override",
    "version": 1,
    "state": "active"
  },
  "draft": null,
  "source_update": null,
  "shared_versions": [],
  "override_versions": [
    {
      "version": 1,
      "state": "published",
      "pin_type": "override",
      "source_type": "organization",
      "source_template_key": "tpl-4f6a71b29c83",
      "source_template_version": 4,
      "required_skills": [
        { "id": "{skill_id}", "name": "Jira", "version": 3, "group_key": null },
        { "id": "{skill_id}", "name": "GitHub", "version": 2, "group_key": "code-host" }
      ]
    }
  ]
}

Each required_skills entry carries its exact version; group_key: null is standalone, while matching non-null keys form a group.

Start an Override Draft

HTTP
POST /api/v1/organizations/{organization_id}/agents/{agent_id}/configuration/draft

No request body is required. If a draft already exists, the existing draft is returned.

Save an Override Draft

HTTP
PATCH /api/v1/organizations/{organization_id}/agents/{agent_id}/configuration/draft
Content-Type: application/json
Request body
{
  "expected_updated_at": "2026-08-29T10:20:30Z",
  "template_name": "Customer Support: Priority Queue",
  "description": "Private behavior for the priority support Agent.",
  "soul_md": "# SOUL.md\n\nRespond calmly and prioritize urgent cases.",
  "required_skill_ids": [
    "3f117494-cac1-43f2-b5bb-456760fbc82e"
  ]
}

At least one draft field must be provided in addition to expected_updated_at. Omitted fields retain their saved draft values.

Publish the draft

HTTP
POST /api/v1/organizations/{organization_id}/agents/{agent_id}/configuration/draft/publish
Content-Type: application/json
Request body
{
  "expected_updated_at": "2026-08-29T10:24:05Z"
}

A successful request returns 201 Created with the immutable published Override Version. Publishing does not select it.

Select an Override Version

The Agent must be stopped before calling the selection endpoint directly.

HTTP
POST /api/v1/organizations/{organization_id}/agents/{agent_id}/configuration/select
Content-Type: application/json
Request body
{
  "selection_type": "override",
  "override_version": 2,
  "expected_agent_updated_at": "2026-08-29T10:31:44Z"
}

Do not include template_key or template_version when selection_type is override.

Select a shared source version

Request body
{
  "selection_type": "organization",
  "template_key": "tpl-4f6a71b29c83",
  "template_version": 5,
  "expected_agent_updated_at": "2026-08-29T10:31:44Z"
}

Use selection_type: "platform" for a Built-in Platform Template.

Optimistic concurrency

Draft updates, publication, and template selection use timestamps to prevent one user from silently overwriting another user’s work.

Draft operations use expected_updated_at. Agent selection uses expected_agent_updated_at.

If the resource changed after you loaded it, Agent Barn returns a conflict. Refresh the configuration, review the latest state, and retry with the current timestamp.

Published history and retention

Published Override Versions are immutable and remain available for review, audit history, exact selection, rollback, and comparing private revisions.

Published versions do not have an individual deletion workflow.

Switching to a shared Template does not remove Override history. Soft-deleting an Agent retains its Override history for audit purposes, although the deleted Agent and its history are hidden from normal views.

Troubleshooting

I published an Override, but the Agent still uses the shared Template

Publishing never activates

Publishing does not activate an Override. Open Template selection, select the published Agent Override Version, and apply it.

The Override changed after restart but not before it

Configuration is generated at start

Template configuration is generated when the Agent starts. A running Agent must restart to load a newly selected version.

I cannot publish the draft

Permissions, Skills, or a conflict

Check that:

  • The draft still exists
  • You have agent.update permission
  • Its required Skills are assigned
  • Required Skill providers are configured
  • The draft has not changed since you loaded it

Refresh the page if the server reports a concurrency conflict.

The right Skill lineage is assigned, but validation still fails

Exact version required

The Override requires the exact pinned Skill Version. Assigning another version from the same lineage does not satisfy the requirement; select the matching version and configure any required provider.

Create override opened an existing draft

One draft per Agent

Each Agent has only one saved Override Draft. If one already exists, Agent Barn returns it instead of replacing it.

Review and publish that draft before creating another one from the active configuration.

Applying a source update did not change my draft

Expected: drafts are preserved

This is expected. Source updates change the Agent’s active shared pin and deliberately leave private draft work unchanged.

A newer Skill Version was published, but this Override did not change

Pins do not advance automatically

Drafts, published Override Versions, and selected Agent configurations retain their exact Skill Version pins. Edit the draft or select a different complete version explicitly when you want to adopt a newer Skill.

My Override does not show a source update

Only the direct source is checked

A source update appears only when the active configuration is an Override, its exact direct source can still be resolved, and that direct Platform or Organization lineage has a newer version.

An Override based on an Organization source does not independently follow the Organization Template’s Platform origin.

Another Agent cannot see this Override

Overrides are Agent-owned

Overrides are Agent-owned and intentionally private. Publish the content as an Organization Template if it must be shared.

A required private Skill belongs to another Agent

Private Skills do not cross Agent boundaries

Another Agent’s private Skill is never available to this Override. Use a visible Platform or Organization Skill, or create a private Skill owned by this Agent.

I cannot apply an Override to a running Agent

Lifecycle permission required

Applying a running change requires both Agent update and lifecycle permissions. Use Apply & Restart.

The raw selection API requires the Agent to be stopped first.

Applying an old Override fails because a Skill is missing

The exact version is revalidated

Agent Barn revalidates the exact version’s Skill requirements during selection. Restore access to the Skill, assign it to the Agent, and configure its required provider credentials.

Rolling back did not restore Secrets or channel settings

Rollback covers the Template only

Override rollback covers only the Template snapshot. Secrets, deployment configuration, channel access, runtime selection, and other Agent settings are separate.

  • Use Overrides only for genuinely Agent-specific behavior
  • Keep shared behavior in Organization Templates
  • Describe why each private version exists
  • Review all eight artifacts before publishing
  • Treat publication and activation as separate approvals
  • Test a new Override before applying it to a running Agent
  • Confirm required Skills and providers before publication
  • Use exact historical selection for rollback
  • Preserve existing drafts during source updates
  • Recreate private changes deliberately on top of a newer source
  • Record both the Override Version and its shared source version
  • Review Agent health and logs after activation

Next steps

Continue to Work with Skills to learn how Skills package reusable instructions, and how Template requirements interact with an Agent’s assigned capabilities.

Documentation