پرش به محتوای اصلی
پرش به محتوای مقاله

Qwen Code 0.22 دسترسی عامل‌ها به ابزارها را محدود کرد

·۲ شهریور ۱۴۰۵۷ دقیقه مطالعه۲ بازدید
راهنما
سطح ابزار Qwen Code 0.22 و چک‌لیست خودکار مجوزها
سطح ابزار Qwen Code 0.22 و چک‌لیست خودکار مجوزها
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

جایگزینی دسترسی باز با یک ماتریس سه‌لایه (ثبت، تأیید، اجرا) و معرفی حالت تأیید `auto` که به جای لیست‌های سفید، از یک مدل زبانی برای ارزیابی ریسک هر دستور در لحظه استفاده می‌کند.

اجرای یک عامل (Agent) — شبیه به کارمندی که کلید تمام اتاق‌های شرکت را دارد — با دسترسی کامل به سیستم فایل، قمار روی امنیت داده‌های شماست. این دسترسی گسترده معمولاً یا به نشت اطلاعات منجر می‌شود یا حذف تصادفی داده‌های حیاتی. به همین دلیل، شرکت آلی‌بابا در ۲۴ اوت ۲۰۲۶ نسخه 0.22.0 از Qwen Code را منتشر کرد تا وضعیت امنیتی پیش‌فرض را از «دسترسی باز» به مدل «درخواست صریح» (Opt-in) برای ابزارهای حساس تغییر دهد.

در حال حاضر اکثر توسعه‌دهندگان با یک انتخاب سخت و دوتایی روبرو هستند: یا باید هر اقدام کوچک مدل را به صورت دستی تأیید کنند یا از حالت «YOLO» استفاده کنند که استقلال کامل و خطرناکی به عامل می‌دهد. این شکاف باعث ایجاد یک ریسک عملیاتی عظیم می‌شود، به‌ویژه زمانی که عامل‌ها با مخازن (Repositories) غیرقابل اعتماد، عامل‌های سفارشی یا سرورهای سفارشی پروتکل زمینهٔ مدل (MCP) تعامل دارند. این وضعیت در کارهای مربوط به مخازنی که بدون نظارت اجرا می‌شوند (Unattended jobs) بسیار خطرناک است، زیرا تأییدهای مبهم می‌توانند ریسک‌های عملیاتی واقعی ایجاد کنند. این چالش‌ها یادآور آسیب‌پذیری‌های مشابه در مدل‌های دیگر است، مانند حفره‌های امنیتی در Grok که امکان سرقت خاموش داده‌ها را فراهم می‌کرد. به‌روزرسانی جدید Qwen تلاش می‌کند این شکاف را با معرفی یک سیستم تأیید مبتنی بر طبقه‌بندی‌کننده (Classifier) پر کند.

بازنگری در سطح ابزارها

مهم‌ترین تغییر در نسخه 0.22.0، تغییر وضعیت ابزار list_directory است. این ابزار اکنون به صورت پیش‌فرض غیرفعال شده است. بر اساس یادداشت‌های انتشار، ابزار glob اکنون اکثر نیازهای فهرست‌بندی دایرکتوری را پوشش می‌دهد و به Qwen اجازه می‌دهد تا سطح پرامپت و انتخاب ابزار را بدون از دست دادن قابلیت‌ها کاهش دهد.

برای بازگرداندن list_directory، توسعه‌دهندگان اکنون باید صراحتاً گزینه tools.listDirectory.enabled را فعال کنند یا آن را در لیست ثبت coreTools بگنجانند. این تغییر تضمین می‌کند که مدل حتی نمی‌تواند ابزار را ببیند مگر اینکه توسعه‌دهنده عمداً آن را اعطا کند. این اقدام باعث می‌شود یک ابزار داخلی به صورت پیش‌فرض ایمن‌تر شود و یک حالت تأیید از طریق SDKها راحت‌تر در دسترس باشد.

ماتریس دسترسی سه‌لایه

