Skip to main content
Behavior profiles are standalone ABL documents. Agents attach them with USE BEHAVIOR_PROFILE: <name>, and the compiler attaches the matching profile IR to that agent.

File contract

Behavior profile files belong in behavior_profiles/ and should use the .behavior_profile.abl suffix:
The manifest records them under 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

Required declarations:

Profile blocks

Beyond the required declarations, a profile can override several aspects of agent behavior. All blocks are optional.

CONSTRAINTS

Adds business-rule constraints while the profile is active (a list of strings).

RESPONSE

Shapes response rendering.

VOICE

Voice (TTS) overrides while the profile is active. Sub-keys: instructions, ssml, plain_text (same shape as the agent voice config).

TOOLS

HIDE: removes tools from the agent’s tool set; ADD: injects new tool definitions while the profile is active.

CONVERSATION

Conversation-style overrides, organized into three sub-sections:
  • speaking — output style: style, tone, emotion, pace, variety, max_sentences, one_thing_at_a_time, language_policy (interaction_context / agent_default / fixed), fixed_language, tool_lead_in, tool_results, readback, handoffs, phrases_ref, pronunciations_ref.
  • listening — input handling: barge_in, backchannels, on_pause, on_overlap, on_unclear_audio, on_self_correction, use_audio_cues.
  • interaction — dialogue behavior: answer_shape, detail, initiative, grounding, clarification, confirmation, uncertainty, empathy, repair, context, closure, assumption_handling, flow_mode, and more.

GATHER

Overrides gather behavior. Top-level keys validation_style and confirmation, plus a FIELD_OVERRIDES: block (note the uppercase keyword) that adjusts individual fields.

FLOW

Overrides the agent’s flow while the profile is active.
An inline BEHAVIOR_PROFILE: declared inside an agent file (rather than as a standalone document) supports only PRIORITY, WHEN, INSTRUCTIONS, and CONVERSATION. The other blocks (CONSTRAINTS, RESPONSE, VOICE, TOOLS, GATHER, FLOW) are available only in standalone profile files.

Agent attachment

The attached profile name must match the BEHAVIOR_PROFILE: header, not just the filename. Both USE BEHAVIOR_PROFILE: (space) and USE_BEHAVIOR_PROFILE: (underscore) forms are accepted.

Compile and import behavior

During import preview, the platform:
  1. Reads project.json and abl.lock.
  2. Categorizes behavior_profiles/<name>.behavior_profile.abl as part of the core layer.
  3. Parses the profile with the canonical ABL parser.
  4. Compiles profiles before agents.
  5. Resolves every USE BEHAVIOR_PROFILE reference against compiled profile names.
  6. Reports missing or malformed profiles as import/compiler issues.
Common fixes: