An ambient ADK 2.0 agent that triages patient-deterioration risk using deterministic NEWS2 scoring, PHI redaction, an MCP vitals server, and human-in-the-loop clinician confirmation.
Five tools with complete schemas and descriptions. Naming follows verb_noun pattern (score_*, get_*, lookup_*, red_flags_*). Descriptions are clinical and specific (avg ~150 chars), exceeding the 10-char minimum. All parameters have types and descriptions. However, output schemas are not explicitly documented in the visible code, only inferred from docstrings. Error handling is minimal; no recovery guidance or actionable error messages. Tool composition is sound (each does one thing), but no pagination, batch variants, or result limits are evident. Security is adequate (READ_ONLY risk classification), but no audit logging or permission gates are visible.
Return a patient's resting baseline vitals and monitoring context. Prototype: synthetic baselines, deterministic by id (no EHR connected).
Return a short, source-grounded clinical guideline snippet for a topic. Topics: news2_escalation, sepsis, chest_pain, respiratory. Use this to ground recommendations in guidance instead of model recall.
Map a free-text presenting complaint to relevant red-flag guideline snippets.
Compute the NEWS2 early-warning score for one set of patient vitals. Returns the aggregate NEWS2 total, the risk tier (LOW / LOW_MEDIUM / MEDIUM / HIGH), per-parameter sub-scores, the abnormal parameters, and a plain-language rationale. This is a deterministic clinical calculation, not a model judgement.
Score a time-ordered window of vitals readings. Triage uses the latest reading, but the result also includes a trend signal (rising / stable / falling NEWS2 across the window) — a rising trajectory is clinically meaningful and is what continuous monitoring captures over spot checks.
Output schemas not explicitly documented. Docstrings describe return values narratively ('aggregate NEWS2 total, risk tier, per-parameter sub-scores') but do not provide formal JSON Schema definitions. LLMs cannot reliably extract structured fields without explicit schema.
No error handling or recovery guidance. Tools lack error responses that tell the LLM what to do next (e.g., 'patient_id not found, try get_patient_baseline with a different ID'). Errors will be raw exceptions or HTTP status codes.
No pagination or result limits documented. lookup_clinical_guideline and red_flags_for_complaint may return unbounded lists. No limit, offset, or cursor parameters visible. Large result sets will bloat context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
lookup_clinical_guideline accepts 'topic' as free-form string with enum constraint only in description ('one of the known guideline keys'). No formal enum in schema; LLMs may hallucinate invalid topics.
No audit logging or permission gates visible. Tools are marked READ_ONLY but no evidence of logging who called what, when, or with which parameters. Clinical tools require compliance-grade audit trails.