DEV Community

Jonathan Huang
Jonathan Huang

Posted on

Google Agent Development Kit (ADK) Introduction (3): Building a Multi-Agent Project Management System

Learning Objectives

  • Master Layered Agent Architecture: Learn how to design and implement a hierarchical agent system for real-world collaboration.
  • Implement Task Delegation and Coordination: See how agents can assign, accept, and complete tasks collaboratively.
  • Build Dynamic Load Balancing: Ensure optimal workload distribution among agents to maximize efficiency.
  • Technical Breadth: Compare agent-based project management with traditional monolithic approaches.

System Architecture and Project Structure

This project uses the Google ADK (Agent Development Kit) to build a multi-agent project management system, simulating a real-world team with three specialized agent types:

  • Manager Agent: Oversees the project, assigns tasks, and reviews progress.
  • Engineer Agents: Implement assigned tasks and report their status.
  • Tester Agents: Test completed tasks and provide feedback.

These agents are coordinated by a workflow engine, forming a complete project management workflow.

multi_agent_pm/
├── __init__.py
├── __main__.py         # Entry point for running as a module
├── main.py             # Main system implementation
├── common.py           # Shared data models and utilities
├── ai/                 # Natural language processing with Gemini
│   ├── __init__.py
│   ├── agent_nlp_handler.py
│   └── gemini_client.py
├── agents/             # Agent implementations
│   ├── __init__.py
│   ├── engineer/
│   ├── manager/
│   └── tester/
├── workflow/           # Workflow coordination
│   ├── __init__.py
│   └── coordinator.py
└── requirements.txt    # Project dependencies
Enter fullscreen mode Exit fullscreen mode

Agent Implementation and Collaboration

Manager Agent

  • Assigns tasks to engineers based on workload.
  • Reviews completed and tested tasks.
  • Monitors overall project progress.

Engineer Agents

  • Accept and work on assigned tasks.
  • Mark tasks as completed when done.
  • Communicate progress and issues.

Tester Agents

  • Pick up completed tasks for testing.
  • Submit test results and feedback.
  • Help ensure quality before final approval.

Each agent exposes a REST API (as defined in their .well-known/agent.json manifest) and can also be interacted with via natural language commands, thanks to Gemini AI integration.


Dynamic Load Balancing

The system features an automatic load balancing mechanism:

  1. Monitor Agent Workloads: Regularly checks each agent’s task queue.
  2. Redistribute Tasks: Moves tasks from overloaded agents to those with spare capacity.
  3. Adapt to Change: Handles new tasks, agent failures, and shifting priorities in real time.

This ensures that no single agent becomes a bottleneck, and the project progresses smoothly.


Natural Language Understanding

With Google Gemini integration, you can interact with the system using plain English:

  • “Create a new high-priority task for payment integration.”
  • “Show me all tasks assigned to engineers.”
  • “Reassign the authentication task to Engineer2.”

Gemini parses these commands, extracts intent and parameters, and routes them to the appropriate agent and API.


A2A Protocol and Agent Manifests

Each agent follows the Agent-to-Agent (A2A) protocol:

  • Manifest File: .well-known/agent.json describes each agent’s capabilities, API endpoints, and schemas.
  • Standardized Communication: Ensures agents can discover and interact with each other seamlessly.
  • Extensibility: New agent types can be added by defining their manifest and implementing the required APIs.

How to Run This Project

1. Install dependencies:

pip install -r requirements.txt
Enter fullscreen mode Exit fullscreen mode

2. Set up Gemini (optional, for NLU):

  GEMINI_API_KEY=your_api_key_here
Enter fullscreen mode Exit fullscreen mode

3. Run the system:

python -m multi_agent_pm
Enter fullscreen mode Exit fullscreen mode

4. Interact via CLI or REST API:

  • Use natural language commands in the CLI.
  • Or, send HTTP requests to the agent endpoints (see README for details).

What You’ll Learn

  • Agent System Design: How to break down complex workflows into specialized, cooperating agents.
  • Task Delegation and Coordination: Implementing real-world project management logic in code.
  • Dynamic Load Balancing: Keeping your system efficient and responsive.
  • Natural Language Integration: Making your system user-friendly and AI-powered. (Actually, this part wasn't done very well, let's talk about it later.)
  • ADK Best Practices: Using manifests and protocols for scalable, maintainable agent systems.

Conclusion

Building a multi-agent project management system with Google ADK is a powerful way to learn about modern, distributed, and intelligent software architecture.

You’ll gain hands-on experience with agent design, coordination, and AI integration—skills that are increasingly valuable in today’s tech landscape.


For complete code and examples, see the GitHub repository.

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.