01 What students build
Your first real multi-agent system. Instead of one giant prompt, the work is split across three CrewAI agents with distinct roles, goals, and backstories. Tasks run as a sequential process where each agent receives the previous outputs as context, so the Test Strategy Advisor reasons over both the severity call and the root cause. A small fetch_jira_ticket() helper pulls the real bug from the Jira REST API.
Role-Played Agents
Each agent carries a backstory: a 15-year triage veteran with a strict P0-P4 rubric, a debugger who thinks in UI, API, Service, DB layers, and an SDET who answers in Playwright TypeScript.
Context Chaining
Task 2 receives Task 1's output, Task 3 receives both. CrewAI's context=[...] wiring is the whole lesson: agents build on each other instead of guessing alone.
Live Jira Input
The crew triages real tickets from bugzz.atlassian.net, not toy strings. One function call turns VWO-24 into a clean bug report the agents can chew on.
02 Architecture
03 Live demo (simulated with sample data)
This is a UI walkthrough with pre-baked sample data so you can feel the crew without API keys. In the course you run the real thing: python 03_Building_QABugTriageCrew.py against your own Jira workspace with a free Groq key.
04 Inputs & outputs
What goes in
- A Jira bug key (fetched live via the Jira REST API)
- Three agent definitions: role, goal, backstory
- A strict P0-P4 severity rubric baked into the analyst
- Groq API key for the gpt-oss-120b brain
What comes out
- Severity + category classification with justification
- Root cause hypothesis with the affected system layer
- Which logs and dashboards to check first
- Verification, regression, and edge test recommendations
- A merged final triage report from
crew.kickoff()
05 How it's built
LLM to strip the cache_breakpoint field that Groq's OpenAI-compatible endpoint rejects, then point it at gpt-oss-120b.fetch_jira_ticket(bug_id): one authenticated GET to the Jira REST API, flattened into a plain-text bug report.context=[...] chaining, assemble the Crew as a sequential process, and crew.kickoff().