mod profile#

module profile#

Behavioral profile types for the ACG system.

Enums

enum SessionArchetype#

Coarse behavioral archetype inferred from observed runs.

FastAnswer#

Short sessions dominated by direct answers.

ToolHeavyLoop#

Sessions that repeatedly call tools in loops or fan-outs.

LongRunningWorkflow#

Longer workflows with extended execution lifetime.

MultiTurnTroubleshooting#

Multi-turn diagnostic or debugging sessions.

enum StabilityClass#

Stability bucket assigned to a prompt block.

Stable#

The block is highly consistent across observations.

SemiStable#

The block is somewhat consistent but still changes meaningfully.

Variable#

The block changes enough that it should be treated as variable.

Structs and Unions

struct BehavioralProfile#

Aggregated behavioral profile derived from observed runs.

agent_identity: AgentIdentity#

Agent identity the profile applies to.

profile_version: String#

Version string for the profile schema or derivation pipeline.

block_stability: Vec<BlockStabilityScore>#

Stability summary for prompt blocks observed across runs.

session_duration: Option<DistributionSummary>#

Observed session-duration distribution, when available.

inter_call_gap: Option<DistributionSummary>#

Observed inter-call-gap distribution, when available.

parallelism: Option<ParallelismPattern>#

Observed parallelism behavior, when available.

tool_usage_phases: Vec<ToolUsagePhase>#

Observed tool-usage phases.

dominant_archetype: Option<SessionArchetype>#

Dominant session archetype, when enough data exists to infer one.

observation_count: u32#

Number of observations used to derive the profile.

minimum_observations: u32#

Minimum number of observations required for the profile to be considered usable.

updated_at: DateTime<Utc>#

Timestamp when the profile was last updated.

Implementations

impl BehavioralProfile#

Functions

fn has_sufficient_data(&self) -> bool#

Report whether the profile has enough data to be trusted.

Returns

true when Self::observation_count is at least Self::minimum_observations and false otherwise.

struct BlockStabilityScore#

Stability analysis result for one prompt block.

span_id: SpanId#

Span identifier of the analyzed prompt block.

classification: StabilityClass#

Stability bucket assigned to the block.

score: f64#

Effective stability score in the range [0.0, 1.0].

confidence: f64#

Confidence score in the range [0.0, 1.0].

observation_count: u32#

Number of observations that contained this block.

struct DistributionSummary#

Percentile summary for a duration-like metric.

p50: f64#

50th percentile value.

p90: f64#

90th percentile value.

p99: f64#

99th percentile value.

sample_count: u32#

Number of samples summarized by the distribution.

struct ParallelismPattern#

Summary of observed parallelism behavior across runs.

has_fanouts: bool#

Whether any tool fan-outs were observed.

typical_fanout_width: Option<u32>#

Typical observed fan-out width, when fan-outs were present.

predominantly_serial: bool#

Whether the workflow was mostly serial despite any fan-outs.

struct ToolUsagePhase#

One phase of tool usage observed in an agent workflow.

phase_label: String#

Human-readable label for the phase.

tools: Vec<String>#

Tool names commonly observed in the phase.

phase_reach_rate: f64#

Fraction of runs that reached this phase.