mirror of
https://github.com/encounter/adk-python.git
synced 2026-07-09 18:19:28 -07:00
100 lines
3.7 KiB
Markdown
100 lines
3.7 KiB
Markdown
# 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 web` command.
|
||
|
|
* **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:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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 to `google`).
|
||
|
|
* `CODE_OWNER`: The GitHub organization or username that owns the code repository (defaults to `google`).
|
||
|
|
* `DOC_REPO`: The name of the documentation repository (defaults to `adk-docs`).
|
||
|
|
* `CODE_REPO`: The name of the code repository (defaults to `adk-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.
|