Metadata-Version: 2.2
Name: agently-devtools
Version: 0.1.0
Summary: Observation and developer tooling companion package for Agently
Author-email: Agently Team <developer@agently.tech>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: agently<4.1.0,>=4.0.9
Requires-Dist: fastapi<1.0,>=0.104
Requires-Dist: httpx<0.29.0,>=0.28.1
Requires-Dist: uvicorn<1.0,>=0.30
Provides-Extra: dev
Requires-Dist: anyio<5,>=4; extra == "dev"
Requires-Dist: build<2.0,>=1.2; extra == "dev"
Requires-Dist: pytest<9.0.0,>=8.4.0; extra == "dev"
Requires-Dist: pytest-asyncio<2.0.0,>=1.0.0; extra == "dev"

# agently-devtools

`agently-devtools` is the local observation, evaluation, and playground companion package for `agently`.

## Install

```bash
pip install -U agently agently-devtools
```

Python `>=3.10`

## Start

```bash
agently-devtools start
```

Default local address:

- Console: `http://127.0.0.1:15596/`
- Ingest: `http://127.0.0.1:15596/observation/ingest`

## Observation Bridge

```python
import os

from agently import Agently
from agently_devtools import ObservationBridge

bridge = ObservationBridge(
    os.environ["AGENTLY_DEVTOOLS_INGEST_URL"],
    app_id="your_app_id",
    group_id="your_group_id",
)
bridge.register(Agently.event_center)
```

TriggerFlow executions automatically publish their flow definition, so the execution graph can show the full static structure, including branches that have not been hit yet.

## Scenario Evaluations

```python
import os

from agently_devtools import EvaluationBridge, EvaluationCase, EvaluationRunner

bridge = EvaluationBridge(
    base_url=os.environ["AGENTLY_DEVTOOLS_BASE_URL"],
    app_id="your_app_id",
    group_id="your_group_id",
)

binding = bridge.bind_agent(
    agent,
    suite_id="your_suite_id",
    target_name="your_target_name",
)

report = EvaluationRunner(bridge=bridge).run(
    binding,
    cases=[EvaluationCase(case_id="case-1", input="your scenario")],
    rounds=3,
)
```
