مرجع الواجهات البرمجية

مرجع الواجهات البرمجية
الواجهات البرمجية وWebhooks وMCP.

اربط أنظمتك وأدوات الذكاء الاصطناعي لديك بالوكلاء الذين تشغّلهم بي في لك.

آخر تحديث: 4 أكتوبر 2026

01

نظرة عامة

تبني بي في وكلاءك وتشغّلهم. وتتيح هذه الواجهات لأنظمتك وأدوات الذكاء الاصطناعي لديك العمل معهم:

  • واجهات REST البرمجية: لبدء المهام، ومتابعة نتائجها، والتعامل مع الموافقات، وقراءة سجلات التدقيق.
  • Webhooks: لتصلك إشعارات فور انتهاء مهمة أو حين يحتاج وكيل إلى قرار.
  • MCP: لتتيح لمساعدي الذكاء الاصطناعي الذين يدعمون بروتوكول Model Context Protocol استخدام وكلاء بي في لديك كأدوات، ولتتيح لوكلائك استخدام خوادم MCP الخاصة بك.

يُهيّأ الوصول لكل مشروع على حدة: نفعّل نقاط النهاية وأحداث Webhooks وأدوات MCP التي يحتاجها مشروعك، ونرسل إليك التفاصيل مع بيانات الاعتماد. جديد على بي في؟ ابدأ من التوثيق.

02

المصادقة

تستخدم جميع الطلبات HTTPS وJSON. يأتي عنوانك الأساسي ومفتاح API مع مشروعك، وتستخدم الأمثلة $PV_API_URL و$PV_API_KEY. أرسل المفتاح كرمز Bearer. الطلبات التي لا تحمل مفتاحاً صالحاً تُعيد 401.

الترويسة
Authorization: Bearer $PV_API_KEY

تقتصر صلاحيات المفاتيح على مؤسستك والأذونات المتفق عليها لمشروعك. أبقِها خارج نظام إدارة الشيفرة المصدرية وخارج الشيفرة التي تعمل في المتصفح، ويمكنك أن تطلب منا تدوير أي مفتاح في أي وقت.

03

عرض الوكلاء

GET/agents
GET/agents/{agent_id}

تُعيد الوكلاء الذين تشغّلهم بي في لمؤسستك مع حالتهم (active أو paused). يبني فريقنا الوكلاء ويهيّئهم، لذلك لا توجد نقاط نهاية لإنشائهم أو حذفهم. تواصل معنا لطلب وكيل جديد أو تعديل.

الاستجابة · 200
{
  "data": [
    {
      "id": "agt_123",
      "name": "invoice-processor",
      "description": "Reads supplier invoices and files them in the ERP.",
      "status": "active"
    }
  ],
  "next_cursor": null
}
04

بدء مهمة

POST/tasks
جسم الطلب
agent_idstring · مطلوب

الوكيل الذي سينجز العمل.

inputstring | object · مطلوب

ما المطلوب إنجازه، أو البيانات التي سيعمل عليها.

metadataobject

بياناتك الخاصة على شكل مفتاح وقيمة، تُعاد مع المهمة وفي Webhooks.

الاستجابة · 202
{
  "id": "tsk_456",
  "agent_id": "agt_123",
  "status": "queued",
  "created_at": "2026-10-04T09:01:00Z"
}
05

جلب مهمة

GET/tasks/{task_id}

تمر المهمة بالحالات queued وrunning وawaiting_approval، وتنتهي بإحدى الحالات succeeded أو failed أو cancelled. عند انتهائها يحمل الحقل output النتيجة. ولتجنّب الاستعلام المتكرر، استخدم Webhooks.

الاستجابة · 200
{
  "id": "tsk_456",
  "status": "succeeded",
  "output": "Filed 42 invoices. 3 need review.",
  "started_at": "2026-10-04T09:01:02Z",
  "finished_at": "2026-10-04T09:04:40Z"
}
06

إلغاء مهمة

POST/tasks/{task_id}/cancel

توقف مهمة في قائمة الانتظار أو قيد التنفيذ أو بانتظار موافقة. تُعيد المهمة بالحالة cancelled.

07

الموافقات

GET/approvals
POST/approvals/{approval_id}/approve
POST/approvals/{approval_id}/reject

الخطوات التي حدّدتها على أنها حساسة، مثل دفعة مالية أو رسالة إلى عميل، توقف المهمة مؤقتاً وتُنشئ طلب موافقة. يمكنك الموافقة عليه أو رفضه من هنا، أو من منصة بي في، أو من أدواتك الخاصة عبر حدث Webhook approval.requested.

جسم طلب الرفض
reasonstring

سبب رفض الخطوة. يظهر لفريقنا ويُسجَّل.

