docs.rs failed to build car-a2a-0.24.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
car-a2a-0.23.0
car-a2a
Agent2Agent (A2A) v1.0 bridge for Common Agent Runtime.
What it does
Exposes a CAR runtime as an A2A-compliant agent so peer agents — built on any A2A SDK (Python, JavaScript, Java, Go, .NET, or one of the Rust crates) — can discover the runtime via an Agent Card and submit work as A2A Tasks.
A2A is the Linux Foundation's open protocol for agent-to-agent interoperability. The full spec lives at https://a2a-protocol.org/latest/specification/.
Mapping
| A2A | CAR |
|---|---|
| Agent Card | Manifest of registered tools + host metadata |
| Task | One-shot wrapper around an ActionProposal |
| Message (parts) | Free-form input from the peer; structured data parts become tool calls |
| Artifact | One per ActionResult returned by the runtime |
TaskState SUBMITTED → WORKING → COMPLETED/FAILED |
Lifecycle of Runtime::execute |
Surface
| Item | Purpose |
|---|---|
A2aDispatcher |
Transport-neutral JSON-RPC dispatcher for the 11 A2A methods |
AgentCardSource |
Trait the dispatcher calls to (re)build the agent card on demand |
TaskStore / InMemoryTaskStore |
Pluggable task persistence |
message_to_proposal |
Compile an A2A Message into a CAR ActionProposal |
action_results_to_artifacts |
Convert a ProposalResult into A2A Artifacts |
Methods supported
message/sendtasks/gettasks/listtasks/canceltasks/pushNotificationConfig/{set,get,list,delete}agent/getAuthenticatedExtendedCard
Out of scope for this prototype:
message/streamandtasks/resubscribe(Server-Sent Events)- gRPC and HTTP+JSON/REST transport bindings
- Outbound A2A client calls — for those, use
a2a-protocol-clientora2a-clientfrom crates.io.
Status
Prototype. The dispatcher is exercised by unit tests against an in-process Runtime and InMemoryTaskStore. It is not yet wired into car-server-core::handler::run_dispatch or fronted by an HTTP listener — embedders pick the transport.
Example
use Arc;
use ;
use Runtime;
let runtime = new;
let store = new;
let card_factory = new;
let dispatcher = new;
// A peer's JSON-RPC request:
let result = dispatcher
.dispatch
.await
.unwrap;