Skip to main content

Briefcase AI SDK

License: Apache-2.0

Governance infrastructure for AI decisions: enforce controls, record context, replay later.

Install

pip install briefcase-ai

Quick Example

import briefcase

briefcase.observe("console")          # send records to stderr (or "memory" / "runs.jsonl")

@briefcase.capture(decision_type="classify_text")
def classify(text: str) -> str:
    return text.upper()

classify("hello world")               # a decision record is emitted

capture works immediately — no briefcase.init() required. Call init() only when you use the native runtime features (storage backends, snapshots). Without a call to briefcase.observe(...) (or briefcase.setup(exporter=...)), @capture records decisions but has nowhere to send them.

Exporters. briefcase.observe(...) accepts "console", "memory" (records collected on exporter.records), a "*.jsonl" path, or any briefcase.exporters.BaseExporter instance — subclass BaseExporter to ship records to your own backend.

Evaluations and RL

Two bridges emit decision records from work that is not a single function call. Both use the exporter you already configured.

from briefcase.integrations.evals import EvalRun, from_inspect_log, replay

with EvalRun("gsm8k", model="claude-opus-5") as run:   # one eval.case per case,
    run.log_case("q1", inputs=q, outputs=a, passed=a == target)   # one eval.run
print(run.summary()["pass_rate"])

replay(from_inspect_log("logs/2026-08-12_gsm8k.eval"))  # inspect-ai .json/.eval

The parsers are stdlib only and never import the eval framework, so a log can be replayed on a machine that has neither installed. See examples/eval_runs/.

from briefcase.integrations.gym import GuardrailGymEnv, capture_episodes

env = GuardrailGymEnv(guardrail, tasks, injections)  # a guardrail as a gym.Env
env = capture_episodes(env)                          # rl.step / rl.episode records

Needs pip install briefcase-ai[gym]. See examples/rl_gym/.

capture_episodes exports on a background thread by default, since step capture is on the hot path. A script that exits right after close() can lose its records; pass capture_episodes(env, async_capture=False) in short runs. EvalRun already defaults to async_capture=False for that reason.

Logging

The library is silent by default (it installs only a NullHandler). Turn on visible logs explicitly:

import briefcase
briefcase.enable_logging("DEBUG")     # or set BRIEFCASE_LOG_LEVEL=DEBUG

Using with AI tools (Cursor, Claude Code, Codex, …)

This repo ships machine-readable usage guidance: llms.txt / llms-full.txt, an AGENTS.md, and copy-paste editor rules under docs/llm/. An MCP server is available via pip install briefcase-ai[mcp] then briefcase-mcp.

Extras

Extra Description
replay Deterministic replay engine for recorded decisions
drift Drift scoring and cost calculation for model outputs
sanitize Built-in PII redaction utilities
otel OpenTelemetry helpers
storage Rust-backed SQLite storage engine
validate Prompt validation engine
guardrails Guardrail framework, wrappers, and registries
rag Versioned embedding pipeline and instrumented retrieval
rag-chroma / rag-pinecone / rag-weaviate Vector-store adapters (each adds its client)
correlation Workflow and trace correlation helpers
external External data snapshot tracking
events Structured event type and emitter interface
kafka / webhook / gcp-logging Event transports and the Cloud Logging exporter (webhook is stdlib)
routing Router protocol, agent router, versioned policy registry
opa OPA HTTP router with cached decisions and internal-router fallback (adds httpx)
lakefs lakeFS versioned storage client, branch manager, lineage, staged commits
vcs VCS client base protocol plus DVC, Nessie, Pachyderm, ArtiVC, DuckLake, Iceberg, and git-LFS adapters
vcs-dvc / vcs-pachyderm / vcs-ducklake / vcs-iceberg Per-provider VCS clients (the rest are HTTP/subprocess based)
gym Gymnasium bridge: guardrail env adapter and RL episode capture
evals Eval-harness bridge: EvalRun logger, inspect-ai / lm-eval parsers (adds zstandard for .eval archives on Python < 3.14)
bitemporal Bitemporal evidence store, as-of views, append-only corrections
bitemporal-iceberg pyiceberg-backed bitemporal store (any supported catalog)
bitemporal-glue AWS Glue catalog auth for the Iceberg backend (adds boto3)
kdb kdb+ bitemporal backend (adds KX-licensed pykx; excluded from all)
compliance Examiner bundles joining decision, evidence, and policy version
compliance-kms KMS-signed examiner bundles against your own AWS KMS key (adds boto3)
controls Gateway, quota, throttle classification, and retry (no extra dependencies)
integrity Tamper-evident hash chains, canonical JSON, Ed25519 signing over digests and JSON manifests (signing adds pynacl)
langchain / crewai / llamaindex / autogen / ag2 / pageindex / openai-agents Framework auto-instrumentation via briefcase.auto (each adds its framework)
mcp MCP server (briefcase-mcp) exposing the SDK to AI agents
dev Dev tooling: pytest, mypy, flake8, moto
all Installs every optional extra listed above except kdb

