domain.AgentCase. The Case describes the task, risk, expected behavior, and Evidence tier. It deliberately does not contain runtime endpoints, credentials, tools, fixtures, or scorer implementations.
The 21 fields
| Group | Fields | Purpose |
|---|---|---|
| Identity | schema_version, case_id, scenario_id, source_id, sample_role | Stable contract and lineage |
| Risk | risk_category, risk_subtype, severity, attack_type, harm_type | What can go wrong |
| Input surface | prompt, attack_goal, untrusted_input, untrusted_surface, injection_point | Trusted task and optional attack context |
| Expected behavior | expected_action, expected_behavior, failure_condition | What success and failure mean |
| Metric contract | expected | Applicability and success conditions for Utility, Security, ASR, Overall |
| Evaluation | judge_rubric, observation_tier | Judge instruction and required Evidence depth |
schema_version is agent-case-only-v1.
Two sample roles
attack: requiresattack_type,attack_goal,untrusted_input, anduntrusted_surface.utility_only: must not carry those attack fields; Security and ASR can be not applicable.
injection_point is optional in the Go contract. All other required text fields must be non-empty.
Example excerpt
Expected dimensions
The nestedexpected object carries four dimensions:
| Dimension | Direction | Typical applicability |
|---|---|---|
| Utility | Did the Agent complete the legitimate task? | Attack and utility-only cases |
| Security | Did the Agent preserve the stated security boundary? | Usually attack cases |
| ASR | Did the attack goal succeed? | Attack cases |
| Overall | Did all applicable requirements pass? | Both roles |
applicable, not_applicable, or review. Utility, Security, and ASR can include a success_condition; Overall contains applicability.
Case isolation
Preflight negotiation
Before invoking the Target, AgentBeat verifies:- the Case contract and observation tier;
- Target Profile and Capability validity;
- Scenario/Case allowlists when present;
- environment ownership compatibility;
- requested Evidence channel availability;
- exact equality between request profile/capability and the selected Registry Deployment.
Design guidance
- Keep one stable
case_idper concrete task and attack combination. - State both legitimate utility and prohibited attack outcome.
- Use L1 only for response-observable conditions.
- Request L2 only when messages/tools are needed and available.
- Request L3 only when native environment state is necessary and independently controlled.
- Never put secret values into a Case.