Spaces:
Running
Download README.md from helmfridsson/qa-agent-langgraph: direct link, hf CLI and curl.
- Browser
- Download file 3.77 kB
-
https://huggingface.co/spaces/helmfridsson/qa-agent-langgraph/resolve/main/README.md
- Command line
-
hf download hf://spaces/helmfridsson/qa-agent-langgraph/README.md
-
curl -L -o README.md https://huggingface.co/spaces/helmfridsson/qa-agent-langgraph/resolve/main/README.md
A newer version of the Streamlit SDK is available: 1.67.0
title: QA Agent LangGraph
emoji: 🧪
colorFrom: blue
colorTo: indigo
sdk: streamlit
app_file: app.py
pinned: false
LangGraph QA Compare
LangGraph-based QA test generation workflow that orchestrates calls to qa-agent-service. This project owns sequencing, shared workflow state, backtracking, runtime traces, and exports. The actual QA agents are invoked through the service.
Setup
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
streamlit run app.py
By default the app calls the hosted Hugging Face Space REST API:
https://helmfridsson-qa-agent-service.hf.space/api/v1
The app accepts any of these inputs and normalizes them to the REST base automatically:
https://helmfridsson-qa-agent-service.hf.spacehttps://helmfridsson-qa-agent-service.hf.space/docshttps://helmfridsson-qa-agent-service.hf.space/api/v1/healthhttps://huggingface.co/spaces/helmfridsson/qa-agent-service
You can also override the default at runtime with QA_AGENT_SERVICE_URL.
For local development, start qa-agent-service separately and override the REST API URL in the sidebar:
cd ../qa-agent-service
PYTHONPATH=src uvicorn api:app --reload --port 8009
The local service URL is http://127.0.0.1:8009.
MCP may run on http://127.0.0.1:8008/mcp, but that endpoint is not a REST API and does not expose /docs or /openapi.json.
Workflow
The application runs a LangGraph StateGraph:
START -> requirements_analyst(service) -> test_designer(service) -> reviewer(service) -> orchestrator(local)
The orchestrator conditionally routes to END, test_designer, requirements_analyst, reviewer, or failure. The first supported selective backtracking path is reviewer feedback back to test_designer. run_controls.max_rounds prevents endless loops.
Agents
The three QA worker agents are provided by qa-agent-service:
requirements_analysttest_designerreviewer
Each worker node can run in Service-backed, Deterministic, or Disabled mode. Service-backed calls the REST endpoint POST /agents/{agent_key}/invoke and validates the returned contract with this app's Pydantic schemas. Deterministic mode remains as a local smoke-test fallback.
The orchestrator is local and deterministic because qa-agent-service intentionally does not own workflow sequencing, retries, memory commits, backtracking, or stopping conditions.
Service Validation
Before graph execution, the app can call:
GET https://helmfridsson-qa-agent-service.hf.space/api/v1/health
If the service is not reachable, execution stops before the graph starts.
Sample Scenarios
The Scenario Input tab includes predefined sample scenarios for login/registration, checkout, password reset, support tickets, inventory management, and course enrollment. Select one and click Load selected scenario to populate the title and requirement text.
Outputs
Each run writes files under runs/<run_id>/:
run_export.json: complete export with partial results preservedstage_traces.jsonl: append-only stage trace log, one trace per line
The Streamlit UI also exposes download buttons for both files.
Known Limitations
- Runtime status updates appear after each Streamlit-triggered graph run, not as token streaming.
- Deterministic mode is intentionally basic and mainly supports smoke testing.
- Only the first MVP backtracking path is fully supported: reviewer to test designer.
- There is no database, authentication, RAG, hosted deployment, or Docker setup in this version.
- GitHub Actions can deploy this app repo to the Hugging Face Space
helmfridsson/qa-agent-langgraphonce the GitHub secretHF_TOKENis configured.