🌊 ReefWatch AI The ocean is dying. We built an AI that never stops watching.

⚠️ LIVE ALERTS FIRING RIGHT NOW: Southern Tonga 90% · Nauru 92% · Galapagos 98% These are real NOAA stations. Real bleaching events. Real autonomous alerts, no human triggered them.

Inspiration

Growing up, I was fascinated by the ocean. Marine life, coral ecosystems, the sheer alien beauty of what lives beneath the surface, it captured my imagination early and never let go. Now I'm studying Computer Science with a focus on AI, and that became its own obsession.

At some point I asked myself: why keep these two loves separate? AI is the most powerful problem-solving tool humanity has built. The ocean is facing one of its worst crises in recorded history. Coral reefs support 25% of all marine life and over 1 billion people depend on them, yet since 1950 we've lost half of them, mostly to thermal bleaching driven by rising ocean temperatures.

NOAA satellite data exists globally, but translating it into actionable conservation intelligence requires more human hours than the entire global conservation community can provide. That gap felt like exactly the kind of problem AI should be solving.

ReefWatch AI is my attempt to build something the world actually needs, not a demo, not a toy, but a real autonomous system working 24/7 to protect ecosystems I've cared about.

What it does

ReefWatch AI is a fully autonomous coral reef conservation intelligence platform. It:

  • Monitors 221 NOAA reef stations globally in real time, color-coded by bleaching risk
  • Fires real email alerts when stations cross bleaching thresholds — Southern Tonga 90%, Nauru 92%, Galapagos 98%
  • Generates full scientific conservation briefs using Gemini 2.5 Flash, downloadable as PDF
  • Runs a self-improvement loop nightly — Gemini acts as LLM as a Judge, evaluating its own outputs across 4 quality dimensions and automatically rewriting its system prompt if quality drops below 0.75
  • Queries its own Arize Phoenix observability data at runtime via Phoenix MCP tool calling, the agent reads its own traces mid-inference to reason about its performance.

NOAA Coral Reef Watch provides the data; ReefWatch AI turns it into actionable conservation intelligence. Researchers can select reefs they care about, add them to a watchlist, and allow ReefWatch AI to continuously monitor them in the background. When bleaching risk rises or critical thresholds are crossed, the system automatically generates alerts and delivers email notifications, ensuring researchers stay informed without manually checking NOAA datasets.

Researchers can explore live reef conditions, compare regions, analyze historical trends, generate scientific conservation briefs, and ask questions through the Researcher Workspace. Meanwhile, ReefWatch AI operates autonomously 24/7, monitoring reefs, generating reports, and improving the quality of its own analyses over time.

During development, ReefWatch AI experienced real quality regressions in its reef assessments. The self-improvement loop detected the degradation, evaluated the failure modes, generated a revised system prompt, and deployed the update automatically. This autonomous improvement cycle is shown live in the demo video.

ReefWatch AI's goal is not simply to monitor reefs, but to become a continuously improving conservation agent. Arize Phoenix was needed because autonomous improvement requires measurement. Without Phoenix, the system could generate assessments but would have no reliable way to evaluate their quality, detect regressions, or determine when intervention was required. Phoenix provides the observability foundation that makes ReefWatch AI's self-improvement loop possible.

How we built it

The system has four layers working together:

Data layer: NOAA Coral Reef Watch API feeds live SST, SST Anomaly, and Degree Heating Week data for 221 stations into a SQLite cache updated nightly.

AI layer: Built with Google Cloud Agent Development Kit (ADK), the ReefWatch agent is defined as an official ADK Agent using Gemini 2.5 Flash, registered in Google Cloud Agent Platform Registry. The Researcher Workspace routes all queries through the ADK agent natively, with Phoenix MCP tools wired as ADK-native function tools. Deployed on Cloud Run via FastAPI.

Observability layer: Arize Phoenix Cloud receives all traces (3,392+ logged). The Phoenix MCP server is wired as callable Gemini function tools, so the agent can call query_phoenix_traces and query_phoenix_quality_metrics at runtime to reason about its own performance. This is bidirectional observability, not just log shipping.

