{"audit":{"version":"1.3","generated_at":"2026-05-22T23:08:35.960251+00:00","generated_by":"Agenstry","report_url":"https://agenstry.com/agents/qjtqgvpd9s.eu-west-1.awsapprunner.com","methodology_url":"https://agenstry.com/methodology","verifier_jwks_url":"https://agenstry.com/.well-known/jwks.json","subject":{"domain":"qjtqgvpd9s.eu-west-1.awsapprunner.com","name":"AqtaBio Pandemic Risk Agent","url":"https://qjtqgvpd9s.eu-west-1.awsapprunner.com/.well-known/agent-card.json"}},"identity":{"provider":{"organization":"Aqta Technologies Limited","url":"https://aqtabio.org"},"registry_verification":null,"signature":{"signed":false,"signature_valid":null}},"protocol":{"version":"1.0","supports_streaming":true,"supports_push_notifications":false},"operational":{"live_state":"wrong_response","live_responds":false,"last_status_code":200,"last_elapsed_ms":28,"last_error":null},"track_record":{"first_seen":"2026-05-18T15:45:59.065696+00:00","last_checked":"2026-05-22T16:20:52.806521+00:00","last_seen_ok":"2026-05-22T16:20:52.806521+00:00","checks_total":5,"checks_ok":5,"uptime_pct":100.0,"archived":false,"archived_reason":null},"conformance":{"score":57,"grade":"D","summary":"D-grade: significant issues — auth-gated, partially broken, or stale.","criteria":[{"key":"valid_card","label":"Valid AgentCard","points":10,"max_points":10,"status":"pass","detail":"Schema-validated A2A AgentCard returned by the well-known endpoint."},{"key":"live_responds","label":"Live JSON-RPC","points":5,"max_points":25,"status":"fail","detail":"Endpoint replies but body isn't a valid JSON-RPC 2.0 A2A response."},{"key":"protocol_version","label":"Protocol version","points":8,"max_points":10,"status":"partial","detail":"Declares A2A 1.0 but missing supportedInterfaces[] (added in v1.0.0 — update your card to reach 10/10)."},{"key":"signature","label":"JWS signature","points":0,"max_points":10,"status":"info","detail":"Card is unsigned (most published agents are)."},{"key":"uptime","label":"Uptime track record","points":15,"max_points":15,"status":"pass","detail":"5/5 probes succeeded (100% uptime)."},{"key":"skills","label":"Skill declaration","points":10,"max_points":10,"status":"pass","detail":"Declares 19 skills with structured metadata."},{"key":"verified_identity","label":"Verified Identity","points":5,"max_points":10,"status":"partial","detail":"Provider declared: Aqta Technologies Limited (https://aqtabio.org). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit."},{"key":"freshness","label":"Freshness + modern flags","points":4,"max_points":5,"status":"pass","detail":"seen in upstream source within 0d"},{"key":"security","label":"Security declaration","points":0,"max_points":5,"status":"info","detail":"No securitySchemes declared (common for open agents — not penalised)."}]},"skills":[{"name":"list_pathogens","description":"List all monitored pathogens with SNOMED CT codes and geographic scope.","tags":["discovery"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"get_risk_score","description":"Current spillover risk score for a geographic tile with SHAP feature drivers. FHIR RiskAssessment optional.","tags":["query","fhir"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"get_hotspots","description":"Hotspot counts by severity tier (critical ≥0.9, high ≥0.7, moderate ≥0.5) for a pathogen. FHIR DetectedIssue optional.","tags":["query","fhir","aggregate"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"get_risk_trend","description":"24-month risk trajectory for a tile. FHIR Observation Bundle optional.","tags":["query","timeseries","fhir"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"get_top_risk_tiles","description":"Highest-risk tiles ranked by score for a pathogen.","tags":["query","ranking"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"get_top_risk_countries","description":"Returns the top countries by spillover risk. When a trained CountryClassifierModel sidecar is available for the requested pathogen + month, serves rankings from that model with a `scoring_method: 'trained_classifier'` flag. Otherwise falls back to a heuristic aggregation of tile-level scores (mean / max / upper bound of a bootstrap CI on the country mean), with saturation share flagged so callers can see when a country's rank is driven by clipped scores. Use for country-of-concern guidance (eg pre-positioning by WHO Africa).","tags":["query","ranking","aggregate","country","trained-classifier"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"get_system_status","description":"System health, data freshness, live vs demo mode.","tags":["ops"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"generate_outbreak_briefing","description":"Claude generates a PHO situational brief synthesising hotspots, top tiles, and SHAP drivers into an actionable narrative with 3 recommended actions.","tags":["genai","narrative"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"explain_risk_drivers","description":"Claude translates SHAP values into plain-English causal narrative for a tile, with 2-3 specific recommended actions.","tags":["genai","explainability"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"retrospective_validation","description":"Returns the recorded retrospective attestation for a historical spillover event paired with the publicly verifiable WHO / ECDC / national notification date. Backtest provenance, AUROC and AUCPR are surfaced in the `cross_check` field. Not a live model recomputation.","tags":["validation","evidence"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"get_multi_pathogen_hotspots","description":"Detects syndemic convergence: regions and time windows where multiple pathogens simultaneously cross HIGH+ severity, flagging response infrastructure saturation risk.","tags":["syndemic","aggregate"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"generate_fhir_bundle_for_pho","description":"Complete HL7 FHIR R4 transaction Bundle (RiskAssessment + DetectedIssue + 12×Observation) with per-entry POST requests, ready to submit to any FHIR server.","tags":["fhir","integration"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"get_disease_x_risk","description":"Pathogen-agnostic pre-spillover risk score addressing the WHO R&D Blueprint's Disease X priority. Aggregates per-pathogen risks into a single 'any zoonotic emergence' signal for the unknown pathogen of the next pandemic.","tags":["disease-x","blueprint","novel"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"get_hindcast","description":"Counterfactual timeline analysis. Given a recorded retrospective attestation, returns the actual outbreak timeline alongside an illustrative counterfactual: what intervention window would have been available if a public-health responder had acted N days after the threshold-crossing signal. Honest about caveats; no claim of cases averted.","tags":["counterfactual","validation","novel"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"submit_to_hapi_fhir","description":"Live HL7 FHIR R4 round-trip: builds a RiskAssessment for a tile/pathogen/month, POSTs to the public HAPI FHIR test server, and returns the assigned resource URL plus HAPI's HTTP status. Makes the 'FHIR round-trip tested' claim a callable proof; anyone can fetch the resource back to verify conformance. Population-level risk only, no PHI.","tags":["fhir","interop","verifiable"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"get_patient_local_risk","description":"SHARP-aware patient-local risk. Reads the Prompt Opinion `ai.promptopinion/fhir-context` block (patient_id, fhir_server, access_token), fetches the Patient resource via SMART-on-FHIR, derives the home tile from address.country, and returns AqtaBio's population-level spillover risk for that area. PHI minimisation: only country is retained. Designed to be invoked from a clinician's Prompt Opinion workspace.","tags":["sharp","fhir","patient-context","smart-on-fhir"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"emit_riskassessment_to_ehr","description":"SHARP-aware EHR write-back. Takes the SHARP-propagated bearer token from the clinician's EHR session and POSTs an AqtaBio FHIR RiskAssessment resource to the same FHIR server, attached to the patient reference. Demonstrates round-trip context propagation: the platform's promise of bridging EHR credentials without bespoke token handling is verifiable end-to-end.","tags":["sharp","fhir","writeback","smart-on-fhir"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"handoff_to_triage","description":"A2A v1.0 handoff. Takes a FHIR RiskAssessment from the surveillance side of AqtaBio and returns a FHIR Task that hands the matter to a clinical triage specialist agent. The Task carries a deterministic risk-band action (notify / surveil / routine) plus a disclaimer in note that the mapping is not clinical decision support; a public health officer must approve before any operational step. The triage specialist agent card is exposed at /.well-known/triage-agent.json.","tags":["a2a","handoff","fhir","task","triage"],"examples":[],"inputModes":[],"outputModes":[]},{"name":"self_test","description":"Runs every other tool with sane default arguments and returns a structured pass/fail map. Lets CI / pre-deploy / post-deploy check that all 18 working tools execute without exception. Catches dangling references and missing pathogen branches that would otherwise only surface in a clinician's workspace.","tags":["self-test","ci","ops"],"examples":[],"inputModes":[],"outputModes":[]}],"provenance":[{"source":"github_code","first_seen":"2026-05-18T15:45:59.065696+00:00"},{"source":"recrawl_hot","first_seen":"2026-05-21T02:48:40.935641+00:00"}],"recent_probes":[{"fetched_at":"2026-05-22T16:20:52.806521+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":28,"live_responds":false},{"fetched_at":"2026-05-22T11:56:09.486273+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":27,"live_responds":false},{"fetched_at":"2026-05-21T02:48:40.935641+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":26,"live_responds":false},{"fetched_at":"2026-05-19T00:50:47.945916+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":42,"live_responds":false},{"fetched_at":"2026-05-18T15:45:59.065696+00:00","ok":true,"status_code":200,"error":null,"elapsed_ms":43,"live_responds":false}],"catalog_attestation":null,"verification_history":[],"signatures":[{"protected":"eyJhbGciOiJFUzI1NiIsImprdSI6Imh0dHBzOi8vYWdlbnN0cnkuY29tLy53ZWxsLWtub3duL2p3a3MuanNvbiIsImtpZCI6ImFnZW50ZmluZGVyLWVzMjU2LTEiLCJ0eXAiOiJKT1NFIn0","signature":"lNvtRCqcayCSh_SsDK-E_MS3jh4iXY7WCLll0C5HdXbcjd_dTbqxSwWznZObnFAX2fGABxuC4M-ydVtrG8yEMA"}]}