التوثيق التفاعلي
يقدّم كل تطبيق Agent-Lab توثيق OpenAPI 3 تلقائياً — التنفيذ المرجعي متاح على
http://localhost:18000/docs (أو على تطبيقك
أينما كان يعمل). يوثّق الكتالوج أدناه الموجّهات المدمجة في الإطار؛
وتظهر extra_routers الخاصة بك في المخطط نفسه.
المصادقة
عندما تكون قيمة auth.enabled هي true (راجع مرجع الإعدادات)،
تتطلب المسارات رمز bearer من Keycloak. ولا يُركَّب الموجّه /auth إلا عند تفعيل
المصادقة:
TOKEN=$(curl -s -X POST https://<host>/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "…", "password": "…"}' | jq -r '.access_token')
curl -s https://<host>/agents/list -H "Authorization: Bearer $TOKEN" | jq| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
| POST | /auth/login |
إنشاء رمز bearer جديد |
| POST | /auth/renew |
تجديد رمز bearer موجود |
| POST | /auth/exchange |
مبادلة رمز تفويض Microsoft Entra ID (PKCE) برمز للتطبيق |
| GET | /auth/profile |
الحصول على الملف الشخصي للمستخدم المصادَق عليه |
| PUT | /auth/profile |
تحديث الملف الشخصي للمستخدم المصادَق عليه |
يتناول المصادقة باستخدام Keycloak إعداد الـ realm والعميل.
المسارات التي لا تتطلب مصادقة: /status/*، و/docs، و/openapi.json، و/mcp، و/static،
ونقاط نهاية OAuth المعروفة (well-known)، ونقطة تركيب SPA — أما كل ما عدا ذلك فيتطلب رمزاً
صالحاً.
نقاط النهاية
الوكلاء
أنشئ نسخاً من أي نوع وكيل مسجّل؛ ويُتحقق من agent_type ديناميكياً
مقابل السجل.
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
| GET | /agents/list |
عرض قائمة بجميع نسخ الوكلاء |
| GET | /agents/types |
عرض أنواع الوكلاء المسجّلة (السجل) |
| GET | /agents/{agent_id} |
الحصول على نسخة وكيل بواسطة المعرّف |
| POST | /agents/create |
إنشاء نسخة وكيل جديدة |
| POST | /agents/update |
تحديث المعلومات الأساسية لوكيل |
| POST | /agents/update_setting |
تحديث إعداد واحد للوكيل |
| POST | /agents/{agent_id}/reset_settings |
إعادة إعدادات الوكيل إلى قيمها الافتراضية |
| DELETE | /agents/delete/{agent_id} |
حذف نسخة وكيل |
| WS | /agents/ws/task_updates/{agent_id} |
تدفق WebSocket لتحديثات تقدّم المهام في العمليات الطويلة |
الرسائل
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
| POST | /messages/post |
إرسال رسالة إلى وكيل والحصول على الرد |
| POST | /messages/list |
عرض رسائل وكيل ما |
| GET | /messages/{message_id} |
الحصول على تفاصيل الرسالة الموسّعة (الردود، والمرفق) |
| DELETE | /messages/delete/{message_id} |
حذف رسالة |
النماذج اللغوية
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
| GET | /llms/list |
عرض النماذج اللغوية المُعدّة |
| GET | /llms/{language_model_id} |
الحصول على نموذج لغوي وإعداداته |
| POST | /llms/create |
إنشاء نموذج لغوي جديد |
| POST | /llms/update |
تحديث إعدادات نموذج لغوي |
| POST | /llms/update_setting |
تحديث إعداد واحد لنموذج لغوي |
| DELETE | /llms/delete/{language_model_id} |
حذف نموذج لغوي |
التكاملات
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
| GET | /integrations/list |
عرض التكاملات الخارجية (مزوّدو الذكاء الاصطناعي) |
| GET | /integrations/{integration_id} |
الحصول على تفاصيل التكامل |
| POST | /integrations/create |
إنشاء تكامل (تُخزَّن بيانات الاعتماد في Vault) |
| DELETE | /integrations/delete/{integration_id} |
حذف تكامل |
المرفقات
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
| GET | /attachments/list |
عرض المرفقات |
| GET | /attachments/download/{attachment_id} |
تنزيل مرفق |
| POST | /attachments/upload |
رفع ملف مرفق |
| POST | /attachments/embeddings |
توليد تضمينات لمرفق |
الحالة وMCP
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
| GET | /status/liveness |
فحص الحيوية (liveness) |
| GET | /status/readiness |
فحص الجاهزية (readiness) |
| GET | /status/metrics |
مقاييس Prometheus |
| * | /mcp |
خادم MCP (Streamable HTTP) |
| GET | /.well-known/oauth-protected-resource/mcp |
بيانات OAuth الوصفية لعملاء MCP |
أمثلة على الطلبات
إنشاء نسخة وكيل — يقبل agent_name المحارف [a-zA-Z0-9_-]؛
ويجب أن يكون agent_type نوعاً مسجّلاً؛ أما language_model_id فاختياري:
curl -s -X POST http://localhost:18000/agents/create \
-H "Content-Type: application/json" \
-d '{
"agent_name": "support-agent-1",
"agent_type": "coordinator_planner_supervisor",
"language_model_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}' | jqإرسال رسالة — تكون قيمة message_role إحدى القيم human أو assistant أو tool؛
وattachment_id اختياري:
curl -s -X POST http://localhost:18000/messages/post \
-H "Content-Type: application/json" \
-d '{
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"message_role": "human",
"message_content": "Summarize the attached report.",
"attachment_id": null
}' | jqتحديث إعداد وكيل — يقبل setting_key المحارف [a-zA-Z_-]؛
ويتسع setting_value لما يصل إلى 16,000 حرف (هنا تُخزَّن قوالب الموجّهات وحمولات JSON
— راجع نموذج نطاق الكيانات):
curl -s -X POST http://localhost:18000/agents/update_setting \
-H "Content-Type: application/json" \
-d '{
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"setting_key": "system_prompt",
"setting_value": "You are a concise research assistant…"
}' | jqالاصطلاحات
- المعرّفات من نوع UUID؛ وتقبل جميع نقاط نهاية القوائم أجسام JSON، لا سلاسل الاستعلام.
- الإعدادات أزواج مفتاح-قيمة تُخزَّن مع الوكيل أو النموذج — وبهذه الطريقة يشغّل التنفيذ نفسه نسخاً عديدة بإعدادات مختلفة.
- السجل هو المصدر المعتمد للقيم الصالحة لـ
agent_type— نفّذGET /agents/typesلترى ما اكتشفه التطبيق قيد التشغيل (بما في ذلك حزمك الخاصة عبرscan_packages).