برای جلوگیری از «خزش مجوزها» (Permission Creep)، Qwen اکنون یک رویکرد امنیتی در سه لایه پیشنهاد می‌کند. این تمایز بسیار حیاتی است زیرا مستندات پایدار SDK تایپ‌اسکریپت، coreTools را به عنوان یک لیست سفید ثبت (Registration allowlist) توصیف می‌کند، در حالی که allowedTools و permissions.allow تأییدیه را برای فراخوانی‌های منطبق دور می‌زنند.

  • کنترل ثبت (Registration Control): تعیین می‌کند که آیا مدل می‌تواند ابزار را ببیند یا خیر. این لایه از طریق coreTools، tools.listDirectory.enabled، ابزارهای غیرفعال و ثبت افزونه‌ها یا MCP مدیریت می‌شود. شواهد این لایه از طریق کپچر /tools و لیست‌های نام ابزارهای خروجی جمع‌آوری می‌شود.
  • تأیید فراخوانی (Invocation Approval): تعیین می‌کند که آیا یک فراخوانی بدون پرسش اجرا شود یا خیر. این بخش توسط حالت Approval، permissions.allow، permissions.ask، permissions.deny و کال‌بک‌های SDK مدیریت می‌شود. شواهد شامل نام ابزار، آرگومان‌های سانسور شده، قانون تطبیق یافته و منبع تصمیم‌گیری است.
  • محدودیت زمان اجرا (Runtime Containment): تعیین می‌کند که فراخوانی در کجا اجرا شود. این لایه شامل سندباکس (Sandbox) — محیطی ایزوله شبیه به یک آزمایشگاه شیشه‌ای که هر اتفاقی در آن بیفتد به دنیای بیرون سرایت نمی‌کند — مرز فضای کاری (Workspace boundary)، هویت پردازش و سیاست‌های سیستم فایل/شبکه است. شواهد از طریق پروب‌های خواندن/نوشتن یک‌بار مصرف و بررسی اقدامات مسدود شده در محیط‌های همسایه تأیید می‌شود.

تیم Qwen هشدار می‌دهد که هرگز نباید از شواهد یک ردیف برای تأیید ردیف دیگر استفاده کرد. یک ابزار مخفی ممکن است همچنان از طریق MCP قابل دسترسی باشد و یک فراخوانی با تأیید خودکار همچنان می‌تواند توسط محیط اجرای میزبان (Host runtime) به شکلی خطرناک و بدون محدودیت رها شود.

مکانیزم تأیید خودکار (Auto)

برای نخستین بار، SDKهای پایتون و جاوا اکنون از حالت تأیید auto پشتیبانی می‌کنند که با CLI و SDK تایپ‌اسکریپت مطابقت دارد. برخلاف رویکرد قطعی «لیست سفید»، حالت auto از یک طبقه‌بندی‌کننده (Classifier) مبتنی بر LLM استفاده می‌کند تا هر فراخوانی ابزار را در لحظه ارزیابی کند.

اگر طبقه‌بندی‌کننده تشخیص دهد که یک اقدام ایمن است، آن را به طور خودکار تأیید می‌کند؛ اگر اقدام ریسکی باشد، آن را مسدود می‌کند. این حالت، نقطه‌ای میانی بین خستگیِ تأیید دستی و خطرِ استقلال کامل است. با این حال، auto یک سیاست «حداقل دسترسی» (Least-privilege) نیست. این یک طبقه‌بندی‌کننده انتخابی است، نه یک لیست سفید قطعی، و نباید به عنوان یک «حالت امن» برای اقدامات با تأثیر بالا در نظر گرفته شود.

گردش‌کار استقرار و اعتبارسنجی

Qwen یک مسیر شش‌مرحله‌ای برای اطمینان از کارکرد واقعی این حفاظ‌ها توصیه می‌کند:

۱. تثبیت فایل اجرایی دقیق: دستور /about را اجرا کرده و نسخه Qwen Code، محیط اجرا، مدل/ارائه‌دهنده، حالت تأیید و وضعیت سندباکس را ثبت کنید. این راهنما با تگ پایدار v0.22.0 و کامیت 1c3a385d9bc83e0b2a1ce5a24454ce1d090595fb بررسی شده است. برای ادعای رفتار پایدار، از نسخه‌های Nightly استفاده نکنید.

