- Your own LangWatch project (always). Every Langy turn is itself traced and costed into the LangWatch project you are working in.
- External hosts (only through the egress path). LLM traffic goes to the LangWatch AI Gateway. Traffic to
git/gh/npmreaches the internet only ifallowExternalHttpsis enabled and the destination passes the L7 egress adapter. Private ranges, CGNAT, and the cloud metadata endpoint are always blocked. - An operator mirror lane (optional, off by default). An operator can configure a second copy of each turn’s trace to be shipped to a LangWatch project they designate (ADR-061). This lane is dormant unless
LANGY_MIRROR_TRACE_ENDPOINTandLANGY_MIRROR_TRACE_KEYare both set.
Destination 1: your own LangWatch project (always)
Every Langy turn is an agent run, and it is traced like any other agent run in your project. The worker streams its spans through the trace relay, authenticated with the per-session key and a fail-closed resource-attribute allow-list. A platform-ownedlangy.turn root span is recorded, and the LangWatch AI Gateway records the gen_ai spans, including the full prompt and completion, for the LLM calls.
You watch Langy work with the same tools you use to watch your own agents, and the cost of a Langy turn shows up as cost in your project.
Destination 2: external hosts (only through the egress path)
Langy does not open arbitrary outbound connections. Two kinds of external traffic exist, and both are constrained:- LLM traffic goes to the LangWatch AI Gateway, never directly to a model provider. The worker’s LLM base URL points at the gateway, so tracing, rate limits, budgets, and model policy all apply. See How Langy’s model calls are routed.
git/gh/npmtraffic reaches the internet only whenallowExternalHttpsis on, and it is routed through the L7 egress adapter. The operator floor isgithub.com,api.github.com, andcodeload.github.com; a project can add to the allow-list. The adapter is cooperative in the stock pod, so treat the allow-list as the intended path rather than a hard boundary. See the isolation limits.
- RFC 1918 private ranges. A worker cannot reach into your private network (SSRF protection).
- CGNAT (
100.64.0.0/10). Blocks the node-local addresses some managed Kubernetes networking uses. - The cloud metadata endpoint. Blocks IMDS credential theft.
Secret and PII redaction keeps secrets out of what Langy reads
Langy reads your traces through thelangwatch CLI. What it reads is what already passed through LangWatch trace-ingestion redaction, so secrets do not enter Langy’s context in the first place. This is the platform’s redaction, not a Langy-specific feature:
DEFAULT_PII_REDACTION_LEVEL = "ESSENTIAL". The default project posture redacts essential PII. Levels areSTRICT,ESSENTIAL, andDISABLED.- Secrets redaction is a separate default-on toggle. Detected secrets are redacted before the span is stored, so a leaked API key in a trace is not sitting in the data Langy later reads.
STRICT) tightens what Langy can see too.
The per-session, caller-scoped LangWatch key
Langy never uses a shared admin-equivalent service key to read your data. Each chat mints a per-session LangWatch API key owned by the requesting user (ADR-047), and that key is:- Clamped to the intersection of the Langy permission set and what the requesting user actually holds.
- Project-scoped to the project the conversation is in.
- Short-lived, auto-expiring after the session, and revoked when the worker exits.
Destination 3: the operator mirror lane (optional, off by default)
An operator running the install can have the agent ship a second copy of each turn’s trace to a LangWatch project they designate, so whoever runs the deployment can watch Langy work. It is a separate, bounded, drop-on-full lane (ADR-061), and it is dormant unless configured withLANGY_MIRROR_TRACE_ENDPOINT and LANGY_MIRROR_TRACE_KEY.
The lane is allow-list based (never a denylist), with three tiers set per organization:
On a self-hosted install the mirror lane is off unless
langyagent.mirror.existingSecretName names a Secret with the mirror project’s API key, and you choose the tier. On LangWatch SaaS the default is the content tier, with specific organizations restricted. If you are self-hosting and do not want any operator copy of Langy’s traces, leave the mirror Secret unset.