> ## Documentation Index
> Fetch the complete documentation index at: https://docs.valkyrie.vals.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Inspect resources with Python

> Query benchmark tasks, agent bundles, and benchmark services.

Each method's parameters, defaults, and return types are in the [`client.benchmarks`](/reference/sdk/benchmarks#fetch), [`client.agents`](/reference/sdk/agents#list), and [`client.services`](/reference/sdk/services#catalog) reference.

## Benchmarks and tasks

Use `client.benchmarks` for detailed, paginated run views:

```python theme={null}
from valkyrie.sdk import FetchTasksRequest, TaskStatus

details = await client.benchmarks.fetch(run.benchmark_id)
statuses = await client.benchmarks.statuses([run.benchmark_id])
tasks = await client.benchmarks.tasks(
    run.benchmark_id,
    FetchTasksRequest(status=[TaskStatus.ERROR], limit=25),
)
task = await client.benchmarks.task(run.benchmark_id, tasks.tasks[0].task_id)
artifacts = await client.benchmarks.artifacts(run.benchmark_id, task.task_id)
```

Artifact methods return temporary URLs generated by Tracker. The SDK does not expose internal S3 keys or clients. Tracker task-detail routes do not support task IDs containing `/`; the SDK rejects those IDs before sending a request.

## Agents

List uploaded agents or request a temporary download URL:

```python theme={null}
agents = await client.agents.list()
download = await client.agents.download_url(agents.agents[0].name)
```

Local agent packaging and S3 upload or download remain CLI workflows.

## Benchmark services

Discover services, check their health, or fetch dataset task IDs:

```python theme={null}
services = await client.services.list()
task_ids = await client.services.task_ids("swebench", dataset="default")
```
