پرش به مطلب اصلی

مرجع ابزارهای داخلی

Agent با مجموعه‌ای از ابزارهای داخلی عرضه می‌شود که هوش مصنوعی در طول گفتگوها به طور خودکار فراخوانی می‌کند. این ابزارها به طور پیش‌فرض در گفتگوهای ماندگار در دسترس هستند؛ توسعه‌دهندگان اسکریپت معمولاً نیازی به فراخوانی مستقیم آن‌ها ندارند — هوش مصنوعی بر اساس قصد کاربر ابزار مناسب را انتخاب می‌کند.

درک اینکه این ابزارها چه کاری می‌توانند انجام دهند به شما کمک می‌کند prompt های سیستم و ابزارهای سفارشی بهتری بنویسید.

دریافت داده وب

web_fetch

محتوای یک URL را دریافت کنید، با پشتیبانی از استخراج HTML-به-متن و خلاصه‌سازی LLM.

پارامترنوعالزامیتوضیحات
urlstringبلهURL هدف (فقط http/https)
promptstringخیرprompt خلاصه (وقتی داده شود، از یک LLM برای تقطیر محتوا استفاده می‌شود)
max_lengthnumberخیرحداکثر کاراکتر محتوا

جزئیات رفتار:

  • مهلت درخواست ۳۰ ثانیه
  • محتوای HTML به طور خودکار متن بدنه اصلی را استخراج می‌کند (ناوبری، نوارهای کناری و غیره را حذف می‌کند)
  • پاسخ‌های JSON به طور خودکار تجزیه می‌شوند
  • متن ساده همان‌گونه که هست برگردانده می‌شود
  • وقتی prompt داده شود، محتوای دریافت‌شده برای خلاصه‌سازی به یک LLM ارسال می‌شود

مقدار بازگشتی:

{
"url": "https://example.com",
"content_type": "text/html",
"content": "Extracted body content...",
"truncated": false,
"final_url": "https://example.com/redirected"
}

یک موتور جستجو را پرس‌وجو کنید و نتایج جستجوی ساختاریافته را برگردانید.

پارامترنوعالزامیتوضیحات
querystringبلهکلمات کلیدی جستجو
max_resultsnumberخیرحداکثر تعداد نتایج (پیش‌فرض ۵، سقف ۱۰)

موتورهای جستجوی پشتیبانی‌شده:

موتورتوضیحاتپیکربندی لازم
DuckDuckGoموتور پیش‌فرضهیچ
BingMicrosoft Bing Searchکلید API لازم است
Baiduجستجوی Baiduبدون نیاز به کلید API
Google Custom SearchGoogle Custom Searchکلید API + شناسه CSE لازم است

موتورهای جستجو در صفحه مدیریت → Agent → تنظیمات پیکربندی می‌شوند.

مقدار بازگشتی:

[
{
"title": "Search result title",
"url": "https://example.com/result",
"snippet": "Result summary text..."
}
]

get_tab_content

محتوای رندر شده صفحه یک تب مشخص را بخوانید، که به Markdown ساختاریافته با حاشیه‌نویسی انتخابگر CSS تبدیل می‌شود.

پارامترنوعالزامیتوضیحات
tab_idnumberبلهشناسه تب
selectorstringخیرانتخابگر CSS؛ فقط قسمت مطابق را استخراج کنید
promptstringخیرprompt خلاصه
max_lengthnumberخیرحداکثر کاراکتر محتوا

تفاوت با 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_patternstringخیرتطبیق regex URL
title_patternstringخیرتطبیق regex عنوان
activebooleanخیرفقط تب فعال را برگردانید
window_idnumberخیرپنجره مشخص
audiblebooleanخیرفقط تب‌هایی که در حال پخش صدا هستند را برگردانید

open_tab

یک تب جدید باز کنید، یا یک تب موجود را هدایت کنید.

پارامترنوعالزامیتوضیحات
urlstringبلهURL هدف
tab_idnumberخیرشناسه یک تب موجود (اگر داده شود، آن تب هدایت می‌شود؛ در غیر این صورت یک تب جدید باز می‌شود)
activebooleanخیرآیا آن را فعال کنید (پیش‌فرض true)
window_idnumberخیرپنجره مشخص
wait_until_loadedbooleanخیرآیا منتظر پایان بارگذاری صفحه بمانید (پیش‌فرض true)

close_tab

یک تب را ببندید.

پارامترنوعالزامیتوضیحات
tab_idnumberبلهشناسه تب

activate_tab

یک تب را فعال کنید و پنجره‌ای که در آن است را فوکوس کنید.

پارامترنوعالزامیتوضیحات
tab_idnumberبلهشناسه تب

سیستم فایل (OPFS)

opfs_write

یک فایل در فضای کار بنویسید.

پارامترنوعالزامیتوضیحات
pathstringبلهمسیر فایل
contentstringبلهمحتوای فایل (دودویی URL داده پشتیبانی می‌شود)

opfs_read

یک فایل از فضای کار بخوانید. به طور پیش‌فرض نوع فایل به طور خودکار تشخیص داده می‌شود: فایل‌های متنی محتوای خود را برمی‌گردانند، فایل‌های دودویی یک URL blob برمی‌گردانند.

