Governed autonomy

Watch an AI agent award a contract — accountably

The question is not whether a synthetic agent can decide, but whether you can trust, audit, and stand behind what it decides. SIGNET makes the autonomy safe to grant.

A €12M competitive procurement. Two compliant bids. A published Most Advantageous Tender rule — price 20%, quality 55%, social value 25%. A synthetic agent reads the SourcingEvent, is bounded by a Mandate, applies the published Policy, and proposes an award — and every step is governed, accountable, and verifiable.

Because the agent's €12M action exceeds its €10M autonomous ceiling, the Mandate forces a human approval before the award stands. Autonomy and oversight are not in tension: the harness is exactly what makes the autonomy safe to grant.

The committed run

Read → bounded → evaluate → decide → seal

Produced by the deterministic agent at build time and verified against the SIGNET conformance tests. Nothing here executes in your browser — it is the proof, rendered.

  1. Agent agent-eval-3 reads SourcingEvent "Network managed services — Northern region" (event-1207), value 12,000,000 EUR.
  2. Evaluation policy referenced: policy-eval-mat — "Most Advantageous Tender: price 20%, quality 55%, social value 25%."
  3. Mandate mandate-eval-3 permits [evaluate.submission, award.decision] ✓
  4. Autonomous-value ceiling 10,000,000 EUR; event value 12,000,000 EUR → EXCEEDS ceiling → human approval required before award.
  5. Evaluated submission-5521 (bid 11,400,000 EUR): price 0.947368 quality 0.9 social 0.7 → score 0.859474
  6. Evaluated submission-5522 (bid 10,800,000 EUR): price 1 quality 0.78 social 0.85 → score 0.8415
  7. Decision: award to submission-5521. Most Advantageous Tender (price 0.2, quality 0.55, social 0.25). submission-5521 scored 0.859474, ahead of submission-5522 at 0.8415 (margin 0.017974).
  8. Human approval approval-771 attached (mandate threshold exceeded).
  9. Approval approval-771: officer-7c2f (category-director), authority band-4 ceiling 25,000,000 EUR ≥ award 11,400,000 EUR.
  10. Award award-2208 → acme at 11,400,000 EUR (10-day standstill).
  11. Event stream: 5 events, hash-chained.
Conformance verification of the agent's outputconformance-clean
  • ValidEvery Decision, Evaluation, and Award carries its required SIGNET fields. CI runs full JSON-Schema validation on each commit.
  • BoundedMandate-bound — the €12M value exceeds the €10M autonomous ceiling, so human approval is attached.
  • Tamper-evidentThe 5-event hash chain holds; mutating any event's payload breaks it.
  • AttributableThe Decision and every Event carry cryptographic provenance (who acted, when, from what).
decision.json
{
  "@context": "https://concert.foundation/signet/v0.1/context.jsonld",
  "type": "Decision",
  "id": {
    "scheme": "did",
    "id": "did:web:buyer.example#decision-8842"
  },
  "decisionType": "award",
  "madeBy": {
    "scheme": "did",
    "id": "did:web:buyer.example#agent-eval-3"
  },
  "underMandate": {
    "scheme": "did",
    "id": "did:web:buyer.example#mandate-eval-3"
  },
  "inputs": [
    {
      "scheme": "did",
      "id": "did:web:buyer.example#submission-5521"
    },
    {
      "scheme": "did",
      "id": "did:web:buyer.example#submission-5522"
    }
  ],
  "policiesApplied": [
    {
      "scheme": "did",
      "id": "did:web:buyer.example#policy-eval-mat"
    }
  ],
  "rationale": "Most Advantageous Tender (price 0.2, quality 0.55, social 0.25). submission-5521 scored 0.859474, ahead of submission-5522 at 0.8415 (margin 0.017974).",
  "outcome": {
    "awardedSubmission": "did:web:buyer.example#submission-5521",
    "ranking": [
      {
        "submission": "did:web:buyer.example#submission-5521",
        "total": 0.859474
      },
      {
        "submission": "did:web:buyer.example#submission-5522",
        "total": 0.8415
      }
    ]
  },
  "provenance": {
    "generatedBy": {
      "scheme": "did",
      "id": "did:web:buyer.example#agent-eval-3"
    },
    "generatedAt": "2026-06-22T00:00:00Z",
    "derivedFrom": [
      {
        "scheme": "did",
        "id": "did:web:buyer.example#submission-5521"
      },
      {
        "scheme": "did",
        "id": "did:web:buyer.example#submission-5522"
      }
    ],
    "usedPolicies": [
      {
        "scheme": "did",
        "id": "did:web:buyer.example#policy-eval-mat"
      }
    ]
  },
  "humanApproval": {
    "scheme": "did",
    "id": "did:web:buyer.example#approval-771"
  }
}
award.json
{
  "@context": "https://concert.foundation/signet/v0.1/context.jsonld",
  "type": "Award",
  "id": {
    "scheme": "did",
    "id": "did:web:buyer.example#award-2208"
  },
  "sourcingEvent": {
    "scheme": "did",
    "id": "did:web:buyer.example#event-1207"
  },
  "awardedParty": {
    "scheme": "did",
    "id": "did:web:acme-networks.example#acme"
  },
  "value": {
    "amount": 11400000,
    "currency": "EUR"
  },
  "rationale": "Most Advantageous Tender (price 0.2, quality 0.55, social 0.25). submission-5521 scored 0.859474, ahead of submission-5522 at 0.8415 (margin 0.017974).",
  "decision": {
    "scheme": "did",
    "id": "did:web:buyer.example#decision-8842"
  },
  "standstillPeriod": {
    "startDate": "2026-08-16T00:00:00Z",
    "endDate": "2026-08-26T00:00:00Z"
  }
}

Produced by agent/run-agent.js; verified against the SIGNET conformance tests and the same harness that certifies implementations. It runs in CI on every commit to concerthq/signet-standard at v0.12.0: the output must validate and the event chain must hold.

Run it yourself

The same agent, in your browser

Press Run to execute the deterministic agent client-side — identical logic to the repository, so the trace, the award, and the hash-chained events match CI exactly. Retune the bids or the policy weights and the outcome moves. Tamper with an event and the verification turns red.

Scenario inputseditable

ceiling €10,000,000 · €12,000,000 exceeds it → human approval required

MAT weights 1)

Press Run the agent to execute the deterministic agent in your browser. The same logic runs in CI — the trace, the award, and the hash-chained events you see here are byte-identical to the repository’s.

The agent declares its capabilities through an A2A Agent Card: evaluate.submission, award.decision. Both are bounded by the Mandate above.

Deterministic by design

This is the deterministic agent — its reasoning is fixed, so the result is identical on every run, which is what makes it a proof rather than a one-off. A live frontier model can drive the identical flow with no change to the governance (mandate ceiling, provenance, tamper-evident chain, conformance pass). That live version needs an API key and network, so it is not run on this public page — but the governance around it is identical either way.

How a live model swaps in: agent/LIVE_MODEL_NOTE.md.

Concert

The first GUILD. The first SIGNET.

Concert is building the open infrastructure layer for a new era of governed, intelligent, multi-party commerce. Join the founding consortium.

Get in touch