Configuration Guide
Complete reference for all Reflexio configuration options including profile extraction, playbook, and evaluation settings.
Configuration Guide
This guide explains all configuration options available in Reflexio. Configuration controls how profiles are extracted, playbooks are generated, and agent performance is evaluated.
Overview
Reflexio uses a centralized Config object that contains settings for:
- Storage - Where data is stored (local, S3, or Supabase)
- LLM - API keys and model selection for LLM providers
- Profile Extraction, Playbooks & Evaluation - How user profiles are generated, playbooks are collected, and agent performance is measured
Getting and Setting Configuration
Configure Reflexio programmatically using the client:
Enterprise
If you're using Reflexio Enterprise, you can also configure settings visually via the web portal under the Settings page.
from reflexio import ReflexioClient
client = ReflexioClient() # uses REFLEXIO_API_KEY env var
# Self-hosted: client = ReflexioClient(url_endpoint="http://localhost:8081")
# Get current configuration
config = client.get_config()
# Modify configuration
config.profile_extractor_configs = [...]
# Save configuration
client.set_config(config)General Settings
Agent Context
Optionally provide global context about the agent's environment that should be shared across all extractors and evaluations.
config.agent_context_prompt = """
This agent is a customer service representative for an e-commerce platform.
The agent helps customers with:
- Product inquiries and recommendations
- Order tracking and status updates
- Returns and refunds
- Technical support for the website
"""Extraction Window Configuration
Reflexio uses a sliding window to batch interactions for extraction. This controls how many interactions are processed together and how frequently extraction runs.
config.batch_size = 10 # Number of interactions per extraction
config.batch_interval = 5 # New interactions before next extraction| Field | Type | Description |
|---|---|---|
batch_size | int | Number of interactions included in each extraction batch |
batch_interval | int | Number of new interactions that trigger the next extraction |
skip_should_run_check | bool | Skip the LLM pre-extraction eligibility check — extraction always runs (default: False) |
Example: With batch_size=10 and batch_interval=5:
- First extraction processes interactions 1-10
- After 5 new interactions arrive, next extraction processes interactions 6-15
- After 5 more, next extraction processes interactions 11-20
This overlapping window ensures context continuity between extractions while avoiding redundant processing of every single interaction.
Complete Configuration Example
from reflexio import ReflexioClient
from reflexio.models.config_schema import (
Config,
ProfileExtractorConfig,
PlaybookConfig,
PlaybookAggregatorConfig,
AgentSuccessConfig,
ToolUseConfig
)
client = ReflexioClient() # see Quickstart for connection options
# Get current config (storage defaults to SQLite — no configuration needed)
config = client.get_config()
# Configure agent context
config.agent_context_prompt = """
Customer service agent for an online booking platform.
Helps users book hotels, flights, and activities.
"""
# Configure profile extraction
config.profile_extractor_configs = [
ProfileExtractorConfig(
extractor_name="traveler_profile",
profile_content_definition_prompt="""
Extract: name, travel preferences, budget range,
frequent destinations, loyalty program status
""",
context_prompt="Travel booking conversation",
metadata_definition_prompt="category: 'traveler_profile'"
)
]
# Configure playbook collection
config.playbook_configs = [
PlaybookConfig(
playbook_name="booking_experience",
playbook_definition_prompt="""
Was the booking process smooth? Any pain points?
Did the agent provide helpful recommendations?
""",
playbook_aggregator_config=PlaybookAggregatorConfig(
min_cluster_size=10,
reaggregation_trigger_count=5
)
)
]
# Configure tools the agent can use (shared across evaluation and extraction)
config.tool_can_use = [
ToolUseConfig(
tool_name="search_availability",
tool_description="Search available options"
),
ToolUseConfig(
tool_name="create_reservation",
tool_description="Create a new reservation"
)
]
# Configure success evaluation
config.agent_success_configs = [
AgentSuccessConfig(
evaluation_name="booking_completion",
success_definition_prompt="""
Success: Customer completed a booking or has clear next steps.
Failure: Customer left confused, frustrated, or without resolution.
""",
sampling_rate=1.0
)
]
# Configure extraction windows
config.batch_size = 20
config.batch_interval = 10
# Save configuration
client.set_config(config)Best Practices
-
Start with profile extraction - Configure
profile_extractor_configsfirst to ensure user data is captured correctly -
Use specific prompts - Be explicit about what to extract. Vague prompts lead to inconsistent results
-
Test with sampling - Use
sampling_rate < 1.0during development to reduce API costs -
Monitor playbook thresholds - Set
min_cluster_sizehigh enough to get meaningful aggregations -
Filter by source - Use
request_sources_enabledto process only relevant interaction types -
Iterate on definitions - Review extracted profiles and adjust prompts based on results
Next Steps
- Quick Start Guide - Basic usage examples
- API Reference - Complete method documentation