# Show HN: QAgent – a self-healing QA agent that fixes bugs and opens PRs

> Source: <https://github.com/rishabhcli/QAgent>
> Published: 2026-07-22 13:30:45+00:00

A self-improving QA agent that automatically tests web applications, identifies bugs, applies fixes, and verifies the fixes – all without human intervention.

QAgent is a multi-agent system that creates a closed-loop for automated bug detection and fixing:

```
┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐
│  TESTER  │───▶│  TRIAGE  │───▶│  FIXER   │───▶│ VERIFIER │
│  Agent   │    │  Agent   │    │  Agent   │    │  Agent   │
└──────────┘    └──────────┘    └──────────┘    └──────────┘
     │                                               │
     │              ┌──────────────┐                 │
     │              │    Redis     │◀────────────────┘
     │              │ (Knowledge   │
     │              │    Base)     │
     │              └──────────────┘
     │                    │
     ▼                    ▼
┌─────────────────────────────────────────────────────────┐
│              W&B Weave (Observability)                  │
└─────────────────────────────────────────────────────────┘
```

**Continuous Testing**: Runs E2E tests like a QA engineer, simulating real user flows** Automatic Bug Fixing**: Doesn't just report bugs – it fixes them and redeploys** Self-Improvement**: Learns from past bugs to diagnose and fix faster over time** Measurable Impact**: Track pass rates, time-to-fix, and iterations to prove improvement

```
# Clone the repository
git clone https://github.com/rishabhcli/QAgent.git
cd QAgent

# Install dependencies
pnpm install

# Set up environment
cp .env.example .env.local
# Edit .env.local with your API keys

# Run development server (demo app)
pnpm dev

# Run the QAgent agent
pnpm run agent

# Start the Marimo dashboard
marimo run dashboard/app.py
```

| Technology | Purpose |
|---|---|
Browserbase + Stagehand |
AI-powered browser automation for E2E testing |
Vercel |
Instant deployment after fixes |
Redis |
Vector knowledge base for learning from past bugs |
W&B Weave |
Tracing and evaluation of agent runs |
Custom Orchestrator (ADK/A2A-compatible) |
Multi-agent workflow coordination (ADK integration planned) |
Marimo |
Interactive analytics dashboard |
Next.js |
Demo application |
OpenAI |
LLM for patch generation |

| File | Purpose |
|---|---|
|

[TASKS.md](/rishabhcli/QAgent/blob/main/TASKS.md)[docs/PRD.md](/rishabhcli/QAgent/blob/main/docs/PRD.md)[docs/DESIGN.md](/rishabhcli/QAgent/blob/main/docs/DESIGN.md)[docs/ARCHITECTURE.md](/rishabhcli/QAgent/blob/main/docs/ARCHITECTURE.md)[prompts/ralph-loop.md](/rishabhcli/QAgent/blob/main/prompts/ralph-loop.md)

```
QAgent/
├── .claude/
│   └── skills/               # Domain-specific knowledge modules
│       ├── browserbase-stagehand/
│       ├── redis-vectorstore/
│       ├── vercel-deployment/
│       ├── wandb-weave/
│       ├── google-adk/
│       ├── marimo-dashboards/
│       └── qagent-agents/
├── agents/                   # Agent implementations
│   ├── tester/
│   ├── triage/
│   ├── fixer/
│   ├── verifier/
│   └── orchestrator/
├── app/                      # Next.js demo app
├── dashboard/                # Marimo analytics
├── docs/                     # Documentation
├── lib/                      # Shared libraries
├── prompts/                  # Workflow prompts
└── tests/                    # Test suites
```

**Test**- Tester Agent runs E2E tests using Browserbase/Stagehand** Detect**- Failures are captured with screenshots, DOM state, logs** Diagnose**- Triage Agent analyzes the failure and queries Redis for similar issues** Fix**- Fixer Agent generates a patch using LLM + past fix patterns** Deploy**- Verifier Agent applies the patch and deploys via Vercel** Verify**- Tests are re-run to confirm the fix works** Learn**- Successful fixes are stored in Redis for future reference** Repeat**- Loop continues until all tests pass

**Knowledge Base**: Every bug and fix is stored with embeddings for semantic search** Pattern Learning**: Similar bugs are fixed faster using past solutions** TraceTriage**: Agent failures are analyzed to improve prompts and workflows** RedTeam**: Adversarial tests continuously harden the system

**Start every session** by reading[CLAUDE.md](/rishabhcli/QAgent/blob/main/CLAUDE.md)**Check current work** in[TASKS.md](/rishabhcli/QAgent/blob/main/TASKS.md)**Follow the Ralph Loop** workflow for iterative development**Load skills** from`.claude/skills/`

as needed

```
# Install dependencies
pnpm install

# Run demo app
pnpm dev

# Run agent
pnpm run agent

# Run tests
pnpm test

# Run E2E tests
pnpm run test:e2e

# Lint and format
pnpm lint && pnpm format

# Build
pnpm build
```

See [.env.example](/rishabhcli/QAgent/blob/main/.env.example) for required environment variables:

`BROWSERBASE_API_KEY`

- Browserbase API key`OPENAI_API_KEY`

- OpenAI API key`REDIS_URL`

- Redis connection string`VERCEL_TOKEN`

- Vercel API token`WANDB_API_KEY`

- Weights & Biases API key`GOOGLE_CLOUD_PROJECT`

- Google Cloud project (reserved for ADK/A2A integration)

See the [Quick Start](#quick-start) section above for setup instructions. Once running, connect a GitHub repository through the dashboard and start your first QAgent run.

[QAgent Paper](https://arxiv.org/html/2502.02747v1)- Agentic patching framework[Stagehand](https://www.stagehand.dev/)- AI browser automation[Browserbase](https://browserbase.com/)- Cloud browsers[W&B Weave](https://wandb.ai/site/weave)- LLM observability[Google ADK](https://cloud.google.com/agent-development-kit)- Planned orchestration framework[Marimo](https://marimo.io/)- Reactive notebooks
