Hopscotch
Step 5 of 10
Architecture

The fleet that did it

Five agents did the work you have just read, and the gateway handed each of them a different shape of the same record. This table is computed live, against the case you are following.

agentscopes it holdswhat it is handed
casework-agentcase.read_full, draft.write10 top-level, 8 consent field(s)
clock-agentcase.read_dates, case.write_deadline9 top-level, 6 consent field(s)
coordinatorcase.read, case.write, skill.review, worker.invoke9 top-level, 6 consent field(s)
family-agentcase.read_redacted, media.generate, notify.send5 top-level, 0 consent field(s)
intake-agentarmor.screen, case.create, document.read5 top-level, 0 consent field(s)

The family-facing agent does not receive the clinical detail and decline to use it — it never receives it. On this case the entire consent block is withheld from it, including referral_reason, which is where the clinical narrative lives, and source_document, the raw form with the child’s name in it. Full list: confidence, consent_signed_on, jurisdiction, received_on, referral_reason, school_code, source_document, student_ref

That is the difference between authorisation and projection. A check can be forgotten at a new call site; a projection cannot leak a field it never returned. Field classification fails closed, so a field nobody has classified yet is withheld rather than exposed.

where they run Vertex AI Agent Engine — two deployed engines, both listed in Google's managed Agent Registry (agentx-memory, hopscotch-supervisor) Memory Bank for cross-session state Model Armor in front of every inbound document OpenTelemetry spans to Cloud Trace Cloud Run job on an hourly Cloud Scheduler trigger what we do not have Agent Identity — geminienterprise.googleapis.com is not offered here, so agent identity is registry-declared, not attested Agent Gateway — substituted with in-process policy enforcement

Run scripts/geap.sh in the repository and every line of that is fetched live rather than claimed.

Now a person decides →