Skip to main content
تتيح أدوات الدوال لوكلاء الذكاء الاصطناعي استدعاء واجهات API خارجية أثناء المكالمات الهاتفية. استخدمها للبحث عن بيانات العملاء، والتحقق من التوافر، وحجز المواعيد، أو تنفيذ أي إجراء تدعمه الواجهة الخلفية لديك.

آلية العمل

  1. عرّف الأدوات باستخدام مخطط (الوسائط التي تقبلها الأداة)
  2. وفّر إعداد endpoint (المكان الذي يستدعي فيه ThunderPhone واجهة API الخاصة بك) — أو اتركه فارغًا لتلقي استدعاءات الأدوات على خطاف الويب الخاص بمؤسستك
  3. أثناء المكالمة، يقرر الذكاء الاصطناعي متى يستخدم أداةً بناءً على المحادثة
  4. يستدعي ThunderPhone نقطة النهاية لديك باستخدام وسائط الأداة
  5. تُعاد استجابة واجهة API الخاصة بك إلى الذكاء الاصطناعي لمتابعة المحادثة
أدوات الدوال هي المسار الذي يتيح لك استخدام واجهة API الخاصة بك. يوفّر ThunderPhone أيضًا أدوات مُدارة من المنصة لا تحتاج إلى نقطة نهاية: اتصالات التطبيقات (HubSpot، Salesforce، Slack، Google Calendar، Google Sheets، Cal.com)، اتصالات API، و خوادم MCP.

مخطط الأداة

تتبع كل أداة هذه البنية:

تعريف الدالة

إعداد نقطة النهاية

لا يُرسل إعداد endpoint إلى نموذج الذكاء الاصطناعي — إذ يستخدمه ThunderPhone فقط لتنفيذ استدعاء الأداة.

مسارا الاستدعاء

يعتمد الطلب الذي يتلقاه خادمك على ما إذا كانت الأداة تحتوي على endpoint: كلا المسارين حاجبان — ينتظر الذكاء الاصطناعي النتيجة في منتصف الجملة — بمهلة 20 ثانية. اجعل المعالجات سريعة. لا بأس من المزج: في مكالمة تكون لدى مؤسستها عنوان URL لخطاف ويب، تُستدعى الأدوات التي تحتوي على endpoint مباشرةً، بينما تعود الأدوات الأخرى إلى خطاف الويب.

استدعاءات نقاط النهاية المباشرة

عندما يستدعي الذكاء الاصطناعي أداة تحتوي على endpoint، يرسل ThunderPhone طلبًا إلى عنوان URL الخاص بك:

رؤوس الطلب

تُضمَّن الرؤوس المخصصة من endpoint.headers دائمًا حرفيًا، بالإضافة إلى رأسين ضمن نطاق ThunderPhone:
  • X-ThunderPhone-Signature — ‏HMAC-SHA256 لبايتات نص الطلب الدقيقة، باستخدام سر webhook الخاص بمؤسستك كمفتاح
  • X-ThunderPhone-Call-ID — معرّف المكالمة الحالية
يتم تعيين Content-Type: application/json ما لم تقم endpoint.headers بتجاوزه — إذ تكون الأولوية لـ Content-Type المخصص.
يُستخدم سر webhook على مستوى المؤسسة من GET /v1/webhook كمفتاح للتوقيع. إذا لم تكن مؤسستك قد هيأت webhook القديم من قبل، فلن يكون هناك سر، وستحمل استدعاءات الأدوات X-ThunderPhone-Call-ID فقط — وقد يرفضها معالج يفشل بشكل قاطع عند غياب التوقيع. إما هيّئ webhook القديم للحصول على سر، أو ضع سرًا مشتركًا خاصًا بك في endpoint.headers.

نص الطلب

بالنسبة إلى POST / PUT / PATCH، لا يحتوي النص إلا على وسائط الأداة فقط (من دون غلاف)، ويُسلسَل بصيغة معيارية (مفاتيح مرتبة، وفواصل مضغوطة):
بالنسبة إلى GET / DELETE، تُرسل الوسائط كـ معلمات استعلام ويكون النص فارغًا — ويُحتسب التوقيع حينها على سلسلة البايتات الفارغة. راجع التحقق من تواقيع webhook.

