Scores
The latest Behavioral Integrity Index and its four signals, and the history.
| Method | Path | Scope | Summary |
|---|---|---|---|
GET | /scores/{agent_id}/history | read | Get Score History |
GET | /scores/{agent_id}/latest | read | Get Latest Score |
GET | /scores/fleet | read | Get Fleet |
Try it
curl -sf -X POST "$VIGIL_URL/agents/" -H "Authorization: Bearer $VIGIL_KEY" -H "Content-Type: application/json" \
-d '{"agent_id":"docs-api","name":"Docs API"}' > /dev/null || true
curl -sf -X POST "$VIGIL_URL/events/" -H "Authorization: Bearer $VIGIL_KEY" -H "Content-Type: application/json" \
-d '{"agent_id":"docs-api","event_type":"output_generated","payload":{"content_length":512},"dti":0.9}' > /dev/null
curl -sf -H "Authorization: Bearer $VIGIL_KEY" "$VIGIL_URL/scores/docs-api/latest"
Routes
GET /scores/{agent_id}/history
Get Score History. Scope: read.
| Parameter | In | Required | Type | Notes |
|---|---|---|---|---|
agent_id | path | yes | string | |
limit | query | no | integer |
Response 200:
[
{
"agent_id": "string",
"bii": 0,
"score_inflation_signal": 0,
"config_tamper_signal": 0,
"alignment_faking_signal": 0,
"asset_movement_signal": 0,
"blueprint_drift_signal": 0,
"alignment_p": 0,
"alignment_cliffs_delta": 0,
"composite_trust": 0,
"event_window": 0,
"computed_at": "string",
"policy_digest": "string"
}
]
GET /scores/{agent_id}/latest
Get Latest Score. Scope: read.
| Parameter | In | Required | Type | Notes |
|---|---|---|---|---|
agent_id | path | yes | string | |
dti | query | no | number | null |
Response 200:
{
"agent_id": "string",
"bii": 0,
"score_inflation_signal": 0,
"config_tamper_signal": 0,
"alignment_faking_signal": 0,
"asset_movement_signal": 0,
"blueprint_drift_signal": 0,
"alignment_p": 0,
"alignment_cliffs_delta": 0,
"composite_trust": 0,
"event_window": 0,
"computed_at": "string",
"policy_digest": "string"
}
GET /scores/fleet
Get Fleet. Scope: read.
The latest score per agent in the org. With adjust=bh the alignment faking
p-values pass through Benjamini-Hochberg at the policy's detectors.fdr.q, so
a large fleet does not page on chance; alignment_significant is then
p_adjusted <= q. Without it, alignment_significant is the raw p < alpha and
alignment_p_adjusted is null. Agents whose latest score had no test (an arm
below min_n) have null p and are never significant.
| Parameter | In | Required | Type | Notes |
|---|---|---|---|---|
adjust | query | no | bh | null | bh: Benjamini-Hochberg over the alignment p-values at the policy's fdr.q |
Response 200:
{
"adjust": "string | null",
"method": "string | null",
"q": 0,
"alpha": 0,
"n_tested": 0,
"n_significant": 0,
"agents": [
{
"agent_id": "string",
"bii": 0,
"score_inflation_signal": 0,
"config_tamper_signal": 0,
"alignment_faking_signal": 0,
"asset_movement_signal": 0,
"blueprint_drift_signal": 0,
"alignment_p": 0,
"alignment_cliffs_delta": 0,
"composite_trust": 0,
"event_window": 0,
"computed_at": "string",
"policy_digest": "string",
"alignment_p_adjusted": 0,
"alignment_significant": true
}
]
}
Generated from openapi.json (VIGIL 0.2.0). Scopes follow the router dependencies in VIGIL_SPEC.md section 4.2.