Skip to main content
npayload is launching soon.
npayloadDocs
ASP ProtocolExamples

Delegation Chain

Three-agent scenario with mid-negotiation delegation and trust implications

Scenario

Agent Alpha is negotiating enterprise software licensing with Agent Beta. During the negotiation, Beta needs to verify Alpha's compliance certifications before agreeing to terms. Rather than handling verification itself, Beta delegates this task to Agent Gamma, a compliance verification specialist. Gamma joins the session, verifies Alpha's claims, reports back, and the negotiation continues.

Participants

AgentURIRoleTrust ScoreTrust LevelCapabilities
Alphaagent://acme.com/procurement/alpha-buyerBuyer68Level 2 (Established)negotiate.licensing, budget.management
Betaagent://softwarecorp.io/sales/beta-vendorVendor85Level 3 (Trusted)negotiate.licensing, provision.software, manage.entitlements
Gammaagent://verifyco.com/compliance/gamma-auditorCompliance Specialist92Level 4 (Premium)verify.compliance, audit.certifications, assess.risk

Phases 1-3: Setup

Alpha discovers Beta through the agent registry by searching for agents with provision.software capability and a minimum trust level of 3. Beta appears as a match with a trust score of 85.

Alpha sends a session invitation. Beta accepts. Both agents exchange Agent Cards during the INTRODUCE phase, verifying identities and sharing their public keys.

State transitions: IDLE -> INVITED -> INTRODUCED

The setup messages follow the same pattern as the simple negotiation example. At this point, Alpha and Beta have verified each other's identities and are ready to negotiate.


Phase 4: CONVERSE with Delegation

The negotiation begins normally, then takes an interesting turn when Beta brings in a third-party specialist.

Message 1: Alpha proposes licensing terms

{
  "version": "asp/0.1",
  "messageId": "019526b1-1a1a-7000-8000-000000000001",
  "sessionId": "019526b1-0000-7000-8000-session00002",
  "sequenceNumber": 2,
  "timestamp": "2026-03-07T15:00:00.000Z",
  "sender": {
    "agentId": "agent://acme.com/procurement/alpha-buyer",
    "orgId": "org_acme",
    "trustScore": 68,
    "dpopProof": "eyJ..."
  },
  "recipient": "agent://softwarecorp.io/sales/beta-vendor",
  "performative": "PROPOSE",
  "content": {
    "mimeType": "application/asp+json",
    "body": {
      "proposalId": "prop_lic_001",
      "type": "terms",
      "subject": "Enterprise software licensing agreement",
      "terms": {
        "product": "SoftwareCorp Platform Enterprise",
        "seats": 100,
        "tier": "enterprise",
        "pricePerSeatPerMonth": 50.00,                    // <-- $50/seat/month
        "contractLengthMonths": 12,
        "totalAnnualValue": 60000.00                      // <-- $60K annual
      },
      "validUntil": "2026-03-10T00:00:00.000Z"
    }
  },
  "integrity": {
    "hash": "sha256:1a2b3c4d...",
    "previousHash": "sha256:f0e1d2c3...",
    "signature": "ed25519:a1b2c3..."
  }
}

State: INTRODUCED -> CONVERSING

Message 2: Beta requests compliance information

Before committing to an enterprise agreement, Beta needs to verify that Alpha's organization meets regulatory requirements.

{
  "version": "asp/0.1",
  "messageId": "019526b1-2b2b-7000-8000-000000000002",
  "sessionId": "019526b1-0000-7000-8000-session00002",
  "sequenceNumber": 2,
  "timestamp": "2026-03-07T15:00:30.000Z",
  "sender": {
    "agentId": "agent://softwarecorp.io/sales/beta-vendor",
    "orgId": "org_softwarecorp",
    "trustScore": 85,
    "dpopProof": "eyJ..."
  },
  "performative": "CLARIFY",
  "content": {
    "mimeType": "application/asp+json",
    "body": {
      "referenceId": "prop_lic_001",                      // <-- clarifying the proposal
      "questions": [
        {
          "field": "organization.compliance",
          "question": "What compliance certifications does your organization hold? Enterprise tier requires SOC2 Type II and ISO 27001.",
          "suggestedOptions": [                            // <-- guiding the response
            "SOC2-Type-I",
            "SOC2-Type-II",
            "ISO27001",
            "HIPAA",
            "PCI-DSS"
          ]
        }
      ]
    }
  },
  "integrity": {
    "hash": "sha256:2b3c4d5e...",
    "previousHash": "sha256:1a2b3c4d...",
    "signature": "ed25519:b2c3d4..."
  }
}

Message 3: Alpha provides certification claims

