Monitoring
List findings
See the rules your agents didn’t meet.
How it works
A finding is one agent not meeting one rule. If an agent misses the same rule in 10 runs, that is one finding with run_count: 10.
Use group_by to choose how much detail you get:
rule(the default): one row for each rule an agent didn’t meet, with how many runs missed it and when it was first and last seen.pattern: for one finding, groups the runs that missed the rule in the same way. Needsagent_idandrule_id.run: for one finding, one row per run. Needsagent_idandrule_id.
To dig into a row, send its agent_id and rule_id back with the next group_by.
Request body
application/json
- group_bystringdefault rule
How much detail to return. See above.
rulepatternrun - agent_idstring
Only this agent. Required for
patternandrun. - rule_idstring
The rule. Required for
patternandrun. - rule_set_idstring (uuid)
Only rules from this rule set.
- pattern_idstring
With
run: only runs in this pattern. - severitiesstring[]
With
rule: only these severities.criticalhighmediumlow - sincestringdefault 30d
How far back to look, such as
30m,12h,7d, orallfor everything. - limitinteger
How many rows per page. With
rule, the default is 10 and the most is 200. Withpattern, 10 and 50. Withrun, 25 and 100. - cursorstring
The
next_cursorfrom the previous page. - sourcestringdefault platform
Which runs to include:
platformfor ones Ollive collected,apiormcpfor ones you sent.platformapimcp
Every field is optional unless group_by needs it. Send {} for all findings in the last 30 days.
Response
The findings. An empty list if there are none.
- dataobject[]required
One row per finding, pattern or run, depending on
group_by.- agent_idstring (uuid)required
The agent that didn’t meet the rule.
- rule_idstringrequired
The rule.
- rule_set_idstringrequired
The rule set it belongs to.
- severitystringrequired
How serious it is.
criticalhighmediumlow - run_countintegerrequired
How many runs missed the rule.
- rule_set_namestring
The rule set’s name.
rulerows only. - source_typestring
Where the rule comes from.
rulerows only.regulationframeworkcontract - titlestring
A short name for the finding.
rulerows only. - descriptionstring
A longer explanation.
rulerows only. - rule_textstring
The rule, in words.
rulerows only. - finding_textstring
What the agent did instead.
rulerows only. - citationsstring[]required
References to the source, such as a section number.
rulerows only. - first_seen_atstring (date-time)
When it first happened.
rulerows only. - last_seen_atstring (date-time)
When it last happened.
rulerows only. - pattern_idstringrequired
The pattern’s ID. Set on
patternandrunrows. - checksobject[]required
What the runs in this pattern have in common.
patternrows only.- questionstringrequired
The question Ollive answered.
- answerstringrequired
The answer.
truefalseunknown
- runobject
The run.
runrows only.- run_idstringrequired
Your ID for the run.
- occurred_atstring (date-time)
When it happened.
- duration_msinteger
How long it lasted, in milliseconds.
- flagged_stepsobject[]required
Where in the run the rule wasn’t met.
- reasonstringrequired
Why it was flagged.
- turn_indicesinteger[]required
The turns involved.
- flagged_turn_indicesinteger[]required
Every turn that was flagged.
- total_countintegerrequired
How many results match, across all pages.
- has_morebooleanrequired
Whether there is another page.
- next_cursorstringrequired
Send this as
cursorto get the next page. Empty on the last page.
Something in the request is wrong. code and param tell you what.
Returns an error, for example with the code invalid_request.
The API key is missing, wrong, revoked or expired.
Returns an error, for example with the code authentication_failed.