Works with your stack
IRIS does not compete with observability, routing, or enforcement tools. Keep your Langfuse or LiteLLM setup, your Cedar policies, or your Microsoft AGT deployment. IRIS reads what you're running and tells you which regulations apply — with tamper-evident proof.
Microsoft AGT (and other enforcement engines)
AGT (agent-governance-toolkit) is a runtime enforcement platform — pre-execution interception, sandboxing, policy enforcement across five languages. It's a strong choice for stopping an agent from doing the wrong thing. AGT maps its own capabilities against EU AI Act, NIST AI RMF, SOC 2, and ISO 42001 — but is explicit that these are self-assessments, not compliance guarantees: its EU AI Act checklist states it "is not legal advice and does not constitute a conformity assessment" and that organizations should "engage qualified legal counsel and notified bodies for formal compliance evaluation." AGT does not map GDPR, HIPAA, or Colorado's SB 26-189 at all today — enforcement and regulatory compliance are different problems.
That's the gap IRIS is built for. IRIS doesn't replace an enforcement engine — Cedar-based or otherwise — it sits alongside one and answers the question the enforcement layer deliberately leaves open: which laws apply to this workload, and can you prove you complied?
Derive a WorkloadProfile from an AGT audit-trail export — no live query API needed, since AGT runs in-process with the agents it governs.
from iris_agt import profile_from_agt
profile = profile_from_agt("audit_trail.jsonl")
Profile data IRIS derives: distinct agent count, autonomy level from tool-invocation frequency and rogue-detection/quarantine signals, data-category hints from resource paths and policy decisions.
Privacy: IRIS reads audit-entry structure only — event type, action, resource, outcome, policy decision, hash-chain fields. The data field (tool-call arguments and other free-form payload content) is never read.
Not enforcement. The iris-agt adapter checks AGT's Merkle-style hash-chain linkage on read (structural continuity, not independent cryptographic re-derivation) and stops there — continuous monitoring, drift detection, and evidence mapping over time are IRIS Cloud features. See packages/iris-agt for the full adapter.
Langfuse
Derive a WorkloadProfile from Langfuse trace and observation metadata over a lookback window.
from iris_langfuse import profile_from_langfuse
profile = profile_from_langfuse(lookback_days=30)
Profile data IRIS derives: models and providers actually used, frameworks inferred from tags/metadata, call volume signals, autonomy heuristics from tool-call observations.
Privacy: IRIS scans trace names, tags, and metadata only — never prompt or output content.
iris compliance scan --from langfuse --push
LiteLLM
Derive a WorkloadProfile from a static config.yaml or a live LiteLLM proxy (/model/info + spend endpoints).
from iris_litellm import profile_from_litellm_config
profile = profile_from_litellm_config("./litellm.config.yaml")
Profile data IRIS derives: configured and invoked models, inferred providers, LiteLLM as framework signal, agent count from model list size.
iris compliance scan --from litellm --proxy https://litellm.internal
Not tracing. Not routing. Langfuse and LiteLLM own observability and model routing. IRIS adds compliance intelligence on top — see Compliance Intelligence for the full loop.