# Watchers

URL: /agents/autonomy-levels/watchers · Id: `page:agents/autonomy-levels/watchers`

> A watcher reads a namespace's pending feed and can pause, redirect or cancel any pending Action; every intervention is a Decision.

A watcher is anyone with authority over a namespace who reads its pending feed: a [Human](/business/nouns/human), another [Agent](/business/nouns/agent), or a person's personal agent. A watcher can pause, redirect or cancel a pending [Action](/business/nouns/action), and every intervention is a [Decision](/business/nouns/decision).

## The pending feed
Each namespace has one pending feed: its own Actions waiting in a [delay window](/agents/autonomy-levels/delay-windows), plus its children's, closing soonest first. A [Studio](/business/nouns/studio) watcher sees every [Startup](/business/nouns/startup) in its [Portfolio](/business/nouns/portfolio). Each row shows the decision class, the review verdicts, the close time and the [Verbs](/business/nouns/verb) the viewer may use.

The feed appears in the inbox and the team stream as pending items, never as [Tasks](/business/nouns/task). The CLI and MCP serve the same feed.

## Three Verbs
| Verb | What it does |
| --- | --- |
| `Action.pause` | Holds the Action past its window until a watcher resumes, redirects or cancels it. An unresolved pause escalates to the [Role](/business/nouns/role) above after one business day. |
| [Redirect](/business/nouns/action/redirect) | Replaces the Action's inputs. The new version passes review again and opens a fresh window. |
| [Cancel](/business/nouns/action/cancel) | Ends the Action `canceled`. |

Each Verb records a Decision with its reason, so a pause never ends in silence. A watcher without authority over the namespace gets `refused`, and the Action keeps its course.

**Ask**

```text
Redirect the latest action.
```

**API**

```bash
curl -X POST https://api.sb/tutorloop.com/actions/action_1/redirect \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"changes":{}}'
```

```json
{
  "api": "https://api.sb/tutorloop.com",
  "action": {
    "$id": "https://api.sb/tutorloop.com/actions/action_1",
    "$type": "Action",
    "status": "done",
    "mode": "try",
    "operation": "Action.redirect"
  },
  "links": {
    "self": "https://api.sb/tutorloop.com/actions/action_1"
  }
}
```

**SDK**

```ts
import { $ } from 'startup-builder'

const action = await $.Action.redirect({ action: 'action_1', changes: {} })
```

**CLI**

```bash
npx startup-builder do Action.redirect --json '{"action":"action_1","changes":{}}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Action.redirect({ action: 'action_1', changes: {} })"
  }
}
```

## Personal agents
A personal agent carries one person's stated priorities into every namespace where they hold a seat. It reads the feeds that person can watch and acts within their authority, never beyond it. Its interventions are Decisions recorded in that person's name.

A founder with ten Startups cannot read ten feeds. The personal agent reads them, pauses what conflicts with the founder's priorities, and sends one summary.

## Direction outlasts one intervention
An intervention fixes one Action. To change what happens next time, a watcher records a binding Decision with a scope and an end condition. Every affected Role reconciles its open work against it: kept, changed, paused or canceled, each with a reason.

Authority settles conflicts, not recency. A narrower Role cannot override a binding Decision set above it, and the newer direction [supersedes](/business/nouns/decision/supersede) the older one with both kept on record.

## In practice
An [Agent as a Service](/products/templates/agent-as-a-service) clips podcasts for creators. Its [Marketing Lead](/agents/marketing/marketing-lead) schedules an outbound campaign to 3,000 podcast hosts, a high-tier send that waits one business day. The founder's personal agent watches for promises the product cannot keep.

It finds a line promising translated captions, which the product lacks. It redirects the campaign without that line and records why. The new version passes review, waits a fresh business day and goes out, and the founder reads one line about it the next morning.