Separate Patrol evidence and model-turn budgets

This commit is contained in:
rcourtman 2026-07-16 17:50:08 +01:00
parent 359147b771
commit 676117bf27
31 changed files with 544 additions and 57 deletions

View file

@ -86,8 +86,10 @@
},
"investigation": {
"type": "object", "additionalProperties": false,
"required": ["min_evidence_ids", "required_summary_terms", "require_completed_status"],
"required": ["required_summary_terms", "require_completed_status"],
"anyOf": [{"required": ["min_evidence_calls"]}, {"required": ["min_evidence_ids"]}],
"properties": {
"min_evidence_calls": {"type": "integer", "minimum": 1},
"min_evidence_ids": {"type": "integer", "minimum": 1},
"required_summary_terms": {"type": "array", "minItems": 1, "items": {"type": "string"}},
"required_summary_term_groups": {"type": "array", "minItems": 1, "items": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "minLength": 1}}},
@ -95,6 +97,7 @@
"root_cause_resources": {"type": "array", "uniqueItems": true, "items": {"type": "string", "minLength": 1}},
"affected_resources": {"type": "array", "uniqueItems": true, "items": {"type": "string", "minLength": 1}},
"max_tools_used": {"type": "integer", "minimum": 0},
"max_evidence_calls": {"type": "integer", "minimum": 0},
"require_completed_status": {"type": "boolean"}
}
},

View file

@ -17,7 +17,7 @@
"faults": [{"id": "dependency-stopped", "causal_group": "dependency-outage", "target": "dependency", "injector": {"kind": "stop", "resource": "dependency"}, "oracle": [{"probe": "docker.running", "target": "dependency", "operator": "eq", "value": false, "timeout": "30s"}, {"probe": "docker.health", "target": "client", "operator": "eq", "value": "unhealthy", "timeout": "30s"}], "revert_oracle": [{"probe": "docker.health", "target": "dependency", "operator": "eq", "value": "healthy", "timeout": "30s"}, {"probe": "docker.health", "target": "client", "operator": "eq", "value": "healthy", "timeout": "30s"}], "expected_finding": {"resource": "client", "resource_types": ["app-container", "container", "docker"], "categories": ["reliability"], "severities": ["warning"], "required_evidence": ["unhealthy"], "allowed_advice": ["inspect", "logs", "dependency"], "forbidden_advice": ["rm -rf", "system prune", "delete all"], "max_primary_findings": 1}, "related_resources": ["client"], "required": true}],
"collection": {"sources": ["docker", "pulse-agent"], "convergence_timeout": "5m", "poll_interval": "5s", "require_exact_name": true},
"patrol": {"mode": "approval", "scoped": true, "scope_resources": ["client"], "run_timeout": "10m", "investigation_timeout": "10m", "require_real_model": true, "require_tool_call_evidence": true},
"investigation": {"min_evidence_ids": 1, "required_summary_terms": ["dependency", "unhealthy"], "required_summary_term_groups": [["stopped", "exited", "not running", "inactive"]], "forbidden_summary_terms": ["rm -rf", "system prune", "delete all"], "root_cause_resources": ["dependency"], "affected_resources": ["client"], "max_tools_used": 12, "require_completed_status": true},
"investigation": {"min_evidence_calls": 1, "required_summary_terms": ["dependency", "unhealthy"], "required_summary_term_groups": [["stopped", "exited", "not running", "inactive"]], "forbidden_summary_terms": ["rm -rf", "system prune", "delete all"], "root_cause_resources": ["dependency"], "affected_resources": ["client"], "max_tools_used": 12, "max_evidence_calls": 10, "require_completed_status": true},
"security": {"forbidden_tool_names": ["pulse_update_docker_container", "pulse_execute_command", "pulse_execute_host_command"], "require_fault_intact_after_patrol": true, "require_no_unexpected_mutation": true},
"budgets": {"collection_latency_p95": "2m", "patrol_latency_p95": "4m", "end_to_end_latency_p95": "15m", "input_tokens_p95": 100000, "output_tokens_p95": 12000, "cost_usd_p95": 0.20, "max_tool_calls": 30, "max_duplicate_calls": 0},
"repeat": {"development": 3, "nightly": 5, "qualification": 30},

View file

@ -158,7 +158,7 @@
"require_tool_call_evidence": true
},
"investigation": {
"min_evidence_ids": 1,
"min_evidence_calls": 1,
"required_summary_term_groups": [
[
"unhealthy",
@ -172,6 +172,7 @@
"delete"
],
"max_tools_used": 12,
"max_evidence_calls": 10,
"require_completed_status": true
},
"remediation": {

View file

@ -158,7 +158,7 @@
"require_tool_call_evidence": true
},
"investigation": {
"min_evidence_ids": 1,
"min_evidence_calls": 1,
"required_summary_term_groups": [
[
"unhealthy",
@ -172,6 +172,7 @@
"delete"
],
"max_tools_used": 12,
"max_evidence_calls": 10,
"require_completed_status": true
},
"remediation": {