3.8 KiB
AutomationProfileService Reference
Overview
The AutomationProfileService resolves the effective automation profile
for plan execution using a four-level precedence hierarchy.
Profile Precedence
Profiles are resolved in order (first non-null wins):
| Priority | Source | Description |
|---|---|---|
| 1 | Plan-level | Explicitly set via --automation-profile |
| 2 | Action-level | Default profile set on the action template |
| 3 | Project-level | Set via project configuration |
| 4 | Global-level | Config key or CLEVERAGENTS_AUTOMATION_PROFILE env var |
If no profile is set at any level, the global default is manual.
Configuration
Config Key
core:
automation_profile: "supervised"
This sets the global default profile name. The Settings field is
default_automation_profile.
Environment Variable Override
export CLEVERAGENTS_AUTOMATION_PROFILE=auto
The environment variable takes precedence over the config file value when the config field is empty.
Legacy Mapping
The automation_level setting is retained for backward compatibility.
It is mapped to built-in profiles as follows:
automation_level Value |
Built-in Profile |
|---|---|
manual |
manual |
supervised |
supervised |
auto |
auto |
full_auto |
full-auto |
When default_automation_profile is set, it takes precedence over
default_automation_level.
Auto-Progress Behavior
The PlanLifecycleService uses profile thresholds to decide whether
to auto-progress plans:
- Strategize → Execute: auto-progresses when
profile.auto_execute < 1.0 - Execute → Apply: auto-progresses when
profile.auto_apply < 1.0
A threshold of 0.0 means fully automatic (no human gate required).
A threshold of 1.0 means human approval is always required.
Built-in Profiles
Eight built-in profiles ship with every installation:
| Profile | auto_execute | auto_apply | Behavior |
|---|---|---|---|
manual |
1.0 | 1.0 | Human approves all |
review |
0.0 | 1.0 | Human reviews before apply |
supervised |
1.0 | 1.0 | Human reviews strategy + execution |
cautious |
0.7 | 1.0 | Probabilistic gates |
trusted |
0.0 | 1.0 | Auto most, human apply |
auto |
0.0 | 1.0 | Fully auto except revert |
ci |
0.0 | 0.0 | CI pipeline mode |
full-auto |
0.0 | 0.0 | No gates at all |
Persistence
Custom profiles are stored in the automation_profiles table with
the namespaced name as the primary key. The repository supports
list, show (get_by_name), upsert, and delete operations with a
schema_version guard for optimistic concurrency.
API
resolve_profile(plan_profile, action_profile, project_profile)
Resolves the effective profile using the four-level precedence.
get_profile(name)
Looks up a profile by name (built-in first, then repository).
map_legacy_level(level)
Maps a legacy automation_level string to a profile name.
resolve_legacy_level(level)
Resolves a legacy automation_level to a full AutomationProfile.
list_profiles()
Returns all built-in and custom profiles.
create_profile(config)
Creates and persists a custom profile.
update_profile(name, config)
Updates a persisted custom profile.
delete_profile(name)
Deletes a persisted custom profile.