社群

Android Skills 內部 - 專為淘汰而建構

4 分鐘小故事
查看 Jose Alcérreca 的個人資料
Jose Alcérreca 開發人員關係工程師

我們在 4 月發布了正式版 Android Skills ,獲得的迴響超乎預期。在這篇網誌文章中,我將說明我們收到的部分意見回饋,並解釋這項專案背後的理念和方法。希望這能幫助您瞭解安裝及使用技能時幕後發生的情況,進而更有效率地運用權杖和時間。

為什麼官方技能這麼少?

目前,只有在最先進 (SOTA) 模型中出現可驗證的知識缺口時,我們才會考慮新技能。簡單來說,您不需要教導模型已知的內容。(不過有幾種情況例外,請繼續閱讀!)

我們目前已發布約 20 項官方技能,這些技能刻意鎖定標準模型尚未完全掌握的特定快速發展領域,例如 AGP 9、Navigation 3、進階 Camera API 和 Perfetto SQL。

那麼核心技能或更通用的技能呢?每項已安裝的技能都會在您開始的每項工作,將 100 到 200 個符記注入基準情境。如果該技能實際啟用,計數很快就會跳到數千。在大多數情況下,囤積基本技能既沒有生產力,又很花錢。安裝撰寫基本 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`.

範例評估,檢查穿戴式應用程式是否正確導入水平分頁

我們至少會在 Android Studio 中使用最新的 Gemini Flash 模型測試技能。視技能而定,我們也會確保與其他模型 (例如 Gemini Pro) 和其他代理程式 (例如 Antigravity) 及第三方系統相容。

所有評估作業都會存取知識庫,因此如果文件中有相關資訊,且模型決定要搜尋,我們就不會發布相關技能。

使用 Android 知識庫 (Android Studio 或 Android CLI)

如果您開發 Android 應用程式,請務必使用 Android 知識庫,存取官方文件。如果您在 Android Studio 中使用代理程式,該代理程式已做為工具提供,但如果您使用其他代理程式,請安裝 Android CLI。其中包含 docs 指令,可讓代理程式存取官方 Android 文件。比起安裝數百項技能,使用單一工具的效率更高。

如果模型過於自信,而您希望模型更常參考說明文件,常見的做法是在 AGENTS.md 檔案或同等檔案中加入「處理 Android API 時,請一律參考官方 Android 說明文件」。當然,您也可以在提示中直接要求代理程式檢查文件,強制執行這項操作。

為什麼提取要求遭到停用?

由於我們的評估框架依賴無法開放原始碼的內部基礎架構,因此我們無法接受新技能的直接提取要求。如果沒有這個基礎架構,我們就無法重新評估傳入的 PR 變更。不過,我們會積極留意社群意見回饋。如要回報錯誤、建議最佳化做法或要求新的官方技能,請提出問題

何時適合使用核心或基本技能?

雖然 SOTA 模型通常不需要基本技能,但在某些情況下,啟用核心或社群建構的技能會帶來實質價值。例如:

  • 提示過於籠統:技能可強化意圖。如果您提供寬鬆的提示,例如「為這個畫面新增動畫」,特定的 Compose 動畫技能可能會激發模型,促使模型採用現代化 API 或螢幕截圖測試模式,否則模型可能不會考慮這些模式。
  • 您想使用較小且較便宜的模型:前沿 LLM 價格高昂。如果您要將例行工作卸載至 Gemma 4 等較小的開放權重模型,啟用基本技能可填補較小參數遺漏的知識。
  • 您正在重構或審查舊版程式碼:模型擅長生成可執行的程式碼,但編輯舊版程式碼集時,模型通常會優先保持與周圍舊版模式的一致性,而非以現代準確度重寫內容。具備核心技能的專用審查代理程式可協助你戒除這種習慣。
  • 您偏離常規:LLM 喜歡以標準的「Google 方式」架構 Android 應用程式。如果團隊使用高度自訂的檢視層架構,模型就難以保持一致。明確描述架構的自訂技能會很有幫助。

哪裡可以找到核心技能?

Android 社群是你的好幫手。Chris Banes 製作了一系列有關 Compose 和 Kotlin 的技能,Ivan Morgillo 發布了可稽核 Compose 專案的技能,Jaewoong Eum 則製作了測試效能兩項技能。

請務必從信譽良好的來源下載技能!我個人不會信任包含數十或數百項 Android 技能的存放區,因為這些技能可能由 AI 生成且未經測試,甚至可能含有惡意或有偏見的指令。此外,請勿盲目學習一般軟體工程技能,因為其中許多技能是為網頁開發量身打造。

目標:淘汰

用 Karpathy 的話來說:今天的技能將成為明日模型的一部分。隨著 SOTA 模型不斷進步,我們預期技能會逐漸過時,尤其是以新版 API 為基礎建構的技能。為判斷何時淘汰舊模型,我們會在推出新模型時進行評估。如果通過,我們會保留幾個月,直到大多數使用者都完成轉移為止。

撰寫者:
繼續閱讀