انجمن

Inside Android Skills - Built for deprecation

زمان خواندن: ۴ دقیقه
مشاهده نمایه Jose Alcérreca
Jose Alcérreca مهندس روابط توسعه‌دهندگان

ما مهارت‌های رسمی Android  را در ماه آوریل منتشر کردیم و پاسخ‌ها فراتر از انتظارات ما بود. در این پست وبلاگ، به برخی‌از بازخوردهایی که دریافت کردیم می‌پردازم و فلسفه و روش‌شناسی پشت این پروژه را توضیح می‌دهم. امیدواریم این مطلب به شما کمک کند تا متوجه شوید هنگام نصب و استفاده از مهارت‌ها چه اتفاقی در پشت صحنه می‌افتد و بتوانید از توکن‌ها و زمان خود بهتر استفاده کنید.

چرا مهارت‌های رسمی بسیار کمی وجود دارد؟

درحال‌حاضر، ما فقط زمانی مهارت‌های جدید را درنظر می‌گیریم که شکاف دانش قابل‌تأییدی در مدل‌های پیشرفته (SOTA) وجود داشته باشد. به‌بیان ساده: لازم نیست آنچه را مدل ازقبل می‌داند به آن آموزش دهید. (البته چند استثنا وجود دارد—ادامه مطلب را بخوانید!)

تاکنون حدود ۲۰ مهارت رسمی منتشر کرده‌ایم و این مهارت‌ها عمداً حوزه‌های بسیار خاص و به‌سرعت درحال تغییر را هدف قرار می‌دهند که مدل‌های استاندارد هنوز کاملاً بر آن‌ها مسلط نیستند—مواردی مانند AGP 9،‏ Navigation 3، میاناهای برنامه‌سازی کاربردی پیشرفته «دوربین»، و Perfetto SQL.

مهارت‌های اصلی و عمومی‌تر چطور؟ هر مهارت نصب‌شده ۱۰۰ تا ۲۰۰ ژتون به بافت پایه هر تکلیفی که شروع می‌کنید تزریق می‌کند. اگر آن مهارت واقعاً فعال شود، این تعداد می‌تواند به‌سرعت به هزاران برسد. در بیشتر موارد، احتکار مهارت‌های پایه هم غیرسازنده است و هم پرهزینه. قبل‌از نصب مهارتی برای نوشتن Kotlin یا Compose پایه، درنظر بگیرید که آیا مدل زبانی بزرگ انتخابی شما واقعاً به آن نیاز دارد یا اینکه ازقبل این موضوعات را به‌اندازه کافی می‌داند. 

درحال ارزیابی مهارت‌ها

قبل‌از انتشار، هر مهارت دربرابر مجموعه‌ای جامع از ارزیابی‌ها آزمایش می‌شود تا ثابت شود که مهارت ارزش واضحی ارائه می‌دهد. این ارزیابی‌ها باید وقتی مهارت فعال است قبول شوند و درغیراین‌صورت رد شوند. ارزیابی‌ها برای مهارت‌ها همان نقشی را دارند که آزمایش‌های ادغام برای کد دارند. 

timeout_s: 1200
repository:
  url: [redacted - internal git repo]
  working_dir: wear_compose_m3_empty_app
category_ids:
  - wear
prompt: |-
  Add a horizontal pager to MainActivity.kt. Have three pages in the pager. Each page should contain
  the text "Page 1", "Page 2", and "Page 3" respectively in the center of the screen.
commands:
  build:
    - ./gradlew assembleDebug
acceptance_criteria:
  project_builds: true
  llm_diff_judge:
    - Must use `HorizontalPagerScaffold`.
    - Each page should use `AnimatedPage` to wrap a `ScreenScaffold`.

نمونه ارزیابی که پیاده‌سازی صحیح ورق‌زن افقی را در برنامه Wear بررسی می‌کند

ما حداقل مهارت را در «استودیو Android» بااستفاده از جدیدترین مدل Gemini Flash آزمایش می‌کنیم. بسته به مهارت، سازگاری با مدل‌های دیگر مانند Gemini Pro و عوامل دیگر مانند Antigravity و سیستم‌های طرف سوم را نیز تضمین می‌کنیم.

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

استفاده کردن از «پایگاه دانش Android» («استودیو Android» یا Android CLI)

اگر برنامه‌های Android توسعه می‌دهید، همیشه باید از «پایگاه دانش Android» استفاده کنید تا به اسناد رسمی دسترسی داشته باشید. اگر از عامل در Android Studio استفاده می‌کنید، این عامل ازقبل به‌عنوان ابزار دردسترس است، اما اگر از عامل دیگری استفاده می‌کنید، Android CLI را نصب کنید. ازجمله، حاوی فرمان docs است که به نماینده شما امکان می‌دهد به اسناد رسمی Android دسترسی داشته باشد. داشتن یک ابزار واحد بسیار کارآمدتر از نصب صدها مهارت است.

