AI-powered groundwater monitoring system for Abu Dhabi aquifer management. Provides well monitoring, anomaly detection, and LLM-assisted analysis.
HydroWatch defines 7 tools with complete JSON schemas and descriptions. All tools have proper type definitions and parameter constraints (enums, array bounds). Descriptions are domain-specific and actionable (avg ~120 chars). However, output schemas are not documented, LLMs cannot predict response structure for chaining. Parameter descriptions lack guidance on when to use each tool vs. alternatives (e.g., query_wells vs. get_region_stats). No error handling guidance or recovery paths. Tool names follow verb_noun convention well. Missing: idempotency guarantees, pagination guidance, and field-level output documentation.
Compute Theis-based interference between well pairs. Returns asymmetric coefficients (donor/victim relationships) and severity classification. Use for any question about well interference, depression cone overlap, mutual influence, or competing wells.
Compute Theis depression cone (drawdown grid) around a single well, returning isoline polygons. Includes superposition from interfering wells. Use for depression cone analysis, drawdown questions, or operational risk assessment.
Run anomaly detection on well time series data. Detects debit decline, TDS spikes, and sensor faults. Can analyze a single well or all wells.
Get aggregated statistics for all wells within a bounding box. Returns well count, average debit, average TDS, and anomaly count.
Get time series data for a specific well with trend analysis. Returns timestamps, values, and trend direction (rising/falling/stable).
Query monitoring wells with optional filters. Returns well info including location, depth, aquifer type, current yield, and water quality.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting) for downstream tool chaining or data extraction. Breaks pattern:tool-chain.
No error handling guidance. Tools lack recovery hints (e.g., 'If well_id not found, try query_wells() first'). Violates pattern:recovery-guide.
Ambiguous tool selection. query_wells, get_region_stats, and analyze_interference all operate on bounding boxes but lack guidance on when to use each. LLMs will guess.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Validate an uploaded CSV file with groundwater observations. Checks columns, data types, value ranges, and metadata consistency.
Pagination not addressed. Tools returning lists (query_wells, detect_anomalies) lack limit/offset/cursor parameters. Large result sets will blow context windows.
Parameter descriptions lack format/constraint guidance. 'well_id' example 'AUH-01-003' is helpful but not formalized as a pattern. LLMs may hallucinate invalid IDs.