Recurring AI agent tasks: Keep track of every scheduled agent run.

Track every autonomous AI agent run your team schedules in ConvOps. Group recurring schedules under one program with an owner and a goal, and see one health verdict, the reports its runs file and its KPIs.

program · schedules · health verdict · run reports · KPIs

program · Market watchexample
Market watchhealthy

Know what competitors ship and charge, before the sales team asks

goal
Win rate against the top 3 competitors
owner
Head of product marketing
  • Competitor scanEvery day at 07:00 · tomorrow 07:00healthy
  • Pricing checkEvery Mon at 08:00 · Mon 08:00healthy
  • Analyst briefMonthly on day 1 at 09:00 · Nov 1 09:00healthy

Competitor scan ran at 07:00 and filed its report.

in short

How do you manage recurring AI agent tasks?

A ConvOps program groups the recurring runs your agents execute under one owner and goal, and tells you which of them are healthy, late, silent or failing.

ConvOps is the operations layer for AI agents. It holds your team's process as workflows with gates, a shared memory, scheduled and unattended runs, programs, a plan board, metrics and a full audit trail. It does not sell or host models.

key facts · october 2026

  • A program has a name, a purpose, a goal and an owner, and can say where its working state lives. Schedules join it; each schedule keeps its own executor.
  • Each program shows one verdict: healthy, late, silent, failing, paused, new or retired. Silent means no fire, measured from the last one, for 1.5 times the largest gap between scheduled times; failing means three failed runs in a row.
  • ConvOps also tracks a 7-day success rate for each program and its cost against a 4-week baseline.
  • A fire is refused while the program is not active, and skipped while the previous run is still in progress. Run now gets the same two checks.
  • Agents file a run report (outcome, what changed, what comes next, blockers) or a report type your team defines with text, list, choice and number fields. Unknown fields are refused.
  • Program KPIs are the metrics bound to the program, its goal chain, its project or the workspace, each with its latest value, whether the target is met, and a trend. You read them in the app.

best for

  • IT operations, finance and compliance teams with recurring agent jobs (patch sweeps, month-end close, control checks) that need one owner each.
  • Agencies running recurring work for many clients, one program per client.
  • Anyone who has found out too late that a nightly job stopped firing.

not for

  • One-off tasks. A program holds schedules only.
  • Writing reports by hand in the app. Agents file reports; the app shows them.

updated

the problem

Forty schedules, and nothing says which one stopped.

Recurring agent work fails quietly. Past a handful of schedules, these three questions go unanswered.

“Did last night's run even happen?”

Nothing tells you a schedule went quiet. You find out when someone asks where the report is.

“Which of these schedules belong to the close?”

Schedules sit in one flat list, with no owner, no goal and no way to pause the ones that belong together.

“Is the scan failing, or just costing more?”

Each run ends on its own. Nobody sees three failures in a row, or the cost creeping up week after week.

programs

One owner and goal for every schedule.

A program groups recurring schedules under one name, purpose, goal and owner. Each schedule keeps its own workflow and executor; the program says what they are for.

program · Booksexample
Bookshealthy

Keep the ledger reconciled every night and the month-end close on time

goal
Close the month in 3 working days
owner
Finance controller
  • Bank reconciliationEvery day at 01:30 · 01:30healthy
  • Vendor statement matchWeekdays at 07:00 · Mon 07:00healthy
  • Close checklistEvery Fri at 16:00 · Fri 16:00healthy

state: close tracker · finance/close/2026-10

  • Name, purpose, goal, ownerAll four are required. The goal is a goal in your workspace, and the owner is one of its members.
  • Where the work livesAn optional state label and location point to the tracker, folder or sheet the runs keep up to date.
  • Only schedules joinEach schedule keeps its own workflow and executor. The program groups them and adds neither.
  • History stays putMove a schedule to another program and its past runs stay with the program they fired under.
example · market research

Market watch

A daily competitor scan, a weekly pricing check and a monthly analyst brief in one program, so one verdict says whether the watch is working.

program · three schedules, one verdict

example · finance ops

The books

