Skip to main content
A signal is a detector. It watches agent runs and fires when findings match a pattern described in plain English: “the agent retries a failed charge with no backoff,” “the assistant goes off-topic.” These live under Signals in the dashboard. A signal is a learned classifier, not a hand-written rule. Bento trains it on your own runs through the Deep Search loop, and once trained it fires in real time on new runs and backfills history. Each firing is an event, and Bento groups similar events into clusters. Every signal carries a source and a status:

Commands

Read what’s firing

List the signals:
Filter to the live ones. --status takes initializing, active, paused, archived, or failed:
Filter by how a detector was made. --source takes any of the source values above:
Open one signal. The response carries its prompt, config, and event_count:
Read the events, the firings. This defaults to the last 30 days; widen it with --start-time:
See the clusters, similar events grouped:

Create and edit

The Deep Search loop trains a working detector. To register a record directly, signals create takes a body where name is required and prompt describes the pattern in plain English. A hand-created record lands in initializing and waits for its training step; it doesn’t train a classifier on its own.
To edit a signal, send only the fields that change:
signals delete is a soft delete. The record stays, the status flips to archived, and it stops firing:
The CLI can train a signal and create a notification channel, but binding a signal to a channel into a firing alert rule is dashboard-only. There’s no alert-rules group, so set the rule up in the dashboard.

See also

Deep Search

The labeling loop that trains a signal from your own runs.

Clusters

Groupings of similar findings and signal events.

Issues

The tracked problems a signal helps surface.