AI-assisted STR drafting for Tunisian AML compliance -- banking & insurance sectors. Prototype (v0.1.0-rc.1), not production-ready.
# Waraka -- STR Drafting Agent
AI-powered Suspicious Transaction Report drafting assistant for Tunisian bank compliance officers.
Takes plain French descriptions of suspicious transactions and produces goAML-compatible STR XML drafts, ready for human review and submission to CTAF.
**Owner:** Achraf Gasmi | **Status:** Prototype -- release candidate `v0.1.0-rc.1` | **Date:** 2026-08-04
> **Prototype release candidate -- not production-ready.**
> The goAML XML output has **not** been validated against the official CTAF/UNODC XSD schema.
> Do not use this to file real STRs without full human review and independent schema validation.
## Live demo
A public demo runs on Hugging Face Spaces.
It runs on **Google Gemini**, not Anthropic Claude, and is a public demo environment --
do not enter real customer or case data.
---
## What it does
1. Analyst describes a suspicious transaction in plain French
2. Waraka extracts entities and transaction details via Claude
3. Screens all entities against OpenSanctions
4. Applies rule-based risk scoring (6 FATF-aligned rules)
5. Generates a formal French compliance narrative
6. Produces a valid goAML STR-T XML file
7. Analyst reviews, corrects if needed, and approves
---
## Stack
| Component | Technology |
|---|---|
| Agent framework | LangGraph 1.0 |
| LLM | Claude Sonnet 4.6 (temperature=0.0) |
| API | FastAPI |
| UI | Streamlit (French only) |
| Database | PostgreSQL 16 |
| Sanctions | OpenSanctions API |
---
## Project structure
```
waraka/
├── agents/
│ ├── str_agent.py # Banking prompts (module-level constants) + LLM helper
│ └── insurance_prompts.py # Insurance prompts + InsuranceCase parsing
├── tools/
│ ├── goaml_tool.py # goAML XML builder (xml.etree.ElementTree only)
│ ├── sanctions_tool.py # OpenSanctions API wrapper
│ └── ner_tool.py # Entity extraction / JSON parsing helper
├── graph/
│ ├── str_graph.py # LangGraph StateGraph -- 5 nodes, linear
│ └── …