Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

franzvill/lad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LAD-A2A Logo

Local Agent Discovery for A2A (LAD-A2A)

Apache License Spec Version Documentation

An open protocol for discovering A2A-capable agents on local networks.

LAD-A2A addresses a critical gap in the AI agent ecosystem: when a device joins a network—hotel Wi-Fi, office LAN, cruise ship, hospital campus—how does the user's AI assistant discover and connect to local agents? While A2A defines agent-to-agent communication and MCP defines agent-to-tool integration, LAD-A2A defines agent discovery.

With LAD-A2A, agents can:

  • Automatically discover local A2A agents when joining a network
  • Verify identity through signed AgentCards and DIDs
  • Obtain user consent before establishing connections
  • Negotiate capabilities via standard A2A mechanisms

See It In Action

LAD.mp4

Real mDNS discovery → LAD-A2A protocol → A2A JSON-RPC communication

Why LAD-A2A?

AI agents are increasingly capable, but they remain isolated from their physical environment. A guest's AI assistant has no way to discover the hotel's concierge agent. An employee's assistant can't find the building's room booking agent. A patient's assistant doesn't know the hospital offers a wayfinding agent.

LAD-A2A solves this by providing:

  • Zero-Configuration Discovery: Agents find each other automatically via mDNS/DNS-SD, well-known endpoints, or DHCP options.
  • Defense in Depth: Local networks are hostile by default. LAD-A2A requires TLS, signed AgentCards, verifiable identities (DIDs), and explicit user consent.
  • Graceful Degradation: Multiple discovery mechanisms ensure compatibility from consumer Wi-Fi to enterprise networks.
  • Ecosystem Alignment: LAD-A2A only handles discovery—once an agent is found, standard A2A communication takes over.

How It Fits

Protocol Stack: LAD-A2A → A2A → MCP

Protocol Role Specification
LAD-A2A Discovery & Trust Bootstrap lad-a2a.org
A2A Agent-to-Agent Communication a2a-protocol.org
MCP Agent-to-Tools/Data modelcontextprotocol.io

LAD-A2A is the first handshake. It answers "who's here?" so that A2A can answer "what can you do?" and MCP can answer "how do I do it?"

Discovery Mechanisms

LAD-A2A supports multiple discovery paths with automatic fallback:

Mechanism Environment Description
mDNS/DNS-SD LAN, Consumer Wi-Fi Zero-config discovery via _a2a._tcp service type
Well-Known Endpoint Captive Portals, Web /.well-known/lad/agents on the network domain
DHCP Option Enterprise Networks Custom option containing discovery URL
QR/NFC Physical Fallback Direct link to AgentCard for restricted networks

Getting Started

Interactive Demo (Recommended)

Experience LAD-A2A with a fully working demo featuring two AI agents:

cd demo
cp .env.example .env
# Add your OpenAI API key to .env
./run_demo.sh

Open http://localhost:8000 to see:

  • Real mDNS discovery (_a2a._tcp.local)
  • LAD-A2A protocol in action
  • A2A JSON-RPC 2.0 communication
  • LLM-based query routing

See demo/README.md for full documentation.

Run Locally

cd reference
pip install -e .

# Start a discovery server (development only)
python -m server.lad_server --name "My Agent" --port 8080

# Discover agents (in another terminal)
python -m client.lad_client --url http://localhost:8080

Note: The example above uses HTTP for local development. In production, TLS is required per the security spec. All HTTP endpoints MUST use TLS 1.2+.

Example: Hotel Concierge

1. Guest device joins "ExampleHotel-Guest" Wi-Fi
2. Client queries mDNS for _a2a._tcp.local
   └─ Fallback: GET https://portal.examplehotel.com/.well-known/lad/agents
3. Discovery response includes AgentCard URL
4. Client fetches and verifies AgentCard (signed, DID-bound)
5. Client prompts user: "Hotel Concierge agent found. Connect?"
6. User approves → Standard A2A session begins
7. User asks: "What time is breakfast?" → Agent responds via A2A

Security Model

Local networks are hostile by default. LAD-A2A mandates:

Requirement Description
TLS Required All AgentCard fetches and A2A sessions must use HTTPS
Signed AgentCards JWS signatures or DID-based identity verification
User Consent Explicit approval before first connection to any discovered agent
Capability Scopes Agents declare capabilities; clients enforce least privilege
Authentication OAuth2/OIDC for privileged operations

Documentation

📚 Full documentation at lad-a2a.org

Resource Description
📖 Specification Full protocol specification with JSON schemas
🔧 Reference Implementation Python server and client libraries
🎮 Interactive Demo Full working demo with mDNS + A2A
📚 Examples Integration scenarios and use cases

Use Cases

Environment Example Interaction
Hotels "What's the spa schedule?" / "Request late checkout"
Cruise Ships "Where's tonight's show?" / "Book shore excursion"
Offices "Book conference room 4B" / "Find available desks"
Hospitals "Navigate to radiology" / "Check appointment status"
Stadiums "Find my seat" / "Order food to section 112"
Smart Cities "Next bus to downtown?" / "Find parking near me"

Contributing

We welcome contributions to enhance the LAD-A2A protocol.

License

This project is licensed under the Apache License 2.0.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages