A2A Consuming Agent Example
This example demonstrates how an ADK agent can consume a remote A2A agent in Go. It sets up a "Root Agent" that delegates tasks to a local "Roll Agent" and a remote "Prime Agent".
Prerequisites
Before running this example, you need to have the A2A serving example running. Follow the instructions in remote_a2a/check_prime_agent/README.md to start the serving agent on port 8001.
Files
main.go: This file contains the implementation of the local Roll Agent, the remote Prime Agent, and the orchestrating Root Agent.
How to Run
-
Ensure the A2A serving example is running (from
cmd/a2a_basic/remote_a2a/check_prime_agent). -
Run this consuming example:
go run main.go
Expected Output
When you run this example, you should see output similar to this:
--- Example Interaction ---
User: Roll a 6-sided die and check if it's prime
Bot calls tool: roll_dice with args: map[sides:6]
Bot calls tool: prime_checking with args: map[nums:[<roll_result>]]
Bot: I can roll dice or check prime numbers. What would you like?
Note: The mock LLM in this example is very basic and will not actually execute the tools or provide a coherent response for combined operations. It's designed to demonstrate the delegation mechanism. For a real-world scenario, you would integrate with an actual LLM.