08

سجلات التدقيق

GET/audit-logs

كل إجراء يتخذه الوكيل: ماذا فعل، ومتى، وفي أي نظام.

معاملات الاستعلام
agent_idstring

السجلات الخاصة بهذا الوكيل فقط.

task_idstring

السجلات الخاصة بهذه المهمة فقط.

sinceISO 8601 timestamp

السجلات اللاحقة لهذا الوقت فقط.

09

Webhooks

زوّدنا بنقطة نهاية HTTPS واختر الأحداث التي تريدها. نرسل طلب POST بجسم JSON لكل حدث.

الأحداث
task.succeededevent

انتهت مهمة. يتضمن مخرجاتها.

task.failedevent

تعذّر إكمال مهمة. يتضمن السبب.

approval.requestedevent

وكيل ينتظر موافقة شخص على خطوة.

agent.pausedevent

أُوقف وكيل مؤقتاً، من قِبلك أو من قِبل فريقنا.

الحمولة
{
  "id": "evt_789",
  "type": "task.succeeded",
  "created_at": "2026-10-04T09:04:40Z",
  "data": {
    "task_id": "tsk_456",
    "agent_id": "agt_123",
    "output": "Filed 42 invoices. 3 need review.",
    "metadata": { "batch": "2026-10-04" }
  }
}

تحقّق من كل طلب. يحمل كل طلب الترويسة PV-Signature، وهي قيمة HMAC-SHA256 للجسم الخام محسوبة باستخدام سر Webhook الخاص بك. قارنها قبل الوثوق بالحمولة.

Node.js
import crypto from "node:crypto";

function isFromPV(rawBody, signature, secret) {
  const expected = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
  return signature.length === expected.length &&
    crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}

ردّ بأي رمز 2xx خلال 10 ثوانٍ. يُعاد إرسال الطلبات التي فشل تسليمها بفواصل زمنية متزايدة لمدة تصل إلى 24 ساعة. استخدم id الخاص بالحدث لتجاهل التكرارات.

10

MCP

بروتوكول Model Context Protocol (MCP) معيار مفتوح لربط تطبيقات الذكاء الاصطناعي بالأدوات والبيانات. وتدعمه بي في في الاتجاهين.

استخدم وكلاء بي في من مساعد الذكاء الاصطناعي لديك. أضف خادم بي في MCP إلى أي مساعد متوافق مع MCP يستخدمه فريقك، ليتمكن من بدء المهام ومتابعة نتائجها نيابةً عنك.

خادم MCP
URL:            $PV_API_URL/mcp
Transport:      Streamable HTTP
Authorization:  Bearer $PV_API_KEY
الأدوات
list_agentstool

الوكلاء المتاحون لك وما يفعله كل منهم.

run_tasktool

بدء مهمة لوكيل. بالقواعد نفسها المطبقة على POST /tasks.

get_tasktool

حالة المهمة ومخرجاتها.

list_approvalstool

الخطوات التي تنتظر الموافقة. تبقى الموافقة بيد الأشخاص، عبر منصة بي في أو الواجهات البرمجية.

دع وكلاءك يستخدمون خوادم MCP الخاصة بك. إذا كانت لدى أنظمتك خوادم MCP بالفعل، نربط وكلاءك بها، بصلاحية القراءة فقط ما لم توافق على أكثر من ذلك. وإن لم تكن لديها، يمكننا بناء خادم لها.

11

تقسيم النتائج إلى صفحات

تقبل نقاط النهاية التي تُعيد قوائم المعاملين limit (من 1 إلى 100، والافتراضي 20) وcursor. مرّر قيمة next_cursor من الاستجابة لجلب الصفحة التالية، وتكون قيمتها null في الصفحة الأخيرة.

12

الأخطاء

تستخدم الأخطاء رموز حالة HTTP القياسية وجسماً موحّد البنية:

{
  "error": {
    "code": "not_found",
    "message": "No task with id tsk_999."
  }
}
رموز الحالة
400invalid_request

جسم الطلب أو معاملاته غير صالحة.

401unauthorized

مفتاح API مفقود أو غير صالح.

403forbidden

المفتاح أو الوكيل لا يملك الإذن المطلوب.

404not_found

المورد غير موجود.

429rate_limited

طلبات كثيرة جداً. أعد المحاولة بعد المدة المحددة في الترويسة Retry-After.

500server_error

حدث خطأ من جهتنا. يمكن إعادة المحاولة بأمان.

لديك أسئلة؟

إذا كان أي شيء في هذه الصفحة غير واضح، يسعد فريقنا مساعدتك. راسلنا على hello@pvemirates.com أو استخدم نموذج التواصل.

تواصل معنا