جامعه

مهارت‌های درون اندروید - ساخته شده برای منسوخ شدن

۴ دقیقه مطالعه
مشاهده پروفایل خوزه آلسرکا
Jose Alcérreca مهندس روابط توسعه‌دهنده

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

چرا مهارت‌های رسمی اینقدر کم هستند؟

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

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

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

ارزیابی مهارت‌ها

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

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`.

مثالی از ارزیابی که پیاده‌سازی صحیح یک پیجر افقی را در یک برنامه کاربردی بررسی می‌کند

حداقل، ما مهارت را در اندروید استودیو با استفاده از آخرین مدل Gemini Flash آزمایش می‌کنیم. بسته به مهارت، ما همچنین سازگاری با مدل‌های دیگر مانند Gemini Pro و سایر عوامل مانند Antigravity و سیستم‌های شخص ثالث را تضمین می‌کنیم.

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

استفاده از پایگاه دانش اندروید (اندروید استودیو یا رابط خط فرمان اندروید)

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

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

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

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

چه زمانی مهارت‌های اصلی یا پایه معنا پیدا می‌کنند؟

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

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

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

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

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

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

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

نوشته شده توسط:
ادامه مطلب