🌐 راهنمای عملی: چگونه به یک عامل هوش مصنوعی مرورگر بدهیم؟
برای اینکه عاملهای هوش مصنوعی در گردشکارهای واقعی مفید باشند، باید بتوانند مستقیماً از طریق مرورگر کار کنند. در این مطلب، با استفاده از OpenAI Agents SDK و Playwright MCP یک عامل مرورگر میسازیم.
---
🧩 مدل ذهنی: حلقهی تعامل با مرورگر
یک عامل مرورگر، در یک حلقهی تعامل با مرورگر قرار میگیرد:
۱. عامل با یک وظیفه و وضعیت فعلی مرورگر شروع میکند.
۲. وضعیت را تفسیر کرده، تصمیم میگیرد چه کاری انجام دهد و یک اقدام (Action) به مرورگر ارسال میکند.
۳. آن اقدام، وضعیت جدیدی در مرورگر ایجاد میکند که ورودی دور بعدی تصمیمگیری است.
۴. این حلقه تا زمانی که عامل وظیفه را کامل شده تشخیص دهد، ادامه مییابد.
برای این کار، به دو اتصال بین عامل و مرورگر نیاز است:
- کانال مشاهده (Observation Channel) : برای دریافت وضعیت فعلی مرورگر (تصاویر، ساختار صفحه یا ترکیبی از هر دو)
- کانال اقدام (Action Channel) : برای تعامل با مرورگر (ماوس و صفحهکلید، یا هدفگیری عناصر خاص صفحه)
---
🔧 دو رویکرد رایج برای مشاهده و اقدام
🔹 تصویر + اقدامات ماوس/صفحهکلید مبتنی بر مختصات: این روش به سمت استفادهی عمومی از کامپیوتر متمایل است و فراتر از مرورگر، به سایر برنامههای دسکتاپ نیز قابلتعمیم است.
🔹 وضعیت ساختاریافتهی صفحه + اقدامات هدفگیری عناصر: این روش مخصوص مرورگر است و از ساختار موجود در صفحهی وب (مانند DOM یا درخت دسترسی) برای تعامل دقیقتر استفاده میکند. در این مقاله، تمرکز روی این رویکرد است.
---
🛠️ مطالعهی موردی: پاسخ به یک درخواست پشتیبانی مشتری
ما یک کنسول پشتیبانی ساده (HTML/CSS/JS) راهاندازی میکنیم که در آدرس
پشتهی فناوری:
- OpenAI Agents SDK: برای اجرای عامل
- Playwright MCP: برای اتصال عامل به مرورگر
مراحل پیکربندی:
۱. اتصال به Azure OpenAI:
۲. دستورالعمل عامل (بهصورت حداقلی):
۳. راهاندازی Playwright MCP:
وقتی عامل برای اولین بار یک ابزار مرورگر را فراخوانی کند، Playwright MCP یک پنجرهی Chrome باز کرده و اقدام درخواستی را اجرا میکند.
۴. تعریف وظیفه و اجرا:
---
📊 نتیجهی اجرا
عامل وظیفه را با موفقیت انجام داد:
- پروندهی مرتبط با سفارش را پیدا کرد
- جزئیات سفارش، درخواست مشتری، موجودی و سیاستهای مربوطه را بررسی کرد
- تشخیص داد که تعویض کالا (Replacement) اقدام مناسب است
- یک یادداشت داخلی اضافه کرده و آن را ثبت کرد
- وضعیت پرونده را به "حلشده" تغییر داد
خروجی نهایی عامل:
---
🔭 از مرورگر تا استفادهی عمومی از کامپیوتر
الگوی اصلی (مشاهده 👈 تصمیم 👈 اقدام 👈 تکرار) بهخوبی به استفادهی عمومی از کامپیوتر نیز قابلتعمیم است. تفاوت اصلی در کانالهای مشاهده و اقدام است:
- در اینجا، از ساختار صفحه و هدفگیری عناصر استفاده کردیم.
- در حالت کلیتر، میتوان از تصاویر و کنترل ماوس/صفحهکلید بر اساس مختصات بهره برد.
---
🔗 مخزن کد:
https://github.com/ShuaiGuo16/llm-browser-agent
📄 مقالهی اصلی:
https://towardsdatascience.com/giving-an-llm-agent-a-browser/
---
#هوش_مصنوعی #عامل_مرورگر #OpenAI #AgentsSDK #Playwright #MCP
🆔 @asrgooyeshpardaz
برای اینکه عاملهای هوش مصنوعی در گردشکارهای واقعی مفید باشند، باید بتوانند مستقیماً از طریق مرورگر کار کنند. در این مطلب، با استفاده از OpenAI Agents SDK و Playwright MCP یک عامل مرورگر میسازیم.
---
🧩 مدل ذهنی: حلقهی تعامل با مرورگر
یک عامل مرورگر، در یک حلقهی تعامل با مرورگر قرار میگیرد:
۱. عامل با یک وظیفه و وضعیت فعلی مرورگر شروع میکند.
۲. وضعیت را تفسیر کرده، تصمیم میگیرد چه کاری انجام دهد و یک اقدام (Action) به مرورگر ارسال میکند.
۳. آن اقدام، وضعیت جدیدی در مرورگر ایجاد میکند که ورودی دور بعدی تصمیمگیری است.
۴. این حلقه تا زمانی که عامل وظیفه را کامل شده تشخیص دهد، ادامه مییابد.
برای این کار، به دو اتصال بین عامل و مرورگر نیاز است:
- کانال مشاهده (Observation Channel) : برای دریافت وضعیت فعلی مرورگر (تصاویر، ساختار صفحه یا ترکیبی از هر دو)
- کانال اقدام (Action Channel) : برای تعامل با مرورگر (ماوس و صفحهکلید، یا هدفگیری عناصر خاص صفحه)
---
🔧 دو رویکرد رایج برای مشاهده و اقدام
🔹 تصویر + اقدامات ماوس/صفحهکلید مبتنی بر مختصات: این روش به سمت استفادهی عمومی از کامپیوتر متمایل است و فراتر از مرورگر، به سایر برنامههای دسکتاپ نیز قابلتعمیم است.
🔹 وضعیت ساختاریافتهی صفحه + اقدامات هدفگیری عناصر: این روش مخصوص مرورگر است و از ساختار موجود در صفحهی وب (مانند DOM یا درخت دسترسی) برای تعامل دقیقتر استفاده میکند. در این مقاله، تمرکز روی این رویکرد است.
---
🛠️ مطالعهی موردی: پاسخ به یک درخواست پشتیبانی مشتری
ما یک کنسول پشتیبانی ساده (HTML/CSS/JS) راهاندازی میکنیم که در آدرس
http://127.0.0.1:8000 در دسترس است. وظیفهی عامل این است که یک پروندهی پشتیبانی را بررسی کرده و آن را از طریق این کنسول به نتیجه برساند.پشتهی فناوری:
- OpenAI Agents SDK: برای اجرای عامل
- Playwright MCP: برای اتصال عامل به مرورگر
مراحل پیکربندی:
۱. اتصال به Azure OpenAI:
from openai import AsyncAzureOpenAI
from agents import set_default_openai_client, set_default_openai_api
azure_client = AsyncAzureOpenAI(...)
set_default_openai_client(azure_client)
set_default_openai_api("responses")
۲. دستورالعمل عامل (بهصورت حداقلی):
AGENT_INSTRUCTIONS = "You are an agent that can interact with a web browser."
۳. راهاندازی Playwright MCP:
from agents.mcp import MCPServerStdio
playwright_server = MCPServerStdio(
name="Playwright MCP",
params={
"command": "npx",
"args": ["-y", "@playwright/mcp@latest", "--browser", "chrome"],
},
)
وقتی عامل برای اولین بار یک ابزار مرورگر را فراخوانی کند، Playwright MCP یک پنجرهی Chrome باز کرده و اقدام درخواستی را اجرا میکند.
۴. تعریف وظیفه و اجرا:
TASK = f"""
Open {APP_URL} and resolve the support case for order ORD-1042.
The customer says they received the wrong item. ...
"""
async with playwright_server:
result = await Runner.run(agent, TASK, max_turns=20)
---
📊 نتیجهی اجرا
عامل وظیفه را با موفقیت انجام داد:
- پروندهی مرتبط با سفارش را پیدا کرد
- جزئیات سفارش، درخواست مشتری، موجودی و سیاستهای مربوطه را بررسی کرد
- تشخیص داد که تعویض کالا (Replacement) اقدام مناسب است
- یک یادداشت داخلی اضافه کرده و آن را ثبت کرد
- وضعیت پرونده را به "حلشده" تغییر داد
خروجی نهایی عامل:
"Resolved CASE-4107 for order ORD-1042 with Replacement. The case now shows Resolved, the recorded action is Replacement, and the audit log contains the corresponding resolution entry."---
🔭 از مرورگر تا استفادهی عمومی از کامپیوتر
الگوی اصلی (مشاهده 👈 تصمیم 👈 اقدام 👈 تکرار) بهخوبی به استفادهی عمومی از کامپیوتر نیز قابلتعمیم است. تفاوت اصلی در کانالهای مشاهده و اقدام است:
- در اینجا، از ساختار صفحه و هدفگیری عناصر استفاده کردیم.
- در حالت کلیتر، میتوان از تصاویر و کنترل ماوس/صفحهکلید بر اساس مختصات بهره برد.
---
🔗 مخزن کد:
https://github.com/ShuaiGuo16/llm-browser-agent
📄 مقالهی اصلی:
https://towardsdatascience.com/giving-an-llm-agent-a-browser/
---
#هوش_مصنوعی #عامل_مرورگر #OpenAI #AgentsSDK #Playwright #MCP
🆔 @asrgooyeshpardaz
GitHub
GitHub - ShuaiGuo16/llm-browser-agent: A minimal browser-using LLM agent built with OpenAI Agents SDK and Playwright MCP, demonstrated…
A minimal browser-using LLM agent built with OpenAI Agents SDK and Playwright MCP, demonstrated through a customer-support workflow. - ShuaiGuo16/llm-browser-agent
❤🔥1❤1
🛡️ راهنمای عملی امنیت عاملهای هوش مصنوعی، سرورهای MCP و برنامههای LLM
امنیت برنامههای کاربردی بر یک فرض استوار است: نرمافزار همان کاری را میکند که کدش میگوید.
عاملهای هوش مصنوعی این فرض را شکستهاند.
رفتار یک عامل، دیگر فقط از روی کدش مشخص نیست؛ بلکه از ترکیب مدل، پرامپت سیستم، زمینهی بازیابیشده و ابزارهایی که مجاز به فراخوانی آنهاست، شکل میگیرد. این یعنی دو نسخهی کاملاً یکسان، ممکن است رفتارهای کاملاً متفاوتی داشته باشند.
حالتهای شکست هم دیگر در خوراک CVE دیده نمیشوند: تزریق پرامپت از طریق داده، عاملهای با دسترسیهای بیشازحد که بدون حتی یک اکسپلویت خسارت میزنند، توضیحات مسموم ابزارها روی سرورهای MCP، و مدلهایی که پس از پایان پشتیبانی، همچنان به پیشبینی ادامه میدهند.
راهنمای جدید Mend.io با عنوان "Securing AI agents, MCP servers & LLM apps"، پاسخی عملی به این چالشها ارائه میدهد.
---
🔍 مرحلهی اول: ببینید (See) – سطح حمله را کشف کنید
نقشهی حمله در پنج لایه تعریف میشود:
🔹 لایهی تعامل (Interaction) : ورودیهای کاربر، اسناد بازیابیشده، پیامهای بین عاملها → تزریق پرامپت، مسمومیت زمینه، خروج داده
🔹 لایهی عامل (Agent) : پرامپت سیستم، پیکربندیها، حافظه، تنظیمات استقلال → ابزارهای با دسترسیهای بیشازحد، ربودن هدف
🔹 لایهی یکپارچهسازی (Integration) : سرورهای MCP، تعاریف ابزار، افزونهها و APIها → توضیحات مسموم ابزار، سرورهای سایه
🔹 لایهی مدل (Model) : مدلهای پایه و تنظیمشده، امبدینگها → مدلهای منسوخشده، ریسک زنجیرهی تأمین
🔹 لایهی کد (Code) : کد تولیدشده توسط هوش مصنوعی، فریمورکها و SDKها → کد آسیبپذیر، بستههای مخرب
عاملها بهندرت از مسیرهای رسمی وارد میشوند. برای کشف آنها، باید مخازن کد را برای امضای عاملها اسکن کنید، ترافیک شبکه را برای فراخوانیهای API مدلها رصد کنید، حسابهای سرویس و کلیدهای API را ممیزی کنید و یک فرآیند ثبتنام سبک برای همهی عاملها و سرورهای MCP اجباری کنید.
چکلیست ۱۲ نکتهای برای پیکربندی ایمن: اعتبارنامهها باید به منابع خاص محدود شوند، نه دسترسی سطح سرویس. هیچ اعتبارنامهای بین عاملها به اشتراک گذاشته نشود. ابزارهای با تأثیر بالا نیاز به تأیید انسانی داشته باشند. پرامپت سیستم در کنترل نسخه باشد. مدلها با شناسهی نسخهی دقیق و تاریخ انقضای پشتیبانی مدیریت شوند.
---
🔧 مرحلهی دوم: برطرف کنید (Fix) – اولویتبندی و رسیدگی
خط لولهی رسیدگی به یافتهها: غنیسازی → اولویتبندی → رسیدگی
سیگنالهای اولویتبندی (به ترتیب اهمیت): دسترسیپذیری، زمینهی بهرهبرداری، زمینهی کسبوکار، تشدید عاملمحور، در دسترس بودن راهحل
خط قرمز: هرگز پذیرش ریسک را خودکار نکنید. تصمیمگیری در مورد ریسکها همیشه باید توسط انسان و با مستندات کامل انجام شود.
---
🛡️ مرحلهی سوم: محافظت کنید (Protect) – امنیت در زمان اجرا
محافظت در زمان اجرا شامل نگهبانها (Guardrails) ، سختسازی پرامپت و اجرای سیاست است.
🔹 نگهبانهای ورودی: الگوهای تزریق پرامپت، درخواستهای خارجازخط مشی و جیلبریکها را شناسایی میکنند.
🔹 نگهبانهای خروجی: اعتبارنامهها، اطلاعات شخصی قابلشناسایی (PII)، کد اختصاصی و نقضهای سیاست را رصد میکنند.
نگهبانها به دو روش قابل استقرار هستند:
- SDK تعبیهشده در برنامه (با حالتهای Online/Offline)
- سرور مستقل API (با Docker، بدون نیاز به تغییر کد)
اصل کلیدی طراحی: عاملی که نمیتواند ابزار خطرناکی را فراخوانی کند، نیازی به پرامپتی که از او خواهش کند چنین نکند، ندارد. تعیین مجوزهای صریح، بسیار مؤثرتر از دستورالعملهای پرامپت است.
---
📊 نقشهی راه بلوغ امنیتی
چهار سطح: در حال ظهور 👈 در حال توسعه 👈 کنترلشده 👈 پیشرو
همراستا با استانداردهای NIST AI RMF، OWASP AIMA، ISO/IEC 42001 و قانون هوش مصنوعی اتحادیهی اروپا
یک خودارزیابی ۱۵ سؤالی به شما کمک میکند جایگاه فعلی خود را مشخص کنید.
---
🔗 منابع مفید
📄 دانلود رایگان راهنمای کامل:
https://pxllnk.co/lxn88m
📰 تحلیل کامل:
Marktechpost
---
#امنیت_هوش_مصنوعی #عامل_هوشمند #MCP #LLM #امنیت_سایبری
🆔 @asrgooyeshpardaz
امنیت برنامههای کاربردی بر یک فرض استوار است: نرمافزار همان کاری را میکند که کدش میگوید.
عاملهای هوش مصنوعی این فرض را شکستهاند.
رفتار یک عامل، دیگر فقط از روی کدش مشخص نیست؛ بلکه از ترکیب مدل، پرامپت سیستم، زمینهی بازیابیشده و ابزارهایی که مجاز به فراخوانی آنهاست، شکل میگیرد. این یعنی دو نسخهی کاملاً یکسان، ممکن است رفتارهای کاملاً متفاوتی داشته باشند.
حالتهای شکست هم دیگر در خوراک CVE دیده نمیشوند: تزریق پرامپت از طریق داده، عاملهای با دسترسیهای بیشازحد که بدون حتی یک اکسپلویت خسارت میزنند، توضیحات مسموم ابزارها روی سرورهای MCP، و مدلهایی که پس از پایان پشتیبانی، همچنان به پیشبینی ادامه میدهند.
راهنمای جدید Mend.io با عنوان "Securing AI agents, MCP servers & LLM apps"، پاسخی عملی به این چالشها ارائه میدهد.
---
🔍 مرحلهی اول: ببینید (See) – سطح حمله را کشف کنید
نقشهی حمله در پنج لایه تعریف میشود:
🔹 لایهی تعامل (Interaction) : ورودیهای کاربر، اسناد بازیابیشده، پیامهای بین عاملها → تزریق پرامپت، مسمومیت زمینه، خروج داده
🔹 لایهی عامل (Agent) : پرامپت سیستم، پیکربندیها، حافظه، تنظیمات استقلال → ابزارهای با دسترسیهای بیشازحد، ربودن هدف
🔹 لایهی یکپارچهسازی (Integration) : سرورهای MCP، تعاریف ابزار، افزونهها و APIها → توضیحات مسموم ابزار، سرورهای سایه
🔹 لایهی مدل (Model) : مدلهای پایه و تنظیمشده، امبدینگها → مدلهای منسوخشده، ریسک زنجیرهی تأمین
🔹 لایهی کد (Code) : کد تولیدشده توسط هوش مصنوعی، فریمورکها و SDKها → کد آسیبپذیر، بستههای مخرب
عاملها بهندرت از مسیرهای رسمی وارد میشوند. برای کشف آنها، باید مخازن کد را برای امضای عاملها اسکن کنید، ترافیک شبکه را برای فراخوانیهای API مدلها رصد کنید، حسابهای سرویس و کلیدهای API را ممیزی کنید و یک فرآیند ثبتنام سبک برای همهی عاملها و سرورهای MCP اجباری کنید.
چکلیست ۱۲ نکتهای برای پیکربندی ایمن: اعتبارنامهها باید به منابع خاص محدود شوند، نه دسترسی سطح سرویس. هیچ اعتبارنامهای بین عاملها به اشتراک گذاشته نشود. ابزارهای با تأثیر بالا نیاز به تأیید انسانی داشته باشند. پرامپت سیستم در کنترل نسخه باشد. مدلها با شناسهی نسخهی دقیق و تاریخ انقضای پشتیبانی مدیریت شوند.
---
🔧 مرحلهی دوم: برطرف کنید (Fix) – اولویتبندی و رسیدگی
خط لولهی رسیدگی به یافتهها: غنیسازی → اولویتبندی → رسیدگی
سیگنالهای اولویتبندی (به ترتیب اهمیت): دسترسیپذیری، زمینهی بهرهبرداری، زمینهی کسبوکار، تشدید عاملمحور، در دسترس بودن راهحل
خط قرمز: هرگز پذیرش ریسک را خودکار نکنید. تصمیمگیری در مورد ریسکها همیشه باید توسط انسان و با مستندات کامل انجام شود.
---
🛡️ مرحلهی سوم: محافظت کنید (Protect) – امنیت در زمان اجرا
محافظت در زمان اجرا شامل نگهبانها (Guardrails) ، سختسازی پرامپت و اجرای سیاست است.
🔹 نگهبانهای ورودی: الگوهای تزریق پرامپت، درخواستهای خارجازخط مشی و جیلبریکها را شناسایی میکنند.
🔹 نگهبانهای خروجی: اعتبارنامهها، اطلاعات شخصی قابلشناسایی (PII)، کد اختصاصی و نقضهای سیاست را رصد میکنند.
نگهبانها به دو روش قابل استقرار هستند:
- SDK تعبیهشده در برنامه (با حالتهای Online/Offline)
- سرور مستقل API (با Docker، بدون نیاز به تغییر کد)
اصل کلیدی طراحی: عاملی که نمیتواند ابزار خطرناکی را فراخوانی کند، نیازی به پرامپتی که از او خواهش کند چنین نکند، ندارد. تعیین مجوزهای صریح، بسیار مؤثرتر از دستورالعملهای پرامپت است.
---
📊 نقشهی راه بلوغ امنیتی
چهار سطح: در حال ظهور 👈 در حال توسعه 👈 کنترلشده 👈 پیشرو
همراستا با استانداردهای NIST AI RMF، OWASP AIMA، ISO/IEC 42001 و قانون هوش مصنوعی اتحادیهی اروپا
یک خودارزیابی ۱۵ سؤالی به شما کمک میکند جایگاه فعلی خود را مشخص کنید.
---
🔗 منابع مفید
📄 دانلود رایگان راهنمای کامل:
https://pxllnk.co/lxn88m
📰 تحلیل کامل:
Marktechpost
---
#امنیت_هوش_مصنوعی #عامل_هوشمند #MCP #LLM #امنیت_سایبری
🆔 @asrgooyeshpardaz
MarkTechPost
How to Secure AI Agents, MCP Servers, and LLM Apps in Production
Learn how to secure AI agents, MCP servers, and LLM apps with checklists, triage rules, and runtime guardrails.
👍2❤1