- Removed the backend client compatibility wrapper and associated methods to streamline backend integration. - Updated session management to utilize control plane gateways and runtime configuration providers. - Adjusted TTS service implementations to remove the EdgeTTS service and simplify service dependencies. - Enhanced documentation to reflect changes in backend integration and service architecture. - Updated configuration files to remove deprecated TTS provider options and clarify available settings.
1.7 KiB
1.7 KiB
Backend Integration and History Bridge
This engine uses adapter-based backend integration so core runtime logic can run with or without an external backend service.
Runtime Modes
Configure with environment variables:
BACKEND_MODE=auto|http|disabledBACKEND_URLBACKEND_TIMEOUT_SECASSISTANT_LOCAL_CONFIG_DIR(default:engine/config/agents)HISTORY_ENABLED=true|false
Mode behavior:
auto: use HTTP backend adapter only whenBACKEND_URLis set.http: force HTTP backend adapter (falls back to null adapter when URL is missing).disabled: force null adapter and run engine-only.
Assistant config source behavior:
- If
BACKEND_URLexists and backend mode is enabled, fetch assistant config from backend. - If
BACKEND_URLis missing (or backend mode is disabled), load assistant config from local YAML. assistant_idquery parameter is still required and maps toengine/config/agents/<assistant_id>.yamlwhen local YAML source is active.
Architecture
- Ports:
core/ports/control_plane.py - Adapters:
app/backend_adapters.py
Session and DuplexPipeline receive backend capabilities via injected adapter
methods instead of hard-coding backend client imports.
Async History Writes
Session history persistence is handled by core/history_bridge.py.
Design:
- transcript writes are queued with
put_nowait(non-blocking turn path) - background worker drains queue
- failed writes retry with exponential backoff
- finalize waits briefly for queue drain before sending call finalize
- finalize is idempotent
Related settings:
HISTORY_QUEUE_MAX_SIZEHISTORY_RETRY_MAX_ATTEMPTSHISTORY_RETRY_BACKOFF_SECHISTORY_FINALIZE_DRAIN_TIMEOUT_SEC