Metadata-Version: 2.4
Name: vequil
Version: 0.1.0
Summary: Reliability and observability SDK for AI agent operators
Project-URL: Homepage, https://vequil.com
Project-URL: Documentation, https://vequil.com/quickstart
Project-URL: Repository, https://github.com/nxd914/vequil
License: MIT
Keywords: agents,ai,autogen,crewai,langchain,monitoring,observability
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.9
Requires-Dist: requests>=2.28.0
Provides-Extra: all
Requires-Dist: langchain-core>=0.1.0; extra == 'all'
Provides-Extra: autogen
Requires-Dist: pyautogen>=0.2.0; extra == 'autogen'
Provides-Extra: crewai
Requires-Dist: crewai>=0.1.0; extra == 'crewai'
Provides-Extra: langchain
Requires-Dist: langchain-core>=0.1.0; extra == 'langchain'
Provides-Extra: langgraph
Requires-Dist: langgraph>=0.1.0; extra == 'langgraph'
Description-Content-Type: text/markdown

# Vequil Python SDK

Reliability and observability for AI agent operators.

```bash
pip install vequil
```

## Quickstart

```python
from vequil import VequilClient

vq = VequilClient(workspace_key="vk_ws_...")

# Log any agent event
vq.ingest(
    source="openclaw",
    event_type="tool_call",
    event_status="success",
    agent_id="main-agent",
    tool_name="bash",
    cost_usd=0.012,
)

# Auto-log success or failure with a context manager
with vq.watch(source="openclaw", agent_id="main", tool_name="bash"):
    run_the_thing()
```

## Framework integrations

**LangChain**
```python
from vequil.integrations.langchain import VequilCallbackHandler
handler = VequilCallbackHandler(vq, agent_id="my-chain")
chain.invoke({"input": "..."}, config={"callbacks": [handler]})
```

**CrewAI**
```python
from vequil.integrations.crewai import VequilCrewObserver
observer = VequilCrewObserver(vq, agent_id="my-crew")
observer.on_task_start("research", agent_name="researcher")
```

**AutoGen**
```python
from vequil.integrations.autogen import patch_agent
patch_agent(assistant, vq, session_id="session-1")
```

**LangGraph**
```python
from vequil.integrations.langgraph import vequil_node

@vequil_node(vq, agent_id="my-graph", tool_name="search")
def search_node(state):
    ...
```

## Environment variables

| Variable | Description |
|---|---|
| `VEQUIL_WORKSPACE_KEY` | Your workspace ingest key |
| `VEQUIL_URL` | Custom Vequil instance URL (default: https://vequil.com) |

Get your workspace key at [vequil.com/quickstart](https://vequil.com/quickstart).
