9.6 KiB
Automation Profiles
Automation Profiles control how much autonomy the CleverAgents system has at each phase of plan execution. Each profile defines a set of threshold values and safety requirements that determine when the system may proceed automatically versus when it must wait for human approval.
Threshold Semantics
Each threshold field is a float in the range [0.0, 1.0]:
| Value | Meaning |
|---|---|
0.0 |
Fully automatic — no human gate required |
1.0 |
Always requires human approval |
0.0 < v < 1.0 |
Probabilistic — the system may proceed if its confidence exceeds the threshold |
Threshold Fields
| Field | Category | Description |
|---|---|---|
auto_strategize |
Phase transition | Gate before entering the strategy phase |
auto_execute |
Phase transition | Gate before entering the execution phase |
auto_apply |
Phase transition | Gate before applying changes |
auto_decisions_strategize |
Decision autonomy | Gate for decisions during strategy |
auto_decisions_execute |
Decision autonomy | Gate for decisions during execution |
auto_validation_fix |
Self-repair | Gate for automatic validation fixes |
auto_strategy_revision |
Self-repair | Gate for automatic strategy revision |
auto_reversion_from_apply |
Self-repair | Gate for reverting from the apply phase |
auto_child_plans |
Child plans | Gate for spawning child plans |
auto_retry_transient |
Retry | Gate for retrying transient failures |
auto_checkpoint_restore |
Checkpoint | Gate for automatic checkpoint restoration |
Safety Fields
| Field | Type | Default | Description |
|---|---|---|---|
require_sandbox |
bool | true |
Execution must happen in a sandbox |
require_checkpoints |
bool | true |
Checkpoints must be created before writes |
allow_unsafe_tools |
bool | false |
Tools flagged as unsafe may be invoked |
Built-in Profiles
Eight profiles ship with every CleverAgents installation:
| Flag | manual | review | supervised | cautious | trusted | auto | ci | full-auto |
|---|---|---|---|---|---|---|---|---|
| auto_strategize | 1.0 | 0.0 | 0.0 | 0.7 | 0.0 | 0.0 | 0.0 | 0.0 |
| auto_execute | 1.0 | 0.0 | 1.0 | 0.7 | 0.0 | 0.0 | 0.0 | 0.0 |
| auto_apply | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 0.0 | 0.0 |
| auto_decisions_strategize | 1.0 | 1.0 | 0.0 | 0.6 | 0.0 | 0.0 | 0.0 | 0.0 |
| auto_decisions_execute | 1.0 | 1.0 | 1.0 | 0.8 | 0.0 | 0.0 | 0.0 | 0.0 |
| auto_validation_fix | 1.0 | 1.0 | 1.0 | 0.7 | 0.0 | 0.0 | 0.0 | 0.0 |
| auto_strategy_revision | 1.0 | 1.0 | 1.0 | 0.8 | 1.0 | 0.0 | 0.0 | 0.0 |
| auto_reversion_from_apply | 1.0 | 1.0 | 1.0 | 0.9 | 1.0 | 1.0 | 0.0 | 0.0 |
| auto_child_plans | 1.0 | 0.0 | 1.0 | 0.7 | 0.0 | 0.0 | 0.0 | 0.0 |
| auto_retry_transient | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| auto_checkpoint_restore | 1.0 | 1.0 | 1.0 | 0.6 | 1.0 | 0.0 | 0.0 | 0.0 |
| require_sandbox | true | true | true | true | true | true | true | false |
| require_checkpoints | true | true | true | true | true | true | true | false |
| allow_unsafe_tools | false | false | false | false | false | false | false | true |
Profile Descriptions
- manual — Human approves every action. Maximum safety, minimum autonomy.
- review — Strategy and execution proceed automatically; human reviews before apply. Good default for development.
- supervised — Human reviews strategy and execution decisions. Strategy creation itself is automatic.
- cautious — Probabilistic gates on most actions. The system proceeds when confident, asks when unsure.
- trusted — Automatic for most phases, but human approval required for apply and reversion. Suitable for experienced teams.
- auto — Fully automatic except reversion from apply. Suitable for well-tested pipelines.
- ci — Designed for CI/CD pipelines. All thresholds at 0.0 but sandbox and checkpoints remain required.
- full-auto — No gates, no sandbox, no checkpoints, unsafe tools allowed. Use with extreme caution.
Resolution Precedence
When determining which profile applies to a given plan execution, the system resolves profiles in the following order (highest priority first):
- Plan-level override — A profile specified directly on the plan.
- Project-level setting — The default profile configured for the project.
- Organization-level default — The organization's default profile.
- System default — Falls back to the
reviewbuilt-in profile.
At each level, the profile may be specified by:
- A built-in name (e.g.
cautious) - A namespaced custom profile (e.g.
acme/strict)
Custom Profiles
Custom profiles use a namespace/name naming convention:
name: acme/strict
description: Strict profile for production deployments
schema_version: "1.0"
auto_strategize: 0.9
auto_execute: 0.9
auto_apply: 1.0
auto_decisions_strategize: 0.8
auto_decisions_execute: 0.9
auto_validation_fix: 0.5
auto_strategy_revision: 0.9
auto_reversion_from_apply: 1.0
auto_child_plans: 0.8
auto_retry_transient: 0.3
auto_checkpoint_restore: 0.7
require_sandbox: true
require_checkpoints: true
allow_unsafe_tools: false
See docs/schema/automation_profile.schema.yaml for the full YAML schema and examples/profiles/ for example configurations.
Automation Guards
Guards are optional enforcement hooks attached to a profile that gate tool invocations at runtime. They operate independently of the phase-transition thresholds and provide fine-grained control over tool usage.
Guard Fields
| Field | Type | Default | Description |
|---|---|---|---|
max_tool_calls_per_step |
int | None |
None |
Maximum tool invocations per step before requiring approval |
max_total_cost |
float | None |
None |
Budget cap before requiring approval |
tool_allowlist |
list[str] | None |
None |
Only these tools can be called automatically |
tool_denylist |
list[str] | None |
None |
These tools always require approval |
require_approval_for_writes |
bool |
false |
Require human approval for write operations |
require_approval_for_apply |
bool |
false |
Require human approval before apply phase |
Guard Evaluation Order
When check_guard() is called, guards are evaluated in this order:
- Denylist — If the tool is on the denylist, it is blocked immediately.
- Allowlist — If an allowlist is set and the tool is not on it, it is blocked.
- Max tool calls — If the call count has reached the limit, approval is required.
- Cost budget — If the cumulative cost has reached the cap, approval is required.
- Write approval — If the operation is a write and write approval is required.
- Apply approval — If the tool name is
__apply__and apply approval is required.
If no guard blocks the invocation, it is allowed.
GuardResult
The result of a guard evaluation is a GuardResult with three fields:
allowed(bool) — Whether the tool invocation may proceed.reason(str | None) — Human-readable explanation when blocked.requires_approval(bool) — Whether human approval can unblock the invocation.
Example YAML with Guards
name: acme/guarded
description: Profile with guard constraints
schema_version: "1.0"
auto_strategize: 0.7
auto_execute: 0.7
auto_apply: 1.0
guards:
max_tool_calls_per_step: 10
max_total_cost: 5.0
tool_denylist:
- shell_exec
- file_delete
require_approval_for_writes: true
require_approval_for_apply: true
CLI Commands
The agents automation-profile command group manages automation profiles
from the terminal.
automation-profile add
Register a custom profile from a YAML configuration file:
agents automation-profile add --config ./profiles/strict.yaml
agents automation-profile add --config ./profiles/strict.yaml --update
agents automation-profile add --config ./profiles/strict.yaml --format json
Options:
--config / -c— Path to the YAML configuration file (required).--update— Overwrite an existing custom profile instead of raising a conflict error.--format / -f— Output format:json,yaml,plain,table, orrich(default:rich).
automation-profile remove
Remove a custom profile by name (built-in profiles cannot be removed):
agents automation-profile remove acme/strict --yes
agents automation-profile remove acme/strict --yes --format json
Options:
--yes / -y— Skip the interactive confirmation prompt.--format / -f— Output format.
automation-profile list
List all profiles with optional filtering:
agents automation-profile list
agents automation-profile list --namespace acme
agents automation-profile list "caut.*"
agents automation-profile list --format json
Options:
- regex (positional) — Optional regex pattern to filter profile names.
--namespace / -n— Filter by the namespace portion of namespaced names.--format / -f— Output format.
automation-profile show
Display full details for a single profile:
agents automation-profile show manual
agents automation-profile show acme/strict --format yaml
Options:
--format / -f— Output format.
Deprecation: --automation-level
The --automation-level option on plan use and the plan set-automation-level
command are deprecated and will be removed in a future release.
Legacy automation levels are mapped to built-in profiles:
| Legacy level | Built-in profile |
|---|---|
manual |
manual |
supervised |
supervised |
auto |
auto |
full_auto |
full-auto |
Use --automation-profile <name> instead of --automation-level.