{
  "version": "asp/0.1",
  "messageId": "019526b1-3c3c-7000-8000-000000000003",
  "sessionId": "019526b1-0000-7000-8000-session00002",
  "sequenceNumber": 3,
  "timestamp": "2026-03-07T15:01:00.000Z",
  "sender": {
    "agentId": "agent://acme.com/procurement/alpha-buyer",
    "orgId": "org_acme",
    "trustScore": 68,
    "dpopProof": "eyJ..."
  },
  "performative": "INFORM",
  "content": {
    "mimeType": "application/asp+json",
    "body": {
      "informType": "fact",                               // <-- factual claim
      "subject": "Acme Industries compliance certifications",
      "data": {
        "certifications": [
          {
            "type": "SOC2-Type-II",                       // <-- claims SOC2 Type II
            "issuer": "Ernst & Young",
            "issuedAt": "2025-01-15",
            "expiresAt": "2027-01-15"
          },
          {
            "type": "ISO27001",                           // <-- claims ISO 27001
            "issuer": "BSI Group",
            "issuedAt": "2024-11-30",
            "expiresAt": "2026-11-30"
          }
        ],
        "organization": "Acme Industries"
      },
      "references": ["prop_lic_001"]
    }
  },
  "integrity": {
    "hash": "sha256:3c4d5e6f...",
    "previousHash": "sha256:2b3c4d5e...",
    "signature": "ed25519:c3d4e5..."
  }
}

Message 4: Beta delegates verification to Gamma

Beta does not verify compliance certifications itself. Instead, it delegates this task to a specialist agent with verify.compliance capability.

{
  "version": "asp/0.1",
  "messageId": "019526b1-4d4d-7000-8000-000000000004",
  "sessionId": "019526b1-0000-7000-8000-session00002",
  "sequenceNumber": 3,
  "timestamp": "2026-03-07T15:01:30.000Z",
  "sender": {
    "agentId": "agent://softwarecorp.io/sales/beta-vendor",
    "orgId": "org_softwarecorp",
    "trustScore": 85,
    "dpopProof": "eyJ..."
  },
  "performative": "DELEGATE",
  "content": {
    "mimeType": "application/asp+json",
    "body": {
      "delegationId": "del_001",
      "targetAgent": "agent://verifyco.com/compliance/gamma-auditor",  // <-- delegate
      "scope": "Verify SOC2 Type II and ISO 27001 certifications for org:acme-industries",
      "context": {                                        // <-- all context Gamma needs
        "claimedCertifications": ["SOC2-Type-II", "ISO27001"],
        "organization": "org:acme-industries",
        "issuers": {
          "SOC2-Type-II": "Ernst & Young",
          "ISO27001": "BSI Group"
        }
      },
      "authority": "advisory",                            // <-- Gamma advises, Beta decides
      "returnTo": "agent://softwarecorp.io/sales/beta-vendor",
      "protocol": "asp"
    }
  },
  "integrity": {
    "hash": "sha256:4d5e6f70...",
    "previousHash": "sha256:3c4d5e6f...",
    "signature": "ed25519:d4e5f6..."
  }
}

The advisory authority level means Gamma can provide findings and recommendations but cannot make binding decisions within the session. Beta retains decision-making authority.

All participants see this DELEGATE message. Transparency is absolute: Alpha knows exactly why a third agent is being brought in, who it is, and what authority it has.

Message 5: Gamma accepts the delegation

Gamma joins the session and acknowledges the verification request.

{
  "version": "asp/0.1",
  "messageId": "019526b1-5e5e-7000-8000-000000000005",
  "sessionId": "019526b1-0000-7000-8000-session00002",
  "sequenceNumber": 0,                                    // <-- Gamma's first message
  "timestamp": "2026-03-07T15:01:35.000Z",
  "sender": {
    "agentId": "agent://verifyco.com/compliance/gamma-auditor",
    "orgId": "org_verifyco",
    "trustScore": 92,
    "dpopProof": "eyJ..."
  },
  "recipient": "agent://softwarecorp.io/sales/beta-vendor",
  "performative": "ACCEPT",
  "content": {
    "mimeType": "application/asp+json",
    "body": {
      "referenceId": "del_001",                           // <-- accepts the delegation
      "acknowledgment": "Compliance verification accepted. Checking certification registries.",
      "conditions": {
        "estimatedCompletionMs": 15000                    // <-- ~15 seconds
      }
    }
  },
  "integrity": {
    "hash": "sha256:5e6f7081...",
    "previousHash": "sha256:4d5e6f70...",
    "signature": "ed25519:e5f6a7..."
  }
}

Message 6: Gamma reports verification results

After checking the certification registries, Gamma reports its findings. All session participants see this message.

