A2AClient and RemoteAgent let trusted application code call another agent.
Harnest keeps the default path small. A completed blocking interaction returns an A2A
Message; it does not create a Task merely because the protocol supports Tasks. Streaming, asynchronous execution, approvals, client tools, and durable external waits use an A2A Task when task identity is required.
Task lookup, listing, cancellation, and subscription happen only when the client asks for them. The outbound client does not list or monitor unrelated Tasks in the background.
Serve an agent through A2A
Publish an Agent Card, mount a binding, and choose durable Task storage.
Call a remote agent
Send, stream, poll, cancel, subscribe, or compose a remote agent.
Harnest A2A uses the same agent, tools, durable Tasks, sessions, authentication, lifecycle, and telemetry as the neutral API. It is a transport adapter, not a second agent runtime.