Skip to main content
Working with an agent? Give them a link to this page as markdown.

Sessions and trajectories

Watcher records what a coding agent does as a session made of messages, and organizes each session's messages into one or more trajectories. Graders review trajectories, so these two terms tell you exactly what a grade covers.

Sessions

A session is one recorded interaction with a coding agent: for example, a single Claude Code or Codex conversation on a developer's machine. The Watcher client's hooks upload the conversation to your Watcher deployment at the end of each agent turn, so a session is visible in the Analyzer while it is still in progress.

Each session records:

  • The messages exchanged: user prompts, assistant replies, tool calls with their results, and the system prompt.
  • Which agent produced it (Claude Code or Codex).
  • The developer it belongs to.

Trajectories

A trajectory is one linear path through a session's conversation: an unbroken chain of messages, in order, ending at one of the session's latest messages. Most trajectories start at the session's first message; a restarted chain (see below) starts where the restart happened, so its trajectories do not include the messages before it.

A straightforward conversation produces a single trajectory. A session contains more than one trajectory when its message history stops being a single chain:

  • Branching. The developer rewinds the conversation and continues from an earlier point. Watcher keeps both branches, each as its own trajectory, and they share the messages up to the branch point.
  • Restarted chains. The agent restructures its own message history mid-session (context compaction, or a change of system prompt), which starts a new chain in the same session.

What a grade covers

Graders review a trajectory, not a whole session. Each grade attaches to one specific trajectory, identified by the last message the grader saw. A session accumulates grades over time: from different graders, from different models, and from re-grading the same trajectory.

While a session runs, review happens in two ways:

  • Blocking review evaluates a tool call before it runs and can allow it, deny it, or escalate it to a human.
  • Trailing review grades the session's latest trajectory on the server as the session is ingested, and settles it with a final pass once the session goes quiet.

Counting messages

A session's message count, as shown in session lists, is the length of its longest trajectory, not the total number of stored messages. A heavily branched session therefore holds more messages than its count shows.