-
Notifications
You must be signed in to change notification settings - Fork 0
Agent Layer
This layer is SIGNET's distinctive contribution. No existing procurement standard represents synthetic agents as first-class, governed, accountable participants. The agent layer does — and it is always cleanly separable from third-party standards, so projecting a SIGNET document down to OCDS simply omits it (see Standards Mapping).
| Object | Purpose |
|---|---|
| SyntheticAgent | An AI agent operating as a first-class Party. |
| AgentCapability | A declared, discoverable capability (A2A Agent Card aligned). |
| Mandate | The bounded authority granted to an agent — the structural guarantee it cannot exceed its remit. |
| Decision | The accountability record: what was decided, by whom, under what authority, from what, why. |
| Policy | Machine-readable, human-auditable rules — "rules as code". |
The three guarantees that make a SIGNET network governed rather than merely automated:
-
Bounded authority. A Mandate lists exactly which capabilities an agent
may exercise, the hard
constraintsit must respect, and theapprovalThresholdsabove which a human must approve. An agent acting outside its mandate is, by construction, non-conforming. - Accountable action. Every material agent action produces a Decision recording the agent, the mandate relied on, the inputs considered, the policies applied, the rationale, the outcome, any human approval, and cryptographic provenance.
-
Auditable rules. Every Policy carries both an executable
expressionand ahumanReadablestatement of the same rule — so the rule that governs the agent is the rule a human can review.
See it run (v0.5.0). The repository ships a runnable proof of exactly these three guarantees: the
agent/demonstration (npm run agent). A synthetic agent awards a €12M contract — bounded by a Mandate whose €10M autonomous-value ceiling forces human approval, applying the published MAT evaluation Policy — and the runner then verifies the agent's output is conformance-clean: every Decision, Evaluation, and Award validates, the five-event hash chain holds, and tampering is detected. See Repository Structure →agent/.
An AI agent operating within the network as a first-class
Party (partyType: agent, role syntheticAgent).
| Field | Type | Card. | Definition |
|---|---|---|---|
id |
Identifier | 1 | Agent DID. |
name |
string | 1 | Agent name. |
operatedBy |
Identifier | 1 | The Party accountable for the agent. |
model |
string | 0..1 | The underlying model family (model-agnostic; for provenance only). |
capabilities |
AgentCapability[] | 1..* | Declared capabilities. |
mandate |
Identifier | 1 | The Mandate governing the agent. |
agentCard |
string (URI) | 0..1 |
A2A Agent Card location (/.well-known/agent.json). |
operatedBy answers the most important governance question — who is accountable for this
agent? — and model is recorded for provenance, not for capability gating: the model is
deliberately model-agnostic.
A declared capability, aligned to the A2A Agent Card model so capabilities are discoverable across organisational boundaries.
| Field | Type | Card. | Definition |
|---|---|---|---|
name |
string | 1 | Capability name, e.g. evaluate.submission, negotiate.price. |
description |
string | 0..1 | What it does. |
inputSchema |
object | 0..1 | Expected input. |
outputSchema |
object | 0..1 | Produced output. |
The authority granted to an agent — what it may do, within what limits, and where human approval is required. The structural guarantee that agents cannot exceed their remit.
| Field | Type | Card. | Definition |
|---|---|---|---|
id |
Identifier | 1 | Mandate identifier. |
agent |
Identifier | 1 | The agent governed. |
grantedBy |
Identifier | 1 | The Party granting authority. |
permittedCapabilities |
string[] | 1..* | Capabilities the agent may exercise. |
constraints |
Policy[] | 0..* | Hard limits (e.g. max discount, value ceiling). |
approvalThresholds |
Policy[] | 0..* | Conditions requiring human-in-the-loop approval. |
scope |
object | 1 | Data/entity scope the agent may operate within (sandbox boundary). |
validity |
Period | 0..1 | Time bound on the mandate. |
The lifecycle of a mandate is itself event-sourced: mandate.granted and mandate.revoked
are recorded as Events (see eventType codelist).
A record of a decision taken in the network, by a human or synthetic agent, with the inputs and rationale that produced it. The backbone of accountability.
| Field | Type | Card. | Definition |
|---|---|---|---|
id |
Identifier | 1 | Decision identifier. |
decisionType |
string | 1 | See decisionType codelist: admissibility, evaluation, award, negotiationMove, qualification. |
madeBy |
Identifier | 1 | The agent (human or synthetic) that decided. |
underMandate |
Identifier | 0..1 | The mandate relied on, where the decider is synthetic. |
inputs |
Identifier[] | 0..* | The objects considered (submissions, credentials, policies). |
policiesApplied |
Identifier[] | 0..* | The policies applied. |
rationale |
string | 1 | Human-readable rationale. |
outcome |
object | 1 | The decision outcome. |
humanApproval |
Identifier | 0..1 | Where a mandate threshold required it, a reference to the human approval record. Under the identity profile this SHOULD resolve to a verifiable Approval (pseudonymous approver, role, delegation-of-authority credential, provenance). |
provenance |
Provenance | 1 | Full Provenance. |
A Decision record satisfies the "material decision" record-keeping that regulation increasingly requires — including the assessment-summary and decision-record obligations of the UK Procurement Act 2023, and the documentation expectations for AI-assisted evaluation under the EU AI Act.
See the worked instance: examples/award-decision.json —
a single object that records what was decided, which synthetic agent decided it, under
which mandate, from which inputs, under which policy, with what rationale, with which
human approval, and with cryptographic provenance.
A machine-readable, human-auditable rule. Policies express eligibility criteria, evaluation models, approval routing, agent constraints, and compliance rules. "Rules as code" made concrete.
| Field | Type | Card. | Definition |
|---|---|---|---|
id |
Identifier | 1 | Policy identifier. |
policyType |
string | 1 | See policyType codelist: eligibility, evaluation, approval, constraint, compliance. |
expressionLanguage |
string | 1 | The language the rule is written in, e.g. rego, dmn, cel. |
expression |
string | 1 | The executable rule. |
humanReadable |
string | 1 | A plain-language statement of the same rule. |
version |
string | 1 | Policy version. |
issuedBy |
Identifier | 1 | The governing Party. |
The dual requirement is mandatory: a Policy MUST carry both expression (machine-
executable) and humanReadable (auditable), so the same rule governs agents and is
reviewable by humans. Policies are referenced from the process layer as
governingPolicies, eligibilityCriteria, and evaluationCriteria.
See the worked instance: examples/policy-evaluation.json — a
Most-Advantageous-Tender scoring model expressed in Rego with a plain-language equivalent.
- Trust Layer — Provenance, Events, and Consent.
- Process Layer — where Decisions and Policies attach to the lifecycle.
- Worked Examples.
SIGNET Standard — stewarded by Concert Foundation · Licensed CC0 1.0 · The JSON Schema is the source of truth. · Comments: hello@concert.foundation
Concepts
The Data Model
Interoperability
Using SIGNET
Extensions & demonstrations
- Extension & profile specs
- Agent demo — governed award
- Onboarding demo — conditional qualification
- Auction demo — deterministic close
Project