A minimal debt tracking API with a multi-agent architecture, built as a demo for LaunchDarkly Agent Skills. A CoordinatorAgent receives requests and delegates to specialized debt agents, each gated by a LaunchDarkly feature flag. All agent responses are mocked — the flags are the point, not the app.
POST /summary
└── CoordinatorAgent
├── CreditCardAgent gated by legacy-debt-summary
├── StudentLoanAgent gated by student-loan-details
├── MedicalDebtAgent gated by new-repayment-dashboard
└── TaxDebtAgent always active, uses payment-killswitch
GET /debts
└── CoordinatorAgent
└── uses exp-priority-sort to determine sort order of results
The CoordinatorAgent checks each flag before instantiating the corresponding agent. If a flag is off, that agent is skipped and excluded from the response.
- Clone the repo and install dependencies:
pip install -r requirements.txt- Copy
.env.exampleto.envand fill in your keys:
cp .env.example .env- Run the setup script to create flags in LaunchDarkly:
python scripts/setup_flags.py- Install agent skills:
npx skills add launchdarkly/agent-skills- Start the server:
flask --app app runUse the LaunchDarkly agent skills to:
- Discover which flags exist in the
wiser-debtproject - Check the targeting state of
new-repayment-dashboardin production - Update the rollout percentage for
new-repayment-dashboardto 50%
Use the LaunchDarkly agent skills to:
- Run flag discovery to identify stale flags
- Clean up
legacy-debt-summary— it's been at 100% for over 60 days - Remove the flag wrappers from code and simplify tests
| Flag key | Type | State | Agent |
|---|---|---|---|
legacy-debt-summary |
boolean | Production: 100% on, stale 60+ days | CreditCardAgent |
student-loan-details |
boolean | Production: 50% rollout | StudentLoanAgent |
new-repayment-dashboard |
boolean | Production: 10%, Staging: 100% | MedicalDebtAgent |
exp-priority-sort |
boolean | OFF everywhere | Sort order in /debts |
payment-killswitch |
boolean | ON everywhere | TaxDebtAgent |
pytest