Inspiration
It's 1 AM. A CFO is on page 73 of a 120-page SEC filing, third coffee, hunting for one risk paragraph that could change everything — multiplied by hundreds of companies. Million-dollar mistakes rarely come from stupidity; they come from fatigue. We asked: what would an institutional-grade agent fleet look like — not a chatbot demo, but agents with a registry, a memory, guardrails, and a black box?
What it does
Project Sentinel turns live SEC filings into compliance-checked, versioned investment research in about a minute:
- 📡 DataHarvester downloads official data straight from SEC EDGAR (filings, XBRL facts, full 10-K HTML).
- 🛡️ RiskWarden acts as compliance officer: Google Model Armor screens for prompt injection / jailbreak / malicious URLs, a PII screen strips personal data, the real Item 1A & MD&A sections are reviewed, and the accounting math is re-computed (XBRL tie-outs). Verdict: PASS or FAIL.
- 📈 AlphaAnalyst writes a 600–900-word memo — after reading its own past work from the Memory Bank — and adds "Change vs. Previous Thesis." Runs can be watched live or queued asynchronously via Pub/Sub and executed in the background. Failed runs are never archived as truth — they're stored as immutable 🚫 quarantine records.
How we built it
- Google ADK
SequentialAgentpipeline on Cloud Run (FastAPI dashboard with live SSE diagnostics). - Gemini 3.5 Flash via Vertex AI for all three agents.
- Firestore for the Agent Registry (publish/version/discover/approve manifest) and the versioned Memory Bank.
- Cloud Pub/Sub topic + push subscription for long-running async background execution.
- Model Armor managed template (
sentinel-guardrails) called via REST, with graceful fallback to local guardrails. - Cloud Logging (
sentinel_audit) as a replayable reasoning-chain audit trail. - Agent Gateway identity-token policy (403 without a badge) + IAM service accounts for machine identity.
- Real data only: SEC EDGAR company tickers, submissions, XBRL companyfacts, and 10-K documents.
Challenges we ran into
- Model Armor region routing: the managed template answered only on a specific endpoint; we probed endpoints systematically and shipped graceful degradation instead of a hard dependency.
- XBRL concept drift: companies rename accounting concepts across years (Apple's 2018 revenue-concept switch broke naive parsers) — solved by selecting the candidate concept with the most recent data.
- 10-K HTML chaos: tags embedded inside headings and table-of-contents duplicates — solved by stripping tags first and matching the last heading occurrence.
- LLM paraphrasing: we surface raw tool returns verbatim in the diagnostics console, so
NO_THREAT_FOUND ✅andTIE-OUT PASSare platform facts, not model opinions. - UI race conditions: an old background poll once hijacked the Memory Bank panel — fixed with server-authoritative tickers and a single managed poller.
Accomplishments that we're proud of
- Every recommended enterprise technology is wired for real — no mocks, no canned data.
- Runtime-enforced persistence: the platform archives theses, never the model.
- Quarantine-by-design: a FAIL verdict produces an auditable record, not a silent gap.
- A live diagnostics console where judges can watch the reasoning chain unfold.
- Cross-environment memory: local dev and Cloud Run share the same Memory Bank.
- Deployed, public, scales to zero — pennies per run on hackathon credits.
What we learned
Enterprise agents aren't about smarter models — they're about the scaffolding around the model: identity, registry, memory, guardrails, observability. Persistence and compliance must be enforced by the platform, not promised by the model. And real-world data is gloriously messy: robustness beats cleverness, every time.
What's next for Project Sentinel — Fortified Due-Diligence Fleet
- Cloud Scheduler nightly sweeps across whole portfolios, not single tickers.
- Cloud SQL registry with formal approval workflows, and PDF/BigQuery memo export for firm-wide research platforms.

Log in or sign up for Devpost to join the conversation.