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="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="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=symvion-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.