# Omnia vs building it yourself

> Everything Omnia does can be assembled from open-source parts. This is the parts list, and the glue each part leaves you to write.

Checked 2026-10-22. Canonical page: https://www.altairalabs.ai/vs/build-it-yourself/

## The four pieces of glue that decide whether it works

- **A versioned agent definition:** One version for prompts, tools, policy and tests together, carried into every trace, eval result and audit record.
- **A release gate and stepped rollout:** Feed the eval suite’s result and live agent metrics into promotion, and keep each conversation on the version it started with.
- **End-user identity:** Carry the caller’s identity through the agent to every tool, MCP server and remote agent it calls.
- **Long-term memory:** Make a user’s consent withdrawal reach the memories already written, and make newer facts win over old ones.

## Parts list

| You need | Open-source part | Glue you write | In Omnia |
|---|---|---|---|
| An agent runtime | [LangGraph](https://github.com/langchain-ai/langgraph) | Serve it over the protocols your callers use, drain conversations when a pod goes away, and scale on load. | Five ways to serve an agent, Graceful drain, Autoscaling |
| A versioned agent definition | [Git, an OCI registry and Argo CD](https://argo-cd.readthedocs.io/) | One version for prompts, tools, policy and tests together, carried into every trace, eval result and audit record. | GitOps content sync |
| Model access and budgets | [LiteLLM](https://github.com/BerriAI/litellm) | Budgets per agent and workspace, and provider credentials from workload identity. | Seven native API interfaces, Any OpenAI-compatible endpoint, Enforced cost budgets, Platform auth |
| Tracing and metrics | [OpenTelemetry Collector and Langfuse](https://opentelemetry.io/docs/collector/) | A span inventory that means the same thing in every agent, and dashboards for it. | Distributed tracing, Metrics and dashboards, Live topology |
| Simulated users and red teaming | [Promptfoo](https://github.com/promptfoo/promptfoo) | Point it at your real tools in a test environment, on models you’ve approved, with assertions on what the agent did. | Simulated users, Adversarial personas, Tool-call assertions |
| Voice testing | [Hamming](https://hamming.ai) | A second vendor, or a SIP harness of your own that interrupts, talks over and goes silent. | Hostile callers on a real voice line |
| A release gate and stepped rollout | [Argo Rollouts](https://argoproj.github.io/rollouts/) | Feed the eval suite’s result and live agent metrics into promotion, and keep each conversation on the version it started with. | Deploy-gate wiring, Progressive rollouts, Sticky sessions, Metric-gated promotion (enterprise) |
| Tool-call policy | [Open Policy Agent](https://www.openpolicyagent.org/) | Put a decision point in front of every tool call, with the arguments and the end user in the input, and fail closed when it can’t answer. | Per-call tool policy, Claim-based access (enterprise) |
| End-user identity | [Keycloak and oauth2-proxy](https://www.keycloak.org/) | Carry the caller’s identity through the agent to every tool, MCP server and remote agent it calls. | OIDC auth, Edge-trust auth, End-user identity propagation, Outgoing auth |
| PII redaction | [Microsoft Presidio](https://microsoft.github.io/presidio/) | Run it before the session is recorded, before memory is written and before the model sees a tool response. | PII redaction in sessions, PII redaction on memory writes, Tool response redaction (enterprise) |
| Long-term memory | [Mem0](https://github.com/mem0ai/mem0) | Make a user’s consent withdrawal reach the memories already written, and make newer facts win over old ones. | Cross-session memory, Tiered recall, Consent-aware memory |
| Audit and data subject requests | [Your SIEM and a runbook](https://opentelemetry.io/docs/specs/otel/logs/) | A record of what happened on whose authority, and an erasure that reaches sessions, memory and archives. | Audit logging, DSAR erasure, Privacy audit hub (enterprise) |
| Teams sharing one cluster | [Namespaces, RBAC and NetworkPolicy](https://kubernetes.io/docs/concepts/security/multi-tenancy/) | Per-team isolation, budgets and grants that the agent layer understands. | Workspaces, Network policy |
