Skip to Content
مرجع APIاستعلام Agent

استعلام Agent

شغّل agent مقابل استعلام واستقبل إجابته. يدعم الـ endpoint الواحد وضعين، يُختاران بحقل stream في جسم الطلب: استجابة JSON حاجبة (الافتراضي) أو استجابة Server-Sent Events متدفقة.

يتطلب تشغيل agent الـ scope بقيمة agents:query. يُقاس كل استعلام مقابل حصة استعلام خطتك من جهة الخادم — تجاوزها يُرجع 429 على المسار الحاجب، أو حدث error واحد على مسار التدفق.

POST /agents/{agent_id}/query

شغّل الـ agent المُعرَّف بـ agent_id.

Scope: agents:query · النجاح: 200

المعاملفيالنوعمطلوبالوصف
agent_idpathstringنعمالـ agent المراد تشغيله.
querybodystringنعماستعلام المستخدم (1–10000 حرفًا).
streambodybooleanلاعندما يكون true، يُرجع تدفق SSE. الافتراضي false.
conversation_idbodystringلامتابعة محادثة متعددة الأدوار. له الأسبقية على session_id.
session_idbodystringلاkey بديلة متعددة الأدوار (تُتجاهَل إذا كان conversation_id مضبوطًا).
Idempotency-Keyheaderstringلاkey إعادة محاولة آمنة ضد التكرار. تُحترَم على المسار الحاجب؛ وتُتجاهَل عندما يكون stream: true.

الوضع الحاجب (الافتراضي)

مع حذف stream أو ضبطه على false، يُرجع الـ endpoint جسم JSON واحدًا بمجرد اكتمال التشغيل.

curl -X POST https://cuneiform.chat/api/developer/v1/agents/agt_7c1d8e/query \ -H "Authorization: Bearer cuk_live_xxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "query": "What is the parental leave policy?" }'
{ "agent_id": "agt_7c1d8e", "conversation_id": "conv_4d8a1f", "response": "Eligible employees receive 16 weeks of paid parental leave...", "tools_used": [ { "name": "knowledge_search", "status": "complete" } ], "usage": { "prompt_tokens": 820, "completion_tokens": 145, "total_tokens": 965 }, "latency_ms": 1840, "created_at": "2026-06-07T12:00:00Z" }
الحقلالنوعالوصف
agent_idstringالـ agent الذي شُغِّل.
conversation_idstring | nullأرسله مجددًا كـ conversation_id لمتابعة المحادثة.
responsestringنص إجابة الـ agent.
tools_usedarrayالأدوات التي استدعاها الـ agent، كلٌّ كـ {name, status}. status هو complete أو error.
usageobjectعدّات الرموز: prompt_tokens، completion_tokens، total_tokens. لا تُرجَع أي تكلفة.
latency_msinteger | nullزمن استجابة فعلي بالمللي ثانية.
created_atstring | nullمتى أُجيب على الاستعلام (ISO-8601).

لمتابعة محادثة متعددة الأدوار، أرسل الـ conversation_id من استجابة سابقة في الاستدعاء التالي.

وضع التدفق (SSE)

مع stream: true، يُرجع الـ endpoint text/event-stream من Server-Sent Events. اضبط stream: true في الجسم، واقرأ الاستجابة تدريجيًا.

curl -N -X POST https://cuneiform.chat/api/developer/v1/agents/agt_7c1d8e/query \ -H "Authorization: Bearer cuk_live_xxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "query": "What is the parental leave policy?", "stream": true }'

مخطط أحداث v1

يُصدِر تدفق v1 ستة أسماء أحداث بالضبط. يُسقَط أي حدث داخلي آخر — لا يرى عميلك سوى هذه:

الحدثمتىحمولة data:
startبدأ التشغيل.{ "agent_id", "conversation_id" }
contentجزء تدريجي من نص الإجابة.{ "delta": "..." }
tool_callبدأ استدعاء أداة.{ "tool": "...", "status": "running" }
tool_resultانتهى استدعاء أداة.{ "tool": "...", "status": "complete" }
doneاكتمل التشغيل.{ "tokens_used", "latency_ms", "conversation_id" }
errorفشل التشغيل أو رُفِض (مثل تجاوز الحصة).{ "error": "..." }

لا يظهر حقل تكلفة على أي حدث — يحمل done عدّات الرموز والزمن فقط.

نسخة نموذجية

يبدو التشغيل المتدفق الناجح هكذا على السلك:

event: start data: {"agent_id": "agt_7c1d8e", "conversation_id": "conv_4d8a1f"} event: content data: {"delta": "Eligible employees receive "} event: tool_call data: {"tool": "knowledge_search", "status": "running"} event: tool_result data: {"tool": "knowledge_search", "status": "complete"} event: content data: {"delta": "16 weeks of paid parental leave."} event: done data: {"tokens_used": 965, "latency_ms": 1840, "conversation_id": "conv_4d8a1f"}

اجمع قيم delta من كل حدث content لبناء الإجابة الكاملة. يشير حدث done إلى نهاية التدفق.

يصل الرفض — على سبيل المثال، تجاوز حصة استعلامك — كحدث error واحد:

event: error data: {"error": "Query allowance exceeded."}

الأخطاء: 400، 401، 403 (scope)، 404 agent_not_found، 429 (حصة الاستعلام، المسار الحاجب)، 500.

Last updated on