pub struct RegionDefinition {
pub name: String,
pub kind: RegionKind,
pub max_tokens: usize,
pub budget: BudgetSpec,
pub compact_at: Option<f64>,
pub schema: Option<RegionSchema>,
pub description: Option<String>,
pub required: bool,
pub required_message: Option<String>,
pub seed: Option<RegionSeed>,
}Expand description
Definition of a region in a layout.
This is the blueprint for creating a Region instance. It specifies the region’s configuration but doesn’t contain actual content.
Fields§
§name: StringUnique name for this region
kind: RegionKindRegion lifecycle policy
max_tokens: usizeResolved maximum tokens for this region. This is the concrete ceiling
every downstream consumer reads; for a percentage budget it is populated
when the layout is resolved against a model window (see
ContextLayout::resolved). Self::budget is the source of truth for
how this value is derived.
budget: BudgetSpecHow this region’s ceiling is expressed. Defaults (via Self::new) to
BudgetSpec::Absolute holding max_tokens, so a region built the old
way behaves exactly as before. A percentage budget is resolved against the
model context window at window-build time.
compact_at: Option<f64>For RegionKind::Compacting regions only: compact when the region
reaches this fraction of its resolved budget (0.80 for compact_at = "80%"). None keeps the absolute threshold_tokens carried on the kind.
See ContextLayout::resolved for how this becomes a concrete threshold.
schema: Option<RegionSchema>Optional validation schema
description: Option<String>Human-readable description of this region’s purpose
required: boolWhen true, this region must be non-empty before a stage that can write
to it is allowed to complete. Guards against an agent skipping a
context-population step (e.g. never writing the plan region). Enforced
in the run loop, which re-runs the stage with Self::required_message
until the region is populated.
required_message: Option<String>Optional custom message shown to the agent when this region is required
but empty. Falls back to a generated default when None.
seed: Option<RegionSeed>Where this region’s initial content comes from at run start. None
means the region starts empty (the agent populates it). See
RegionSeed.
Implementations§
Source§impl RegionDefinition
impl RegionDefinition
Sourcepub fn new(name: String, kind: RegionKind, max_tokens: usize) -> Self
pub fn new(name: String, kind: RegionKind, max_tokens: usize) -> Self
Create a new region definition with an absolute token ceiling.
The budget is set to BudgetSpec::Absolute holding max_tokens and
compact_at to None, so every existing caller (and every region without
a percentage budget) is unaffected - resolving such a layout is a no-op.
Sourcepub fn with_budget(self, budget: BudgetSpec) -> Self
pub fn with_budget(self, budget: BudgetSpec) -> Self
Set this region’s budget spec (e.g. a percentage of the model window).
max_tokens is left as the provisional/resolved value; it is (re)computed
from the budget when the owning layout is resolved.
Sourcepub fn with_compact_at(self, fraction: f64) -> Self
pub fn with_compact_at(self, fraction: f64) -> Self
Set the compaction trigger fraction for a RegionKind::Compacting
region (0.80 == compact at 80% of the resolved budget).
Sourcepub fn with_seed(self, seed: RegionSeed) -> Self
pub fn with_seed(self, seed: RegionSeed) -> Self
Set this region’s seed source.
Sourcepub fn with_required(self, required: bool, message: Option<String>) -> Self
pub fn with_required(self, required: bool, message: Option<String>) -> Self
Mark this region as required, with an optional custom nudge message.
Sourcepub fn with_schema(self, schema: RegionSchema) -> Self
pub fn with_schema(self, schema: RegionSchema) -> Self
Add a schema to this region definition.
Sourcepub fn with_description(self, description: String) -> Self
pub fn with_description(self, description: String) -> Self
Add a description to this region definition.
Trait Implementations§
Source§impl Clone for RegionDefinition
impl Clone for RegionDefinition
Source§fn clone(&self) -> RegionDefinition
fn clone(&self) -> RegionDefinition
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more