Cộng đồng

Inside Android Skills – Built for deprecation

4 phút đọc
Xem hồ sơ của Jose Alcérreca
Jose Alcérreca Kỹ sư quan hệ với nhà phát triển

Chúng tôi đã phát hành Android Skills  chính thức vào tháng 4 và phản hồi nhận được vượt quá mọi mong đợi của chúng tôi. Trong bài đăng này trên blog, tôi sẽ giải quyết một số ý kiến phản hồi mà chúng tôi nhận được, đồng thời giải thích triết lý và phương pháp đằng sau dự án này. Hy vọng điều này cũng sẽ giúp bạn hiểu rõ những gì diễn ra khi bạn cài đặt và sử dụng các kỹ năng, nhờ đó bạn có thể sử dụng mã thông báo và thời gian của mình một cách hiệu quả hơn.

Tại sao lại có quá ít kỹ năng chính thức?

Hiện tại, chúng tôi chỉ xem xét các kỹ năng mới khi có khoảng trống kiến thức có thể xác minh trong các mô hình hiện đại (SOTA). Nói một cách đơn giản: bạn không cần dạy cho mô hình những gì nó đã biết. (Mặc dù có một vài trường hợp ngoại lệ – hãy đọc tiếp!)

Cho đến nay, chúng tôi đã phát hành khoảng 20 kỹ năng chính thức và những kỹ năng này cố tình nhắm đến các lĩnh vực có tính đặc thù cao và thay đổi nhanh chóng mà các mô hình tiêu chuẩn chưa hoàn toàn dựa vào, chẳng hạn như AGP 9, Navigation 3, Camera API nâng cao và Perfetto SQL.

Còn những kỹ năng cốt lõi, mang tính tổng quát hơn thì sao? Mỗi kỹ năng đã cài đặt sẽ chèn 100 – 200 mã thông báo vào ngữ cảnh cơ bản của mọi tác vụ mà bạn bắt đầu. Nếu kỹ năng đó thực sự kích hoạt, thì số lượng có thể nhanh chóng tăng lên hàng nghìn. Trong hầu hết các trường hợp, việc tích luỹ các kỹ năng cơ bản vừa phản tác dụng vừa tốn kém. Trước khi cài đặt một kỹ năng viết Kotlin hoặc Compose cơ bản, hãy cân nhắc xem LLM mà bạn chọn có thực sự cần kỹ năng đó hay không, hoặc liệu LLM đó đã biết đủ rõ về các chủ đề đó hay chưa. 

Đánh giá kỹ năng

Trước khi phát hành, mỗi kỹ năng đều được kiểm thử dựa trên một bộ đánh giá toàn diện để chứng minh rằng kỹ năng đó mang lại giá trị rõ ràng. Những eval này sẽ vượt qua khi kỹ năng đang hoạt động và không vượt qua nếu không. Đánh giá là kỹ năng mà kiểm thử tích hợp là mã. 

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

Ví dụ về eval kiểm tra việc triển khai chính xác một trình phân trang ngang trên ứng dụng Wear

Tối thiểu, chúng tôi kiểm thử kỹ năng trong Android Studio bằng mô hình Gemini Flash mới nhất. Tuỳ thuộc vào kỹ năng, chúng tôi cũng đảm bảo khả năng tương thích với các mô hình khác như Gemini Pro và các tác nhân khác như Antigravity, cũng như các hệ thống của bên thứ ba.

Tất cả các quy trình đánh giá đều chạy với quyền truy cập vào Cơ sở tri thức. Vì vậy, nếu thông tin có trong tài liệu và các mô hình quyết định tìm kiếm thông tin đó, thì chúng tôi sẽ không xuất bản kỹ năng cho thông tin đó.

Sử dụng Cơ sở kiến thức Android (Android Studio hoặc Android CLI)

Nếu phát triển ứng dụng Android, bạn nên luôn sử dụng Cơ sở kiến thức Android để truy cập vào tài liệu chính thức. Nếu dùng tác nhân trong Android Studio, thì tác nhân này đã có sẵn dưới dạng một công cụ. Tuy nhiên, nếu dùng một tác nhân khác, hãy cài đặt Android CLI. Ngoài những nội dung khác, nó còn chứa lệnh docs, cho phép tác nhân của bạn truy cập vào tài liệu chính thức của Android. Việc có một công cụ duy nhất sẽ hiệu quả hơn nhiều so với việc cài đặt hàng trăm kỹ năng.

Nếu mô hình của bạn đang hành động quá tự tin và bạn muốn mô hình tham khảo tài liệu thường xuyên hơn, thì một cách rất phổ biến để thúc đẩy mô hình là thêm "Luôn tham khảo tài liệu chính thức của Android khi xử lý các API Android" vào tệp AGENTS.md hoặc tệp tương đương. Tất nhiên, bạn cũng có thể buộc điều này bằng cách yêu cầu tác nhân kiểm tra tài liệu ngay trong câu lệnh của bạn.

