badgeIA

Using Badge

Scheduled screenings

Run the same screening on your agent every day, every week, or whenever its configuration changes, with spend caps that pause it.

View Markdown

A screening tells you how an agent performs today. A scheduled screening tells you how it performs over time. It runs the same suite on your agent on a cadence you choose, and each finished screening adds a point to the agent's history, so a drop in quality shows up without anyone remembering to re-run it.

Scheduled screenings are available on Pro (up to 3 schedules), Team (up to 20 schedules per workspace) and Enterprise (no fixed limit). Free plans cannot create schedules. See Pricing.

Cadences

Every schedule uses one of three cadences:

  • Daily. Runs once a day at the hour you pick. Times are in UTC.
  • Weekly. Runs once a week on the weekday and hour you pick.
  • On blueprint change. Runs when the agent's declared configuration changes, about a minute after Badge records the new version. Use it to re-check an agent every time you change its model, prompt or tools. A change made by a scheduled screening never starts another one. Each blueprint-triggered schedule runs at most once every 6 hours, so an agent with several of these schedules can be screened more than once in that window, up to the limit of your plan.

Each occurrence runs the suite between 1 and 5 times (the "runs per screening" setting). More repeats smooth out a noisy agent, at the cost of more runs against your monthly allowance.

Each schedule also has an overlap window, from 15 minutes to 24 hours (2 hours by default). Badge will not start a second occurrence for the same agent while the previous one's window is still open.

Spend caps

You can set two optional caps in US dollars:

  • Per-run cap. Pauses the schedule if any single run in a screening cost more than this.
  • Monthly cap. Pauses the schedule once the month-to-date spend for this schedule reaches this amount. The month is the UTC calendar month.

Badge counts the cost of each run from the figures it has for it. When a measured cost is available it is used; otherwise Badge uses the cost the agent reports for itself. A self-reported cost can understate what the agent actually spends. This is Badge's recorded figure, not an invoice from your model provider or host.

Caps are checked after a screening finishes, so a screening can end above a cap. The one that crosses a cap still completes and is counted in full. The schedule then pauses before its next occurrence.

Paused: what it means

A paused schedule does not run. Its settings and history are kept. The owner gets an email once, when a schedule moves from active to paused.

Each pause shows a reason on the agent's Manage page:

  • Paused: budget. A cap was reached. Either one run in a screening cost more than the per-run cap, or the month's spend reached the monthly cap. To resume, raise the cap or clear it, then turn the schedule back on. If the monthly cap is still reached, the schedule pauses again at its next occurrence. The monthly total resets at the start of the next UTC month.
  • Paused: endpoint failures. Three screenings in a row could not reach your agent or got errors back from it. Check that the endpoint is up and answering, then turn the schedule back on.
  • Paused: invalid request. Three runs in a row were refused because the request is no longer valid for this agent: the schedule's suite or task selection was retired, or the agent's credential must be reconnected. Edit the schedule or your agent (reconnect the credential if asked), then turn the schedule back on.
  • Paused: access. You no longer have edit access to the agent, or the agent was moved out of the workspace or personal scope the schedule was created in. Restore access, then turn the schedule back on. If the agent was deleted, delete the schedule.
  • Paused: plan. Your current plan no longer includes this many scheduled screenings, or the team's plan is no longer active. Upgrade, or pause or delete other schedules until the count fits, then turn this one back on. On the Free plan no schedule can be resumed.
  • Paused by you. You turned the schedule off. If your own account was deactivated, the schedule also shows this reason; reactivate the account, then turn the schedule back on.

Turning a schedule back on schedules the next future occurrence. It does not run the ones you missed.

Anyone with edit access to the agent can pause a schedule. Only the person who created a schedule can turn it back on, because it runs as them and spends their quota. If you lost edit access to the agent, you can still see, pause and delete your own schedules, but you cannot reconfigure or resume them until access is restored.

Set one up

On the agent's Manage page, find the Scheduled screenings card. Choose the cadence, the hour (UTC), the runs per screening and any caps, then save. The history under the card lists each scheduled screening with its runs, pass and fail counts and cost.

On the Free plan the form shows the card and the first attempt to create a schedule is refused, with a link to plans. The form then stays locked until you reload the page.

You can also create one from an MCP client with the schedule_suite tool.

schedule_suite (MCP)

Requires a Badge API key (BADGE_API_KEY). The tool takes the same settings as the card:

Input, Required, Notes table
InputRequiredNotes
agent_idYesAn agent you own or can edit.
cadenceYesdaily, weekly or on_blueprint_change.
suite_id or task_idsNoChoose one. Omit both to screen the full catalogue.
hour_utcNo0 to 23. Default 0.
weekdayWeekly only0 is Monday through 6 is Sunday.
run_count_kNo1 to 5 runs per screening. Default 1.
budget_cap_usd_per_runNoPause if any single run in a screening costs more than this.
budget_cap_usd_per_monthNoPause once the month's spend reaches this.

Example call, a weekly screening every Monday at 06:00 UTC with a $25 monthly cap:

{
  "agent_id": "a1b2c3d4-0000-4000-8000-000000000001",
  "cadence": "weekly",
  "weekday": 0,
  "hour_utc": 6,
  "suite_id": "a1b2c3d4-0000-4000-8000-000000000002",
  "run_count_k": 1,
  "budget_cap_usd_per_month": 25
}

The tool returns the created schedule: its cadence, its next run, its caps and a link to manage it.

API

All routes are under /api/v1. They return 404 while scheduled screenings are turned off for the deployment. Reads need a session or an API key with read scope. Writes need write scope and edit access to the agent.

Method, Path, Purpose table
MethodPathPurpose
POST/agents/{agent_id}/schedulesCreate a schedule. Returns 201.
GET/agents/{agent_id}/schedulesList the schedules for an agent.
GET/schedules/{schedule_id}Read one schedule, including its caps, spend and pause reason.
PATCH/schedules/{schedule_id}Change any setting, or set is_active to pause or resume. Only the schedule's creator can resume it.
DELETE/schedules/{schedule_id}Delete the schedule. Returns 204. Past screenings are kept.
GET/schedules/{schedule_id}/history?page=1&page_size=20Past scheduled screenings for the agent, newest first. page_size is at most 100.

Example: resume a paused schedule.

curl -X PATCH "https://badgeia.com/api/v1/schedules/$SCHEDULE_ID" \
  -H "Authorization: Bearer $BADGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"is_active": true}'

Revoking an API key does not stop a schedule. A schedule belongs to your account and runs as you, not as the key. To stop it, pause or delete the schedule.

Removing a schedule does not remove the screenings it already ran.