مرجع الأدوات المدمجة
يأتي Agent مع مجموعة من الأدوات المدمجة التي يستدعيها الذكاء الاصطناعي تلقائياً أثناء الحوارات. هذه الأدوات متاحة افتراضياً في الحوارات المستمرة؛ عادةً لا يحتاج مطورو السكرپتات إلى استدعائها مباشرة — يختار الذكاء الاصطناعي الأداة المناسبة بناءً على نية المستخدم.
فهم ما يمكن لهذه الأدوات فعله يساعدك في كتابة مطالبات نظام وأدوات مخصصة أفضل.
جلب بيانات الويب
web_fetch
يجلب محتوى رابط، مع استخراج HTML إلى نص ودعم تلخيص LLM.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
url | string | نعم | الرابط الهدف (http/https فقط) |
prompt | string | لا | مطالبة الملخص (عند توفيرها، يُستخدم LLM لتقطير المحتوى) |
max_length | number | لا | الحد الأقصى لأحرف المحتوى |
تفاصيل السلوك:
- مهلة الطلب 30 ثانية
- يستخرج محتوى HTML تلقائياً النص الرئيسي للجسم (يزيل التنقل والأشرطة الجانبية إلخ)
- تُحلل استجابات JSON تلقائياً
- يُرجع النص العادي كما هو
- عند توفير
prompt، يُرسل المحتوى المجلوب إلى LLM للتلخيص
قيمة الإرجاع:
{
"url": "https://example.com",
"content_type": "text/html",
"content": "Extracted body content...",
"truncated": false,
"final_url": "https://example.com/redirected"
}
web_search
يستعلم محرك بحث ويرجع نتائج بحث منظمة.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
query | string | نعم | كلمات البحث |
max_results | number | لا | الحد الأقصى لعدد النتائج (الافتراضي 5، الحد الأقصى 10) |
محركات البحث المدعومة:
| المحرك | الوصف | التكوين المطلوب |
|---|---|---|
| DuckDuckGo | المحرك الافتراضي | لا شيء |
| Bing | Microsoft Bing Search | مفتاح API مطلوب |
| Baidu | Baidu Search | لا يتطلب مفتاح API |
| Google Custom Search | Google Custom Search | مفتاح API + معرف CSE مطلوبان |
يتم تكوين محركات البحث على صفحة الإدارة → Agent → الإعدادات.
قيمة الإرجاع:
[
{
"title": "Search result title",
"url": "https://example.com/result",
"snippet": "Result summary text..."
}
]
get_tab_content
يقرأ محتوى صفحة تبويب محدد كما تم تقديمه، محولاً إلى Markdown منظم مع شروح محددات CSS.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
tab_id | number | نعم | معرف التبويب |
selector | string | لا | محدد CSS؛ يستخرج الجزء المطابق فقط |
prompt | string | لا | مطالبة الملخص |
max_length | number | لا | الحد الأقصى لأحرف المحتوى |
الفرق عن web_fetch: get_tab_content يقرأ الصفحة كما قدمها المتصفح بالفعل (بما في ذلك محتوى JS الديناميكي)، بينما يقوم web_fetch بطلب HTTP جديد.
قيمة الإرجاع:
{
"tab_id": 123,
"url": "https://example.com",
"title": "Page title",
"content": "Structured content...",
"truncated": false,
"used_selector": "main"
}
إدارة التبويبات
list_tabs
يستعلم عن التبويبات المفتوحة، مع دعم عدة شروط تصفية.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
url_pattern | string | لا | مطابقة regex للرابط |
title_pattern | string | لا | مطابقة regex للعنوان |
active | boolean | لا | إرجاع التبويب النشط فقط |
window_id | number | لا | نافذة محددة |
audible | boolean | لا | إرجاع التبويبات التي تشغل صوتاً حالياً فقط |
open_tab
يفتح تبويباً جديداً، أو ينقل في تبويب موجود.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
url | string | نعم | الرابط الهدف |
tab_id | number | لا | معرف تبويب موجود (إذا وُفر، يُنقل ذلك التبويب؛ وإلا يُفتح تبويب جديد) |
active | boolean | لا | يحدد ما إذا كان سيتم تفعيله (الافتراضي true) |
window_id | number | لا | نافذة محددة |
wait_until_loaded | boolean | لا | يحدد ما إذا كان سيتم الانتظار حتى اكتمال تحميل الصفحة (الافتراضي true) |
close_tab
يغلق تبويباً.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
tab_id | number | نعم | معرف التبويب |
activate_tab
ينشط تبويباً ويضع نافذته في المقدمة.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
tab_id | number | نعم | معرف التبويب |
نظام الملفات (OPFS)
opfs_write
يكتب ملفاً في مساحة العمل.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
path | string | نعم | مسار الملف |
content | string | نعم | محتوى الملف (يدعم عنوان بيانات ثنائي) |
opfs_read
يقرأ ملفاً من مساحة العمل. افتراضياً يتم اكتشاف نوع الملف تلقائياً: الملفات النصية تُرجع محتواها، والملفات الثنائية تُرجع رابط blob.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
path | string | نعم | مسار الملف |
mode | string | لا | "text" / "blob" / "auto" (الافتراضي) — يفرض وضع إرجاع محدد |
offset | number | لا | رقم سطر البداية (يبدأ من 1)، وضع النص فقط |
limit | number | لا | عدد الأسطر المراد قراءتها، وضع النص فقط (الترقيم الصفحي مطلوب بمجرد تجاوز النص 200 سطر) |
opfs_list
يسرد محتويات دليل.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
path | string | لا | مسار الدليل (الافتراضي: الدليل الجذر) |
opfs_delete
يحذف ملفاً أو دليلاً.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
path | string | نعم | مسار الملف/الدليل |
التفاعل مع المستخدم
ask_user
يسأل المستخدم سؤالاً، مع دعم إدخال حر أو اختيار منظم.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
question | string | نعم | السؤال |
options | string[] | لا | قائمة الاختيارات (عند توفيرها، يصبح سؤال اختيار من متعدد) |
multiple | boolean | لا | يحدد ما إذا كانت الاختيارات المتعددة مسموحة (الافتراضي false) |
المهلة: يرجع { answer: null, reason: "timeout" } بعد 5 دقائق دون استجابة.
قيمة الإرجاع:
{ "answer": "The user's answer text" }
execute_script
ينفذ كود JavaScript في صفحة أو معزل.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
code | string | نعم | كود JavaScript |
target | string | نعم | "page" أو "sandbox" |
tab_id | number | لا | التبويب الهدف عندما يكون target هو page (الافتراضي: التبويب النشط الحالي)؛ يُتجاهل للمعزل |
مقارنة بيئات التنفيذ:
| البيئة | DOM | JS الصفحة | رابط blob للإضافة | مثالية لـ |
|---|---|---|---|---|
target: "page" (دائماً وضع MAIN) | نعم | نعم | لا | قراءة/معالجة الـ DOM، استدعاء دوال الصفحة، قراءة متغيرات الصفحة |
target: "sandbox" | لا | لا | لا | الحساب الخالص |
يعمل وضع
pageدائماً في وضع MAIN للصفحة، مشاركاًwindowمع الصفحة — لذا لا يمكنه الوصول إلى روابط blob الخاصة بالإضافة (مثل الرابط الذي يرجعopfs_readفي وضع blob). استخدم SkillScript بدلاً من ذلك عندما تحتاج إلى العمل مع رابط blob.
الوكلاء الفرعيون
agent
يطلق وكيلاً فرعياً مستقلاً للتعامل مع مهمة فرعية معقدة.
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
prompt | string | نعم | وصف المهمة الفرعية |
description | string | لا | تسمية قصيرة (بضع كلمات، لعرض الواجهة) |
type | string | لا | نوع الوكيل الفرعي (انظر أدناه)، الافتراضي: "general" |
tab_id | number | لا | معرف التبويب المرسل إلى الوكيل الفرعي؛ سيعمل الوكيل الفرعي على ذلك التبويب |
أنواع الوكلاء الفرعيين:
| النوع | الوصف | الأدوات المتاحة |
|---|---|---|
researcher | استرجاع المعلومات (قراءة فقط) | web_search, web_fetch, قراءة محتوى الصفحة |
page_operator | أتمتة المتصفح | إدارة التبويبات، معالجة الـ DOM، التفاعل مع الصفحة |
general | للأغراض العامة (الافتراضي) | جميع الأدوات |
الخصائص:
- للوكيل الفرعي سياق حوار مستقل خاص به
- لا يمكنه استخدام
ask_userأوagent(لمنع التكرار) - تُمرر أحداث الوكيل الفرعي إلى الحوار الأصلي عبر
sub_agent_event
إدارة المهام
تدير هذه المجموعة من الأدوات قائمة مهام مؤقتة داخل حوار (في الذاكرة، غير محفوظة).
create_task
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
subject | string | نعم | عنوان المهمة |
description | string | لا | وصف تفصيلي |
update_task
| المعامل | النوع | إلزامي | الوصف |
|---|---|---|---|
task_id | string | نعم | معرف المهمة |
status | string | لا | "pending" / "in_progress" / "completed" |
subject | string | لا | عنوان جديد |
description | string | لا | وصف جديد |
list_tasks
لا معلمات؛ يرجع قائمة موجزة بجميع المهام.
أدوات إدارة المهام مخصصة أساساً لتتبع الذكاء الاصطناعي لتقدمه أثناء معالجة مهام معقدة متعددة الخطوات؛ لا تُحفظ بيانات المهام.