eve/ The Agent Framework Workshop

Observe & Debug

See what the agent actually did: which model ran, which tool it called, what failed, and where a durable session paused.

Inspect a local run

  1. Run a prompt that calls a tool.

    In the local terminal UI, ask:

    Prompt
    Investigate acct_123, explain the facts you found, and recommend the next action.
  2. List captured traces.

    npx eve trace ls

    Local development records agent, model, and tool spans under .eve/traces/ when you have not supplied custom instrumentation.

  3. Open the newest trace tree.

    npx eve trace

    Look for the turn, model step, lookup_account call, tool result, token usage, and final message.

  4. List the dev-session logs.

    npx eve logs ls

    Each eve dev process creates its own diagnostic log. The list shows the newest instances first, with a log ID, start time, and file size. A 0 B log is valid—it means that dev session did not emit any diagnostic records.

  5. Read a diagnostic log.

    npx eve logs

    Without a log ID, this reads the newest instance. Expect newline-delimited JSON records for server output, rebuilds, tool failures, workflow errors, and other eve runtime diagnostics. If the newest log is 0 B, the command intentionally prints nothing; normal model and tool activity can still appear in eve trace.

    To inspect another instance, copy its ID from eve logs ls:

    npx eve logs <log-id>

    Use npx eve logs --events to add durable session events such as session.started, tool requests, tool results, and completed turns. Use npx eve logs --dump to include an environment and session summary that is useful when sharing a debugging report.

Inspect the deployed agent

Go to your eve project located at https://vercel.com/<team-slug>/<eve-project-name>, replacing the placeholders with your Vercel team and project. Then go to Observability → Agent Runs.

Agent Runs groups the durable session, turns, model steps, tool calls, token usage, and subagents into one trace. It is the fastest place to inspect a live Slack interaction without guessing from source.

  1. Confirm that your runs are arriving.

    Select Production and choose a time range that includes your recent tests. The overview charts group runs by trigger, such as HTTP and Slack, and summarize input, output, and cached tokens.

    Each table row is an agent run. Use the trigger, cost, token, turn, and timestamp columns to compare activity. You should see your recent Slack message alongside any prompts you sent while testing the agent locally or over HTTP.

  2. Open an individual run.

    Select a row to open its Turns view. The conversation appears on the left, and each turn summarizes its action count, duration, and cost. Select a turn to inspect it in the details panel.

  3. Follow what happened inside the turn.

    The Detailed view shows timing, the related workflow run and logs, cost, token usage, normalized input, and a timeline of model and tool activity. A Slack run also includes details such as the sender, channel, and thread identifiers.

    The actions you see depend on the prompt. A simple greeting may show ask_question, while the guided acct_123 investigation should show the lookup_account tool and its result. Use the timeline to confirm that the agent took the path you expected.

The Agent Runs tab currently requires enablement for your Vercel team. If it is unavailable, use local traces and configure an OpenTelemetry exporter in agent/instrumentation.ts.

A repeatable debugging loop

  1. Reproduce the smallest failing prompt.
  2. Run eve info to confirm the expected files and routes were discovered.
  3. Read eve logs for runtime, tool, rebuild, and workflow errors.
  4. Open eve trace or Agent Runs and find the last successful model or tool step.
  5. Fix one boundary, then repeat the same prompt.
SymptomFirst place to look
Tool never appearseve info and .eve/diagnostics.json
Model sees the tool but never calls itTool description, input schema, and instructions
Session is waiting foreverPending approval, question, or connection authorization
Slack returns no answerSlack channel route, Connect trigger, and deployed run
Deployed request failsAgent Runs, project environment, and route auth

Treat traces as data

By default, telemetry may include message history and model outputs. Before exporting traces to a third party, review the destination, retention policy, privacy requirements, and whether inputs or outputs should be disabled.

You are ready when