Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      Sunshine And March Vibes (2025 Wallpapers Edition)

      May 21, 2025

      The Case For Minimal WordPress Setups: A Contrarian View On Theme Frameworks

      May 21, 2025

      How To Fix Largest Contentful Paint Issues With Subpart Analysis

      May 21, 2025

      How To Prevent WordPress SQL Injection Attacks

      May 21, 2025

      The best smart glasses unveiled at I/O 2025 weren’t made by Google

      May 21, 2025

      Google’s upcoming AI smart glasses may finally convince me to switch to a pair full-time

      May 21, 2025

      I tried Samsung’s Project Moohan XR headset at I/O 2025 – and couldn’t help but smile

      May 21, 2025

      Is Google’s $250-per-month AI subscription plan worth it? Here’s what’s included

      May 21, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      IOT and API Integration With MuleSoft: The Road to Seamless Connectivity

      May 21, 2025
      Recent

      IOT and API Integration With MuleSoft: The Road to Seamless Connectivity

      May 21, 2025

      Celebrating GAAD by Committing to Universal Design: Low Physical Effort

      May 21, 2025

      Celebrating GAAD by Committing to Universal Design: Flexibility in Use

      May 21, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      Microsoft open-sources Windows Subsystem for Linux at Build 2025

      May 21, 2025
      Recent

      Microsoft open-sources Windows Subsystem for Linux at Build 2025

      May 21, 2025

      Microsoft Brings Grok 3 AI to Azure with Guardrails and Enterprise Controls

      May 21, 2025

      You won’t have to pay a fee to publish apps to Microsoft Store

      May 21, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»Development»Machine Learning»Step-by-Step Guide to Create an AI agent with Google ADK

    Step-by-Step Guide to Create an AI agent with Google ADK

    May 21, 2025

    Agent Development Kit (ADK) is an open-source Python framework that helps developers build, manage, and deploy multi-agent systems. It’s designed to be modular and flexible, making it easy to use for both simple and complex agent-based applications.

    In this tutorial, we’ll create a simple AI agent using ADK. The agent will have access to two tools:

    • get_company_overview
    • get_earnings

    Step 1: Setting up the dependencies

    Google API Key

    To use Google’s AI services, you’ll need an API key:

    • Visit https://aistudio.google.com/apikey
    • Sign in and generate your API key
    • Copy and store it securely — we’ll use it later in the tutorial.

    AlphaVantage API Key

    For accessing financial data, we’ll use the Alpha Vantage API:

    • Go to https://www.alphavantage.co/
    • Click “Get your free API key” or visit this direct link
    • Enter your email and follow the instructions
    • Once you receive your API key, copy and save it securely. We’ll use it to authenticate requests to financial endpoints.

    Python Libraries

    We only need one package:

    Copy CodeCopiedUse a different Browser
    pip install google-adk

    Step 2: Creating the Folder structure

    Set up your project folder with the following structure:

    Copy CodeCopiedUse a different Browser
    parent_folder/
    │
    └───multi_agent/
        ├── __init__.py
        ├── agent.py
        └── .env

    __init__.py

    Paste the following code into multi_agent/__init__.py:

    Copy CodeCopiedUse a different Browser
    from . import agent

    .env

    Create a .env file inside the multi_agent folder and paste the following:

    Copy CodeCopiedUse a different Browser
    GOOGLE_GENAI_USE_VERTEXAI=FALSE
    GOOGLE_API_KEY="<YOUR_GOOGLE_API_KEY>"
    ALPHA_VANTAGE_API_KEY="<YOUR_ALPHA_VANTAGE_KEY"

    Replace the placeholders with your actual API keys

    Hostinger

    agent.py

    Paste the following code in the agent.py file:

    Copy CodeCopiedUse a different Browser
    from google.adk.agents import Agent
    import requests
    import os
    from typing import Optional
    
    ALPHA_VANTAGE_API_KEY = os.getenv("ALPHA_VANTAGE_API_KEY")
    
    def get_company_overview(symbol: str) -> dict:
        """
        Get comprehensive company information and financial metrics
       
        Args:
            symbol: Stock ticker symbol (e.g., IBM)
       
        Returns:
            dict: Company overview data or error
        """
        if not ALPHA_VANTAGE_API_KEY:
            return {"status": "error", "error": "Missing API key"}
       
        base_url = "https://www.alphavantage.co/query"
        params = {
            "function": "OVERVIEW",
            "symbol": symbol,
            "apikey": ALPHA_VANTAGE_API_KEY
        }
       
        try:
            response = requests.get(base_url, params=params)
            response.raise_for_status()
            data = response.json()
           
            if "Error Message" in data:
                return {"status": "error", "error": data["Error Message"]}
               
            # Filter key metrics
            key_metrics = {
                "Description": data.get("Description"),
                "Sector": data.get("Sector"),
                "MarketCap": data.get("MarketCapitalization"),
                "PERatio": data.get("PERatio"),
                "ProfitMargin": data.get("ProfitMargin"),
                "52WeekHigh": data.get("52WeekHigh"),
                "52WeekLow": data.get("52WeekLow")
            }
           
            return {
                "status": "success",
                "symbol": symbol,
                "overview": key_metrics
            }
           
        except Exception as e:
            return {"status": "error", "error": str(e)}
    
    def get_earnings(symbol: str) -> dict:
        """
        Get annual and quarterly earnings (EPS) data with analyst estimates and surprises
       
        Args:
            symbol: Stock ticker symbol (e.g., IBM)
       
        Returns:
            dict: Earnings data with estimates or error message
        """
        if not ALPHA_VANTAGE_API_KEY:
            return {"status": "error", "error": "Missing API key"}
       
        base_url = "https://www.alphavantage.co/query"
        params = {
            "function": "EARNINGS",
            "symbol": symbol,
            "apikey": ALPHA_VANTAGE_API_KEY
        }
       
        try:
            response = requests.get(base_url, params=params)
            response.raise_for_status()
            data = response.json()
           
            if "Error Message" in data:
                return {"status": "error", "error": data["Error Message"]}
               
            # Process annual and quarterly earnings
            annual_earnings = data.get("annualEarnings", [])[:5]  # Last 5 years
            quarterly_earnings = data.get("quarterlyEarnings", [])[:4]  # Last 4 quarters
           
            # Format surprise percentages
            for q in quarterly_earnings:
                if "surprisePercentage" in q:
                    q["surprise"] = f"{q['surprisePercentage']}%"
           
            return {
                "status": "success",
                "symbol": symbol,
                "annual_earnings": annual_earnings,
                "quarterly_earnings": quarterly_earnings,
                "metrics": {
                    "latest_eps": quarterly_earnings[0]["reportedEPS"] if quarterly_earnings else None
                }
            }
           
        except Exception as e:
            return {"status": "error", "error": str(e)}
       
       
    root_agent = Agent(
        name="Financial_analyst_agent",
        model="gemini-2.0-flash",
        description=(
            "Agent to give company overviews with key financial metrics."
        ),
        instruction=(
            "You are a helpful AI agent that provides company overviews and earnings information"
        ),
        tools=[get_company_overview, get_earnings],
    )

    In this script, we define a financial analysis agent using the Google Agent Development Kit (ADK). The agent is designed to answer user queries by accessing real-time financial data through the Alpha Vantage API. Specifically, it exposes two tools: get_company_overview and get_earnings. The get_company_overview function retrieves key company details such as sector, market capitalization, P/E ratio, and 52-week high/low values. The get_earnings function provides both annual and quarterly earnings data, including reported EPS and surprise percentages.To create the agent, we use the Agent class from the google.adk.agents module, giving it a name, a model (e.g., Gemini 2.0 Flash), a description, and an instruction prompt. The agent is then equipped with the two tools mentioned above, allowing it to respond to questions related to company financials.

    Step 3: Running the Agent

    To run the agent, navigate to the parent directory of your agent project (e.g. using cd ..)

    Copy CodeCopiedUse a different Browser
    parent_folder/      ← Navigate to this directory in your terminal
    │
    └───multi_agent/
        ├── __init__.py     # Initializes the module
        ├── agent.py        # Contains the agent logic and tools
        └── .env            # Stores your API keys securely

    After navigating, run the following code:

    Copy CodeCopiedUse a different Browser
    adk web

    Open the URL provided (usually http://localhost:8000 or http://127.0.0.1:8000) directly in your browser. You’ll see a simple chat interface where you can interact with your agent using the input textbox.

    Additionally, you can inspect each step of the agent’s reasoning by clicking on Actions. This allows you to view:

    • The tools being called
    • The inputs and outputs of each function
    • The responses generated by the language model

    GitHub Link

    You can find the entire code along with folder structure at this link: https://github.com/mohd-arham-islam/ADK-demo

    The post Step-by-Step Guide to Create an AI agent with Google ADK appeared first on MarkTechPost.

    Source: Read More 

    Hostinger
    Facebook Twitter Reddit Email Copy Link
    Previous ArticleSampling Without Data is Now Scalable: Meta AI Releases Adjoint Sampling for Reward-Driven Generative Modeling
    Next Article How to Evaluate Jailbreak Methods: A Case Study with the StrongREJECT Benchmark

    Related Posts

    Machine Learning

    How to Evaluate Jailbreak Methods: A Case Study with the StrongREJECT Benchmark

    May 21, 2025
    Machine Learning

    Sampling Without Data is Now Scalable: Meta AI Releases Adjoint Sampling for Reward-Driven Generative Modeling

    May 21, 2025
    Leave A Reply Cancel Reply

    Continue Reading

    From broke musician to working dev. How college drop-out Ryan Furrer taught himself to code [Podcast #166]

    Development

    IBM Sterling OMS Order Hub Installation (On Premises)

    Development

    How To Generate a GUID/UUID in JavaScript

    Web Development

    CISA Warns of Exploited GitHub Action CVE-2025-30066 – Users Urged to Patch

    Development

    Highlights

    CVE-2025-4096 – Google Chrome Heap Buffer Overflow

    May 5, 2025

    CVE ID : CVE-2025-4096

    Published : May 5, 2025, 6:15 p.m. | 36 minutes ago

    Description : Heap buffer overflow in HTML in Google Chrome prior to 136.0.7103.59 allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page. (Chromium security severity: High)

    Severity: 0.0 | NA

    Visit the link for more details, such as CVSS details, affected products, timeline, and more…

    Playing with Light and Refraction in Three.js: Warping 3D Text Inside a Glass Torus

    March 13, 2025

    CVE-2025-4073 – PHPGurukul Student Record System SQL Injection Vulnerability

    April 29, 2025

    Level Up Your Coding: Get Your AI Pair Programmer with Magicode 🚀

    July 11, 2024
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.