AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Πράκτορες AI και ιατρικά δεδομένα

Ελεγχόμενη πρόσβαση για πράκτορες AI σε αρχεία ασθενών: πεδία OAuth, τα εργαλεία που χρειάζεται ένας πράκτορας, έλεγχος και προέλευση όσων διαβάζει και γράφει, και πράκτορες που βασίζονται σε συμβάντα.

Ένας AI agent είναι ένα πρόγραμμα στο οποίο ένα γλωσσικό μοντέλο αποφασίζει, βήμα προς βήμα, ποιες ενέργειες θα εκτελέσει — ποια δεδομένα θα διαβάσει, ποιο εργαλείο θα καλέσει, τι θα γράψει — για να ολοκληρώσει μια εργασία. Όταν η εργασία περιλαμβάνει το ιατρικό αρχείο ενός ασθενούς, ο agent χρειάζεται ελεγχόμενη πρόσβαση: θα πρέπει να φτάνει μόνο στα αρχεία που του επιτρέπεται, μόνο στα μέρη τους που χρειάζεται, να αφήνει ίχνος από ό,τι διάβασε και να επισημαίνει ό,τι έγραψε ως παραγόμενο από AI. Το Anpheros παρέχει αυτήν την ελεγχόμενη πρόσβαση μέσω του API του. Το framework του agent και το μοντέλο είναι δικά σας.

Το Anpheros δεν έχει ενσωματωμένο runtime agent, ούτε διακομιστή Model Context Protocol (MCP), ούτε επίσημη ενσωμάτωση με οποιοδήποτε framework agent ή πάροχο μοντέλου. Οι agents το χρησιμοποιούν όπως κάθε εφαρμογή: μέσω του REST και FHIR API ή των SDKs.

Η αρχιτεκτονική

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

Το μοντέλο προτείνει ενέργειες· το runtime σας τις εκτελεί με τα διαπιστευτήρια που κατέχει. Το ίδιο το μοντέλο δεν κατέχει ποτέ κλειδί ή token Anpheros.

Ελεγχόμενη πρόσβαση

Εργαλεία που χρειάζεται συνήθως ένας πράκτορας

Εργαλείο Κλήση Anpheros Σημειώσεις
Λήψη πλαισίου για μια εργασία POST /v1/context η πρώτη κλήση για τις περισσότερες εργασίες· προϋπολογισμένη και με ετικέτα πηγής (LLM applications and healthcare data)
Λίστα πρόσφατων αποτελεσμάτων GET /v1/patients/{id}/observations?category=laboratory&from=… φίλτρα: category, code, from, to
Ενεργά φάρμακα GET /v1/patients/{id}/medications?status=active
Τι συνέβη πότε GET /v1/patients/{id}/timeline?from=… μία χρονολογική λίστα μεταξύ τύπων
Πλήρης λεπτομέρεια FHIR GET /fhir/R4/{type}?patient=… όταν μια σύνοψη δεν αρκεί
Τυπική σύνοψη GET /fhir/R4/Patient/{id}/$summary International Patient Summary bundle
Αναζήτηση κωδικού GET /v1/terminology/loinc?q=… υποσύνολο LOINC σε πακέτο· φάρμακα μέσω GET /v1/search
Καταγραφή σημείωσης POST /v1/patients/{id}/observations με author_type: "ai" μόνο με εύρος εγγραφής

