Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Atlas Guardrails

Atlas Guardrails provides monitoring, observability, and guardrails for Large Language Model interactions. Track, validate, and secure your LLM API calls with minimal — often zero — changes to your existing application code.

  • Observers wrap your LLM client so traffic is monitored automatically, no call-site changes.
  • Guardrails give you explicit guard/observe calls when you want fine-grained control.
  • Blocking mode can enforce policy (rewrite or block non-compliant requests/responses).
  • Traceability correlates inputs and outputs and records processing traces.

Installation

# SDK only
pip install atlas-guardrails

# SDK + the OpenAI client observer
pip install "atlas-guardrails[openai-observers]"

# Pre-release (alpha) build from the develop branch
pip install --pre atlas-guardrails

atlas-guardrails automatically pulls in its companion package atlas-guardrails-core at the same version; both share the atlas_guardrails import namespace.

Editable / development install
git clone git@github.com:Varonis-Systems/Atlas-alltrue-llm-observability.git
cd Atlas-alltrue-llm-observability

# Using uv (recommended — installs the workspace + dev dependencies)
uv sync --extra openai-observers

# Or using pip
pip install -e ".[openai-observers]"

Quickstart

Set your credentials (created in the Atlas application):

export ALLTRUE_API_URL="<your-atlas-api-url>"  # e.g. https://api.prod.alltrue-be.com
export ALLTRUE_API_KEY="<your-api-key>"
export ALLTRUE_ENDPOINT_IDENTIFIER="<your-endpoint-identifier>"

Then monitor every OpenAI chat completion with no changes to your call sites:

import os
from openai import OpenAI
from atlas_guardrails.observers.openai import OpenAIObserver

observer = OpenAIObserver(
    alltrue_api_key=os.environ["ALLTRUE_API_KEY"],
    alltrue_endpoint_identifier=os.environ["ALLTRUE_ENDPOINT_IDENTIFIER"],
    blocking=False,  # monitor only; set True to enforce policy
)
observer.register()

# Your existing code — now observed automatically.
completion = OpenAI().chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "What day is today?"}],
)
print(completion.choices[0].message.content)

observer.unregister()

Prefer explicit validation instead of patching the client? Use ChatGuardrails:

from atlas_guardrails.guardrails.chat import ChatGuardrails, GuardrailsException

guardrails = ChatGuardrails(
    alltrue_api_key=os.environ["ALLTRUE_API_KEY"],
    alltrue_endpoint_identifier=os.environ["ALLTRUE_ENDPOINT_IDENTIFIER"],
)

try:
    guarded = await guardrails.guard_input(["What day is today?"])
except GuardrailsException as exc:
    print(f"Input blocked: {exc}")

Configuration essentials

Setting Constructor arg Env var Required
API key alltrue_api_key ALLTRUE_API_KEY Yes
Endpoint identifier alltrue_endpoint_identifier ALLTRUE_ENDPOINT_IDENTIFIER Yes
API base URL alltrue_api_url ALLTRUE_API_URL Yes

Constructor arguments win over environment variables, and a .env file in the working directory is loaded automatically. See the full configuration reference for every option (logging, blocking, batching, timeouts, control directives).

Documentation

  • docs/USAGE.md — full usage guide: observers, guardrails, blocking vs non-blocking, batch mode, control directives, traceability, statistics, and troubleshooting.
  • docs/RELEASING.md — versioning, branching model, and CI/CD.

Features

  • Zero-touch observers for the OpenAI client (sync and async).
  • Explicit guardrails for custom pipelines and non-OpenAI flows.
  • Blocking mode to validate and, if needed, rewrite or block requests/responses.
  • Require-approval (HOLD) flow for human-in-the-loop policies.
  • Traceability via a chat_id plus retrievable processing traces.
  • Processing statistics — per-call cost, latency, and policy outcomes via a collector callback.
  • Batch mode to reduce request volume when monitoring.
  • Async and sync support.

Releasing

atlas-guardrails and atlas-guardrails-core are versioned and published together. Pushes to develop produce alpha pre-releases (pip install --pre atlas-guardrails); the develop → main PR cuts the final release. See docs/RELEASING.md for the full branching model, conventional-commit rules, and CI/CD setup.

License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

Metadata

Release files for atlas-guardrails 0.5.0a4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for atlas-guardrails 0.5.0a4
File Size Uploaded Provenance Actions
atlas_guardrails-0.5.0a4.tar.gz 27.7 kB Without provenance Details for atlas_guardrails-0.5.0a4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for atlas-guardrails 0.5.0a4
File Interpreter ABI Platform Actions
atlas_guardrails-0.5.0a4-py3-none-any.whl Python 3 none any Details for atlas_guardrails-0.5.0a4-py3-none-any.whl

Total release size: 59.7 kB

Release files / atlas_guardrails-0.5.0a4.tar.gz

Download URL atlas_guardrails-0.5.0a4.tar.gz
Size 27.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4ff10d1809e0a1c012edb91f47ff6ef9284d945a38ce15ebbd23fb1718569f7d
BLAKE2b-256 checksum
How to use checksums
a4f32c7ba33bf47c2b2ee6d02652c60f5e233495aa8ee76a0088b6cbe85d1692
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / atlas_guardrails-0.5.0a4-py3-none-any.whl

Download URL atlas_guardrails-0.5.0a4-py3-none-any.whl
Size 32.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5bacfea984e8c1a9306414d587ec7e32ecd503124bb26d24edb32e4361b36cb8
BLAKE2b-256 checksum
How to use checksums
023598a5791a8189eddd85d723ca1cfcefc93e44973e49764cb9fd24ed08472d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for atlas-guardrails 0.5.0a4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page