۲. شروع با یک هسته ثبت‌شده کوچک: از یک مخزن یک‌بار مصرف و تأیید پیش‌فرض استفاده کنید. یک جلسه کاناری می‌تواند با دستور qwen --approval-mode default --core-tools read_file,grep_search,glob شروع شود. تأیید کنید که /tools ابزارهای list_directory، ویرایش یا اجرای شل را نشان نمی‌دهد. اگر گردش‌کار به ابزار قدیمی نیاز دارد، آن را صراحتاً فعال کنید؛ آن را فقط برای ساکت کردن یک پرامپت بازنگردانید.

۳. بررسی طرح خروجی (Outbound Schema)، نه فقط رابط کاربری: یک گزارش عمومی (issue #9827) علیه نسخه 0.22.0 نشان می‌دهد در برخی تنظیمات، /tools محدود به نظر می‌رسید، اما بک‌اند سازگار با OpenAI همچنان آرایه کامل ابزارهای داخلی را دریافت می‌کرد. نام ابزارهای خروجی را از طریق یک پروکسی ضبط‌کننده یا لاگ دیباگ ارائه‌دهنده کپچر کنید. آرگومان‌ها، پرامپت‌ها و اعتبارنامه‌ها را سانسور کنید. اگر رابط کاربری و موجودی خروجی با هم اختلاف دارند، در حالت تعاملی (Interactive) بمانید.

۴. تست مجزای تأیید: مجموعه ابزارهای ثبت‌شده را ثابت نگه دارید. حالت default را با auto با استفاده از فراخوانی‌های بی‌ضرر مقایسه کنید. درخواست نوشتن در یک فایل یک‌بار مصرف را بدهید و ثبت کنید که آیا مدل می‌پرسد، تأیید می‌شود یا مسدود می‌گردد. یک اقدام همسایه خارج از محدوده را درخواست کنید و یک منع صریح (Explicit deny) اضافه کنید تا ثابت شود همچنان مسدود است. اطمینان حاصل کنید که رکورد حسابرسی عبارت decision_source=classifier را نشان می‌دهد.

۵. اجرای هفت تست کاناری:
* تأیید کنید list_directory به طور پیش‌فرض غایب است.
* تأیید کنید که Opt-in صریح، آن را پس از ری‌استارت بازمی‌گرداند.
* اطمینان حاصل کنید ابزارهای حذف شده از coreTools در دسترس نیستند.
* تأیید کنید موجودی نام ابزارهای خروجی با سطح ثبت‌شده مطابقت دارد.
* تأیید کنید حالت default برای نوشتن‌های یک‌بار مصرف پرامپت می‌فرستد.
* تأیید کنید auto تصمیمات طبقه‌بندی‌کننده را ثبت می‌کند بدون اینکه به حالت «YOLO» تبدیل شود.
* تأیید کنید اقدامات همسایه مسدود شده در هر دو حالت مسدود می‌مانند.

۶. ارتقای دسترسی بر اساس کلاس اقدام: با اکتشاف فقط-خواندنی در مخزن شروع کنید. ویرایش‌های محدود را تنها پس از بررسی صحت بازگشت (Rollback) و بررسی Diff اضافه کنید. دستورات شل، نوشتن‌های شبکه، انتشار، صورت‌حساب، استقرار، اسرار (Secrets) و اقدامات تخریبی سیستم فایل را در حالت تأیید صریح انسانی نگه دارید.

سندباکس و مهار عملیاتی

اگرچه گردش‌کار Autofix اکنون تصاویر سندباکس را برای یکپارچگی بهتر به اثر انگشت (Digest) آن‌ها متصل می‌کند، اما Qwen هشدار می‌دهد که این موضوع لزوماً ایزولاسیون کامل را برای تمام سندباکس‌های ساخته شده توسط کاربر تضمین نمی‌کند. سندباکس پیامدهای یک اشتباه را کاهش می‌دهد، اما یک طبقه‌بندی‌کننده را به یک مقام امن برای خرج کردن پول، انتشار محتوا یا تخریب وضعیت (State) تبدیل نمی‌کند.

این تمایز حیاتی است زیرا بسیاری از توسعه‌دهندگان permissions.allow را به عنوان تضمینی می‌بینند که طرح‌های (Schemas) لیست‌نشده هرگز به مدل ارسال نشده‌اند. در واقع، سطح ثبت (Registration surface) و سطح تأیید (Approval surface) لایه‌های جداگانه‌ای هستند که باید به طور مستقل حسابرسی شوند.

برای تیم‌هایی که از MCP، Skills یا عامل‌های سفارشی استفاده می‌کنند، این‌ها جدا از coreTools داخلی در نظر گرفته می‌شوند. تست‌های مدیریت مجوز پایدار Qwen نشان می‌دهد که این‌ها سطوح متمایزی هستند. این بدان معناست که کاهش مجموعه ابزارهای هسته، لزوماً کل جلسه را امن نمی‌کند اگر پلاگین‌های خارجی فعال باشند. هنگامی که یک فراخوانی مجاز می‌تواند وضعیت خارجی را تغییر دهد، از چک‌لیست safe-replay مربوط به MCP استفاده کنید.

خلاصه اشتباهات رایج

برای اجتناب از ریسک عملیاتی، از این اشتباهات رایج دوری کنید:

  • تلقی کردن permissions.allow به عنوان مدرکی بر اینکه طرح‌های لیست‌نشده هرگز ارسال نشده‌اند.
  • فرض اینکه coreTools شامل MCP، Skills و هر ابزار سنتتیک می‌شود.
  • فعال کردن list_directory فقط به این دلیل که یک پرامپت قدیمی نام آن را می‌برد، بدون بررسی اینکه آیا glob کافی است یا خیر.
  • تست کردن با اعتبارنامه‌های واقعی، مخازن تولید (Production) یا دستورات تخریبی.
  • ثبت تنها نتیجه نهایی ابزار در حالی که نسخه، قانون تطبیق یافته و منبع تصمیم را از دست می‌دهید.

این تغییر در معماری Qwen Code، صنعت را از مجوزهای «همه یا هیچ» در عامل‌ها دور می‌کند. با مجبور کردن توسعه‌دهندگان به بازرسی واقعی سطح ابزارهای خروجی، Qwen با استفاده از ابزار توسط هوش مصنوعی به عنوان یک امتیاز (Privilege) برخورد می‌کند که باید مدیریت شود، نه صرفاً ویژگی‌ای که باید فعال گردد.

گام بعدی شما

  • اگر از عامل‌های کدنویس استفاده می‌کنید، فوراً حالت --yolo را غیرفعال و از approval-mode default استفاده کنید.
  • ابزارهای فعال در coreTools را بازبینی کرده و هر ابزاری که با glob جایگزین می‌شود را حذف کنید.
  • برای محیط‌های حساس، یک پروکسی ثبت‌کننده (Recording Proxy) قرار دهید تا ببینید مدل واقعاً چه ابزارهایی را فراخوانی می‌کند.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این به‌روزرسانی با ایجاد لایه‌های تفکیک‌شده بین دیدن ابزار و اجرای آن، استانداردی جدید برای جلوگیری از فجایع امنیتی در محیط‌های توسعه ایجاد می‌کند. اعتبار این رویکرد از تجربه عملی در مواجهه با خطاهای بحرانی در نسخه‌های قبلی حاصل شده است.

تأثیر برای ایران

برای توسعه‌دهندگان ایرانی که از مدل‌های Qwen به دلیل وزن‌های باز استفاده می‌کنند، این متدولوژی یک راهنمای عملی برای ساخت عامل‌های امن در محیط‌های درون‌سازمانی است.

·نگاه ما
تحریریه دات‌هوش

تغییر رویکرد Qwen از «اجازه پیش‌فرض» به «محدودیت پیش‌فرض»، نشان می‌دهد که صنعت از فاز هیجان‌زده‌ی قابلیت‌ها به فاز بلوغ عملیاتی وارد شده است. این مدل مدیریت دسترسی، در واقع تبدیل کردن «استفاده از ابزار» از یک ویژگی نرم‌افزاری به یک امتیاز امنیتی است که باید مدیریت شود. به نظر ما، این اولین قدم به سوی استانداردهای حاکمیتی برای عامل‌های هوش مصنوعی است.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.