Introduction
Symvion v0.3 is a production-grade AI orchestration platform designed for enterprise groups. It provides the isolation, observability, and safety required to manage AI agents across multiple business entities like Insurance, Asset Management, and Trustees.
Key Philosophy: Symvion acts as the "FastAPI for AI Agents", providing a structured runtime that separates business logic (agents/tools) from infrastructure (caching, logging, isolation).
Configuration
Symvion is configured via the TenantConfig model. In a multi-entity group, each entity (e.g., Insurance) has its own config.
config = TenantConfig(
tenant_id="coronation_insurance",
llm_provider="openai",
llm_config={"model": "gpt-4-turbo"},
logging=LoggingConfig(file_path="audit.log")
)
Core Runtime
The Symvion class is the main entry point. It manages history, memory, and graph execution for a specific tenant.
Multi-Entity Usage
For an insurance sub-entity, you initialize a runtime that is isolated to their specific agent registry and memory store.
runtime = Symvion(config)
response = await runtime.chat(
tenant="coronation_insurance",
message="Check my policy status"
)
Agents & Lifecycle
Agents inherit from BaseAgent and gain access to production hooks.
class InsuranceAgent(BaseAgent):
async def before_execute(self, context, data):
# Audit: Log who is accessing the policy
logger.info("POLICY_ACCESS", context, user=data['user'])
async def execute(self, context, data, tools):
# Logic here
return {"agent_response": "..."}
JSON Logging
Symvion v0.3 features a structured logging system that outputs machine-readable JSON to stderr or a configurable file. This is essential for enterprise log aggregation (e.g., ELK, Datadog).
Sample Log Structure
{
"timestamp": "2026-04-16T05:21:42Z",
"event": "TOOL_CALLED",
"tenant_id": "insurance_sub",
"request_id": "811a90d8-...",
"tool_name": "fetch_policy",
"args": {"id": "POL-99"}
}
Enabling Multi-Entity Logging
Configure each entity to log to their own audit file for easier compliance checks.
config = TenantConfig(
tenant_id="asset_mgmt",
logging=LoggingConfig(
file_path="asset_mgmt_audit.log",
show_json=True,
level="INFO"
)
)
LangSmith Tracing
Symvion v0.3 supports LangSmith out-of-the-box. Every agent execution, tool call, and routing decision is traced with full parent-child relationships.
How to Enable
Simply set your environment variables. Symvion will automatically detect them and instrument the underlying LangGraph.
export LANGSMITH_TRACING=true
export LANGSMITH_API_KEY=your_key_here
export LANGSMITH_PROJECT=coronation-ai-v0.3
Enterprise Tip: Use the request_id from the JSON logs to find the corresponding trace in LangSmith for deep debugging of specific customer interactions.
Tools & Safety
Tools are independent functions registered in a tenant's ToolRegistry. They are automatically wrapped in a ToolSafetyWrapper.
Decoupled Invocation
# Inside an agent
record = await tools.invoke("db_query", context, {"id": 123})
Multi-Tenant Factory
The SymvionFactory manages thousands of concurrent runtimes. It efficiently caches compiled graphs, ensuring that "Asset Management" and "Trustees" run on separate, isolated instances without performance overhead.