Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
AI ügynökök és orvosi adatok
Ellenőrzött hozzáférés AI ügynökök számára betegrekordokhoz: OAuth hatókörök, az ügynöknek szükséges eszközök, audit és a leolvasott és írt adatok eredete, valamint eseményvezérelt ügynökök.
Az AI-ügynök egy olyan program, amelyben egy nyelvi modell lépésről lépésre eldönti, hogy milyen műveleteket végezzen – milyen adatokat olvasson el, melyik eszközt hívja meg, mit írjon –, hogy teljesítsen egy feladatot. Amikor a feladat egy páciens orvosi rekordját érinti, az ügynöknek ellenőrzött hozzáférésre van szüksége: csak azokra a rekordokra terjedhet ki, amelyekhez engedéllyel rendelkezik, csak azoknak a részeire, amelyekre szüksége van, nyomot kell hagynia arról, amit elolvasott, és AI-generáltként kell megjelölnie, amit írt. Az Anpheros ezt az ellenőrzött hozzáférést biztosítja az API-ján keresztül; az ügynökkeretrendszer és a modell az Öné.
Az Anpheros nem rendelkezik beépített ügynök futtatókörnyezettel, Model Context Protocol (MCP) szerverrel, és nincs hivatalos integrációja semmilyen ügynökkeretrendszerrel vagy modell szolgáltatóval. Az ügynökök ugyanúgy használják, mint bármely más alkalmazás: a REST és FHIR API-n vagy az SDK-kon keresztül.
Az architektúra
Patient ── grants access (OAuth scopes, duration) ────────────────┐
▼
Agent runtime (your code, any framework) ── tools ──► Anpheros API ──► the patient's FHIR record
│ ▲ │
│ └── context, search results ◄───────┘ every call: scope checks + access log
▼
The model you choose (hosted or local) ── plans the next step
A modell akciókat javasol; a futtatókörnyezeted hajtja végre azokat a hitelesítő adatokkal, amelyekkel rendelkezik. Maga a modell soha nem tart Anpheros kulcsot vagy tokent.
Vezérelt hozzáférés
- Kinek az adatai. API kulccsal az ügynök látja azokat a betegeket, akiket a projektje létrehozott. Valaki más meglévő rekordjára való művelet végrehajtásához az illetőtől OAuth engedélyre van szükség – egy páciensre, 30-365 napra.
- Milyen adatok. A hatókörök (scopes) korlátozzák az erőforrás típusokat és műveleteket, opcionálisan egy kategóriára: a
patient/Observation.rs?category=laboratorylehetővé teszi az ügynök számára, hogy laboreredményeket olvasson és keressen, és semmi mást. Kontextus építéséhez az engedélynek lehetővé kell tennie megfigyelések (observations), állapotok (conditions), gyógyszerek (medications) és allergiák (allergies) olvasását (példáulpatient/*.rs). - Alapértelmezetten csak olvasható. Írási hatóköröket (write scopes) csak akkor adjon, ha az ügynöknek valamit rögzítenie kell.
- Visszavonható. Az illető bármikor visszavonhatja az engedélyt; az ügynök következő hívása el lesz utasítva.
Az ügynöknek tipikusan szüksége van eszközökre
| Eszköz | Anpheros hívás | Megjegyzések |
|---|---|---|
| Kontextus lekérése egy feladathoz | POST /v1/context |
a legtöbb feladat első hívása; költségvetéshez és forrás-címkézéshez (LLM alkalmazások és egészségügyi adatok) |
| Legutóbbi eredmények listázása | GET /v1/patients/{id}/observations?category=laboratory&from=… |
szűrők: category, code, from, to |
| Aktív gyógyszerek | GET /v1/patients/{id}/medications?status=active |
|
| Mi történt mikor | GET /v1/patients/{id}/timeline?from=… |
egy kronologikus lista típusok szerint |
| Teljes FHIR részlet | GET /fhir/R4/{type}?patient=… |
ha az összefoglaló nem elegendő |
| Szabványos összefoglaló | GET /fhir/R4/Patient/{id}/$summary |
International Patient Summary csomag |
| Kód keresése | GET /v1/terminology/loinc?q=… |
csomagolt LOINC részhalmaz; gyógyszerek a GET /v1/search-en keresztül |
| Jegyzet rögzítése | POST /v1/patients/{id}/observations author_type: "ai"-el |
csak írási hatókörrel |
Az OpenAPI specifikáció (https://developers.anpheros.com/openapi.json) minden végpontot leír, és átalakítható eszközdefiníciókká; a TypeScript és Dart SDK-k közvetlenül eszközként becsomagolhatók.
Példa: Látogatás-előkészítő ügynök a beteg beleegyezésével
Egy beteg, aki már vezet nyilvántartást az Anpheros rendszerben, megkéri egy harmadik féltől származó asszisztenst, hogy készítsen kérdéseket egy kardiológiai látogatáshoz. Az ügynöknek korlátozott ideig olvasási hozzáférésre van szüksége a nyilvántartáshoz – semmi másra.
1. Beleegyezés (OAuth 2.1 + PKCE, SMART v2 hatókörök). Az asszisztens a személyt a beleegyezési oldalra irányítja a legszűkebb hatókörökkel, amelyek még lehetővé teszik a kontextust (megfigyelések, állapotok, gyógyszerek és allergiák):
import { Anpheros, OAuthAuth, OAuthFlow, generatePkce } from '@anpheros/sdk';
const flow = new OAuthFlow({ baseUrl: 'https://platform.anpheros.com', clientId: CLIENT_ID, redirectUri: REDIRECT_URI });
const pkce = await generatePkce();
const url = flow.authorizeUrl({
scopes: ['patient/Observation.rs', 'patient/Condition.rs', 'patient/MedicationStatement.rs',
'patient/AllergyIntolerance.rs', 'offline_access'],
state, pkce, purpose: 'treatment',
});
// … the person chooses the record and the duration (30–365 days) and allows; on the callback:
const tokens = await flow.exchange(code, pkce);
const anpheros = new Anpheros({ auth: new OAuthAuth({ tokens, onRefresh: flow.refresh }) });
const patient = tokens.patient!; // this application's own (pairwise) id for the person
2. Eszközök. Az ügynök futtatókörnyezete néhány funkciót tesz elérhetővé a modell számára; mindegyik egy valódi API-hívás, amelyet a hozzáférési tokennel hajtanak végre:
const tools = {
// POST /v1/context — relevant sections, within a budget, labelled with author type and source
get_context: (a: { question: string }) =>
anpheros.context.build({ patient, task: 'prepare a cardiology visit', question: a.question, budget_tokens: 2000, format: 'text' }),
// GET /v1/patients/{id}/observations?category=laboratory&code=…&from=…
list_lab_results: (a: { code?: string; from?: string }) =>
anpheros.observations.list(patient, { category: 'laboratory', code: a.code, from: a.from, limit: 20 }),
// GET /v1/patients/{id}/timeline?from=…
get_timeline: (a: { from: string }) => anpheros.timeline.list(patient, { from: a.from, limit: 50 }),
};
Írja le ezeket a modellnek az Ön által használt bármilyen eszköz- vagy funkcióhívási formátumban; a modell javasol egy hívást, a futtatókörnyezete végrehajtja, és visszaadja a JSON-t. A modell soha nem látja a tokent.
3. Amit a platform érvényesít. A token csak az adott személy nyilvántartásához és csak a hatókörbe tartozó típusokhoz fér hozzá; minden más 403 (a hatókörön kívüli típus) vagy 404 (másik beteg) hibával válaszol. Minden hívás – beleértve minden kontextus kérést, a manifest_id-mal együtt – megjelenik a személy hozzáférési naplójában ehhez az alkalmazáshoz. Ha a személy visszavonja a hozzáférést, a következő hívás 401 hibával válaszol, és az ügynöknek le kell állnia; az újratöltési token nem tudja visszaállítani.
4. Kimenet. Az ügynök a felhasznált forrásokkal együtt kérdéseket ad vissza az orvosnak. Nem ír vissza semmit, mert nem kapott írási hatókört.
Audit és származás
- Az ügynök által végzett minden hívás a rekordhoz való hozzáférésnek minősül, és megjelenik a páciens hozzáférési naplójában az Ön alkalmazása számára – beleértve minden kontextus kérést is, amely a használt szakaszok és források manifesztumát is tárolja.
- Az ügynök által írt minden tartalom
Provenance-ként AI-szerzőként kerül rögzítésre. Amikor később egy kontextus épül fel, az AI által írt értékek aai_notesalatt jelennek meg, a klinikai tényektől elkülönítve, így az ügynök nem hivatkozik saját korábbi kimenetére bizonyítékként.
Ügynökök indítása események alapján
A webhookok lehetővé teszik, hogy egy ügynök valami változásakor fusson le – például egy új laboreredmény (resource.created) vagy egy új hozzájárulás (consent.granted) esetén – ahelyett, hogy folyamatosan lekérdezné az állapotot. Az események csak az azonosítókat tartalmazzák; az ügynök ezután elolvassa azokat az adatokat, amelyekhez a hatókörei hozzáférést biztosítanak. Webhookok
Megfontolandó tervezési szabályok
- Adja meg az ügynöknek a feladat elvégzéséhez szükséges legszűkebb hatóköröket.
- Kontextusból induljon ki, ne nyers, tömeges olvasásokból; tartsa be a
omittedéswarningsszabályokat. - Mutassa be a beteg adatait a forrásokkal együtt az ügynök válaszában.
- Soha ne engedje, hogy az ügynök önállóan diagnózist állítson fel vagy kezelést változtasson; ilyen kimeneteket irányítson orvoshoz.
- Naplózza minden kontextus
manifest_id-ét az ügynök válasza mellé, hogy egy személy később láthassa, mire alapult a válasz.
Kapcsolódó
- Hogyan adjunk hozzáférést egy AI ügynöknek orvosi nyilvántartásokhoz: lépésről lépésre útmutató Pythonban
- FHIR MCP szerver AI ügynököknek
- AI egészségügyi alkalmazások
- LLM alkalmazások és egészségügyi adatok
- Hogyan építsünk orvosi chatbotot strukturált adatokkal
- Hozzájárulási és hozzáférési modell
- Hitelesítés és OAuth
- Gyógyszeres adatok egészségügyi alkalmazásokhoz és AI ügynökökhöz: a beteg listája vs. gyógyszerismereti források
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card