“Which numbers should this agent report when it finishes?”
Nobody told it. Each run reports what it thinks matters, in its own words, or nothing.
In ConvOps, define a metric, bind it where the work runs and say when it is due. Each due run is asked for it, and a required one holds the step.
define · bind · when it is due · the gate · record
ConvOps Metrics lets you define the numbers your agents must report, bind each one to a workspace, project, workflow or step, and hold that step until the number is recorded.
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
best for
not for
updated
Agent work is judged by feel: a prompt is edited, the next run looks better, and no number was asked for. ConvOps asks every run for the numbers you define.
“Which numbers should this agent report when it finishes?”
Nobody told it. Each run reports what it thinks matters, in its own words, or nothing.
“Did that prompt change make the work better, or does it only feel better?”
Without the same number recorded on every run, each change is judged by whoever read the last one.
“Who checked the figures before the batch went out?”
A checklist in the prompt is a request. Nothing holds the step when the count is missing.
Name a metric, pick its kind of value, its unit and which way is better, and write how an agent measures it. ConvOps shows that hint wherever it is due.
Evidence is asked for where you bind the metric: a link or a note for whoever reviews the value. ConvOps stores the evidence and never fetches it.
{
"action": "define",
"key": "cost_per_1000_words",
"name": "Cost per 1,000 words",
"direction": "down",
"formula": "m('run_cost_usd', 'sum') / m('words_translated', 'sum') * 1000"
}In ConvOps, bind a metric to a workspace, project, goal, program, initiative, schedule, task, workflow or a single step. The runs below that point inherit it.
widest at the top · a narrower binding overrides a wider one
Bound to the outreach project, so every batch records the replies it earned, with the thread as evidence.
project binding · evidence
Bound to the fact-check step, so each article records how many claims were checked, with the source link for the editor.
step binding · evidence required
Bound to the close program with a target of at most 0, so a night with any mismatch reads as a missed target.
program binding · target: at most 0
Bound to the KYC refresh program: one value per customer file, up to 500 files in one batch.
one value per item
Each binding says when its metric is due. ConvOps checks that condition on every step response and again when the agent tries to advance.
A condition that does not hold leaves the metric off that run, and the preview says why.
About one settle run in ten is asked for a QA score with evidence. The other nine move on.
when: a sample of 1 in 10
Once earlier attempts on a quote cost more than $3, the agent is asked to pick a cost reason from a short list.
when: earlier attempts cost over $3
Make a metric required on a step. In enforce mode ConvOps does not advance the workflow until the metric is recorded, with evidence when the binding asks for it.
There is no override on the gate. The step moves once the metric is recorded, or marked not measurable where the binding allows it, or when someone changes the binding.
A parent task waits on its step too. A task without a workflow cannot be completed while a required number is missing. Cancelling a task is never held.
The publish step holds until the agent records how many claims it checked, each with its source.
required · enforce · evidence
The agent records one category per ticket, up to 500 in one batch. The close step waits for that batch.
required · one value per ticket
The binding does not allow not measurable, so each packet records its missing fields before submit.
not measurable: refused
Each step response lists the metrics due on that step, how to measure each one and its target. The agent records with metrics_record, and the server stamps who and where.
before Submit batch runs, the agent is asked for
qa_score: this run is in the sample. Observe-mode items are not asked and never block.
{
"current_step": {
"guidance": {
"metrics_due": [
{
"key": "kyc_file_complete",
"value_type": "boolean",
"how": "Yes only when every required document is on file and in date.",
"target": {
"kind": "rate_of_yes",
"value": 0.98,
"window": "7d"
},
"required": true,
"status": "missing"
},
{
"key": "qa_score",
"value_type": "integer",
"how": "Score the batch from 1 to 5 against the QA checklist.",
"required": true,
"status": "missing"
}
]
}
}
}In ConvOps, each change to a workflow template leaves a marker, with who made it, on the trend of each metric bound to that workflow or one of its steps, so you can see whether runs got better after it.
Agents and people read every recorded number: compare with the previous period, group by a breakdown, filter by program, project, workflow or step.
Save and share metric dashboards.Planned
ConvOps records the cost, duration, queue wait, tokens, turns and outcome of every run on its own. Agents cannot write these numbers.
In ConvOps an agent can propose a metric. It stays a draft and takes no values until it is approved by whoever holds metrics_manage, so keep that tool out of agents' environments.
qa_disagreement
QA disagreement
Share of settled claims where the QA reviewer disagrees with the settle decision.
Recursive self-improvement is a loop where agents edit their own workflows, record metrics against targets people set, and read the results to decide the next edit.
Self-improving on recorded numbers, not on how a run felt.
In ConvOps the loop is a workflow you build: continuous improvement for AI agents, measured on the numbers you define. Every number a run records can be read by agents and people. A scheduled agent reads the trend, changes a workflow, an agent's instructions, a model tier or a schedule, and the next runs show whether it worked. People set the metrics and the targets. Add an approval gate to hold a change until an explicit approval is given, recorded with the account that gave it.
A run edits only what you grant it. Without a grant, a run changes no configuration: it works its task, records metrics and files reports. The model's weights never change. The loop changes the system around the model: workflows, instructions, model tiers and schedules.
| Step | What happens | What it needs |
|---|---|---|
| Trigger | A schedule starts the improvement workflow, every Monday for example. | A schedule |
| Read | The agent reads the last 30 days against the previous period, step by step. | A grant to read metrics |
| Decide | It compares the numbers with the target a person set on the binding. | A target on the binding |
| Propose | It writes the change it wants in a report or a task note. | Nothing extra |
| Hold | An approval gate holds the step until an explicit approval is given, recorded with the account that gave it. | Optional, your choice |
| Apply | It edits a step, an agent's instructions, a model tier or a schedule. | A grant for each edit |
| Mark | The workflow save leaves a marker, with who made it, on the trend of each metric bound to that workflow or its steps. | Automatic |
| Measure | The next runs record the same metrics. The improver is a workflow too, under metrics of its own. | The metric bound and required |
| What could drift | What protects it | What you keep |
|---|---|---|
| Who recorded a value | The server sets who recorded it and at which step. The agent cannot fill that in. | Nothing to set: it is always on |
| What a metric means | A proposed metric stays a draft and records no values until it is approved. | metrics_manage, which defines and approves metrics, out of the improver's grants |
| The bar | The target sits on the binding, not on the metric and not with the agent. | Bindings out of the improver's grants |
| The numbers judged | Cost, time, tokens, turns and outcome are recorded by ConvOps. Agents cannot write them. | Targets bound to these where one fits |
The server records who and where. The agent supplies the value and the evidence, which is a link or a note for a reviewer, not a check.
Give the improver one environment with metric reads and the edit tools it needs. Keep metric definitions, bindings and environment grants in a second environment that people hold.
Today each change to a workflow template leaves a marker, with who made it, on the trend of each metric bound to that workflow or one of its steps, and on the trend of each program whose schedules run it. Roll back a workflow change in one step.Planned
Agents record the numbers. People set the bar.
An agent compares step time with the previous period, edits the instructions of the slowest triage step and files a report. Next week shows whether it held.
schedule · metric reads · step edit
Agents report fields extracted per document. An agent points a tier at another model and compares that count with its target, with run cost and duration as guards. Every agent on the tier follows on its next run.
model tier edit · reported metric · target
An agent saves a new revision of the reconciler's instructions. If mismatches rise, a person sets the earlier revision active again.
agent revisions
The ConvOps actions an agent or a script uses to record, bind and read metrics. Every payload here is an example.
An agent records against a metric bound to its step. Provenance comes from the run, and the response lists what is still due.
{
"action": "record",
"key": "claims_checked",
"value": 23,
"evidence": {
"url": "https://docs.example.com/fact-check/42",
"note": "23 of 23 claims sourced"
}
}Required and enforced, with a target, evidence and no not-measurable escape. A step binding names the workflow and the step.
{
"action": "bind",
"kind": "metric",
"ref_id": "met_claims_checked",
"level": "step",
"target_id": "tpl_publish_article",
"step_id": "check_claims",
"mode": "enforce",
"config": {
"required": true,
"evidence_required": true,
"allow_not_measurable": false,
"target": {
"kind": "at_least",
"value": 10,
"window": "7d"
}
}
}The 90th percentile of time on one step, by week, for 30 days, beside the 30 days before.
{
"action": "query",
"key": "step_dwell_ms",
"agg": "p",
"agg_arg": 90,
"window": "30d",
"grain": "week",
"filters": {
"template": "ticket-triage",
"step": "classify"
},
"compare": "previous_period"
}Recording, bindings and the gate run on PostgreSQL. Trends need OpenSearch.
ConvOps Metrics lets you define the numbers your agents must report, bind each one to a workspace, project, workflow or step, and hold that step until the number is recorded. Every value carries who recorded it and at which step. ConvOps also writes the cost, duration, tokens, turns and outcome of every run itself, and marks each workflow change on the trends of the metrics bound to it.
Define the metric once in ConvOps, bind it to the workspace, project, workflow or step where the work runs, and say when it is due. Each due run finds the metric in its step guidance, with how to measure it and its target, and records it with metrics_record. Make the binding required and set it to enforce, and the step waits until the number is recorded.
Measure it with numbers the platform records and numbers the agent reports, read side by side over time. ConvOps records the cost, duration, queue wait, tokens, turns and outcome of every run by itself. Your team defines the rest, such as replies per batch or claims checked, binds each one to the work and sets a target on the binding. Then compare any window with the previous period, by program, project, workflow or step.
Keep the parts that decide the score out of the agent's hands. In ConvOps the cost, time, tokens, turns and outcome of a run are written by the platform, so an agent cannot write those numbers. The server sets who recorded each value and at which step. A metric an agent proposes stays a draft until it is approved, and the target sits on the binding. Keep the metric and binding tools out of the agent's grants.
ConvOps Metrics is for teams that run AI agents on repeatable work and need every run to report the numbers that show whether the work was done. That includes operations leads who want a step held until a count is in, finance and compliance teams that want evidence with each value, and team leads who read the same reported numbers by project, workflow or step. It fits research, sales, content, support and back-office workflows alike.
Yes. In ConvOps you make a metric required on a step and set its binding to enforce, and the workflow does not advance until the metric is recorded. The refusal names what is missing. There is no override on the gate: the step moves once the metric is recorded, or marked not measurable where the binding allows it, or when someone changes the binding. Observe mode never blocks and records whether each step would have met it.
The agent marks it not measurable with a reason, and ConvOps accepts that in place of a value unless the binding forbids it. A binding that does not allow it keeps the step held until a real value is recorded. That suits checks with no valid excuse, such as the missing-fields count on a prior-authorisation packet.
Yes, when you build the workflow for it and grant the tools it needs. In ConvOps a scheduled agent can read the recorded numbers, change a workflow, an agent's instructions, a model tier or a schedule, and the next runs show whether it worked. A run edits only what you grant it. People set the metrics and the targets. Add an approval gate to hold a change until an explicit approval is given, recorded with the account that gave it.
No. ConvOps never changes model weights. What changes is the system around the model: the steps of a workflow, an agent's instructions, the model a tier points to and the schedules that start the work. Each workflow change leaves a marker, with who made it, on the trend of each metric bound to that workflow or its steps, so you can see whether runs got better after it.