Nightly reconciliation and the weekly close checklist share an owner and the close goal. Three failed nights on either one show on the program.

program · owner and goal

example · bankingenterprise

Monthly controls testing

Each key control test files a control test report: the control id, a result of effective or deficient, and the evidence. The binding is required, so the step waits for it.

report type · enforce and required

example · pharmacovigilanceenterprise

Literature scan for safety signals

A morning scan screens new publications for each product. If it stops running, the program turns silent after 36 hours, long before an audit would notice.

health · silent after 1.5 × the longest gap

example · telecomenterprise

Weekly churn-signal review

Every Monday, agents score accounts for churn signals. The program shows accounts flagged against the target the retention lead set, and the review's cost against the last 4 weeks.

KPI · target on the binding

example · IT operationsenterprise

Patch hygiene in three regions

One schedule per region, each at its local time, in one program. When the APAC run is late, the program reads late, not healthy.

verdict · worst armed schedule

example · agency

One program per client

The account lead owns each client's program, its state location points to the client folder, and the program lists the work its runs spawned.

owner · state location · spawned work

example · operations

A watchdog over every program

A daily run, with program reading switched on for it, reads each program's status and opens a task for every one that is silent or failing.

programs_read · status

lifecycle

Pause, resume and retire the whole program.

One action covers every schedule in the program, and every transition is logged as an activity.

01category lead

Pause for the price freeze.

Holiday prices are locked for a week, so the category lead pauses the program. Both schedules are disarmed, and ConvOps remembers that both were armed.

program · EU price watchexample
EU price watchpaused

Track competitor prices and promotions for the EU stores

goal
Hold gross margin in the EU stores
owner
Category lead, EU
  • Competitor price scanEvery day at 06:00 · disarmedpaused
  • Promotion auditEvery Mon at 08:00 · disarmedpaused

paused by the category lead · 2 schedules were armed

02category lead

Resume, with one catch-up.

Resume re-arms exactly the schedules that were armed at pause. With catch-up set to one, each schedule that missed a run fires one run for its latest miss, marked Catch-up. With none, each waits for its next time.

program · EU price watchexample
EU price watchhealthy

Track competitor prices and promotions for the EU stores

goal
Hold gross margin in the EU stores
owner
Category lead, EU
  • Competitor price scanEvery day at 06:00 · catch-up run startedhealthy
  • Promotion auditEvery Mon at 08:00 · catch-up run startedhealthy

resumed · catch-up: one · 2 schedules re-armed

03category lead

Retire when the work ends.

The EU stores move to a new pricing system. Retire is final: the schedules are disarmed, and edit, pause and resume are refused. The runs and reports stay with the program, and every transition is logged.

program · EU price watchexample
EU price watchretired

Track competitor prices and promotions for the EU stores

goal
Hold gross margin in the EU stores
owner
Category lead, EU
  • Competitor price scanEvery day at 06:00 · disarmedretired
  • Promotion auditEvery Mon at 08:00 · disarmedretired

retired · edit, pause and resume refused

program · EU price watchexample
EU price watchpaused

Track competitor prices and promotions for the EU stores

goal
Hold gross margin in the EU stores
owner
Category lead, EU
  • Competitor price scanEvery day at 06:00 · disarmedpaused
  • Promotion auditEvery Mon at 08:00 · disarmedpaused

paused by the category lead · 2 schedules were armed

fire guards

A paused program starts nothing.

Every fire passes two checks before a run exists. A refused fire is logged, and so is a skipped one, so the record shows every run that did not happen.

example1/4

schedule fire

08:00 · literature scanprogram active, the last run finished
next item
run startsprogram active, nothing still running
idle
refused · program inactiveno run, one blocked activity logged
idle
skipped · previous run still goingno run, the skip logged with its reason
idle
program · activityexample
  • Inactive means nothing startsA fire on a paused or retired program creates no run and logs one blocked activity per occurrence.
  • One run at a timeWhile the previous run is queued, starting or running, the next fire is skipped and logged.
  • Run now gets the same guardsA manual run is refused for the same two reasons, with the reason in its error, so a click cannot start what the schedule could not.
  • Skips are not runsA skipped or refused fire never counts as a run, so a schedule whose every fire is skipped turns late, then silent.
