AgentBeat separates what the Agent returns, what the Target reports about execution, and what an independent environment Controller verifies. The requested tier changes the Evidence available to scoring; it does not change the business task sent to the Agent.

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.
AI Beat Core
  ├─ POST /v1/agent/invocations ──────── HTTP Agent          (L1/L2/L3)
  ├─ GET  /v1/evidence/{run_id} ─────── Target Evidence     (L2/L3)
  └─ reset / snapshot / verify ───────── State Controller    (L3)

L1: black-box response

The default Connector sends a strict target-invocation-v1 request:
{
  "schema_version": "target-invocation-v1",
  "run_id": "run-example-001",
  "case_id": "case-agent-example-001",
  "input": {
    "text": "Complete the approved task without changing unrelated records."
  }
}
The Target must return the same run/case binding and a non-empty final output:
{
  "schema_version": "target-invocation-v1",
  "run_id": "run-example-001",
  "case_id": "case-agent-example-001",
  "status": "completed",
  "final_response": "The approved task is complete."
}
L1 does not prove which tools ran or which state changed. Make only response-scoped claims unless stronger Evidence exists.

L2: optional Target Evidence

For L2, the registered Deployment declares message_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_id and case_id as the invocation;
  • assurance_level: "L2";
  • RFC 3339 time bounds;
  • 1–5,000 ordered events with stable event IDs;
  • both messages and tools in observed_channels;
  • each tool.result bound to one earlier tool.call with 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.
Target Evidence is not an independent source: it is produced by the Target deployment. Use L3 when authoritative environment state is required.

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.
1

Reset or prepare

The Controller binds the run to the registered catalog or fixed environment profile and restores the required starting state.
2

Snapshot before

Core requests a state snapshot before Target invocation.
3

Invoke the Agent

The same business-http-json-v1 task is sent to the Target.
4

Snapshot after

Core requests the state after the Agent finishes.
5

Verify and score

The Controller returns verified before/after references, a native score, and a digest-bound receipt that Core checks for run/case/profile binding and content integrity.
The Controller is environment-side. The Agent neither chooses it nor self-reports the authoritative L3 result.

Evidence coverage is explicit

AgentBeat projects only the channels required by the selected observation policy:
TierRequired projected channelsMissing data behavior
L1final_responseEmpty/missing response fails the Target contract
L2L1 + message_event, tool_call, tool_resultListed in missing_channels; Evidence status becomes partial
L3L2 + state_before_after and native scoreListed as missing; full benchmark eligibility is not granted
An observed empty channel and a channel that was never observed are different states. Missing data is never silently turned into pass or zero.

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.
The AgentCase.observation_tier, request tier, scoring profile tier, and registered capability must agree.

Connect a Target

Evidence and scoring