L1, L2, and L3
L1 · Final response
Core invokes
POST /v1/agent/invocations and records the final response. No Evidence SDK or Evidence endpoint is required.L2 · Target Evidence
Core additionally fetches
GET /v1/evidence/{run_id} from the same registered Target. This Target-owned source reports declared messages and tool events.L3 · Environment state
Core additionally coordinates an independently registered State Controller for before/after snapshots and native verification.
L1: black-box response
The default Connector sends a stricttarget-invocation-v1 request:
L2: optional Target Evidence
For L2, the registered Deployment declaresmessage_event, tool_call, and tool_result capability channels and the Target response supplies a same-origin evidence_ref. Core then fetches a strict target-evidence-v1 document.
The Target Evidence protocol requires:
- the same
run_idandcase_idas the invocation; assurance_level: "L2";- RFC 3339 time bounds;
- 1–5,000 ordered events with stable event IDs;
- both
messagesandtoolsinobserved_channels; - each
tool.resultbound to one earliertool.callwith the same name; - only events from declared Target Evidence channels.
L2 is optional. JavaScript and Python SDKs can help build the Target server and Evidence document, but an implementation can satisfy the protocol without them.
L3: independent state verification
A registered State Controller is a separate service boundary. Depending on the Deployment’s environment binding, it can prepare the run environment; at L3 it also supplies authoritative state Evidence.Reset or prepare
The Controller binds the run to the registered catalog or fixed environment profile and restores the required starting state.
Evidence coverage is explicit
AgentBeat projects only the channels required by the selected observation policy:| Tier | Required projected channels | Missing data behavior |
|---|---|---|
| L1 | final_response | Empty/missing response fails the Target contract |
| L2 | L1 + message_event, tool_call, tool_result | Listed in missing_channels; Evidence status becomes partial |
| L3 | L2 + state_before_after and native score | Listed as missing; full benchmark eligibility is not granted |
Tier selection
- Start with L1 for an existing HTTP Agent.
- Add L2 to inspect Target-reported messages and tools.
- Add L3 only with an isolated, independently controlled environment.
AgentCase.observation_tier, request tier, scoring profile tier, and registered capability must agree.