AWS Builder Center

GenHealthy: an AI that refuses to guess when a doctor is watching.

Built for the Strands Decider 2B hackathon · #strands-decider-2b #guardrails

The uncomfortable truth about AI in medicine

Let's start with the part nobody likes to say out loud.
When a large language model helps with a clinical decision and invents a gene, a finding, or a risk claim, it isn't just "wrong", it can be dangerous. And the research backs this up. A study involving MIT and Harvard Medical School found error rates reaching up to 25% in data-interpretation tasks (This Week Health, 2026 ). In adversarial conditions, some models hallucinate false clinical details up to 82% of the time (NSGC Perspectives, 2026 ).
In cancer genomics specifically, researchers point to the real heart of the problem: AI systems "do not reason over definitive biological knowledge but over evidence that is often probabilistic, fragmented, and continuously evolving" and the confidence an AI conveys "may not reflect the quality or completeness of the underlying evidence" (arXiv, 2026 ).
Translation: the model can sound certain while standing on thin ice. Distinguishing confidence in the model from confidence in the evidence is, as that paper puts it, essential for responsible clinical interpretation.
That single sentence is the reason GenHealthy exists.

So what did I build?

GenHealthy is a multi-agent clinical pipeline. A patient sends an ECG (report + image) and their clinical data through a confidential channel. Several AI agents analyze it, and a doctor gets one final position to validate with every claim backed by its evidence.
The star of the show isn't the biggest model. It's the smallest one.
Strands Decider 2B is a tiny 2-billion-parameter decision model that answers typed questions with calibrated probabilities meaning when it says 80%, it's right about 80% of the time. I handed it three jobs across the pipeline, and each one is a guardrail:
#The question I ask the DeciderWhat it catches
1Is this clinical statement supported by its cited sources?hallucinated claims
2Does the ECG report match what the ECG image shows?report vs. image conflict
3Is this analysis consistent with the patient's history?silent clinical drift
Here's the magic of calibration, measured on the live model:
ClaimCited sourceDecider saysVerdict
FTO rs9939609 ↑ obesity riskFTO literatureP = 0.87✅ passes
BRCA1 drives this cardiometabolic riskFTO literatureP = 0.40🚫 held for review
Same model. Same format. Two completely different confidences, because one claim is grounded and the other isn't. That's a guardrail doing exactly what a human reviewer would do, but in milliseconds.

The part I'm most proud of: the pipeline that says "I didn't finish"

Most AI demos fail silently. The model times out, something breaks, and the system hands you a confident-looking answer built on half the data.
GenHealthy does the opposite. I built an integrity gate: the pipeline refuses to produce a final position unless every model in the loop actually ran. If the vision model or the generative model didn't analyze, a quota limit, a network error, anything (the system returns pipeline_incompleto), names the model that's missing, and produces no verdict at all.
The doctor sees "the vision model did not analyze" — never a conclusion built on missing evidence.
This "fail-closed" behavior is exactly what the clinical-AI safety literature keeps asking for: stringent safeguards, continual monitoring, and human oversight in all clinical decision-making (GovInfoSecurity, 2026 ). The doctor always validates. The AI never has the last word.

Architecture, in one picture

1
2
3
4
5
6
7
8
Patient → 🔒 sealed envelope (password) → [ 👁️ Nova Pro reads ECG image ]
→ [ ✍️ Claude writes cross-reading ]
↓
🎯 Decider 2B judges 3 times (grounding · ECG · history)
↓
⚖️ Integrity gate: no verdict unless BOTH models ran
↓
👩‍⚕️ Doctor validates → 🗄️ saved to history (DynamoDB)
  • Agents: Strands Agents SDK, Amazon Nova Pro (vision), Claude via Amazon Bedrock (generative)
  • The decision maker: Strands Decider 2B on Amazon Bedrock AgentCore (int8, CPU-only)
  • Retrieval: a hybrid RAG that blends semantic search (FAISS) with an exact match on genetic variant IDs (rsid/gene) — because in genomics, variant identity can't be a vibe
  • Memory: Amazon DynamoDB, written only when the doctor validates — so history holds what was approved, not drafts

Security wasn't an afterthought

Patient data is sensitive, so the confidential flow is built into the demo:
  • Every document the patient sends is sealed in a password-checked envelope; the anamnesis the doctor sends back carries its own password for the patient to open.
  • I'm honest about the limits: this is a symbolic representation of the confidentiality flow for the demo, not a production cipher and the project says so plainly rather than overclaiming.
  • Least-privilege IAM: the database access is scoped to a single table; the Decider is called over IAM/SigV4 with no secret baked into the image.

Does it actually work?

Yes, and it's tested. The backend ships with 40 passing tests, including the grounding gate (with the Decider mocked, so tests never hit a live service) and the fail-closed behavior. The whole thing is containerized and runs CPU-only, no GPU needed, torch kept off the critical path via ONNX embeddings.
The three Decider decisions were all validated against the live model on AgentCore, not simulated: the grounding numbers above are real, the ECG conformity check runs end-to-end, and the history check correctly distinguished "expected evolution" from "conflict" on real records in DynamoDB.

Why this matters beyond a hackathon

A 2026 survey found that nearly 3 out of 4 clinicians are concerned about bias and hallucination in clinical AI (Wolters Kluwer, 2026 ). The trust gap is real, and it won't close with bigger models — it closes with accountability.
GenHealthy's bet is simple: don't make the big model police itself. Give a small, calibrated decision model one honest job at each step — "is this supported?" — and build a pipeline that would rather say "I didn't finish" than guess.
Three decisions. One honest pipeline. And a doctor who always has the final word.

GenHealthy was built on the clinical core of a prior project (GenRisk) and extended into a multi-agent system for this hackathon. Code, tests, and the reusable guardrail pattern are public.
#strands-decider-2b #guardrails #AI #HealthTech #Genomics #AWS #Bedrock
Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article