Tại sao yêu cầu kéo bị vô hiệu hoá?

Vì khung đánh giá của chúng tôi phụ thuộc vào cơ sở hạ tầng nội bộ không thể mã nguồn mở, nên chúng tôi không thể chấp nhận các yêu cầu kéo trực tiếp cho các kỹ năng mới. Nếu không có cơ sở hạ tầng này, chúng tôi sẽ không có cách nào để đánh giá lại các thay đổi trong yêu cầu kéo đến. Tuy nhiên, chúng tôi luôn tích cực theo dõi ý kiến phản hồi của cộng đồng. Nếu bạn muốn báo cáo lỗi, đề xuất cách tối ưu hoá hoặc yêu cầu một kỹ năng chính thức mới, vui lòng gửi vấn đề!

Khi nào các kỹ năng cốt lõi hoặc cơ bản có ý nghĩa?

Mặc dù các mô hình SOTA thường không cần các kỹ năng cơ bản, nhưng trong một số trường hợp, việc bật các kỹ năng cốt lõi hoặc kỹ năng do cộng đồng xây dựng sẽ mang lại giá trị thực. Ví dụ:

  • Bạn đang sử dụng câu lệnh mơ hồ: Kỹ năng sẽ giúp bạn thể hiện rõ ý định của mình. Nếu bạn đưa ra một câu lệnh chung chung như "thêm ảnh động vào màn hình này", thì một kỹ năng cụ thể về ảnh động trong Compose có thể truyền cảm hứng cho mô hình, thúc đẩy mô hình hướng đến các API hiện đại hoặc các mẫu kiểm thử ảnh chụp màn hình mà mô hình có thể chưa cân nhắc đến.
  • Bạn muốn sử dụng các mô hình nhỏ hơn, rẻ hơn: LLM tiên tiến có chi phí cao. Nếu bạn đang chuyển các tác vụ thường xuyên sang các mô hình có trọng số mở nhỏ hơn như Gemma 4, thì việc bật các kỹ năng cơ bản sẽ giúp lấp đầy những khoảng trống kiến thức mà các tham số nhỏ hơn bỏ lỡ.
  • Bạn đang tái cấu trúc hoặc xem xét mã cũ: Các mô hình có khả năng tạo mã hoạt động tốt, nhưng khi chỉnh sửa cơ sở mã cũ, các mô hình thường ưu tiên tính nhất quán với các mẫu cũ xung quanh hơn là viết lại mọi thứ một cách chính xác theo kiểu hiện đại. Một nhân viên đánh giá chuyên trách có kỹ năng cốt lõi có thể giúp bạn bỏ thói quen đó.
  • Bạn đi lệch chuẩn: Các LLM thích cách xây dựng ứng dụng Android theo "cách của Google" tiêu chuẩn. Nếu nhóm của bạn sử dụng một cấu trúc lớp hiển thị được tuỳ chỉnh cao, thì mô hình sẽ khó duy trì sự nhất quán. Một kỹ năng tuỳ chỉnh mô tả rõ ràng về cấu trúc của bạn sẽ mang lại nhiều lợi ích.

Tôi có thể tìm thấy các kỹ năng cốt lõi ở đâu?

Cộng đồng Android luôn hỗ trợ bạn. Chris Banes có một bộ kỹ năng toàn diện về Compose và Kotlin, Ivan Morgillo đã xuất bản một kỹ năng kiểm tra các dự án Compose và Jaewoong Eum đã tạo 2 kỹ năng về kiểm thử và hiệu suất

Luôn tải các kỹ năng xuống từ các nguồn có uy tín! Cá nhân tôi sẽ không tin tưởng những kho lưu trữ chứa hàng chục hoặc hàng trăm kỹ năng Android vì có thể chúng được tạo bằng AI và chưa được kiểm thử, thậm chí có thể chứa các chỉ dẫn độc hại hoặc thiên vị. Ngoài ra, đừng cài đặt các kỹ năng kỹ thuật phần mềm chung một cách mù quáng; rất nhiều kỹ năng trong số đó được điều chỉnh cho phù hợp với việc phát triển web.

Mục tiêu: ngừng cung cấp

Diễn giải lại một cách đơn giản câu nói của Karpathy: Các kỹ năng của hôm nay sẽ có trong các mô hình của ngày mai. Khi các mô hình SOTA tiếp tục cải thiện, chúng tôi dự kiến các kỹ năng sẽ trở nên lỗi thời, đặc biệt là những kỹ năng được xây dựng dựa trên các API mới. Để xác định thời điểm ngừng sử dụng các mô hình này, chúng tôi sẽ chạy quy trình đánh giá khi có mô hình mới. Nếu các phiên bản này vượt qua được, chúng tôi sẽ giữ lại chúng trong vài tháng cho đến khi hầu hết người dùng chuyển sang phiên bản mới. 

Tác giả:
Đọc tiếp