pub struct ProfileFile {
pub profile: String,
pub context: ProfileContext,
pub system_prompt: Option<String>,
pub slots: Vec<SlotDecl>,
pub config: ProfileConfig,
pub components: Vec<ProfileComponentMount>,
}Expand description
The root of profile.yml: which components are mounted, the context this profile binds
against, and profile-level config defaults.
Fields§
§profile: String§context: ProfileContext§system_prompt: Option<String>A system prompt shared by every component this profile mounts.
The place for framing that belongs to the harness as a whole rather than to any single
behavior: how the agent identifies itself, what it declines, the conventions every mounted
behavior must follow. A component’s ComponentFile::brief frames one behavior; this
frames all of them, so authoring it here is the alternative to repeating the same text in
every mount’s brief.
It composes with brief rather than replacing it — the resolved text is this prompt
followed by the component’s effective brief — and takes the same placeholder
substitution. A profile without one compiles to exactly the IR it did before this field
existed.
slots: Vec<SlotDecl>Named positions in this profile’s own prompt text — that is, in
Self::system_prompt — whose wording is chosen at dispatch. Same shape as a component’s
ComponentFile::slots; see SlotDecl for the mechanism and for why a profile-level
slot name may not collide with a component-level one.
config: ProfileConfig§components: Vec<ProfileComponentMount>