Self-improvement layer: Nightly, the LLM-as-a-Judge pipeline evaluates recent reef assessments. If quality drops below threshold, the system rewrites its own system prompt automatically. No human intervention required. Before/after scores are visible on the dashboard.

Infrastructure: Google Cloud Run (min-instances=1) keeps the agent warm 24/7. Cloud Scheduler pings every 4 minutes to prevent cold starts. Firebase Hosting serves the React frontend.

Challenges we ran into

  • Keeping the agent warm: Cold starts on Cloud Run would break the 24/7 alert SLA. Solved with min-instances=1 and a Cloud Scheduler health ping every 4 minutes.
  • Cost at scale: Running Gemini across 221 stations nightly was adding up fast. Implemented deduplication and prompt caching, bringing the cost down to under $0.10/day, a significant reduction that made the 24/7 model sustainable.
  • Bidirectional MCP: Getting Phoenix MCP wired not just for sending traces but for the agent to read its own trace data at runtime required careful function tool schema design and response parsing.
  • Self-improvement loop stability: The LLM-as-a-Judge needed careful prompt engineering to produce consistent numeric scores (not just qualitative feedback) that could reliably trigger automated prompt rewrites.

Accomplishments that we're proud of

  • The self-improvement loop is fully autonomous, it has already rewritten its own prompts without human intervention
  • 94% hallucination avoidance on live environmental data
  • Real email alerts firing for real reef stations in crisis
  • 95.8% AI service success rate (46/48 requests) running 24/7
  • Cost significantly reduced
  • Phoenix MCP integration is genuinely bidirectional: the agent queries its own observability data mid-inference
  • Agent registered in Google Cloud Agent Platform Registry with Phoenix MCP server, fully compliant with Google Cloud Agent Builder requirements
  • Nightly self-evaluation runs autonomously via Cloud Scheduler, no manual triggers required

What we learned

  • LLM-as-a-Judge is a powerful pattern but requires precise output schema design to be actionable
  • Arize Phoenix MCP unlocks a qualitatively different kind of agent , one that is self-aware about its own performance, not just monitored externally
  • Real-world environmental data is messy; caching and deduplication are not optional at scale

What's next for ReefWatch AI

  • Expand to ARGO float data for subsurface temperature monitoring
  • Add image analysis of underwater survey photos for direct bleaching detection
  • Publish conservation briefs directly to reef management organizations via API
  • Open source the self-improvement loop as a standalone pattern for other teams
  • Add full researcher accounts and team workspaces so organizations can manage monitored reefs, alert recipients, saved reports, and historical watchlists across multiple users

Tech Stack

Frontend

  • React 18 + TypeScript
  • Vite
  • Tailwind CSS
  • @vis.gl/react-google-maps
  • Custom glassmorphism design system

AI & Agent Layer

  • Google Cloud ADK (google-adk) — Agent class, Runner, async tool dispatch
  • Google Cloud Agent Platform Registry — registered ReefWatch ADK agent
  • Gemini 2.5 Flash — primary reasoning model
  • google-generativeai SDK
  • openinference-instrumentation-google-genai
  • openinference-instrumentation-google-adk
  • FastAPI (Python) — AI service host

Observability & Self-Improvement

  • Arize Phoenix Cloud — production tracing, LLM-as-a-Judge evaluations
  • Phoenix MCP Server (@arizeai/phoenix-mcp) — runtime self-introspection
  • OpenInference (OpenTelemetry-compatible) — auto-instrumentation
  • arize-phoenix-otel
  • LLM-as-a-Judge pipeline — 7-dimension quality scoring
  • - Autonomous improvement pipeline — benchmark datasets, controlled experiments, promotion gates, rejection handling, and audit trails

Data

  • NOAA Coral Reef Watch CoralTemp API
  • NOAA Virtual Station Network (221 stations)
  • Live SST, SST Anomaly, Degree Heating Weeks

