ساخت عاملهای استفاده از رایانه (CUA)
عاملهای استفاده از رایانه میتوانند به همان روشی که یک فرد تعامل میکند، با وبسایتها ارتباط برقرار کنند: با باز کردن مرورگر، بررسی صفحه و انجام بهترین اقدام بعدی بر اساس آنچه میبینند. در این درس، شما یک عامل خودکارسازی مرورگر خواهید ساخت که در Airbnb جستوجو میکند، دادههای ساختاریافته لیستها را استخراج میکند و ارزانترین اقامت در استکهلم را شناسایی میکند.
این درس ترکیبی است از Browser-Use برای ناوبری هدایتشده توسط هوش مصنوعی، Playwright و پروتکل توسعهدهندگان Chrome (CDP) برای کنترل مرورگر، Azure OpenAI برای استدلال مبتنی بر دید، و Pydantic برای استخراج ساختارمند.
معرفی
این درس شامل موارد زیر است:
- فهمیدن اینکه چه زمانی عاملهای استفاده از رایانه نسبت به خودکارسازی صرفاً از طریق API مناسبتر هستند
- ترکیب Browser-Use با Playwright و CDP برای مدیریت قابل اعتماد چرخه عمر مرورگر
- استفاده از بینایی Azure OpenAI و خروجی ساختاریافته Pydantic برای استخراج دادههای لیست از صفحات وب پویا
- تصمیمگیری درباره استفاده از فرآیند خودکارسازی مرورگر مبتنی بر عامل، بازیگر، یا ترکیبی
اهداف یادگیری
پس از اتمام این درس، شما خواهید دانست چگونه:
- پیکربندی Browser-Use با Azure OpenAI و Playwright
- ساخت فرآیند خودکارسازی مرورگر که در یک وبسایت واقعی ناوبری میکند و عناصر UI پویا را مدیریت میکند
- استخراج نتایج تایپ شده از محتوای قابل مشاهده صفحه و تبدیل آنها به منطق کسبوکار پاییندست
- انتخاب بین الگوهای عامل و بازیگر بر اساس پیشبینیپذیری مأموریت مرورگر
نمونه کد
این درس شامل یک دفترچه آموزش است:
- 15-browser-user.ipynb: یک جلسه Chrome را از طریق CDP راهاندازی میکند، در Airbnb برای لیستهای استکهلم جستجو میکند، قیمتها را با دید Browser-Use استخراج میکند، و ارزانترین گزینه را بهصورت داده ساختاریافته بازمیگرداند.
پیشنیازها
- پایتون نسخه 3.12 به بالا
- تنظیم استقرار Azure OpenAI در محیط شما
- نصب Chrome یا Chromium به صورت محلی
- نصب وابستگیهای Playwright
- آشنایی پایه با پایتون غیرهمگام (async)
راهاندازی
بستههای استفادهشده در دفترچه را نصب کنید:
pip install browser_use playwright python-dotenv
playwright install chromium
متغیرهای محیطی Azure OpenAI که دفترچه استفاده میکند را تنظیم کنید:
AZURE_OPENAI_ENDPOINT=...
AZURE_OPENAI_API_KEY=...
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME=...
# اختیاری: در صورت حذف، به طور پیشفرض به آخرین نسخه API تغییر میکند
AZURE_OPENAI_API_VERSION=...
مرور معماری
دفترچه یک فرآیند خودکارسازی مرورگر ترکیبی را نشان میدهد:
- کروم با CDP فعال راهاندازی میشود تا هم Playwright و هم Browser-Use بتوانند همان جلسه مرورگر را به اشتراک بگذارند.
- یک عامل Browser-Use وظایف ناوبری باز و تعاملی مانند باز کردن Airbnb، رد کردن پاپآپها و جستجوی استکهلم را مدیریت میکند.
- صفحه فعال با استفاده از طرح ساختاری Pydantic بررسی میشود تا عناوین لیستها، قیمتهای شبانه، رتبهبندیها و URLها استخراج شود.
- منطق پایتون لیستهای استخراجشده را مقایسه کرده و ارزانترین نتیجه را برجسته میکند.
این رویکرد قدرت استدلال مبتنی بر بینایی انعطافپذیر Browser-Use را حفظ میکند و در عین حال کنترل قطعی مرورگر را زمانی که لازم است به شما میدهد.
نکات کلیدی و بهترین شیوهها
چه زمانی از عامل و چه زمانی از بازیگر استفاده کنیم
| سناریو |
استفاده از عامل |
استفاده از بازیگر |
| چیدمانهای پویا |
بله، هوش مصنوعی میتواند با تغییرات صفحه سازگار شود |
خیر، انتخابگرهای شکننده ممکن است خراب شوند |
| ساختار شناختهشده |
خیر، عامل کندتر از کنترل مستقیم است |
بله، سریع و دقیق |
| یافتن عناصر |
بله، زبان طبیعی خوب کار میکند |
خیر، انتخابگرهای دقیق نیاز است |
| کنترل زمانبندی |
خیر، کمتر قابل پیشبینی است |
بله، کنترل کامل بر انتظارها و تلاشهای مجدد دارد |
| جریانهای کار پیچیده |
بله، وضعیتهای UI غیرمنتظره را مدیریت میکند |
خیر، نیاز به شاخهبندی صریح دارد |
بهترین شیوههای Browser-Use
- با یک عامل برای اکتشاف و ناوبری پویا شروع کنید.
- وقتی تعامل قابل پیشبینی شد، به کنترل مستقیم صفحه تغییر دهید.
- از مدلهای خروجی ساختاریافته استفاده کنید تا دادههای استخراجشده اعتبارسنجیشده و تایپایمن باشند.
- پس از اقداماتی که باعث تغییرات قابل مشاهده UI میشوند، به طور استراتژیک تأخیر اضافه کنید.
- هنگام تکرار، اسکرینشات بگیرید تا اشکالزدایی شکستها آسانتر باشد.
- انتظار تغییر وبسایتها را داشته باشید و استراتژیهای پشتیبان برای پاپآپها و تغییرات چیدمان طراحی کنید.
- الگوهای عامل و بازیگر را ترکیب کنید تا هم انعطافپذیری و هم دقت را بدست آورید.
محافظتهای ایمنی برای عوامل مرورگر
عوامل مرورگر روی وبسایتهای زنده کار میکنند، بنابراین نیاز به محدودیتهای سختگیرانهتری نسبت به اسکریپتی که فقط یک API شناختهشده را فراخوانی میکند، دارند. قبل از انتقال از یک نمونه دفترچه به یک گردش کار واقعی، کنترلهای مرتبط با آنچه عامل میتواند ببیند، کلیک کند و ارسال کند را تعریف کنید.
- حیطه مرور را محدود کنید. عامل را در یک پروفایل مرورگر اختصاصی یا سندباکس اجرا کنید و آن را به دامنههای مورد نیاز برای کار محدود کنید.
- مشاهده را از عمل جدا کنید. اجازه دهید عامل ابتدا جستوجو کند، بخواند و داده استخراج کند؛ مرحله تأیید صریح قبل از ارسال فرمها، ارسال پیامها، رزرو سفر، خرید، حذف رکوردها یا تغییر تنظیمات حساب را اجباری کنید.
- رمزها و اطلاعات حساس را از متن درخواست و ردیابیها دور نگه دارید. رمز عبور، جزئیات پرداخت، کوکیهای جلسه یا دادههای شخصی خام را در متن مدل قرار ندهید. اجازه دهید کاربر برای احراز هویت وارد عمل شود و فیلدهای حساس را از گزارشها حذف کند.
- محتوای صفحه را به عنوان ورودی غیرقابل اعتماد در نظر بگیرید. یک وبسایت ممکن است دستورالعملهایی برای عامل داشته باشد که برای کاربر نیست. عامل باید متن صفحه که از آن میخواهد هدفش را تغییر دهد، دادهها را افشا کند، محافظها را غیرفعال کند یا به سایتهای نامرتبط برود را نادیده بگیرد.
- از بررسیهای قطعی در اطراف مراحل پرخطر استفاده کنید. URL فعلی، عنوان صفحه، آیتم انتخابشده، قیمت، گیرنده و خلاصه عمل را با کد تأیید کنید قبل از درخواست تأیید نهایی از کاربر.
- بودجهها و شرایط توقف را تعیین کنید. تعداد اقدامات، تلاشهای مجدد، تبها و دقیقههایی که عامل میتواند استفاده کند را محدود کنید. وقتی وضعیت صفحه مبهم شد، به جای ادامه کلیک کردن، عملیات را متوقف کنید.
- شواهد مفید را ضبط کنید، نه همه چیز را. خلاصه اقدامات، زمانها، URLها، توصیف عناصر انتخابشده و مراجع اسکرینشات را نگهدارید تا شکستها قابل بررسی باشند بدون ذخیره محتوای حساس غیرضروری صفحه.
در نمونه Airbnb، پیشفرض ایمن جستجو در لیستها و استخراج قیمتها است. ورود به حساب، تماس با میزبان یا تکمیل رزرو باید اقدام جداگانهای با تأیید کاربر باشد.
کاربردهای واقعی
- رزرو سفر و نظارت بر قیمتها
- مقایسه قیمت و بررسی موجودی در تجارت الکترونیک
- استخراج ساختاریافته از وبسایتهای پویا
- تست و تأیید رابط کاربری آگاه به بینایی
- پایش و هشدار وبسایت
- پرکردن فرم هوشمند در فرایندهای چندمرحلهای
مثال واقعی: پروژه Opal مایکروسافت
عاملی که در این درس میسازید نسخهای کوچک و محلی از یک عامل استفاده از رایانه (CUA) است — برنامهای که مرورگر را همانطور که یک فرد میکند، میگرداند. مایکروسافت همین ایده را برای سازمانها با پروژه Opal (Frontier)، قابلیتی در Microsoft 365 Copilot، ارائه میدهد.
با پروژه Opal، شما یک کار را توصیف میکنید و عامل به نمایندگی از شما با استفاده از استفاده از رایانه روی یک Windows 365 Cloud PC امن، در برنامهها، سایتها و دادههای مبتنی بر مرورگر سازمان شما کار میکند. این عملیات را به صورت غیرهمزمان در پسزمینه انجام میدهد و شما میتوانید در هر زمان هدایت یا کنترل آن را به دست بگیرید. وظایف نمونه شامل:
- مدیریت درخواستهای عضویت گروه امنیتی
- جمعآوری و اعتبارسنجی شواهد حسابرسی برای بازبینیهای انطباق
- دستهبندی حوادث IT (بهروزرسانی وضعیت تیکت، اختصاص مالک، بستن موارد تکراری)
- ترکیب دادههای Excel در یک گزارش مالی پایانی
Opal مرجعی مفید است برای اینکه یک عامل استفاده از رایانه درجه تولید، قابل اعتماد چگونه است — و مفاهیم درسهای قبلی را تقویت میکند:
| مفهوم در این دوره |
کاربرد پروژه Opal |
| انسان در حلقه (درس 06) |
Opal برای اعتبارنامههای ورود، دادههای حساس یا دستورالعملهای مبهم توقف میکند و هرگز بدون تأیید صریح رمز عبور وارد نمیکند یا فرم ارسال نمیکند. شما میتوانید کنترل را در حین کار دریافت و بازگردانید. |
| عوامل قابل اعتماد و امن (درسهای 06 و 18) |
در Windows 365 Cloud PC ایزوله اجرا میشود، به طور پیشفرض فقط مرورگر است (دسترسی به کامپیوتر دیگر مسدود شده، از طریق Intune اعمال میشود)، از هویت شما استفاده میکند تا فقط به موارد مجاز دسترسی داشته باشد، و هر اقدام را برای حسابرسی ثبت میکند. |
| برنامهریزی و فرامطالعه (درسهای 07 و 09) |
Opal ابتدا یک برنامه برای کار ایجاد میکند، سپس در هر مرحله استدلال خود را نظارت میکند و در صورت مشاهده فعالیت مشکوک توقف میکند. |
| قابلیتها / ابزارهای قابل استفاده مجدد (درس 04) |
مهارتها به شما اجازه میدهند دستورالعملهایی برای کارهای تکرارشونده بنویسید (از فایل .md ایمپورت شده یا با Opal ایجاد شده) و آنها را در گفتگوها استفاده مجدد کنید. |
دسترسی: پروژه Opال در حال حاضر برای کاربران در برنامه دسترسی زودهنگام Frontier با اشتراک Microsoft 365 Copilot در دسترس است، و مدیر شما باید راهاندازی را کامل کند. چون این ویژگی Frontier آزمایشی است، قابلیتها ممکن است در طول زمان تغییر کند.
بررسی دانش
قبل از رفتن به درس بعدی، درک خود را بسنجید.
1. چه زمانی عامل استفاده از مرورگر بهتر از گردش کار صرفاً مبتنی بر API است؟
پاسخ
زمانی که کار به آنچه در UI وب قابل مشاهده است بستگی دارد، سایت API لازم را ارائه نمیدهد، یا صفحه آنقدر تغییر میکند که لاجیک ثابت API یا انتخابگر شکننده شود، از عامل مرورگر استفاده کنید. اگر API پایداری برای همان کار وجود دارد، API را ترجیح دهید چون معمولاً سریعتر، آسانتر برای تست و امنتر است.
2. در یک گردش کار ترکیبی، کدام قسمتها باید توسط عامل انجام شود و کدام قسمتها باید با کد مستقیم Playwright مدیریت شوند؟
پاسخ
اجازه دهید عامل وظایف ناوبری باز و وضعیتهای پویا UI را مدیریت کند، مثل یافتن صفحه درست یا رد کردن پاپآپهای غیرمنتظره. زمانی که ساختار صفحه شناخته شده است و عمل نیاز به دقت، تلاش مجدد، انتظار یا اعتبار سنجی قطعی دارد، به کنترل مستقیم Playwright تغییر دهید.
3. نمونه Airbnb یک لیست پیدا میکند که ممکن است کاربر بخواهد رزرو کند. قبل از اینکه فرآیند وارد شود، با میزبان تماس بگیرد یا رزرو را کامل کند، چه اتفاقی باید بیفتد؟
پاسخ
جریان کار باید متوقف شود و درخواست تأیید صریح کاربر کند. قبل از درخواست، باید خلاصه واضحی از لیست انتخابشده، URL فعلی، قیمت، تاریخها و اقدام مورد نظر را نشان دهد. جستجو و استخراج قیمتها میتواند خودکار باشد؛ دسترسی به حساب، پیامها، خریدها و رزروها باید تأیید کاربر را داشته باشند.
4. یک صفحه وب به عامل میگوید دستورالعملهای اصلیاش را نادیده بگیرد، به سایت دیگری برود و اعتبارنامههای ذخیرهشده را افشا کند. عامل چگونه باید با آن متن رفتار کند؟
پاسخ
آن را به عنوان محتوای غیرقابل اعتماد صفحه در نظر بگیرید، نه دستور توسعهدهنده یا کاربر. عامل باید در دامنه و حیطه کاری مجاز بماند، از افشای اسرار خودداری کند، و از پیروی از متنی که هدف را تغییر میدهد، محافظها را غیرفعال میکند یا به سایتهای نامرتبط میفرستد اجتناب کند.
5. هنگام اجرای یک عامل مرورگر، چه شواهدی مناسب است نگهداری شود و چه مواردی باید اجتناب شود؟
پاسخ
خلاصه اقدامات، زمانها، URLها، توصیف عناصر انتخابشده، نتایج اعتبارسنجی و مراجع اسکرینشات را نگه دارید تا بتوان اجرا را مرور کرد. از ذخیره کردن رمز عبور، جزئیات پرداخت، کوکیهای جلسه، دادههای شخصی خام یا محتوای کامل صفحه مگر برای دلیل خاصی پرهیز کنید.
منابع اضافی
درس قبلی
کاوش چارچوب عامل مایکروسافت
درس بعدی
استقرار عاملهای مقیاسپذیر
سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیهایی باشند. سند اصلی به زبان مادری خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما در قبال هرگونه سوء تفاهم یا برداشت نادرست ناشی از استفاده از این ترجمه مسئولیتی نداریم.