Η προδιαγραφή OpenAPI (https://developers.anpheros.com/openapi.json) περιγράφει κάθε endpoint και μπορεί να μετατραπεί σε ορισμούς εργαλείων· τα SDK TypeScript και Dart μπορούν να ενσωματωθούν απευθείας ως εργαλεία.

Παράδειγμα: πράκτορας προετοιμασίας επίσκεψης με τη συγκατάθεση του ασθενούς

Ένας ασθενής που ήδη διατηρεί αρχείο στο Anpheros ζητά από έναν βοηθό τρίτου μέρους να προετοιμάσει ερωτήσεις για μια καρδιολογική επίσκεψη. Ο πράκτορας χρειάζεται πρόσβαση ανάγνωσης στο αρχείο για περιορισμένο χρονικό διάστημα — τίποτα παραπάνω.

1. Συγκατάθεση (OAuth 2.1 + PKCE, SMART v2 scopes). Ο βοηθός στέλνει το άτομο στη σελίδα συγκατάθεσης με τα στενότερα scopes που εξακολουθούν να επιτρέπουν ένα πλαίσιο (παρατηρήσεις, καταστάσεις, φάρμακα και αλλεργίες):

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. Εργαλεία. Το runtime του πράκτορα εκθέτει μερικές λειτουργίες στο μοντέλο. Κάθε μία είναι μια πραγματική κλήση API που γίνεται με το access token:

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 }),
};

Περιγράψτε τις στο μοντέλο σε οποιαδήποτε μορφή εργαλείου ή κλήσης συνάρτησης χρησιμοποιεί το API του μοντέλου σας. Το μοντέλο προτείνει μια κλήση, το runtime σας την εκτελεί και επιστρέφει το JSON. Το μοντέλο δεν βλέπει ποτέ το token.

3. Τι επιβάλλει η πλατφόρμα. Το token φτάνει μόνο στο αρχείο αυτού του ατόμου και μόνο στους τύπους που έχουν scope. Οτιδήποτε άλλο απαντά 403 (ένας τύπος εκτός των scopes) ή 404 (άλλος ασθενής). Κάθε κλήση — συμπεριλαμβανομένου κάθε αιτήματος πλαισίου, με το manifest_id του — εμφανίζεται στο αρχείο καταγραφής πρόσβασης του ατόμου για αυτήν την εφαρμογή. Εάν το άτομο ανακαλέσει την πρόσβαση, η επόμενη κλήση απαντά 401 και ο πράκτορας πρέπει να σταματήσει. Το refresh token δεν μπορεί να τον επαναφέρει.

4. Έξοδος. Ο πράκτορας επιστρέφει ερωτήσεις για τον γιατρό με τις πηγές που χρησιμοποίησε. Δεν γράφει τίποτα πίσω, επειδή δεν του δόθηκε scope εγγραφής.

Έλεγχος και προέλευση

Εκκίνηση πρακτόρων από συμβάντα

Οι Webhooks επιτρέπουν σε έναν πράκτορα να εκτελεστεί όταν κάτι αλλάζει — ένα νέο αποτέλεσμα εργαστηρίου (resource.created), μια νέα συγκατάθεση (consent.granted) — αντί για polling. Τα συμβάντα μεταφέρουν μόνο αναγνωριστικά (ids). Ο πράκτορας στη συνέχεια διαβάζει ό,τι επιτρέπουν τα πεδία εμβέλειάς του. Webhooks

Κανόνες σχεδιασμού που αξίζει να τηρηθούν

  1. Δώστε στον πράκτορα τα στενότερα δυνατά πεδία (scopes) που ολοκληρώνουν την εργασία.
  2. Ξεκινήστε από ένα πλαίσιο (context), όχι από ακατέργαστες μαζικές αναγνώσεις (bulk reads). Σεβαστείτε τα omitted και warnings.
  3. Εμφανίστε τις πηγές δεδομένων του ασθενούς στην απάντηση του πράκτορα.
  4. Ποτέ μην επιτρέψετε στον πράκτορα να παρουσιάσει διάγνωση ή να αλλάξει θεραπεία από μόνος του. δρομολογήστε τέτοιες εξόδους σε έναν κλινικό ιατρό.
  5. Καταγράψτε το manifest_id κάθε πλαισίου (context) δίπλα στην απάντηση του πράκτορα, ώστε ένα άτομο να μπορεί αργότερα να δει σε τι βασίστηκε η απάντηση.

Σχετικά

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy