Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
وكلاء الذكاء الاصطناعي والبيانات الطبية
الوصول المتحكم فيه لوكلاء الذكاء الاصطناعي إلى سجلات المرضى: نطاقات OAuth، الأدوات التي يحتاجها الوكيل، التدقيق وأصل ما يقرأه ويكتبه، والوكلاء المستندون إلى الأحداث.
وكيل الذكاء الاصطناعي هو برنامج يقرر فيه نموذج اللغة، خطوة بخطوة، الإجراءات التي يجب اتخاذها — البيانات التي يجب قراءتها، الأداة التي يجب استدعاؤها، ما يجب كتابته — لإكمال مهمة. عندما تتضمن المهمة السجل الطبي للمريض، يحتاج الوكيل إلى وصول مُتحكم فيه: يجب أن يصل فقط إلى السجلات المسموح له بها، فقط الأجزاء التي يحتاجها منها، ويترك أثرًا لما قرأه ويضع علامة على ما كتبه على أنه تم إنشاؤه بواسطة الذكاء الاصطناعي. يوفر Anpheros هذا الوصول المُتحكم فيه من خلال واجهة برمجة التطبيقات (API) الخاصة به؛ إطار عمل الوكيل والنموذج ملك لك.
لا يمتلك Anpheros وقت تشغيل وكيل مدمج، ولا خادم بروتوكول سياق النموذج (MCP)، ولا تكامل رسمي مع أي إطار عمل وكيل أو مزود نموذج. تستخدمه الوكلاء بالطريقة التي تستخدمها بها أي تطبيق: من خلال واجهة برمجة التطبيقات (API) REST و FHIR أو حزم تطوير البرامج (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
يقترح النموذج إجراءات؛ يقوم وقت التشغيل الخاص بك بتنفيذها باستخدام بيانات الاعتماد التي يمتلكها. لا يمتلك النموذج نفسه مفتاح Anpheros أو رمزًا مميزًا أبدًا.
الوصول المتحكم فيه
- سجلات من؟ باستخدام مفتاح API، يرى الوكيل المرضى الذين أنشأهم مشروعك. للتصرف على سجل شخص موجود، يحتاج إلى منح OAuth من هذا الشخص - لمريض واحد، لمدة 30 إلى 365 يومًا.
- أي بيانات. تحدد النطاقات (Scopes) أنواع الموارد والإجراءات، اختياريًا لفئة:
patient/Observation.rs?category=laboratoryتسمح للوكيل بقراءة والبحث عن نتائج المختبر ولا شيء آخر. لبناء سياق، يجب أن تسمح المنحة بقراءة الملاحظات (Observations)، والحالات (Conditions)، والأدوية (Medications)، والحساسية (Allergies) (على سبيل المثالpatient/*.rs). - للقراءة فقط افتراضيًا. امنح نطاقات الكتابة (Write scopes) فقط عندما يُقصد بالوكيل تسجيل شيء ما.
- قابل للإلغاء. يمكن للشخص إلغاء المنحة في أي وقت؛ سيتم رفض استدعاء الوكيل التالي.
الأدوات التي يحتاجها الوكيل عادةً
| الأداة | استدعاء Anpheros | ملاحظات |
|---|---|---|
| الحصول على سياق لمهمة | POST /v1/context |
الاستدعاء الأول لمعظم المهام؛ مُدرج في الميزانية ومُصنّف المصدر (تطبيقات LLM وبيانات الرعاية الصحية) |
| سرد النتائج الأخيرة | 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 |
حزمة ملخص المريض الدولي |
| البحث عن رمز | GET /v1/terminology/loinc?q=… |
مجموعة فرعية مجمعة من LOINC؛ الأدوية عبر GET /v1/search |
| تسجيل ملاحظة | POST /v1/patients/{id}/observations مع author_type: "ai" |
فقط مع نطاق كتابة |
يصف مواصفات OpenAPI (https://developers.anpheros.com/openapi.json) كل نقطة نهاية ويمكن تحويلها إلى تعريفات أدوات؛ يمكن تغليف حزم تطوير البرامج TypeScript و Dart كأدوات مباشرة.
مثال: وكيل تحضير زيارة بموافقة المريض
يطلب مريض لديه سجل بالفعل في Anpheros من مساعد طرف ثالث إعداد أسئلة لزيارة أمراض القلب. يحتاج الوكيل إلى الوصول للقراءة إلى السجل لفترة محدودة - لا شيء أكثر.
1. الموافقة (OAuth 2.1 + PKCE، نطاقات SMART v2). يرسل المساعد الشخص إلى صفحة الموافقة بأضيق النطاقات التي لا تزال تسمح بالسياق (الملاحظات، الحالات، الأدوية والحساسية):
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. الأدوات. يكشف وقت تشغيل الوكيل عن عدد قليل من الوظائف للنموذج؛ كل منها عبارة عن استدعاء API حقيقي يتم إجراؤه باستخدام رمز الوصول:
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 الخاص بنموذجك لأدوات أو استدعاءات الوظائف؛ يقترح النموذج استدعاءً، ويقوم وقت التشغيل الخاص بك بتشغيله ويعيد JSON. لا يرى النموذج الرمز أبدًا.
3. ما يفرضه النظام الأساسي. يصل الرمز إلى سجل هذا الشخص فقط والنطاقات المحددة فقط؛ أي شيء آخر يجيب بـ 403 (نوع خارج النطاقات) أو 404 (مريض آخر). كل استدعاء - بما في ذلك كل طلب سياق، مع manifest_id الخاص به - يظهر في سجل وصول الشخص لهذا التطبيق. إذا ألغى الشخص الوصول، فإن الاستدعاء التالي يجيب بـ 401 ويجب على الوكيل التوقف؛ لا يمكن لرمز التحديث إعادته.
4. المخرجات. يعيد الوكيل أسئلة للطبيب مع المصادر التي استخدمها. لا يكتب شيئًا مرة أخرى، لأنه لم يتم منحه نطاق كتابة.
التدقيق والمصدر
- كل استدعاء يقوم به الوكيل هو وصول إلى السجل ويظهر في سجل وصول المريض لتطبيقك — بما في ذلك كل طلب سياق، والذي يخزن أيضًا بيانًا بالأقسام والمصادر المستخدمة.
- كل ما يكتبه الوكيل يتم تسجيله على أنه مكتوب بواسطة الذكاء الاصطناعي في
Provenance. عند بناء سياق لاحقًا، يتم إدراج القيم المكتوبة بواسطة الذكاء الاصطناعي تحتai_notes، بصرف النظر عن الحقائق السريرية، حتى لا ينتهي الأمر بالوكيل بالاستشهاد بمخرجاته السابقة كدليل.
بدء الوكلاء من الأحداث
تسمح خطافات الويب (Webhooks) بتشغيل وكيل عند حدوث تغيير — نتيجة مختبر جديدة (resource.created)، موافقة جديدة (consent.granted) — بدلاً من الاستقصاء. تحمل الأحداث المعرفات فقط؛ ثم يقرأ الوكيل ما تسمح به نطاقاته. خطافات الويب
قواعد تصميم جديرة بالاحتفاظ بها
- امنح الوكيل أضيق النطاقات التي تكمل المهمة.
- ابدأ من سياق، وليس من قراءات مجمعة خام؛ احترم
omittedوwarnings. - اعرض مصادر بيانات المريض في إجابة الوكيل.
- لا تسمح للوكيل أبدًا بتقديم تشخيص أو تغيير علاج من تلقاء نفسه؛ قم بتوجيه هذه المخرجات إلى طبيب.
- سجل
manifest_idلكل سياق بجوار إجابة الوكيل، حتى يتمكن الشخص لاحقًا من رؤية ما استندت إليه الإجابة.
ذات الصلة
- كيفية منح وكيل الذكاء الاصطناعي حق الوصول إلى السجلات الطبية: دليل تفصيلي بلغة Python
- خادم FHIR MCP لوكلاء الذكاء الاصطناعي
- تطبيقات الرعاية الصحية بالذكاء الاصطناعي
- تطبيقات LLM وبيانات الرعاية الصحية
- كيفية بناء روبوت محادثة طبي ببيانات منظمة
- نموذج الموافقة والوصول
- المصادقة و OAuth
- بيانات الأدوية لتطبيقات الرعاية الصحية ووكلاء الذكاء الاصطناعي: قائمة المريض مقابل مصادر معرفة الأدوية
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card