Skip to content

symfonic.agent.domain

domain

DomainTemplate -- pluggable domain configuration for business-specific behavior.

External apps inject their own domain logic by creating a DomainTemplate and passing it to FrameworkConfig. The framework stays generic; all business-specific labels, onboarding flows, and schema definitions live in the consuming application.

CorePreference

Bases: BaseModel

A domain-owned behavioural preference evaluated during metacognition.

DomainTemplate

Bases: BaseModel

Pluggable domain configuration for business-specific behavior.

External apps inject their own domain logic by creating a DomainTemplate and passing it to FrameworkConfig. The framework stays generic.

Attributes:

Name Type Description
name str

Human-readable domain identifier (e.g. "amazon-expert").

required_labels list[str]

Graph labels the domain expects to exist. Used by DiscoveryService to flag missing blocks as pending.

onboarding_checklist list[str]

Items the agent should collect during initial conversations with a new tenant.

soul_schema dict[str, str]

Schema definition for the SOUL label -- maps field names to their expected types as strings.

description str

Optional description of the domain's purpose.

tool_manifest list[str]

Short descriptions of available tools. Each entry is "tool_name: short description". Injected into the system prompt so the LLM knows which tools exist without loading full schemas upfront.

tool_catalog dict[str, dict[str, Any]]

Full JSON schemas keyed by tool name. Used for JIT hydration -- the engine loads the full schema only when the LLM selects a tool from the manifest.

tool_trigger_keywords dict[str, list[str]]

Optional per-tool keyword lists that gate which manifest entries are injected into the system prompt for a given turn. Keys are tool names (matching the prefix before the first ":" in each tool_manifest entry); values are lists of case-insensitive substrings. A tool is included in the rendered manifest when (a) its name has no entry in this map, (b) its keyword list is empty, or (c) the current user query contains at least one of the keywords. Default behaviour (empty map) matches pre-v6.1.8 exactly: every manifest entry is always rendered.

monitoring MonitoringBlueprint

Blueprint for sub-agent monitoring and anomaly detection. Provides thresholds, intervals, and alert configuration.

MonitoringBlueprint

Bases: BaseModel

Configuration for sub-agent monitoring and anomaly detection.

Defines thresholds, check intervals, and which metrics trigger alerts. Consumed by monitoring skills (e.g. AnomalyDetectionSkill) in the application layer.

Attributes:

Name Type Description
anomaly_thresholds dict[str, float]

Metric name to deviation percentage threshold. When a metric deviates beyond this percentage, it triggers an alert. Example: {"sales": 20.0, "inventory": 30.0}.

check_interval_seconds int

How often automated checks should run.

alert_on list[str]

List of metric names to monitor. Only metrics listed here produce findings.