AI-powered QA Agent for your GitHub repository. It uses Strands for LLM orchestration and Serena for autonomous codebase exploration.
- Autonomous Exploration: actively explores your codebase (file search, read, git log) to answer questions.
- Provider Agnostic: Supports OpenAI, Anthropic, and Gemini.
- Easy Integration: runs as a GitHub Composite Action.
Simply comment on any Issue or Pull Request with /ask followed by your question.
Examples:
/ask What does this PR change?/ask Explain the directory structure of this repository./ask Where is the authentication logic implemented?
Create a workflow file (e.g., .github/workflows/qa.yml):
name: QA Agent
on:
issue_comment:
types: [created]
jobs:
qa:
if: contains(github.event.comment.body, '/ask')
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
pull-requests: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Checkout Pull Request (if applicable)
if: github.event.issue.pull_request
uses: actions/checkout@v4
with:
ref: refs/pull/${{ github.event.issue.number }}/head
- name: Run QA Agent
uses: HawkClaws/QAAgent@main
env:
# Set the API key for your chosen provider
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
# ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
# GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
query: ${{ github.event.comment.body }}
# provider: openai # optional (default: openai)
# model: gpt-4o # optional| Input | Description | Required | Default |
|---|---|---|---|
query |
The question or instruction for the agent. | Yes | - |
provider |
LLM Provider (openai, anthropic, gemini). |
No | openai |
model |
Specific model name (e.g., gpt-4o, claude-3-5-sonnet). |
No | Provider default |
To run locally for contribution:
# Setup
python3.11 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Run
export OPENAI_API_KEY="..."
python qa_agent.py --query "Explain this repo"This project is licensed under the Apache License 2.0. See the LICENSE file for details.