Cộng đồng

Kỹ năng Android nội bộ – Được xây dựng để ngừng sử dụng

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

Chúng tôi đã phát hành Kỹ năng Android chính thức vào tháng 4 và phản hồi nhận được đã vượt qua mọi kỳ vọng của chúng tôi. Trong bài đăng này trên blog, tôi sẽ giải đáp 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 rằng điều này cũng sẽ giúp bạn hiểu được những gì diễn ra trong hậu trường khi bạn cài đặt và sử dụng các kỹ năng, từ đó giúp bạn sử dụng mã thông báo và thời gian của mình hiệu quả hơn.

Tại sao 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ó lỗ hổng kiến thức có thể xác minh được trong các mô hình tiên tiến nhất (SOTA). Nói một cách đơn giản: bạn không cần phải dạy mô hình những gì nó đã biết. (Tuy nhiên, vẫn có một số 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à các kỹ năng này chủ yếu nhắm đến những lĩnh vực có tốc độ phát triển nhanh và mang tính đặc thù cao mà các mô hình tiêu chuẩn chưa hoàn toàn nắm bắt được, chẳng hạn như AGP 9, Navigation 3, API Camera nâng cao và Perfetto SQL.

Còn những kỹ năng cốt lõi, phổ biến hơn thì sao? Mỗi kỹ năng được cài đặt sẽ đưa 100 – 200 token vào bối cảnh cơ sở của mọi nhiệm vụ 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 trữ 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 mã 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 đó đã hiểu rõ 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 tra 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. Các bản đánh giá này sẽ đạt khi kỹ năng đang hoạt động và không đạt khi kỹ năng không hoạt động. Đánh giá là kỹ năng, còn 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ề quy trình đánh giá kiểm tra việc triển khai đúng cách trình chuyển trang ngang trên một ứng dụng Wear

Tối thiểu, chúng tôi sẽ 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 bài đánh giá đều chạy khi có quyền truy cập vào Cơ sở kiến 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 về 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 để có quyền truy cập vào tài liệu chính thức. Nếu bạn sử dụng tác nhân trong Android Studio, thì tác nhân đó đã có sẵn dưới dạng một công cụ. Tuy nhiên, nếu bạn sử dụng một tác nhân khác, hãy cài đặt CLI Android. Trong số những thứ khá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 về 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 hoạt độ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 về Android khi xử lý 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 tác nhân làm việc 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.

Tại sao yêu cầu lấy dữ liệu bị tắt?

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ể cung cấp dưới dạng 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 thể đánh giá lại các thay đổi về yêu cầu kéo (PR) sắp tới. Tuy nhiên, chúng tôi vẫ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 thì 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 có một số trường hợp việc bật các kỹ năng cốt lõi hoặc do cộng đồng xây dựng sẽ mang lại giá trị thực sự. Ví dụ:

  • Bạn đang sử dụng câu lệnh mơ hồ: Kỹ năng giúp làm rõ ý định của bạn. 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 mẫu kiểm thử ảnh chụp màn hình mà có thể mô hình chưa từng xem xét.
  • Bạn muốn sử dụng các mô hình nhỏ hơn, tiết kiệm hơn: Các LLM tiên phong thường tốn kém. Nếu bạn đang chuyển các nhiệm vụ thường ngày sang các mô hình trọng số mở nhỏ hơn như Gemma 4, thì việc bật các kỹ năng cơ bản sẽ lấp đầy những lỗ hổng kiến thức mà các tham số nhỏ hơn bỏ sót.
  • Bạn đang tái cấu trúc hoặc xem xét mã cũ: Các mô hình rất giỏi trong việc tạo mã hoạt động được, nhưng khi chỉnh sửa cơ sở mã cũ, các mô hình thường ưu tiên duy trì 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ứ theo cách hiện đại và chính xác. Một nhân viên đánh giá chuyên trách được trang bị các kỹ năng cốt lõi có thể giúp bạn phá vỡ thói quen đó.
  • Bạn đi chệch khỏi quy chuẩn: LLM thích "phương pháp chuẩn của Google" để thiết kế ứng dụng Android. Nếu nhóm của bạn sử dụng cấu trúc lớp khung hiển thị được tuỳ chỉnh cao, thì mô hình sẽ gặp khó khăn trong việc duy trì sự nhất quán. Một kỹ năng tuỳ chỉnh mô tả rõ ràng cấu trúc của bạn sẽ giúp ích rất nhiều.

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

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

Luôn tải kỹ năng xuống từ các nguồn uy tín! Cá nhân tôi sẽ không tin tưởng các kho lưu trữ chứa hàng chục hoặc hàng trăm kỹ năng Android vì chúng có thể do AI tạo và chưa được kiểm thử, thậm chí có thể chứa các hướng 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 trong số đó được thiết kế riêng cho việc phát triển web.

Mục tiêu: Ngừng sử dụng

Nói một cách nôm na theo Karpathy: Kỹ năng của ngày 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, chúng tôi sẽ chạy các quy trình đánh giá khi có mô hình mới. Nếu các tính năng này vượt qua được giai đoạn thử nghiệm, chúng tôi sẽ duy trì trong vài tháng cho đến khi hầu hết người dùng đã chuyển sang. 

Tác giả:
Tiếp tục đọc