Skip to content

Latest commit

 

History

History
89 lines (59 loc) · 3.35 KB

File metadata and controls

89 lines (59 loc) · 3.35 KB

Project Status & Next Steps

This document summarizes the current state of the multi-agent project and provides instructions for you to proceed.

Current Status

I have successfully refactored the project to implement a secure, scalable, and low-latency multi-tenant architecture. The host_agent now acts as a central orchestrator that can route requests to both global and tenant-specific downstream agents.

Key Accomplishments:

  1. Multi-Tenant Architecture: Implemented a registry-based discovery mechanism using a new demo_agent_registry service. Each tenant now gets their own host_agent instance, configured at startup with a tenant_id.

  2. Security: Implemented a complete OAuth 2.0 security flow.

    • A new mock Identity Provider (IDP) (idp) handles user authentication and issues JWTs with a tenant_id claim.
    • Downstream agents now validate these JWTs using a shared token_validator.py.
    • The host_agent automatically initiates the login flow when a secure agent is accessed for the first time.
  3. Tenant-Specific Agent: Created a new, runnable horizon_agent to serve as a sample single-tenant service.

  4. API Refactoring: The host_agent now provides a simple Gradio chat interface for each tenant, removing the need for JSON input.

  5. Agent Refactoring: The horizon_agent was refactored to use the simple google.adk.Agent pattern, resolving a ModuleNotFoundError.

  6. Documentation: All relevant README.md, spec.md, and summary.md files have been updated to reflect the new architecture.

Your Next Steps

Here is a clear, actionable guide for you to run the complete system.

Step 1: Install Dependencies

If you have not already, you must install the project's dependencies. This is a critical step to resolve any potential ModuleNotFoundError issues. Run this command from the project root directory:

pip install -e .

Step 2: Run All Services and Agents

To run the system, you must start all the services and agents in the following order. Open a separate terminal for each of the following commands and run them from the project root directory.

Terminal 1: Start the Identity Provider (IDP)

python -m idp.app

Terminal 2: Start the Demo Agent Registry

python -m demo_agent_registry.app

Terminal 3: Start the Weather Agent

python -m weather_agent

Terminal 4: Start the Calendar Agent

python -m calendar_agent

Terminal 5: Start the Horizon Agent for Tenant 'tenant-abc'

python -m horizon_agent --port 10008 --tenant-id tenant-abc

Terminal 6: Start the Airbnb Agent

python -m airbnb_agent

Terminal 7: Start the Host Agent

python -m host_agent --port 8083 --tenant-id tenant-abc

Step 3: Interact with the System

Once all agents are running, you can interact with the system via the Gradio UI for the host agent.

Now, try to access a secure agent. For example, ask:

What is the status of my order 123?

Since this is the first time you are accessing the horizon_agent for tenant-abc, the host_agent will initiate the OAuth 2.0 flow. You will be redirected to the IDP to log in. After you log in, you will be redirected back to the host agent, and your request will be automatically resumed and processed.