.png&w=828&q=75)
Protection caseworkers in the Lake Chad Basin spend hours turning survivor interviews into case forms. A voice agent could help, but one that fills gaps is dangerous. An invented statement like “her passport was confiscated” can become a trafficking indicator in a legal-adjacent record. With Reticent AI, the caseworker debriefs the agent after the interview. The agent never speaks to the survivor. It asks about missing fields and proposes values through JSON Schema tool calls on the AssemblyAI Voice Agent API. Only a deterministic case engine can write to the record. Every saved field must be: Grounded: A quote from the caseworker’s transcript must support the exact value. “From Niger” cannot support “Nigeria.” Read back: Code verifies that the agent said the value aloud. It is saved only after a clear yes. A no rejects it, while “maybe” triggers another question. Attributed: Every fact is labeled as survivor-reported, caseworker-observed, document-seen, or caseworker inference. If the caseworker says “I think,” code records it as inference, regardless of the model’s label. An impression may trigger protection, but never counts as evidence. Gated: Palermo Act, Means, and Purpose indicators are determined by code and cite supporting quotes. High-risk, urgent, and child cases require supervisor review. Across four synthetic scenarios, all 62 engine decisions matched expectations. An adversarial run blocked 13 unsafe shortcuts, including invented quotes, wrong values, premature confirmation, and personal data. All 14 unit tests passed. Recognition key terms contain no answer values, keeping the transcript independent of expected answers. The agent does not judge credibility from hesitation or tone, store names, or determine whether trafficking occurred. It uses synthetic data and supports English and French only. built by team TRACE, third place (Call for Code AI: United Against Trafficking) and first place (Open Atlas 2026 Hackathon and AI x City Hackathon26
30 Sep 2026

ASMA-Agent is an autonomous options-trading agent built entirely on Alpaca's MCP server — every market read and every order attempt goes through MCP tool calls, never a REST wrapper. The agent evaluates SPY, QQQ, and IWM through a five-stage deterministic funnel: a volatility-regime gate, a delta-targeted short-vertical strategy selector, a self-computed implied-volatility-vs-realized-volatility signal, a liquidity check, and a risk gate that checks only numbers — position limits, circuit breakers, concentration caps — and never sees the reasoning that produced a candidate. It cannot be talked out of a veto, because it cannot be talked to. A real engineering obstacle became the strongest creativity result: Alpaca's free data tier does not return implied volatility, Greeks, or open interest on this account, despite the tool descriptions promising them. Rather than fake it, the agent inverts Black-Scholes from real bid/ask quotes to compute its own IV, validated against a quote-quality layer before it ever reaches a decision. Every evaluation — trade or no-trade — is written to an append-only decision ledger. As of submission, the agent has logged 52 real, live refusals, each with the actual volatility ratio that failed the frozen 1.60 threshold. It has never placed a live trade from its own decision loop, because no candidate has cleared the funnel yet — a zero-trade outcome the competition's own rules treat as a valid result, not a failure. The MCP execution path itself is proven, not theoretical: a real single-leg order and a real two-leg vertical spread were placed, filled, and closed through Alpaca's MCP server during the measurement window, before the strategy engine existed. That infrastructure check is the account's only realized loss — $8, disclosed here rather than hidden. The strategy engine's own decisions, running continuously since it went live, have cost nothing, because none has ever been wrong enough to trade.
4 Sep 2026