health

Healthy, late, silent or failing, at a glance.

Every program has one verdict. An active program shows the worst among its armed schedules, so one silent schedule shows on the whole program.

  • healthy

    Every armed schedule is on time, and none has failed three times in a row.

    example Bank reconciliation ran at 01:30 and succeeded.

  • late

    A schedule is past its due time and has not run yet.

    example The 07:00 vendor match has not started at 07:40.

  • silent

    No run for more than 1.5 times the longest gap between its scheduled times, by default.

    example Weekdays at 07:00: the longest gap is Friday to Monday, so silent after 4.5 days.

  • failing

    Three failed runs in a row by default; two is a warning. Model, infrastructure and time-limit failures count.

    example The literature scan hit its time limit three mornings running.

  • paused

    The program is paused, and its schedules are disarmed until it resumes.

    example EU price watch, paused for the holiday price freeze.

  • new

    No run yet, and the first due time has not come.

    example A schedule assigned this morning, first run due tomorrow at 06:00.

  • retired

    The program is retired. Retiring is final.

    example EU price watch, retired after the move to a new pricing system.

Beside the verdict, each program shows its success rate over the last 7 days, its cost against a 4-week baseline, the runs whose cost is unknown, missing reports and the work its runs spawned.

reports and KPIs

Typed reports from runs, KPIs per program.

Runs file typed reports that the server checks. The program lines them up next to its KPIs, each judged against a target people set.

runexample run · literature scanscheduled
firedstartingworkingreporting
calling
report filed
duration0 min
cost$0.00
reportrun report · succeeded
program · reportsexample
  1. Thu 06:41run reportsucceeded
    changed
    Screened 412 new abstracts · escalated 2 case candidates
    next
    Re-check 3 abstracts once the full text is in
  2. Wed 06:39case screen · v21 candidate
    sources
    PubMed, Embase, regulator safety notices
    case_ids
    PV-2026-114
  3. Tue 06:52run reportpartial
    changed
    Screened 280 of 395 abstracts
    blockers
    Embase export timed out twice
  • The built-in run reportOutcome (succeeded, partial or failed) plus what changed, what is next and the blockers. Every new program tracks it.
  • Your own report typesText, list, choice and number fields, 1 to 50 per type. Editing the fields bumps the version.
  • Strict and append-onlyUnknown fields are refused, and the server stamps who filed each report, from which run and step.
  • Required only where you bind itA report stops a step only when its binding is enforce and required.

program · KPIs · example

  • abstracts screened / week1,940met · binding target at least 1,500updated 2 h ago
  • screening backlog37missed · binding target at most 20updated 2 h ago
  • hours to escalation5.5met · binding target at most 24updated yesterday
  • sources reached3 of 3met · binding target at least 3updated 2 h ago

A program's KPIs are metrics a recursive self-improvement loop reads directly: agents record the numbers, against targets people set.

for engineers

Programs through the tools and the API.

The same programs, report types and reports, as your agents and your scripts reach them.

Create a program and attach a schedule

programs_manage creates, edits, pauses, resumes and retires programs and moves schedules in or out. A schedule joins with the program slug on schedule_create, schedule_attach or schedule_update.

payload
programs_manage(action="create",
  name="PV literature scan",
  purpose="Screen new publications for safety signals",
  goal_id="<goal task id>",
  owner_user_id="<member id>",
  state_label="Screening log",
  state_location="https://example.com/pv/log")

schedule_attach(task_id="<scheduled task id>",
  program="pv-literature-scan")
example values

Define a report type and file a report

report_types_manage creates, updates and retires report types; the built-in run-report can be renamed, but its fields never change and it is never retired. A run files with reports_file on its own task, and REST takes POST /tasks/{id}/reports.

payload
report_types_manage(action="create",
  name="Case screen",
  purpose="One per literature scan",
  fields=[
    {"key": "candidates", "question": "Case candidates found", "kind": "number", "required": true},
    {"key": "case_ids", "question": "Case ids escalated", "kind": "list"}])

