USE BEHAVIOR_PROFILE: <name>, and the compiler attaches the matching profile IR to that agent.
File contract
Behavior profile files belong inbehavior_profiles/ and should use the .behavior_profile.abl suffix:
behavior_profiles, while layers_included still uses core. Do’nt add behavior_profiles to layers_included.
The manifest entry is a pointer, not the profile definition. Import preview compiles the actual file at behavior_profiles.<name>.path. A package that only lists a profile in project.json but omits the referenced .abl file doesn’t create the profile; agents with USE BEHAVIOR_PROFILE: <name> will fail resolution with a missing profile diagnosis.
Grammar
| Declaration | Required | Notes |
|---|---|---|
BEHAVIOR_PROFILE: | yes | Case-sensitive profile name |
PRIORITY: | yes | Higher priority wins when profiles conflict |
WHEN: | yes | CEL expression evaluated against context |
Agent attachment
BEHAVIOR_PROFILE: header, not just the filename.
Compile and import behavior
During import preview, the platform:- Reads
project.jsonandabl.lock. - Categorizes
behavior_profiles/<name>.behavior_profile.ablas part of thecorelayer. - Parses the profile with the canonical ABL parser.
- Compiles profiles before agents.
- Resolves every
USE BEHAVIOR_PROFILEreference against compiled profile names. - Reports missing or malformed profiles as import/compiler issues.
| Symptom | Fix |
|---|---|
Unknown layer "behavior_profiles" in layers_included | Remove it from layers_included; keep core and the manifest map. |
Manifest has behavior_profiles but preview adds none | Include the referenced behavior_profiles/<name>.behavior_profile.abl file. |
Missing BEHAVIOR_PROFILE: header | Start the profile file with BEHAVIOR_PROFILE: <name>. |
BEHAVIOR_PROFILE requires a PRIORITY declaration | Add PRIORITY: <number>. |
BEHAVIOR_PROFILE requires a WHEN declaration | Add WHEN: <condition>, or WHEN: true for a default profile. |
Agent references a missing profile_use target | Add the standalone profile file or remove the USE reference. |