Most features are native- or pure-Python-backed and ship with the base package — their extras (replay, drift, sanitize, storage, routing, bitemporal, compliance, …) are convenience groupings that pull in no additional dependencies. The extras that install third-party packages are otel, lakefs, bitemporal-iceberg, bitemporal-glue, kdb, compliance-kms, gym, evals, mcp, opa, kafka, gcp-logging, integrity, the rag-* and vcs-* store adapters, and the framework auto-instrumentation extras.

Managed platform

Every library feature runs against infrastructure you own: storage backends (in-memory, SQLite, pyiceberg, Glue-authenticated Iceberg, kdb+), KMS-signed examiner bundles, guardrails, RBAC/ABAC/OPA policy evaluation, routing, replay, framework auto-instrumentation (briefcase.auto), lakeFS branching and lineage, vector-store and VCS adapters, event transports, and the controls layer, in both Python and TypeScript (@briefcase-ai/controls).

The commercial offering is the hosted platform, not gated code: a managed control plane, catalog provisioning and credential brokering, operational runbooks (DR failover, catalog migration, key rotation), certified retention and regulator attestations, licensed market-data ingest (Bloomberg BPIPE, Refinitiv, ICE), and SOC 2 / FedRAMP posture with SLA support.

Contact sales@briefcasebrain.com for the managed platform.

Telemetry

The SDK can report anonymous usage metrics (SDK version, OS, architecture, backend type) to help prioritize development. No personal data or decision content is ever collected. Telemetry is only transmitted when a collection endpoint is configured via BRIEFCASE_API_URL (it defaults to localhost, i.e. a no-op), and you can disable it entirely at any time:

export BRIEFCASE_TELEMETRY=0   # also accepts: false, no, off (case-insensitive)

Links

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

briefcase_ai-4.3.0.tar.gz (335.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

briefcase_ai-4.3.0-cp39-abi3-win_amd64.whl (7.6 MB view details)

Uploaded CPython 3.9+Windows x86-64

briefcase_ai-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

briefcase_ai-4.3.0-cp39-abi3-macosx_11_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

briefcase_ai-4.3.0-cp39-abi3-macosx_10_12_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file briefcase_ai-4.3.0.tar.gz.

File metadata

  • Download URL: briefcase_ai-4.3.0.tar.gz
  • Upload date:
  • Size: 335.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for briefcase_ai-4.3.0.tar.gz
Algorithm Hash digest
SHA256 3276d9300f655631d6499fb89a76f44a1873b00eede152a271708eb56983bf84
MD5 8fae386f3108581990a4571c2d545b35
BLAKE2b-256 5a6b36fad5747e65a7abe7f9d6819a8d81049d187b9306b38224923418e7f8b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for briefcase_ai-4.3.0.tar.gz:

Publisher: publish.yml on briefcasebrain/briefcase-ai-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file briefcase_ai-4.3.0-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: briefcase_ai-4.3.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 7.6 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for briefcase_ai-4.3.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 ac1a9556f6642ebca6a0bfbfdbf90b6efe7b5b11c0999f0b1cfe6456ebbc8c78
MD5 216a328c74c25d0314bf43cba6bff6cf
BLAKE2b-256 c7cf22142f0cf016f7f23e627a3296a68019b20dd460c04b8b9e7afaaf3cf354

See more details on using hashes here.

Provenance

The following attestation bundles were made for briefcase_ai-4.3.0-cp39-abi3-win_amd64.whl:

Publisher: publish.yml on briefcasebrain/briefcase-ai-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file briefcase_ai-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for briefcase_ai-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 052b5a72077f30791ddcfaec68170d7022b17d688250ceb1adc503dde5b0c7bc
MD5 35f62e1943c8f83ae119a789dcae4f04
BLAKE2b-256 09ca39a6505f0010ff2ffa4448f18fe82a037c9ced8a0bec4a2ef62dc239633e

See more details on using hashes here.

Provenance

The following attestation bundles were made for briefcase_ai-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on briefcasebrain/briefcase-ai-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file briefcase_ai-4.3.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for briefcase_ai-4.3.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7bd4bccdaa5f0b8546b47dd7f78484b1fbb453ef46b0766f4bec4b24ea2a109c
MD5 8cdd6991dd9b6e79eb89a0b8c591adf9
BLAKE2b-256 44fcb032b928209eb543db6093a92968b6b42f18f26a91b9f9b0af0a6cb5568c

See more details on using hashes here.

Provenance

The following attestation bundles were made for briefcase_ai-4.3.0-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: publish.yml on briefcasebrain/briefcase-ai-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file briefcase_ai-4.3.0-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for briefcase_ai-4.3.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 eacc9a4e0b0849368396d018b8deb1e4667e46ed94c5533fc61f9a7535df0c04
MD5 35ebd92e0629a458a736f87d3e012477
BLAKE2b-256 d1c4124eb136a6eb52524d65cfe00009f351ab1e451c63b5e25d255f28974d5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for briefcase_ai-4.3.0-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: publish.yml on briefcasebrain/briefcase-ai-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page