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 SequentialAgent pipeline 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 ✅ and TIE-OUT PASS are 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.

Built With

  • cloud-logging
  • cloud-pub/sub
  • docker
  • fastapi
  • firestore
  • gemini-3.5-flash
  • google-adk
  • google-cloud-run
  • iam
  • model-armor
  • python
  • rest-api
  • sec-edgar-api
  • serverless
  • sse
  • vertex-ai
  • xbrl
Share this project:

Updates

Submission history