Infrastructure

  • Google Cloud Run — 24/7 deployment, min-instances=1
  • Firebase Hosting — React frontend
  • Cloud Scheduler — health pings every 4 min + nightly data refresh
  • SQLite — station cache, zero-dependency, architected for Cloud SQL migration
  • Google Cloud Storage — benchmark datasets, prompt versions, experiments, audit history, researcher profiles

Live Runtime Verification

These are real API responses from the live Cloud Run deployment, captured June 10th 2026, confirming all three required technologies are invoked at runtime — not mocked, not simulated.


ADK Agent + Gemini — System Status Query:

{
  "response": "ReefWatch AI is currently operational with an average 
  confidence of 87.4%. We've processed 48 traces, with an average 
  latency of 3200 ms. The error rate stands at 4.17%, and our cache 
  hit rate is 25%. We've used a total of 18500 tokens.",
  "session_id": "adk-1780990061954",
  "agent": "reefwatch_agent",
  "model": "gemini-2.5-flash",
  "latency_ms": 1866.25
}

ADK Agent + Phoenix MCP — Live Trace Retrieval:

{
  "response": "Here are the last 5 inference traces from ReefWatch AI:
  Trace ID: U3BhbjozMjk= — 2026-06-09T07:28:20.069051+00:00
  Trace ID: U3BhbjozMjg= — 2026-06-09T07:28:20.070007+00:00
  Trace ID: U3BhbjozMjc= — 2026-06-09T07:28:21.141816+00:00
  Trace ID: U3BhbjozMjY= — 2026-06-09T07:28:21.142115+00:00
  Trace ID: U3BhbjozMjU= — 2026-06-09T07:28:20.082254+00:00",
  "session_id": "adk-1780990130127",
  "agent": "reefwatch_agent",
  "model": "gemini-2.5-flash",
  "latency_ms": 3060.05
}

ADK Agent + Phoenix MCP — Confirmed Tool Invocation:

{
  "response": "Here are the last 5 inference traces from the ReefWatch 
  AI, retrieved from Phoenix. Timestamp: 2026-06-10T02:03:29 — 
  Duration: 37.20 seconds. Input: coral reef AI assessments scored on 
  7 dimensions. Output: accuracy 90, specificity 95, actionability 90, 
  scientific_reliability 90...",
  "session_id": "adk-1781096006256",
  "agent": "reefwatch_agent",
  "model": "gemini-2.5-flash",
  "latency_ms": 4860.45,
  "tools_called": ["query_phoenix_traces"]
}

What this proves:

  • "agent": "reefwatch_agent" — Google Cloud ADK running in production
  • "model": "gemini-2.5-flash" — Gemini invoked at runtime, not a wrapper
  • ✅ Trace IDs with timestamps of 2026-06-10T02:03:xx — real Phoenix production traces retrieved live via MCP, not cached or mocked
  • "tools_called": ["query_phoenix_traces"] — Phoenix MCP genuinely invoked as a runtime tool call, not a background process
  • ✅ Deployed at https://project-9b3e2672-8819-4fa5-afe.web.app
  • ✅ All three required technologies verified in production: Gemini, Google Cloud ADK, and Phoenix MCP

How Arize Powers ReefWatch AI

Arize Phoenix is not just used for monitoring in ReefWatch AI, it is part of the agent’s decision-making and self-improvement architecture.

Every reef assessment, conservation brief, alert generation, and researcher interaction is traced through Phoenix using OpenInference instrumentation. These traces are stored in Phoenix Cloud, giving the system complete visibility into how the agent behaves in production.

ReefWatch AI then uses the Phoenix MCP Server to access its own operational history at runtime. Through MCP tool calls, the agent can inspect recent traces, review evaluation results, identify recurring failure patterns, and understand where its outputs are weakest.

This creates a bidirectional observability loop:

Agent → Phoenix → Agent

The system does not simply emit telemetry. It can actively reason about that telemetry and use it to improve future behavior.

Autonomous Self-Improvement Architecture

