Configuration API¶
Configuration management for Egregora, including settings models and validation.
Overview¶
Egregora uses Pydantic V2 for type-safe configuration management. All settings are defined in .egregora/config.yml and validated at load time.
CLI Commands¶
Validate Configuration¶
Check your configuration file for errors:
Shows: - ✅ Validation success with summary - ❌ Detailed error messages for invalid fields - ⚠️ Warnings for unusual settings
Show Configuration¶
Display current configuration:
Settings Models¶
EgregoraConfig¶
Root configuration object loaded from .egregora/config.yml.
EgregoraConfig ¶
Bases: BaseSettings
Root configuration for Egregora.
This model defines the complete .egregora/config.yml schema.
Supports environment variable overrides with the pattern: EGREGORA_SECTION__KEY (e.g., EGREGORA_MODELS__WRITER)
Example config.yml:
Attributes¶
models class-attribute instance-attribute ¶
models: ModelSettings = Field(default_factory=ModelSettings, description='LLM model configuration')
rag class-attribute instance-attribute ¶
writer class-attribute instance-attribute ¶
writer: WriterAgentSettings = Field(default_factory=WriterAgentSettings, description='Writer configuration')
privacy class-attribute instance-attribute ¶
privacy: PrivacySettings = Field(default_factory=PrivacySettings, description='Privacy settings')
enrichment class-attribute instance-attribute ¶
enrichment: EnrichmentSettings = Field(default_factory=EnrichmentSettings, description='Enrichment settings')
pipeline class-attribute instance-attribute ¶
pipeline: PipelineSettings = Field(default_factory=PipelineSettings, description='Pipeline settings')
paths class-attribute instance-attribute ¶
paths: PathsSettings = Field(default_factory=PathsSettings, description='Site directory paths (relative to site root)')
database class-attribute instance-attribute ¶
database: DatabaseSettings = Field(default_factory=DatabaseSettings, description='Database configuration (pipeline and run tracking)')
output class-attribute instance-attribute ¶
output: OutputSettings = Field(default_factory=OutputSettings, description='Output format settings')
features class-attribute instance-attribute ¶
features: FeaturesSettings = Field(default_factory=FeaturesSettings, description='Feature flags')
quota class-attribute instance-attribute ¶
quota: QuotaSettings = Field(default_factory=QuotaSettings, description='LLM usage quota tracking')
ModelSettings¶
LLM model configuration for different tasks.
ModelSettings ¶
Bases: BaseModel
LLM model configuration for different tasks.
- Pydantic-AI agents expect provider-prefixed IDs like
google-gla:gemini-flash-latest - Direct Google GenAI SDK calls expect
models/<name>identifiers
RAGSettings¶
RAG (Retrieval-Augmented Generation) configuration.
RAGSettings ¶
Bases: BaseModel
Retrieval-Augmented Generation (RAG) configuration.
Uses LanceDB for vector storage and similarity search. Embedding API uses dual-queue router for optimal throughput.
PrivacySettings¶
Privacy and data protection settings.
PrivacySettings ¶
Bases: BaseModel
Privacy and data protection settings (YAML configuration).
Two-level privacy model: 1. Structural (Level 1): Deterministic preprocessing of raw input data 2. PII Prevention (Level 2): LLM-native PII understanding in agent outputs
.. warning:: Disabling privacy features should only be done for public datasets (e.g., judicial records, public archives, news articles).
For private conversations, always keep privacy enabled to protect PII.
This Pydantic model (for YAML config) has the same name as the dataclass in egregora.privacy.config.PrivacySettings (for runtime policy). They serve different purposes:
- This class: YAML configuration (persisted to config.yml)
- privacy.config.PrivacySettings: Runtime policy with tenant isolation
PipelineSettings¶
Pipeline execution settings.
PipelineSettings ¶
Bases: BaseModel
Pipeline execution settings.
Configuration Examples¶
Minimal Configuration¶
| YAML | |
|---|---|
Full Configuration¶
Validation¶
Field Validators¶
Configuration fields are validated with custom validators:
| Python | |
|---|---|
Cross-Field Validation¶
The config validator checks dependencies between fields:
| YAML | |
|---|---|
Programmatic Usage¶
Loading Configuration¶
| Python | |
|---|---|
Creating Configuration¶
| Python | |
|---|---|
Configuration Overrides¶
| Python | |
|---|---|