Skip to main content
تكامل أداة هو نقطة نهاية HTTP قابلة لإعادة الاستخدام يمكن للوكيل استدعاؤها أثناء مكالمة. تزوّد ThunderPhone بوصف مخطط JSON للأداة بالإضافة إلى عنوان URL لنقطة النهاية؛ ويقرر الوكيل متى يستدعيها بناءً على المحادثة، ثم تُجري ThunderPhone طلب HTTP صادرًا من خوادمها وتعيد الاستجابة إلى الوكيل.
تغطي لوحة التحكم معظم احتياجات الأدوات دون واجهة برمجة التطبيقات هذه: يربط الاتصالات → التطبيقات Slack وHubSpot وSalesforce وGoogle Calendar وGoogle Sheets وCal.com ببضع نقرات OAuth؛ ويحوّل الاتصالات → واجهات برمجة التطبيقات أي واجهة برمجة تطبيقات HTTP إلى إجراء للوكيل (الصق أمر cURL وسيُعدّ معالج ذكاء اصطناعي مسودة الأداة، مع اختبار طلب مضمّن)؛ ويضيف الاتصالات → MCP خوادم MCP. راجع الاتصالات. هذا الدليل هو واجهة برمجة التطبيقات الأساسية الكامنة خلف واجهات برمجة التطبيقات.
يشرح هذا الدليل إنشاء أداة للبحث عن الطقس من البداية إلى النهاية.

بنية الأداة

جزآن:
  1. المخطط — تعريف دالة بأسلوب OpenAI ({type: "function", function: {name, description, parameters}}) يوضح لنموذج اللغة الكبير ما الذي تفعله الأداة وما الوسيطات التي تقبلها.
  2. نقطة النهاية — عنوان URL الذي تستدعيه خوادم ThunderPhone عندما يقرر نموذج اللغة الكبير استخدام الأداة. يكون الطلب JSON POST مع الوسيطات التي اختارها نموذج اللغة الكبير في النص.

1. اختر استراتيجية التخزين

مضمنة في الوكيل

أرفق أداة تُستخدم لمرة واحدة بمصفوفة tools الخاصة بالوكيل. بسيط، لكنه غير قابل لإعادة الاستخدام.

تكامل محفوظ

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

2. أنشئ التكامل

احفظ id الذي تمت إعادته (وهو UUID).
ابذل جهدًا حقيقيًا في كتابة description للأداة ولكل مَعلمة. يستخدم نموذج اللغة الكبير هذه السلاسل وقت التشغيل ليقرر ما إذا كان سيستدعي الأداة وكيفية استدعائها. أوصاف غامضة ← استدعاءات أدوات غامضة.

3. اختبر نقطة النهاية في بيئة الاختبار

قبل ربط التكامل بوكيل، أرسل طلبًا موقّعًا من خوادم ThunderPhone لتأكيد الاتصال:
Response
يعزّز هذا الاختبار أيضًا وسائل الحماية من SSRF في ThunderPhone — إذ تعيد الطلبات إلى localhost أو نطاقات عناوين IP الخاصة 400 code=url_not_allowed.

4. اربط التكامل بوكيل

أرفقه عبر integration_ids عند إنشاء وكيل أو تحديثه:
يمكنك ربط عدة تكاملات بوكيل واحد. يمكن لموجّه الوكيل الإشارة إليها بالاسم — “استخدم get_weather عندما يسأل المتصل عن الأحوال الجوية” — أو يمكنه اكتشافها ضمنيًا من أوصاف المخطط.

5. نفّذ نقطة النهاية

عندما يستدعي الوكيل الأداة، يرسل ThunderPhone طلب POST موقّعًا إلى endpoint_url الخاص بك:
يستجيب خادمك ببيانات JSON تُعاد إلى نموذج اللغة الكبير:
يستوعب نموذج اللغة الكبير تلك الاستجابة ويتحدث بملخص مفهوم إلى المتصل.
يُحتسب التوقيع على نص الطلب الخام باستخدام secret نفسه المستخدم لنقطة نهاية webhook الخاصة بك. تحقق منه — نقاط نهاية الأدوات مكشوفة للإنترنت وتخضع لمخاوف الانتحال نفسها الخاصة بـ webhooks. راجع التحقق من توقيعات webhook.

6. اختبر الحلقة

شغّل جلسة ميكروفون على الوكيل واطرح السؤال الذي تعالجه أداتك (“ما حالة الطقس في 94110؟”). يعرض النص المفرغ للمكالمة الرحلة الكاملة ذهابًا وإيابًا:
يمكنك جلب ذلك عبر GET /v1/calls/{call_id}/transcript؛ ويتوفر تدفق الأحداث الخام (مع التوقيت لكل إدخال وإزاحات الصوت) في GET /v1/calls/{call_id}/history.

أخطاء شائعة

يقرر نموذج اللغة الكبير بناءً على وصف الأداة. إذا لم يتطابق سؤال المتصل مع الوصف، فلن يستدعي النموذج الأداة. حسّن الوصف (أضف المرادفات والصياغات الشائعة) أو اذكرها صراحةً في موجّه الوكيل (“عندما يسأل المتصل عن الطقس، استخدم get_weather.”).
تُقتطع الاستجابات التي تتجاوز 6 كيلوبايت في معاينة النص المفرغ. أعد الحقول التي يحتاجها نموذج اللغة الكبير فقط — وليس الصف كاملًا.
تحتوي نقاط نهاية الأدوات على مهلة افتراضية مدتها 10 ثوانٍ. إذا احتجت إلى مدة أطول، عالج الأمر بشكل غير متزامن: أعد {"status": "pending", "request_id": "..."} واعرض النتيجة عبر استدعاء أداة منفصل.
ينشئ كل PATCH للتكامل مراجعة جديدة. افحص GET /v1/integrations/{id}/versions لمعرفة من غيّر ماذا. إذا أفسدت مخطط أداة، يمكنك التراجع يدويًا بإرسال PATCH للقطات أقدم مرة أخرى.

الخطوات التالية

مرجع التكاملات

CRUD، النقل، سجل الإصدارات.

مواصفات أدوات الدوال

قواعد JSON Schema الكاملة وعقد نقطة النهاية الموقّعة.

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

طبّق نمط توقيع webhook على نقاط نهاية الأدوات.

واجهة برمجة تطبيقات النص المفرغ + السجل

افحص الدورة الكاملة ذهابًا وإيابًا لاستدعاء أداة.