Chrome DevTools for AI Agents — observability SDK for LangGraph, CrewAI, AutoGen
Project description
Oxly SDK
Python instrumentation for Oxly — real-time tracing, security analysis, cost tracking, and Time Machine replay for AI agents built on LangGraph, CrewAI, AutoGen, or custom Python.
Oxly runs as one FastAPI process backed by SQLite — no Redis, no ClickHouse, no separate Collector or Workers to deploy. This SDK talks directly to that process over HTTPS, with a local SQLite fallback if it's unreachable.
Install
pip install oxly
Quickstart
1. Run the Oxly API (see the main README for the full walkthrough — no Docker, Redis, or ClickHouse required):
git clone https://github.com/ramakrishna1967/Oxly
cd Oxly
pip install -e packages/api
export JWT_SECRET_KEY=$(openssl rand -hex 32)
export DATABASE_URL="sqlite+aiosqlite:///oxly.db"
uvicorn api.main:app --host 0.0.0.0 --port 8000
2. Instrument your agent:
from oxly import observe, init
init(
collector_url="http://localhost:8000", # your running Oxly API
api_key="ak_your_project_key", # from POST /api/v1/projects
)
@observe
def research_agent(query: str) -> str:
context = search_tool(query)
return llm.chat(f"Answer based on: {context}")
@observe(name="planning.step")
async def async_agent(objective: str) -> list[str]:
return await llm.achat(f"Break this into steps: {objective}")
Every call produces a full trace — arguments, return values, timing, exceptions, token counts, and cost — visible in the dashboard at http://localhost:8000.
Zero-interference guarantee.
@observewill never crash your application. If Oxly hits an internal error, your function runs normally and the SDK fails silently.
Configuration
init() accepts explicit kwargs, or falls back to OXLY_* environment variables (OXLY_API_KEY, OXLY_COLLECTOR_URL, OXLY_ENABLED, OXLY_SERVICE_NAME, OXLY_DEBUG, ...). See oxly.config.OxlyConfig for the full list and defaults.
License
Apache 2.0
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 oxly-0.1.0.tar.gz.
File metadata
- Download URL: oxly-0.1.0.tar.gz
- Upload date:
- Size: 32.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa92871ae421ed7e6ed8a4404b8f7d966fa27a0bfbdae055d89424aefdcbb623
|
|
| MD5 |
c4ec7876192bdc534505548e169ce5f8
|
|
| BLAKE2b-256 |
4b2b9f449284c1a179d5da73a50b322cdbe0cafaa7d9fd97591e3b703439cea3
|
File details
Details for the file oxly-0.1.0-py3-none-any.whl.
File metadata
- Download URL: oxly-0.1.0-py3-none-any.whl
- Upload date:
- Size: 34.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
836eb79beae50f03d34fc2328b3b3272ad0cff6825de6090b4e85ce588025685
|
|
| MD5 |
2448a68dbacdc53fca38efeca24aff64
|
|
| BLAKE2b-256 |
75815f4f0669a50278f141f3ba04f7425956a35a7b0d3de2aba68eed1d7e86bd
|