feat: Add Typescript samples to demonstrate globally unique agentic ids scoped to users and businesses, and decentralized authentication #434
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A2A Server with support for global identity and authentication using the Agentic Profile
This folder builds on the work in the samples/js/src/server folder, and adds support for:
Some blog posts for perspective:
Integration Approach
What is an Agentic Profile?
An Agentic Profile is a W3C DID document that:
Globally Unique Identity for Users and Businesses
Current agentic frameworks scope to individual agents, but business and other transactions rely on trust which require knowing who the agent represents and if the agent has the authority to take a particular action on the user or businesses behalf.
An Agentic Profile is a JSON document following the W3C DID specification, and represents a person, business, or other entity. An Agentic Profile lists AI agents that represent the entity, along with information about the agent such as service endpoints and authentication schemes.
Decentralized Authentication
By default, the Agentic Profile supports decentralized authentication using JWT and public key cryptography. Each agent listed in the DID document under the service property can provide capabilityInvocation information. This information can include a named public key, or a reference to a named public key.
When an agent is challenged, the agent uses its private key to create a JWT which includes both the challenge, and the agent's DID+agent id. For example the DID did:web:example.com:iam:mike#coder would represent the DID document at https://example.com/iam/mike/did.json and the agent with the id "#coder" in the documents "service" list.
How does the Agentic Profile integrate with A2A?
Each A2A agent is listed in the service array property of the Agentic Profile/DID document using the following conventions: