Files
adk-python/contributing/samples/adk_pr_triaging_agent
Josh SorefandCopybara-Service 59d422ca21 chore: Fix spelling in contributing
Merge https://github.com/google/adk-python/pull/3394

This PR corrects misspellings identified by the [check-spelling action](https://github.com/marketplace/actions/check-spelling)

Note: while I use tooling to identify errors, the tooling doesn't _actually_ provide the corrections, I'm picking them on my own. I'm a human, and I may make mistakes.

### Testing Plan

The misspellings have been reported at https://github.com/jsoref/adk-python/actions/runs/19056081305/attempts/1#summary-54426435973

The action reports that the changes in this PR would make it happy: https://github.com/jsoref/adk-python/actions/runs/19056081446/attempts/1#summary-54426436321

**Unit Tests:**

- [ ] I have added or updated unit tests for my change.
- [ ] All unit tests pass locally.

_Please include a summary of passed `pytest` results._

**Manual End-to-End (E2E) Tests:**

_Please provide instructions on how to manually test your changes, including any
necessary setup or configuration. Please provide logs or screenshots to help
reviewers better understand the fix._

### Checklist

- [x] I have read the [CONTRIBUTING.md](https://github.com/google/adk-python/blob/main/CONTRIBUTING.md) document.
- [x] I have performed a self-review of my own code.
- [ ] I have commented my code, particularly in hard-to-understand areas.
- [ ] I have added tests that prove my fix is effective or that my feature works.
- [ ] New and existing unit tests pass locally with my changes.
- [ ] I have manually tested my changes end-to-end.
- [ ] Any dependent changes have been merged and published in downstream modules.

### Additional context

- https://github.com/google/adk-python/pull/3382#issuecomment-3488654110

COPYBARA_INTEGRATE_REVIEW=https://github.com/google/adk-python/pull/3394 from jsoref:spelling-contributing c3d5e342c4350f7cae9f8f0c6638b176f2e30e80
PiperOrigin-RevId: 828659867
2025-11-05 15:43:25 -08:00
..
2025-11-05 15:43:25 -08:00

ADK Pull Request Triaging Assistant

The ADK Pull Request (PR) Triaging Assistant is a Python-based agent designed to help manage and triage GitHub pull requests for the google/adk-python repository. It uses a large language model to analyze new and unlabelled pull requests, recommend appropriate labels, assign a reviewer, and check contribution guides based on a predefined set of rules.

This agent can be operated in two distinct modes:

  • an interactive mode for local use
  • a fully automated GitHub Actions workflow.

Interactive Mode

This mode allows you to run the agent locally to review its recommendations in real-time before any changes are made to your repository's pull requests.

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 applying a label or posting a comment to a GitHub pull request.

Running in Interactive Mode

To run the agent in interactive mode, first set the required environment variables. Then, execute the following command in your terminal:

adk web

This will start a local server and provide a URL to access the agent's web interface in your browser.


GitHub Workflow Mode

For automated, hands-off PR triaging, the agent can be integrated directly into your repository's CI/CD pipeline using a GitHub Actions workflow.

Workflow Triggers

The GitHub workflow is configured to run on specific triggers:

  • Pull Request Events: The workflow executes automatically whenever a new PR is opened or an existing one is reopened or edited.

Automated Labeling

When running as part of the GitHub workflow, the agent operates non-interactively. It identifies and applies the best label or posts a comment directly without requiring user approval. This behavior is configured by setting the INTERACTIVE environment variable to 0 in the workflow file.

Workflow Configuration

The workflow is defined in a YAML file (.github/workflows/pr-triage.yml). This file contains the steps to check out the code, set up the Python environment, install dependencies, and run the triaging script with the necessary environment variables and secrets.


Setup and Configuration

Whether running in interactive or workflow 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 pull_requests:write permissions. Needed for both interactive and workflow modes.
  • GOOGLE_API_KEY: (Required) Your API key for the Gemini API. Needed for both interactive and workflow modes.
  • OWNER: The GitHub organization or username that owns the repository (e.g., google). Needed for both modes.
  • REPO: The name of the GitHub repository (e.g., adk-python). Needed for both modes.
  • INTERACTIVE: Controls the agent's interaction mode. For the automated workflow, this is set to 0. For interactive mode, it should be set to 1 or left unset.

For local execution in interactive mode, you can place these variables in a .env file in the project's root directory. For the GitHub workflow, they should be configured as repository secrets.