---
title: Agent Runs
description: Inspect eve sessions in Vercel and configure the Agent Runs destination.
url: "https://eve.dev/docs/observability/agent-runs"
docs_index: /llms.txt
---

> For an index of all documentation, see [/llms.txt](/llms.txt).

> Agent Runs are available in [**Beta**](https://vercel.com/docs/release-phases#beta) on
> [**Enterprise**](https://vercel.com/docs/plans/enterprise),
> [**Pro**](https://vercel.com/docs/plans/pro), and [**Hobby**](https://vercel.com/docs/plans/hobby)
> plans.

Vercel Agent Runs lets you browse eve sessions and inspect conversation traces
in the project's **Observability** view. The tab must be enabled for your
Vercel team. If it doesn't appear, contact your Vercel representative.

Agent Runs usage is billed at
[Always-on Tracing rates](https://vercel.com/docs/tracing/always-on-tracing#usage-and-pricing)
during beta. All plans include 30-day Agent Runs retention during beta.

## Enable tracing on Vercel

When `eve deploy` creates a new Vercel project, it configures 100% trace
sampling for all environments. An existing project needs a sampling rule before
it collects traces. Select your team and project, then open
[**Settings → Tracing**](https://vercel.com/d?to=%2F%5Bteam%5D%2F%5Bproject%5D%2Fsettings%2Ftracing\&title=Go+to+Tracing+settings):

1. Select **Add Sampling Rule**.
2. Choose **All Environments**, **Production**, or **Preview**.
3. Set **Rate** to `100%`.
4. Leave **Request Path Prefix** blank to sample requests on every path.
5. Select **Save**.

Vercel applies the first matching rule. If an existing rule matches these
requests, set its rate to 100% instead of adding a later rule.

Tracing starts when you save the rule. You can also manage sampling
rules with [`vercel traces config`](https://vercel.com/docs/cli/traces#manage-trace-sampling-rules).
The CLI accepts rates from 1 to 100%. Add a 0% rule from the dashboard.

## Trace selected paths

To sample only some paths, replace the all-path rule with a 100% rule
for each **Request Path Prefix** you need. For a single agent at the default
mount, start with:

- `/eve/v1`: eve's HTTP API and default channel endpoints.
- `/.well-known/workflow`: workflow execution and webhooks.

For named agents, use their deployed prefixes, such as `/eve/support/v1`,
instead of `/eve/v1`. Also include custom channel routes. For
[dynamic schedules](/docs/experimental/dynamic-schedules) on Vercel, include
`/.well-known/eve/v1/schedules/consumer`. A missing path can leave traces
incomplete. The workflow prefix also samples non-eve workflows in the same
project.

## Configure Agent Runs

Preview and production deployments export to Vercel Agent Runs by default.
Omit `agent/instrumentation/agent-runs.ts` to keep that default. To change it,
default-export `agentRuns(...)` from that file, or default-export
`disableInstrumentation()` to turn off Agent Runs export.

## Filter Agent Runs exports

`agentRuns()` accepts one `exportPolicy` object or an array applied in order.
Each policy filters spans and attributes before Agent Runs receives them.
The return values match [Filter a destination](./otel#filter-a-destination):

```ts title="agent/instrumentation/agent-runs.ts"
import { agentRuns } from "eve/instrumentation/otel";

export default agentRuns({
  exportPolicy: {
    span: ({ name }) => ({ emit: name !== "internal.cache.refresh" }),
    attribute: ({ key }) => (key === "customer.id" ? { emit: false } : { emit: true }),
  },
});
```

From `span`, return `{ emit: true }` to keep a span, `{ emit: false }` to omit
it, or `{ redact: true }` with `inputs: true`, `outputs: true`, or both to keep
it without that content. A throwing `span` callback drops the span from Agent
Runs. From `attribute`, return `{ emit: true }`, `{ emit: false }`, or
`{ replace: true, value }` to keep, remove, or change one attribute.

## Redact content

`exportPolicy` can only narrow what the process-wide `otel({ tracePolicy })`
already allows. This policy keeps spans but redacts inputs and outputs unless
the session is public:

```ts title="agent/instrumentation/agent-runs.ts"
import { agentRuns } from "eve/instrumentation/otel";

export default agentRuns({
  exportPolicy: {
    span: ({ audience }) =>
      audience === "public" ? { emit: true } : { redact: true, inputs: true, outputs: true },
  },
});
```

Input redaction removes eve's known prompt, instruction, document, and
tool-argument attributes. Output redaction removes response, reasoning,
tool-result, exception, and status attributes. Redaction applies only to Agent
Runs, not to spans sent to other destinations.

## What to read next

- [OpenTelemetry](./otel): configure process-wide settings and third-party destinations.
- [Vercel deployment](/docs/guides/deployment/vercel): deploy an eve agent and inspect its runtime.

---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/llms.txt](/llms.txt)

For agent-facing discovery, including API and MCP surfaces, see [/agents.md](/agents.md)