Braintrust Integration
Note: Control Zero handles policy enforcement. Braintrust is a complementary evaluation and logging tool. For evaluation and experiment tracking, these tools work alongside Control Zero.
Use Control Zero for policy enforcement alongside Braintrust for evaluation.
Overview
Control Zero and Braintrust are complementary:
- Control Zero: Enforces governance policies at runtime (prevention)
- Braintrust: Provides evaluation, logging, and experiment tracking (measurement)
Use Control Zero to block unauthorized actions. Use Braintrust to evaluate the quality and correctness of the actions you allow.
Installation
pip install controlzero braintrust
Combined Setup
import controlzero
import braintrust
# -- Control Zero: policy enforcement --
cz = controlzero.ControlZero()
cz.initialize()
# -- Braintrust: evaluation and logging --
# Braintrust uses the BRAINTRUST_API_KEY environment variable
Usage Pattern
Enforce Then Log
import controlzero
from braintrust import traced
@traced
def generate_response(prompt: str, model: str = "gpt-4") -> str:
"""Generate a response with enforcement and Braintrust tracing."""
# Step 1: Control Zero enforces policy
cz.enforce(
action="llm.generate",
resource=f"model/{model}",
context={"agent_id": "eval-agent"},
)
# Step 2: Braintrust traces the call
import openai
client = openai.OpenAI()
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
)
return response.choices[0].message.content
Evaluate with Policy Enforcement
Run Braintrust evaluations where each test case goes through policy enforcement:
from braintrust import Eval
async def task(input_data):
"""Task function with Control Zero enforcement."""
cz.enforce(
action="llm.generate",
resource="model/gpt-4",
context={"agent_id": "eval-agent"},
)
return generate_response(input_data["prompt"])
Eval(
"my-project",
data=lambda: [
{"input": {"prompt": "Summarize Q4 earnings"}, "expected": "..."},
{"input": {"prompt": "Analyze market trends"}, "expected": "..."},
],
task=task,
scores=[braintrust.Factuality],
)
Next Steps
- See the Python SDK for the full Control Zero API reference.
- Learn about Policies for defining governance rules.