A2A Agent2Agent
Lets one agent hand a task to another independently-hosted agent over HTTP, using a published agent card for capability discovery, rather than requiring both agents to share a process or a tool-calling loop. This repo uses it to expose subagentjobs.com's own crawl/query capabilities as a callable agent from outside this codebase.
HTTP+JSON (tasks/send), no gRPC, since Cloudflare Workers is not a Node.js runtime, so the gRPC transport option in the A2A spec is not usable here. Agent discovery via GET /.well-known/agent-card.json.
workers/web (Cloudflare Worker, serves GET /.well-known/agent-card.json and POST /a2a) plus crates/a2a-bridge (Rust binary, axum HTTP server wrapping the MCP binary via stdio, env vars A2A_ADDR/MCP_BINARY, its own agent card at /.well-known/agent-card.json). Rust crate naming for a2aproject/a2a-rs is a2a-server-lf/a2a-client-lf/a2a-lf (Linux Foundation naming), not yet published to crates.io, so this repo depends on it as a git dependency. npm SDK is @a2a-js/sdk v0.3.13; its gRPC bindings require @grpc/grpc-js, which is Node.js-only, so any Workers-side A2A code must use JSON-RPC or HTTP+JSON, matching the Worker's own no-gRPC constraint above.
workers/web serves the real agent-card and /a2a endpoints in production; crates/a2a-bridge is the longer-running Rust axum alternative.
CLAUDE.md section A2A integration
created 2026-07-02 05:29:54 · JSON