پارامترنوعالزامیتوضیحات
pathstringبلهمسیر فایل
modestringخیر"text" / "blob" / "auto" (پیش‌فرض) — حالت بازگشتی خاصی را اجباری می‌کند
offsetnumberخیرشماره خط شروع (مبتنی بر ۱)، فقط حالت متنی
limitnumberخیرتعداد خطوط برای خواندن، فقط حالت متنی (پس از بیش از ۲۰۰ خط متن، صفحه‌بندی لازم است)

opfs_list

محتوای دایرکتوری را فهرست کنید.

پارامترنوعالزامیتوضیحات
pathstringخیرمسیر دایرکتوری (پیش‌فرض دایرکتوری ریشه)

opfs_delete

یک فایل یا دایرکتوری را حذف کنید.

پارامترنوعالزامیتوضیحات
pathstringبلهمسیر فایل/دایرکتوری

تعامل با کاربر

ask_user

از کاربر یک سوال بپرسید، با پشتیبانی از ورودی آزاد یا انتخاب ساختاریافته.

پارامترنوعالزامیتوضیحات
questionstringبلهسوال
optionsstring[]خیرفهرست انتخاب‌ها (وقتی داده شود، این یک سوال چندگزینه‌ای می‌شود)
multiplebooleanخیرآیا انتخاب‌های متعدد مجاز است (پیش‌فرض false)

مهلت زمانی: پس از ۵ دقیقه بدون پاسخ، { answer: null, reason: "timeout" } را برمی‌گرداند.

مقدار بازگشتی:

{ "answer": "The user's answer text" }

execute_script

کد جاوااسکریپت را در یک صفحه یا یک sandbox اجرا کنید.

پارامترنوعالزامیتوضیحات
codestringبلهکد جاوااسکریپت
targetstringبله"page" یا "sandbox"
tab_idnumberخیرکدام تب را هدف قرار دهید وقتی target برابر page است (پیش‌فرض تب فعال فعلی)؛ برای sandbox نادیده گرفته می‌شود

مقایسه محیط اجرا:

محیطDOMJS صفحهURL blob افزونهبهترین برای
target: "page" (همیشه دنیای MAIN)بلهبلهخیرخواندن/دستکاری DOM، فراخوانی توابع صفحه، خواندن متغیرهای صفحه
target: "sandbox"خیرخیرخیرمحاسبات خالص

حالت page همیشه در دنیای MAIN صفحه اجرا می‌شود و window را با صفحه به اشتراک می‌گذارد — بنابراین نمی‌تواند به URLهای blob خود افزونه دسترسی پیدا کند (مثلاً آدرسی که opfs_read در حالت blob برمی‌گرداند). وقتی نیاز به کار با یک URL blob دارید به جای آن از یک SkillScript استفاده کنید.

زیرعامل‌ها

agent

یک زیرعامل مستقل برای مدیریت یک کار فرعی پیچیده ایجاد کنید.

پارامترنوعالزامیتوضیحات
promptstringبلهتوضیحات کار فرعی
descriptionstringخیریک برچسب کوتاه (چند کلمه، برای نمایش در رابط کاربری)
typestringخیرنوع زیرعامل (به زیر مراجعه کنید)، پیش‌فرض "general"
tab_idnumberخیرشناسه تب برای دادن به زیرعامل؛ زیرعامل روی آن تب کار می‌کند

انواع زیرعامل:

نوعتوضیحاتابزارهای موجود
researcherبازیابی اطلاعات (فقط‌خواندنی)web_search، web_fetch، خواندن محتوای صفحه
page_operatorاتوماسیون مرورگرمدیریت تب، دستکاری DOM، تعامل با صفحه
generalعمومی (پیش‌فرض)همه ابزارها

ویژگی‌ها:

  • یک زیرعامل زمینه گفتگوی مستقل خود را دارد
  • نمی‌تواند از ask_user یا agent استفاده کند (برای جلوگیری از بازگشت)
  • رویدادهای یک زیرعامل از طریق sub_agent_event به گفتگوی والد منتقل می‌شوند

مدیریت کار

این گروه از ابزارها یک فهرست کار موقت در یک گفتگو را مدیریت می‌کنند (در حافظه، نه ماندگار).

create_task

پارامترنوعالزامیتوضیحات
subjectstringبلهعنوان کار
descriptionstringخیرتوضیحات دقیق

update_task

پارامترنوعالزامیتوضیحات
task_idstringبلهشناسه کار
statusstringخیر"pending" / "in_progress" / "completed"
subjectstringخیرعنوان جدید
descriptionstringخیرتوضیحات جدید

list_tasks

بدون پارامتر؛ یک فهرست کوتاه از همه کارها را برمی‌گرداند.

ابزارهای مدیریت کار عمدتاً برای این هستند که هوش مصنوعی پیشرفت خود را در حین مدیریت کارهای پیچیده چندمرحله‌ای پیگیری کند؛ داده کار ماندگار نمی‌شود.