Quick Start
Add a trust layer to your existing Temporal agent with OpenBox. This guide assumes you already have a working Temporal agent and shows you how to wrap it with OpenBox for trust, monitoring, and compliance.
If you don't have a Temporal agent yet, see Temporal Integration Guide for a complete end-to-end setup.
Prerequisites
- Existing Temporal agent with workflows and activities
- Python 3.10+ installed
- OpenBox Account - Sign up at app.openbox.ai
Step 1: Register Your Agent in OpenBox
Before wrapping your worker, create an agent in the OpenBox platform:
- Log in to the OpenBox Dashboard
- Navigate to Agents → Click Add Agent
- Configure the agent:
- Workflow Engine: Temporal
- Agent Name: Your agent name (e.g., "Customer Support Agent")
- Agent ID: Auto-generated
- Description: What your agent does
- Teams: assign the agent to one or more teams
- Icon: select an icon
- API Key Generation:
- Click Generate API Key
- Copy and store the key (shown only once)
- Configure platform settings:
- Initial Risk Assessment (AIVSS) - select a risk profile (Level 1-4)
- Attestation (Execution Evidence) - select AWS KMS
- Goal Alignment (drift detection) - set an alignment threshold and drift action
- Click Add Agent
See Registering Agents for a field-by-field walkthrough of the form.
Your API key format: obx_live_xxxxxxxxxxxxxxxxxx
Step 2: Install OpenBox SDK
Add the OpenBox SDK to your existing project:
pip install openbox-temporal-sdk-python
# Or with uv
uv add openbox-temporal-sdk-python
Step 3: Configure Environment Variables
Add OpenBox credentials to your environment:
# .env or export these
OPENBOX_URL=https://api.openbox.ai
OPENBOX_API_KEY=obx_live_your_api_key_here
Step 4: Wrap Your Existing Worker
Replace your standard Temporal Worker with OpenBox's create_openbox_worker:
Before (Standard Temporal):
from temporalio.client import Client
from temporalio.worker import Worker
async def main():
client = await Client.connect("localhost:7233")
worker = Worker(
client,
task_queue="my-task-queue",
workflows=[MyWorkflow],
activities=[my_activity],
)
await worker.run()
After (With OpenBox):
import os
from temporalio.client import Client
from openbox import create_openbox_worker # Changed import
async def main():
client = await Client.connect("localhost:7233")
# Replace Worker with create_openbox_worker
worker = create_openbox_worker(
client=client,
task_queue="my-task-queue",
workflows=[MyWorkflow],
activities=[my_activity],
# Add OpenBox configuration
openbox_url=os.getenv("OPENBOX_URL"),
openbox_api_key=os.getenv("OPENBOX_API_KEY"),
)
await worker.run()
That's it! Your workflows and activities remain completely unchanged.
Step 5: Run Your Worker
Start your worker as usual:
python worker.py
Your agent now runs with the OpenBox trust layer enabled.
Step 6: Verify in OpenBox Dashboard
Trigger a workflow and view it in the dashboard:
- Run a workflow (using your existing trigger/client code)
- Open the OpenBox Dashboard
- Navigate to Agents → Click your agent
- Go to Monitor tab to see:
- Active and completed sessions
- Session replay with full event timeline
- Captured HTTP requests (LLM calls, API requests)
- Activity inputs/outputs
- Governance decisions
What OpenBox Captures
The SDK automatically sends these events to OpenBox:
- Workflow events: Started, completed, failed, signals
- Activity events: Started (with input), completed (with output), duration
- HTTP telemetry: Request/response bodies, headers, status codes
- Database operations (optional): SQL queries, NoSQL operations
All captured data is evaluated against your governance policies in real-time.
Next Steps
Now that your agent is running with OpenBox:
- Configure Trust Controls - Set up guardrails, policies, and behavioral rules
- Monitor Sessions - Use Session Replay to debug and audit agent behavior
- Set Up Approvals - Add human-in-the-loop for sensitive operations
- Advanced Configuration - Fine-tune timeouts, fail policies, and event filtering
Need More Details?
- Temporal Integration Guide - Complete end-to-end setup from scratch
- SDK Reference - Full SDK documentation and configuration options
- Error Handling - Handle governance decisions in your code