Python SDK for monitoring AI agents with Trusera
Project description
Trusera Python SDK
Python SDK for monitoring AI agents with Trusera. Track LLM invocations, tool calls, data access, and more to ensure your AI agents are secure and compliant.
Installation
pip install trusera-sdk
Optional Dependencies
For framework-specific integrations:
# LangChain integration
pip install trusera-sdk[langchain]
# CrewAI integration
pip install trusera-sdk[crewai]
# AutoGen integration
pip install trusera-sdk[autogen]
# Development tools
pip install trusera-sdk[dev]
Quick Start
from trusera_sdk import TruseraClient, Event, EventType
# Initialize the client
client = TruseraClient(api_key="tsk_your_api_key")
# Register your agent
agent_id = client.register_agent(
name="my-agent",
framework="custom",
metadata={"version": "1.0.0"}
)
# Track events
client.track(Event(
type=EventType.TOOL_CALL,
name="web_search",
payload={"query": "latest AI news"},
metadata={"duration_ms": 250}
))
# Events are automatically flushed in batches
# Manual flush if needed
client.flush()
# Clean up
client.close()
Using the Decorator
The @monitor decorator automatically tracks function calls:
from trusera_sdk import TruseraClient, monitor, set_default_client, EventType
# Set up client
client = TruseraClient(api_key="tsk_your_api_key")
client.register_agent("my-agent", "custom")
set_default_client(client)
# Decorate your functions
@monitor(event_type=EventType.TOOL_CALL)
def search_database(query: str) -> list[dict]:
# Your implementation
return [{"id": 1, "title": "Result"}]
@monitor(event_type=EventType.LLM_INVOKE, name="gpt4_call")
async def call_llm(prompt: str) -> str:
# Works with async functions too
return "AI response"
# Function calls are automatically tracked
results = search_database("user query")
response = await call_llm("What is AI?")
Framework Integrations
LangChain
from langchain.llms import OpenAI
from langchain.agents import initialize_agent, Tool
from trusera_sdk import TruseraClient
from trusera_sdk.integrations.langchain import TruseraCallbackHandler
# Initialize Trusera
client = TruseraClient(api_key="tsk_your_api_key")
client.register_agent("langchain-agent", "langchain")
handler = TruseraCallbackHandler(client)
# Use with LangChain
llm = OpenAI(callbacks=[handler])
agent = initialize_agent(
tools=[...],
llm=llm,
callbacks=[handler]
)
# All LLM calls and tool usage are tracked
agent.run("Your query here")
CrewAI
from crewai import Crew, Agent, Task
from trusera_sdk import TruseraClient
from trusera_sdk.integrations.crewai import TruseraCrewCallback
# Initialize Trusera
client = TruseraClient(api_key="tsk_your_api_key")
client.register_agent("crew-agent", "crewai")
callback = TruseraCrewCallback(client)
# Create your crew
researcher = Agent(role="Researcher", goal="Research topics")
task = Task(description="Research AI trends", agent=researcher)
crew = Crew(
agents=[researcher],
tasks=[task],
step_callback=callback.step_callback
)
# Execute with tracking
result = crew.kickoff()
AutoGen
import autogen
from trusera_sdk import TruseraClient
from trusera_sdk.integrations.autogen import TruseraAutoGenHook
# Initialize Trusera
client = TruseraClient(api_key="tsk_your_api_key")
client.register_agent("autogen-agent", "autogen")
hook = TruseraAutoGenHook(client)
# Create AutoGen agents
assistant = autogen.AssistantAgent(
name="assistant",
llm_config={"model": "gpt-4"}
)
# Register hook
hook.setup_agent(assistant)
# All interactions are tracked
user_proxy = autogen.UserProxyAgent(name="user")
user_proxy.initiate_chat(assistant, message="Hello")
Event Types
The SDK supports tracking various types of agent activities:
EventType.TOOL_CALL- Tool or function invocationsEventType.LLM_INVOKE- LLM API callsEventType.DATA_ACCESS- Database queries, file readsEventType.API_CALL- External API requestsEventType.FILE_WRITE- File system modificationsEventType.DECISION- Agent decision points
Configuration
Client Options
client = TruseraClient(
api_key="tsk_your_api_key",
base_url="https://api.trusera.dev", # Optional, defaults to production
flush_interval=5.0, # Seconds between auto-flushes
batch_size=100, # Events per batch
timeout=10.0 # HTTP request timeout
)
Context Manager
Use the client as a context manager for automatic cleanup:
with TruseraClient(api_key="tsk_your_api_key") as client:
client.register_agent("my-agent", "custom")
# ... track events ...
# Automatically flushed and closed
Best Practices
- Use Context Manager: Ensures events are flushed on exit
- Set Agent ID Early: Call
register_agent()orset_agent_id()before tracking - Batch Operations: Let the SDK handle batching automatically
- Sensitive Data: Use
capture_args=Falsein@monitorfor sensitive functions - Error Handling: The SDK logs errors but won't crash your application
Environment Variables
# Optional: Set default API key
export TRUSERA_API_KEY=tsk_your_api_key
# Optional: Custom API endpoint
export TRUSERA_API_URL=https://api.trusera.dev
Development
# Clone the repository
git clone https://github.com/Trusera/trusera-agent-sdk.git
cd trusera-agent-sdk
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run linter
ruff check .
# Type checking
mypy trusera_sdk
Documentation
Full documentation is available at docs.trusera.dev/sdk/python
Support
- Website: trusera.dev
- Documentation: docs.trusera.dev
- Issues: GitHub Issues
- Email: dev@trusera.dev
License
Apache License 2.0 - see LICENSE file for details.
Contributing
Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
Built with care by the Trusera team. Making AI agents secure and trustworthy.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file trusera_sdk-0.1.0.tar.gz.
File metadata
- Download URL: trusera_sdk-0.1.0.tar.gz
- Upload date:
- Size: 28.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf48258418d02ed6f4015db729f6eff8c935019245db3327b8c013338e9b0e57
|
|
| MD5 |
dc4f46c3596ead18cd820ae5f5dba5e7
|
|
| BLAKE2b-256 |
f9ee4ac4b1cdd296f9f625b41a05dfcef1a7b5902045cdbe336db53d656548d5
|
File details
Details for the file trusera_sdk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: trusera_sdk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6401654fd7d430e3f8c87c6bbef530768075abbb8ccab51ddea64b8c2e07fdb9
|
|
| MD5 |
d935b381bee049dda5893bbbeed1e6ca
|
|
| BLAKE2b-256 |
6518332ea0e58b7fddd6b9c0776b7bc32cbb614323186198d3965448bd44f8b2
|