by ProHunters
Gallery
1 / 4
What it does
Dosije helps journalists and citizens (and potentially police and public prosecutors) investigate Serbian public institutions without spending hours searching through different sources. You enter an institution's name, and a team of AI agents searches public registers, procurement records, audit reports, and news in parallel. In about two minutes, it puts everything together into a structured dossier with findings, sources, and verification statuses. It highlights potential issues worth investigating further, without making accusations or conclusions on its own
How the agents run concurrently
We built Dosije around an event-driven architecture using Mozaik, without a central orchestrator. Instead of one agent managing everything, each agent runs independently with its own context and execution loop, communicating through a shared event bus. When an investigation starts, four agents work in parallel: - Officials Agent: Checks public officials, appointments, and legal term limits. - Procurement Agent: Investigates public procurement, contracts, and suppliers. - Audit Agent: Searches State Audit Institution reports. - Media Agent: Looks for relevant news and media coverage. The interesting part is that the team grows dynamically as the investigation progresses. When an agent discovers a company, supplier, or person, it publishes an event that triggers new specialized agents. For example, a Company Agent investigates a supplier's ownership and financial records, while an Assets Agent checks officials' asset declarations and a Verification Agent looks for potential connections to public officials. All agents work with shared case data, so findings from one agent can trigger additional checks by another, without interrupting ongoing work. We also built in source validation, duplicate detection, and resource limits to keep the process reliable. Finally, an Editor Agent reviews the collected findings, resolves conflicting information, and generates a structured dossier with sources and verification statuses. The entire process is visible live in the UI, including each agent's activity, parallel execution, and dynamically spawned agents. A typical investigation involves around 30 agent loops, with up to 11–14 running concurrently, and finishes in about two minutes