الاستجابة

أعد استجابة JSON تحتوي على نتيجة الأداة:
تُنسَّق الاستجابة وتُقدَّم إلى الذكاء الاصطناعي لمتابعة المحادثة. تُغلَّف الاستجابات غير JSON بالشكل {"data": "<text>"}؛ وتُبلَّغ مهلات الانتظار وإخفاقات الاتصال إلى الذكاء الاصطناعي كأخطاء، لكي يتمكن الوكيل من الاعتذار والمتابعة بدلًا من التوقف.

التوزيع في وضع Webhook

تُوزَّع الأدوات التي لا تحتوي على endpoint إلى عنوان URL الخاص بـ webhook القديم لمؤسستك كطلب موقّع من telephony.tool (مكالمات هاتفية) أو web.tool (مكالمات ويب). بخلاف إشعارات التدقيق التي تُسلَّم إلى نقاط نهاية webhook بعد التنفيذ، فإن هذا الطلب هو التنفيذ — استجابة HTTP الخاصة بك هي نتيجة الأداة.
يحمل web.toolorigin_domain بدلًا من from_number / to_number. استجب بنتيجة الأداة بصيغة JSON — وفق عقد الاستجابة نفسه لاستدعاءات نقاط النهاية المباشرة. يُوقَّع الطلب باستخدام سر webhook الخاص بالمؤسسة على النص الخام، مثل كل webhook آخر.
تتلقى نقاط نهاية webhook المشتركة أيضًا إشعارًا غير حاجب من telephony.tool / web.tool بعد تنفيذ كل أداة (أيًّا كان المسار الذي شغّلها)، بما في ذلك استجابة الأداة — وهو مفيد لسجلات التدقيق. راجع فهرس الأحداث.

التحقق من التوقيع

تُوقَّع استدعاءات الأدوات المباشرة بالطريقة نفسها التي تُوقَّع بها خطافات الويب:
  • HMAC-SHA256 على وحدات البايت الدقيقة لنص الطلب (JSON القياسي — مفاتيح مرتبة، دون مسافات بيضاء إضافية)
  • باستخدام سر خطاف الويب الخاص بمؤسستك كمفتاح
  • توقّع أدوات GET / DELETE سلسلة البايت الفارغة
تتوفر الوصفات الكاملة — بما في ذلك حالة النص الفارغ والتنبيه المتعلق بعدم وجود سر — في التحقق من توقيعات خطافات الويب.

مثال: تدفق حجز كامل

إليك مجموعة من الأدوات لنظام كامل لحجز المواعيد:

أفضل الممارسات

يساعد الحقل description الذكاء الاصطناعي على فهم متى يستخدم الأداة. حدّد بوضوح ما تفعله ومتى يكون استخدامها مناسبًا.
أعد رسائل أخطاء يمكن للذكاء الاصطناعي فهمها: {"error": "No slots available for that date"} بدلًا من أخطاء 500 العامة.
أعد فقط ما يحتاجه الذكاء الاصطناعي لمتابعة المحادثة. تؤدي الحمولات الكبيرة إلى إبطاء أوقات الاستجابة.
علّم الحقول بأنها required فقط عند الضرورة الفعلية. سيطلب الذكاء الاصطناعي من المستخدم المعلومات المطلوبة قبل استدعاء الأداة.

ذو صلة

اتصالات التطبيقات

أدوات تديرها المنصة لـ HubSpot وSalesforce وSlack وGoogle Calendar وGoogle Sheets وCal.com — لا يلزم وجود نقطة نهاية.

خوادم MCP

أرفق خادم MCP ودع الوكيل يستدعي أدواته.

اتصالات API

عمليات تكامل REST قابلة لإعادة الاستخدام يمكنك إرفاقها بالوكلاء.

تحقق من تواقيع webhook

مساعد تحقق واحد لطلبات webhook واستدعاءات الأدوات.