jq. تحول هذه الوصفات بيانات المراقبة في AgentEye إلى شيء يمكن لمستخدم الطرفية أو وكيل ترميز AI (Claude Code، Cursor) أن يستعلم عنه ويأتمتته، دون الحاجة للنقر عبر لوحة التحكم.
الأنماط أدناه جاهزة للنسخ واللصق لـ AgentEye CLI (agenteye). للتثبيت والمصادقة وقائمة الخيارات الكاملة، انظر CLI؛ شغّل agenteye -h أو agenteye <command> -h للمساعدة المدمجة.
القواعد الذهبية
- الخيارات العامة تأتي قبل الأمر.
agenteye --json sessionsصحيح؛agenteye sessions --jsonغير صحيح. الخيارات العامة هي--json,--base-url,--org,--token,--insecure/--secure,--timeout,--quiet,--no-color. - مرّر
--jsonكلما قمت بتحليل الإخراج. تذهب البيانات إلى stdout كـ JSON؛ رسائل الحالة والأخطاء البشرية تذهب إلى stderr، لذا يبقى stdout نظيفًا للتوجيه إلىjq. - تفرع بناءً على رمز الخروج، وليس على نص stderr:
0حسنًا ·2وسائط سيئة ·3لا يمكن الوصول إلى لوحة التحكم ·4لم تقم بتسجيل الدخول أو انتهت الجلسة ·5إذن مفقود. - اكتشف مع
-h. كل أمر يوثّق مرشحاته وتنسيقات القيمة وشكل JSON.
إعداد لمرة واحدة
تأكد من المصادقة قبل القيام بالعمل
whoami لا يخطئ أبدًا على جلسة مفقودة أو منتهية الصلاحية؛ بدلاً من ذلك يبلّغ عن logged_in:false، لذا يمكن للوكيل أن يفحص حالة المصادقة بأمان. (لا يزال يمكنه الخروج برمز غير صفري إذا لم يتم تعيين عنوان URL أساسي أو كانت لوحة التحكم غير قابلة للوصول.)
ابحث عن الجلسات التي تفشل أو ذات الدرجات المنخفضة
evals، وليس sessions. --score KEY:MIN..MAX قابل للتكرار ويتم دمجه مع AND؛ كلا الحدين اختياري (..0.5 يعني ≤ 0.5، 0.9.. يعني ≥ 0.9). يمكنك تمرير ما يصل إلى 20 مرشح درجة لكل طلب؛ المزيد يعيد HTTP 400. sessions يشارك مرشحات --env, --status, --agent-id, --session-id ونطاق الوقت مع evals، لكنه لا يحتوي على --score.
اقرأ جلسة واحدة من البداية للنهاية
لا يوجد أمر واحدsession show — ادمج مسار الحدث مع تقييم الجلسة:
احصل على كل شيء (الترقيم)
النتائج هي الأحدث أولاً والترقيم بواسطة المؤشر.اختصر الإخراج مع —fields
قيّد المفاتيح (في الجدول و--json) لتقليل ما يجب على الوكيل قراءته.
2) مع القائمة الصحيحة، وهي طريقة رخيصة لاكتشاف أسماء الحقول.
اكتشف قيم المرشح الصحيحة
اختر منظمتك (متعدد المستأجرين)
إذا كنت تنتمي إلى أكثر من منظمة واحدة، اختر المستأجر النشط عند تسجيل الدخول (سيتم حفظه):--org يخرج برمز غير صفري ويطبع المنظمات للاختيار من بينها.
توفير مفتاح API لـ SDK/المجمِّع
شغّل استعلامًا محفوظًا أو مخصصًا
فرز حادثة طارئة بدون تفاعل
التغييرات تخطي تلقائيًا مطالبة التأكيد الخاصة بها تحت--jsonأو عندما لا تكون stdin TTY، لذا لا تتعلق الوكلاء؛ مرّر--yes/-yلتخطيها صراحة في مكان آخر.
معالجة رمز الخروج في سكريبت
أشكال إخراج JSON
| الأمر | stdout JSON (مع --json) |
|---|---|
whoami | {"logged_in": true, "id", "email", "is_instance_admin", "active_org", "permissions": [...], "memberships": [...]} أو {"logged_in": false} |
orgs list | {"active_org", "orgs": [{"org_slug","org_name","permission_set","permissions"}]} |
events | {"events": [...], "next_cursor": <cursor or null>} |
evals | {"evaluations": [...], "next_cursor": <cursor or null>} |
sessions | {"sessions": [...], "next_cursor": <cursor or null>} |
errors | {"errors": [...], "next_cursor": <cursor or null>} |
list <kind> | {"kind", "values": [...]} |
keys list / keys create | {"keys": [...]} / {id, name, permissions, created_at, key} (يظهر key مرة واحدة) |
query run | {columns: [{name,type}], rows: [[...]], truncated, elapsed_ms} |
users list / settings list | {"users": [...]} / {"settings": [...]} |
alerts list / incidents list | {"alerts": [...]} / {"incidents": [...]} |
| إنشاء/تحديث/حذف (أي) | كائن المورد، أو {"deleted": true, "id"} للحذف |
فشل (أي، مع --json) | {"error": "...", "exit_code": <n>, "status"?: <http>, "hint"?: "..."} على stdout |
- كل عنصر حدث (
events):id, session_id, agent_id, event_type, ts, payload, environment. - كل عنصر تقييم (
evals):id, session_id, agent_id, environment, status, scores, reasoning, summary, error, attempt_count, duration_ms, completed_at, created_at. - كل عنصر جلسة (
sessions):session_id, agent_id, environment, status, scores, event_count, started_at, last_event_at, first_event_id, last_event_id, latest_evaluation.
--fields لكل أمر بالضبط أسماء حقول عنصره الخاص — تختلف المجموعة بين sessions وevals، لذا قد يتم رفض الاسم الصحيح لأحدهما من قبل الآخر.