اگر مدل شما بیش‌ازحد مطمئن عمل می‌کند و می‌خواهید بیشتر به اسناد مراجعه کند، یک روش بسیار رایج برای تشویق آن این است که عبارت «همیشه هنگام کار با Android API به اسناد رسمی Android مراجعه کن» را به فایل AGENTS.md یا معادل آن اضافه کنید. البته می‌توانید با درخواست از نماینده برای بررسی مستقیم اسناد در پیام‌واره‌هایتان، این کار را به‌اجبار انجام دهید.

چرا درخواست‌های واکشی غیرفعال شده است؟

ازآنجایی‌که چارچوب ارزیابی ما به زیرساخت داخلی وابسته است که نمی‌تواند متن‌باز باشد، نمی‌توانیم درخواست‌های کشش مستقیم را برای مهارت‌های جدید بپذیریم—بدون این زیرساخت، راهی برای ارزیابی مجدد تغییرات درخواست کشش ورودی نخواهیم داشت. بااین‌حال، ما فعالانه بازخورد انجمن را نظارت می‌کنیم. اگر می‌خواهید اشکالی را گزارش کنید، بهینه‌سازی‌ای را پیشنهاد دهید، یا مهارت رسمی جدیدی درخواست کنید، لطفاً مشکل را ثبت کنید!

چه زمانی مهارت‌های اصلی یا پایه منطقی به‌نظر می‌رسند؟

درحالی‌که مدل‌های SOTA معمولاً به مهارت‌های پایه نیاز ندارند، سناریوهایی وجود دارد که در آن‌ها فعال کردن مهارت‌های اصلی یا مهارت‌های ساخته‌شده توسط انجمن ارزش واقعی اضافه می‌کند. برای مثال:

  • از پیام‌واره‌های مبهم استفاده می‌کنید: «مهارت‌ها» قصد شما را تقویت می‌کنند. اگر پیام‌واره‌ای کلی مانند «افزودن پویانمایی به این صفحه» ارائه دهید، یک مهارت پویانمایی خاص Compose می‌تواند به مدل الهام ببخشد و آن را به‌سمت میاناهای برنامه‌سازی کاربردی مدرن یا الگوهای آزمایش نماگرفت سوق دهد که ممکن است درغیراین‌صورت درنظر گرفته نشوند.
  • می‌خواهید از مدل‌های کوچک‌تر و ارزان‌تر استفاده کنید: مدل‌های زبانی بزرگ پیشرو گران هستند. اگر کارهای روتین را به مدل‌های وزن باز کوچک‌تر مانند Gemma 4 واگذار می‌کنید، فعال کردن مهارت‌های پایه شکاف‌های دانشی را که پارامترهای کوچک‌تر ازدست می‌دهند پر می‌کند.
  • درحال بازسازی یا مرور کد قدیمی هستید: مدل‌ها در تولید کد کارآمد عالی هستند، اما هنگام ویرایش پایگاه‌های کد قدیمی، اغلب سازگاری با الگوهای قدیمی اطراف را بر بازنویسی با دقت مدرن ترجیح می‌دهند. یک عامل بازبین متخصص مجهز به مهارت‌های اصلی می‌تواند به ترک این عادت کمک کند.
  • از هنجارها منحرف می‌شوید: مدل‌های زبانی بزرگ عاشق «روش Google» استاندارد برای معماری برنامه‌های Android هستند. اگر تیم شما از معماری لایه نمای بسیار سفارشی‌شده استفاده می‌کند، مدل برای همسو ماندن با مشکل مواجه خواهد شد. مهارت سفارشی که معماری شما را به‌طور صریح توصیف می‌کند بسیار مؤثر است.

مهارت‌های اصلی را کجا می‌توانم پیدا کنم؟

انجمن Android از شما حمایت می‌کند. کریس بینز مجموعه جامعی از مهارت‌ها را برای Compose و Kotlin دارد، ایوان مورگیلو مهارتی را منتشر کرده است که پروژه‌های Compose را ممیزی می‌کند، و جیوونگ اوم دو مهارت درزمینه آزمایش و عملکرد ایجاد کرده است. 

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

هدف: منسوخ شدن

به‌طور خلاصه، کارپاتی می‌گوید: مهارت‌های امروز در مدل‌های فردا خواهند بود. با بهبود مستمر مدل‌های SOTA، انتظار داریم مهارت‌ها منسوخ شوند، به‌ویژه مهارت‌هایی که براساس میاناهای برنامه‌سازی کاربردی جدید ساخته شده‌اند. برای اینکه بفهمیم چه زمانی باید آن‌ها را بازنشسته کنیم، وقتی مدل‌های جدید منتشر می‌شوند، ارزیابی‌هایمان را اجرا می‌کنیم. اگر این آزمایش‌ها موفقیت‌آمیز باشد، آن‌ها را برای چند ماه نگه می‌داریم تا اکثر کاربران به نسخه جدید منتقل شوند. 

نویسنده:
ادامه خواندن