Key points
- A profile carries an ID, display name, optional role and description, instructions, and an enabled flag.
- Referencing a missing or disabled profile is a validation error, not a silent fallback.
- Agent roles are one file per role at
agent-roles/<name>.yaml, where the file path is the role name; a team-scoped role lives atagent-roles/<team>/<name>.yaml, exactly like a team-scoped pipeline. agent_roleis valid on a pipeline and a step. A task that sets it fails at parse time.- Instructions shape behavior only — they grant no provider access, tools, credentials, or permissions.
Field reference
idagent rolestringRequiredNone
Profile identifier referenced by agent_role on a pipeline or step.
id: senior-release-engineerpkg/models/agent_profile.go
display_nameagent rolestringRequiredNone
Name shown in the Agent roles workspace and profile pickers.
display_name: Senior Release Engineerroleagent rolestringOptionalNone
Short role label used in prompt framing.
role: Release engineerdescriptionagent rolestringOptionalNone
Human-readable purpose shown to authors choosing a persona.
description: Cautious operator persona for production release work.instructionsagent rolestringRequiredNone
Prompt instructions injected for conditions and LLM goals that select this profile.
instructions: |
Prefer reversible actions. Never skip a failing check.Instructions shape behavior only. They do not grant provider access, tools, credentials, or permissions.
pkg/models/agent_profile.go
enabledagent rolebooleanRequiredNone
Whether the profile can be selected. Referencing a disabled profile fails validation.
enabled: trueservices/nopsai/pkg/validation/pipeline.go
built_inagent rolebooleanOptionalfalse
Marks a profile shipped with the platform rather than authored by an operator.
built_in: truesourceagent rolestringOptionaldatabase
Where the profile definition came from, used to reason about GitOps ownership.
source: gitopsExamples
id: senior-release-engineer
display_name: Senior Release Engineer
role: Release engineer
description: Cautious operator persona for production release work.
enabled: true
instructions: |
Prefer reversible actions over irreversible ones.
Never skip a failing check to make a run pass.
When evidence is ambiguous, stop and explain what is missing.How it works
The platform default profile applies when nothing more specific is selected. Setting a team default lets a team standardize its persona without editing every pipeline.
GET /v1/system/agent-roles/{profileID}/usage shows which pipelines and steps reference a profile, which is what you want before disabling or deleting one.
The Agent roles workspace keeps the default-profile control on the left, uses compact list-header search and create actions, and shows team tree counts that include cached team-owned profiles.
Implementation evidence
pkg/models/agent_profile.goAgent role struct and defaults.
doc/agent-profiles.mdGitOps management, AAA, and runtime prompt behavior.