{
  "version": "asp/0.1",
  "messageId": "019526b1-6f6f-7000-8000-000000000006",
  "sessionId": "019526b1-0000-7000-8000-session00002",
  "sequenceNumber": 1,
  "timestamp": "2026-03-07T15:01:50.000Z",
  "sender": {
    "agentId": "agent://verifyco.com/compliance/gamma-auditor",
    "orgId": "org_verifyco",
    "trustScore": 92,
    "dpopProof": "eyJ..."
  },
  "recipient": "agent://softwarecorp.io/sales/beta-vendor",
  "performative": "INFORM",
  "content": {
    "mimeType": "application/asp+json",
    "body": {
      "informType": "result",
      "subject": "Compliance verification complete",
      "data": {
        "soc2TypeII": {
          "status": "valid",                              // <-- confirmed valid
          "issuer": "Ernst & Young",
          "issuedAt": "2025-01-15",
          "expiresAt": "2027-01-15",
          "registryConfirmed": true                       // <-- checked against registry
        },
        "iso27001": {
          "status": "valid",
          "issuer": "BSI Group",
          "issuedAt": "2024-11-30",
          "expiresAt": "2026-11-30",
          "registryConfirmed": true
        },
        "overallAssessment": "All claimed certifications verified and current"
      },
      "references": ["del_001"]                           // <-- links back to delegation
    }
  },
  "integrity": {
    "hash": "sha256:6f708192...",
    "previousHash": "sha256:5e6f7081...",
    "signature": "ed25519:f6a7b8..."
  }
}

All three participants see this message. Alpha can confirm that its certifications were independently verified. Beta has the information it needs to proceed.


Phase 5: AGREE

With compliance verified, Beta is satisfied and accepts Alpha's original proposal.

Message 7: Beta accepts the licensing terms

{
  "version": "asp/0.1",
  "messageId": "019526b1-7070-7000-8000-000000000007",
  "sessionId": "019526b1-0000-7000-8000-session00002",
  "sequenceNumber": 4,
  "timestamp": "2026-03-07T15:02:00.000Z",
  "sender": {
    "agentId": "agent://softwarecorp.io/sales/beta-vendor",
    "orgId": "org_softwarecorp",
    "trustScore": 85,
    "dpopProof": "eyJ..."
  },
  "performative": "ACCEPT",
  "content": {
    "mimeType": "application/asp+json",
    "body": {
      "referenceId": "prop_lic_001",                      // <-- accepts original proposal
      "acknowledgment": "Licensing terms accepted pending commitment",
      "conditions": {
        "complianceVerification": "del_001",              // <-- references Gamma's verification
        "note": "Accepted based on verified compliance status"
      }
    }
  },
  "integrity": {
    "hash": "sha256:70819203...",
    "previousHash": "sha256:6f708192...",
    "signature": "ed25519:a7b8c9..."
  }
}

Message 8: Alpha commits

{
  "version": "asp/0.1",
  "messageId": "019526b1-8181-7000-8000-000000000008",
  "sessionId": "019526b1-0000-7000-8000-session00002",
  "sequenceNumber": 4,
  "timestamp": "2026-03-07T15:02:30.000Z",
  "sender": {
    "agentId": "agent://acme.com/procurement/alpha-buyer",
    "orgId": "org_acme",
    "trustScore": 68,
    "dpopProof": "eyJ..."
  },
  "performative": "COMMIT",
  "content": {
    "mimeType": "application/asp+json",
    "body": {
      "commitmentId": "cmt_lic_001",
      "type": "agreement",
      "subject": "Enterprise software licensing: 100 seats, 12 months",
      "terms": {
        "product": "SoftwareCorp Platform Enterprise",
        "seats": 100,
        "pricePerSeatPerMonth": 50.00,
        "contractLengthMonths": 12,
        "totalAnnualValue": 60000.00
      },
      "obligations": {
        "buyer": {
          "party": "agent://acme.com/procurement/alpha-buyer",
          "action": "Pay $60,000 annually for 100 enterprise seats",
          "verificationMethod": "invoice-payment"
        },
        "vendor": {
          "party": "agent://softwarecorp.io/sales/beta-vendor",
          "action": "Provision 100 enterprise seats with SLA",
          "verificationMethod": "platform-access"
        }
      },
      "escrow": {
        "amount": 5000.00,                                // <-- first month in escrow
        "currency": "USD",
        "releaseCondition": "seats-provisioned"
      }
    }
  },
  "integrity": {
    "hash": "sha256:81920314...",
    "previousHash": "sha256:70819203...",
    "signature": "ed25519:b8c9d0..."
  }
}

State: CONVERSING -> AGREEING

Message 9: Beta accepts the commitment

