ADK Release Analyzer Agent
The ADK Release Analyzer Agent is a Python-based agent designed to help keep
documentation up-to-date with code changes. It analyzes the differences between
two releases of the google/adk-python repository, identifies required updates
in the google/adk-docs repository, and automatically generates a GitHub issue
with detailed instructions for documentation changes.
This agent can be operated in two distinct modes:
- an interactive mode for local use
- a fully automated mode for integration into workflows.
Interactive Mode
This mode allows you to run the agent locally to review its recommendations in real-time before any changes are made.
Features
- Web Interface: The agent's interactive mode can be rendered in a web
browser using the ADK's
adk webcommand. - User Approval: In interactive mode, the agent is instructed to ask for your confirmation before creating an issue on GitHub with the documentation update instructions.
- Question & Answer: You ask questions about the releases and code changes. The agent will provide answers based on related information.
Running in Interactive Mode
To run the agent in interactive mode, first set the required environment
variables, ensuring INTERACTIVE is set to 1 or is unset. Then, execute the
following command in your terminal:
adk web contributing/samples/adk_documentation
This will start a local server and provide a URL to access the agent's web interface in your browser.
Automated Mode
For automated, hands-off analysis, the agent can be run as a script (main.py),
for example as part of a CI/CD pipeline. The workflow is configured in
.github/workflows/analyze-releases-for-adk-docs-updates.yml and automatically
checks the most recent two releases for docs updates.
Workflow Triggers
The GitHub workflow is configured to run on specific triggers:
-
Release Events: The workflow executes automatically whenever a new release is
published. -
Manual Dispatch: The workflow also runs when manually triggered for testing and retrying.
Automated Issue Creation
When running in automated mode, the agent operates non-interactively. It creates
a GitHub issue with the documentation update instructions directly without
requiring user approval. This behavior is configured by setting the
INTERACTIVE environment variable to 0.
Setup and Configuration
Whether running in interactive or automated mode, the agent requires the following setup.
Dependencies
The agent requires the following Python libraries.
pip install --upgrade pip
pip install google-adk
Environment Variables
The following environment variables are required for the agent to connect to the necessary services.
GITHUB_TOKEN: (Required) A GitHub Personal Access Token with issues:write permissions for the documentation repository.GOOGLE_API_KEY: (Required) Your API key for the Gemini API.DOC_OWNER: The GitHub organization or username that owns the documentation repository (defaults togoogle).CODE_OWNER: The GitHub organization or username that owns the code repository (defaults togoogle).DOC_REPO: The name of the documentation repository (defaults toadk-docs).CODE_REPO: The name of the code repository (defaults toadk-python).LOCAL_REPOS_DIR_PATH: The local directory to clone the repositories into (defaults to/tmp).INTERACTIVE: Controls the agent's interaction mode. Set to 1 for interactive mode (default), and 0 for automated mode.
For local execution, you can place these variables in a .env file in the
project's root directory. For automated workflows, they should be configured as
environment variables or secrets.