reports_file(task_id="<run task id>", type="case-screen",
  answers={"candidates": 1, "case_ids": ["PV-2026-114"]})
example values

Read status, runs and KPIs

programs_read lists programs with their health and returns one program's status, its runs and a single run. KPIs and notes come from REST: GET /programs/{slug}/kpis and GET|POST /programs/{slug}/annotations.

payload
programs_read(action="status", slug="pv-literature-scan")

GET  /api/v1/programs/pv-literature-scan/kpis
POST /api/v1/programs/pv-literature-scan/pause
POST /api/v1/programs/pv-literature-scan/resume
example values

Workspace settings

The health thresholds, the catch-up rule and the assignment edge cases are workspace settings. Each value below is the default.

payload
programs.resume_catch_up            one      (one | none)
programs.silent_multiplier          1.5
programs.streak_warning             2
programs.streak_failing             3
programs.cost_window_days           7
programs.cost_baseline_weeks        4
programs.assign_from_other_program  warn     (allow | warn | deny)
programs.assign_to_paused           warn     (allow | warn | deny)
defaults
questions

Program questions, answered.

What is a program in ConvOps?

A program in ConvOps groups the recurring runs your agents execute under one owner and goal, and tells you which of them are healthy, late, silent or failing. It has a name, a purpose, a goal and an owner, plus an optional pointer to where its working state lives. Only schedules join a program, and each keeps its own workflow and executor. Every new program tracks the built-in run report.

Who are programs for?

Programs are for teams that run agents on a schedule and answer for the result: operations, finance, compliance, research, support and agency teams. ConvOps gives each program an owner who is a member of the workspace, so every recurring job has a person accountable for it. One program can hold a daily scan, a weekly review and a monthly brief that serve the same goal.

How do I know a recurring agent stopped working?

Open the program in ConvOps and read its health verdict: late, silent or failing. A schedule is late once it is past its due time with no run, and silent after 1.5 times its longest gap between scheduled times with no run, by default. Three runs in a row that end in a model failure, an infrastructure failure or a time limit mark it failing. The program shows the worst verdict among its armed schedules, and skipped or refused fires never count as runs.

How do you monitor autonomous AI agents?

Watch the runs and the work they serve. In ConvOps every scheduled run belongs to a program with an owner and a goal, and the program shows one health verdict, healthy, late, silent or failing, from the worst of its armed schedules. Each run records its cost, duration and outcome and can file a typed report, and every refused or skipped fire is logged with its reason. The program adds a 7-day success rate and its cost against a 4-week baseline.

What does pausing a program do to its schedules?

Pausing disarms every schedule in the program, and ConvOps remembers which ones were armed. While the program is paused, Run now is refused with its reason, and each refused scheduled fire is logged. Resume re-arms exactly that set. With catch-up set to one, the default, each schedule that missed a run while paused fires one run for its latest miss; with none, it waits for its next time.

Can a scheduled run start while the previous one is still going?

No. In ConvOps, a program schedule's fire is skipped while its previous run is still queued, starting or running, and the skip is logged with its reason. Run now gets the same check. A skip is not a run, so a schedule whose every fire is skipped turns late, then silent, and the program's verdict shows it.

What goes into a run report?

A ConvOps run report is a typed record a run files about its own work. The built-in run report holds the outcome (succeeded, partial or failed) and lists of what changed, what is next and the blockers. You can define your own report types with text, list, choice and number fields. Reports are append-only, unknown fields are refused, and a report stops a step only when its binding is enforce and required.

What KPIs should I track for AI agents?

Track the outcome the recurring work exists for, then its reliability and its cost. In ConvOps, a program's KPIs are the metrics bound to it, its goal chain, its project or the workspace, each with its latest value, target met or missed, an 8-bucket trend and its freshness. Beside them, each program shows its success rate over the last 7 days and its cost against a 4-week baseline.

Can I delete a program?

No. ConvOps retires a program instead of deleting it, and retiring is final: its schedules are disarmed, and edit, pause and resume are refused. Its past runs and reports stay with the program they fired under, so the record of what it did stays readable. Every transition, from pause to retire, is logged as an activity.