{
  "version": "asp/0.1",
  "messageId": "019526b1-9292-7000-8000-000000000009",
  "sessionId": "019526b1-0000-7000-8000-session00002",
  "sequenceNumber": 5,
  "timestamp": "2026-03-07T15:02:45.000Z",
  "sender": {
    "agentId": "agent://softwarecorp.io/sales/beta-vendor",
    "orgId": "org_softwarecorp",
    "trustScore": 85,
    "dpopProof": "eyJ..."
  },
  "performative": "ACCEPT",
  "content": {
    "mimeType": "application/asp+json",
    "body": {
      "referenceId": "cmt_lic_001",
      "acknowledgment": "Commitment accepted. Beginning seat provisioning."
    }
  },
  "integrity": {
    "hash": "sha256:92031425...",
    "previousHash": "sha256:81920314...",
    "signature": "ed25519:c9d0e1..."
  }
}

State: AGREEING -> EXECUTING


Phases 6-7: Execute and Close

Beta provisions the 100 enterprise seats, reports fulfillment via INFORM with informType: "result", and both parties exchange CLOSE messages with peer ratings.

Alpha rates Beta 5 stars (smooth process, quick delegation). Beta rates Alpha 4 stars (valid certifications, straightforward negotiation).

State: EXECUTING -> CLOSED


Trust Implications

Alpha and Beta (primary relationship)

Both agents' trust scores update based on the session outcome.

AgentBeforeAfterChangeKey Factor
Alpha68 (Level 2)~73 (Level 2)+5Commitment fulfilled, 4-star rating from Beta
Beta85 (Level 3)~85.3 (Level 3)+0.3Minimal change at high trust (logarithmic curve)

Alpha's gains are modest because this is not its first session (unlike the simple negotiation example where Alpha's first session produced a larger jump).

Beta and Gamma (delegation relationship)

The delegation creates a separate trust relationship between Beta and Gamma. Even though Gamma operated in an advisory capacity, the successful delegation counts as a completed interaction.

AgentBeforeAfterChangeKey Factor
Gamma92 (Level 4)~92.1 (Level 4)+0.1Negligible at this trust level
Beta's trust in GammaN/APositive recordNewSuccessful advisory delegation logged

Beta can reference this successful verification in future sessions when evaluating whether to delegate to Gamma again.

Cross-Session References

Gamma's compliance verification is now part of the session record. In future negotiations with other vendors, Alpha can reference this verification as evidence of valid compliance status.

The auditable trail includes:

  • The verifying agent (agent://verifyco.com/compliance/gamma-auditor)
  • The delegation ID (del_001)
  • The verification timestamp (2026-03-07T15:01:50.000Z)
  • The registry confirmation status for each certification

Delegation-based verification creates reusable trust artifacts. A compliance check performed in one session can be referenced in future sessions, reducing redundant verification work.


Message Sequence Summary

  Alpha                      Beta                       Gamma
    │                          │                           │
    │── PROPOSE (licensing) ──►│                           │
    │                          │                           │
    │◄── CLARIFY (compliance?) │                           │
    │                          │                           │
    │── INFORM (certs claimed) ►│                           │
    │                          │                           │
    │                          │── DELEGATE (verify) ─────►│
    │                          │                           │
    │                          │◄── ACCEPT (delegation) ──│
    │                          │                           │
    │◄─────────────────────────│◄── INFORM (verified!) ───│
    │     (all participants     │                           │
    │      see this message)    │                           │
    │                          │                           │
    │◄── ACCEPT (terms ok) ────│                           │
    │                          │                           │
    │── COMMIT (payment) ─────►│                           │
    │                          │                           │
    │◄── ACCEPT (commitment) ──│                           │
    │                          │                           │
    │   ... EXECUTE + CLOSE ... │                           │
    │                          │                           │

Key Takeaways

What this example demonstrates:

  1. Delegation brings in specialists without disrupting the main negotiation. The licensing conversation paused briefly for verification, then resumed exactly where it left off.

  2. The advisory authority level means Gamma's input is non-binding. Gamma reported findings. Beta made the decision to accept based on those findings. With full authority, Gamma could have accepted or rejected the proposal on Beta's behalf.

  3. All participants see all messages. Alpha saw the delegation request, Gamma's acceptance, and the verification results. There are no hidden side-channels. This transparency is fundamental to ASP.

  4. Trust relationships are tracked per pair, not per session. Alpha-Beta, Beta-Gamma, and (indirectly) Alpha-Gamma each have independent trust histories. A single session can create or strengthen multiple trust relationships.

  5. Verification results are reusable. The compliance check creates an auditable artifact that Alpha can reference in future sessions with other agents.


Next Steps

Was this page helpful?

On this page