ReefWatch AI includes a fully autonomous self-improvement loop built on top of Phoenix observability and LLM-as-a-Judge evaluations.

The nightly workflow is:

Production Traces → Phoenix Evaluation → Weakness Detection → Prompt Optimization → Validation → Production Deployment

Recent reef assessments are evaluated across multiple scientific quality dimensions including:

  • Scientific Reliability
  • DHW Interpretation
  • Hallucination Avoidance
  • Uncertainty Communication
  • Recommendation Specificity
  • Actionability

When recurring weaknesses are detected, the system automatically generates an improved prompt configuration and deploys it into future assessments.

All evaluations, scores, weaknesses, prompt revisions, and improvement decisions are stored and visualized through the ReefWatch AI dashboard.

This allows the agent to continuously improve without human intervention while maintaining full transparency into why changes were made.

Alignment with the Arize Track

ReefWatch AI directly implements the core concepts highlighted by the Arize challenge:

✅ OpenInference instrumentation

✅ Phoenix Cloud observability

✅ Phoenix MCP runtime introspection

✅ LLM-as-a-Judge evaluations

✅ Autonomous quality monitoring

✅ Self-improvement driven by production traces

✅ Continuous evaluation of agent performance

✅ Production deployment on Google Cloud Run

✅ Built with Google Cloud Agent Builder (ADK runtime, Agent Platform Registry)

Rather than treating observability as a debugging tool, ReefWatch AI uses observability as an active component of the agent itself, enabling a conservation agent that can monitor, evaluate, and improve its own performance over time.

How to test it

  1. Open the Live Reef Map and select reefs to actively monitor.
  2. Go to Settings, enter your email, enable alert types, and click Save Alert Settings.
  3. Return to the map/dashboard — ReefWatch AI will monitor only your selected reefs.
  4. Use Trigger Alert Demo or wait for scheduled monitoring to receive an email alert when a selected reef crosses a bleaching or thermal-stress threshold.
  5. Open Researcher Workspace and ask questions like “Which monitored reefs are at highest risk right now?”
  6. Visit Dashboard to see self-improvement history and prompt optimization results.

Built With

  • arize-phoenix-cloud
  • cloud-scheduler
  • fastapi
  • firebase-hosting
  • gemini-2.5-flash
  • google-cloud-run
  • google-maps-javascript-api
  • noaa-coral-reef-watch-api
  • openinference
  • phoenix-mcp-server
  • python
  • react
  • tailwind-css
  • typescript
  • vite
Share this project:

Updates

posted an update

Final submission update — June 10th 2026.

ReefWatch AI is fully deployed and verified on Google Cloud Run with all three required technologies confirmed at runtime:

  • Google Cloud ADK: reefwatch_agent running in production
  • Gemini 2.5 Flash: primary reasoning model, invoked at main.py:1452
  • Phoenix MCP: query_phoenix_traces confirmed in tools_called at runtime

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

posted an update

Architecture update: ReefWatch AI now uses Arize Phoenix traces to build benchmark datasets from real production activity. Candidate prompt improvements are evaluated through controlled experiments and only promoted if they outperform the production prompt. Poor candidates are automatically rejected and every decision is recorded in an audit trail. The system now operates as a measurable, production-style self-improvement pipeline rather than a simple prompt rewriting workflow.

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

posted an update

Over the past few days I significantly improved ReefWatch AI's autonomous self-improvement system.

What's new Added nightly Cloud Scheduler execution for fully autonomous evaluations Added cost-aware safeguards that skip evaluations when the system is already healthy Implemented historical score tracking and quality trend visualization Added persistent evaluation history across deployments using Google Cloud Storage Fixed score comparison logic to accurately measure improvement vs degradation Added transparent audit logs showing every autonomous check, including skipped runs Improved researcher profile persistence so monitored reefs and alert preferences survive Cloud Run revisions

Result ReefWatch AI now continuously evaluates itself, tracks quality over time, preserves historical performance data, and autonomously decides when intervention is needed, bringing it much closer to a truly self-improving conservation agent.

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