社区

Inside Android Skills - Built for deprecation

阅读用时:4 分钟
查看 Jose Alcérreca 的个人资料
Jose Alcérreca 开发者关系工程师

我们在 4 月份发布了官方 Android 技能 ,反响超出了我们的预期。在这篇博文中,我将针对我们收到的一些反馈,解释该项目背后的理念和方法。希望这也能帮助您了解在安装和使用技能时,系统后台会发生什么,从而让您更好地利用 token 和自己的时间。

为什么官方技能这么少?

目前,只有在前沿 (SOTA) 模型中存在可验证的知识差距时,我们才会考虑添加新技能。简单来说,您无需向模型传授它已经知道的内容。(不过也有一些例外情况,请继续阅读!)

到目前为止,我们已经发布了大约 20 项官方技能,这些技能专门针对标准模型尚未完全掌握的高度专业化、快速发展的领域,例如 AGP 9、Navigation 3、高级 Camera API 和 Perfetto SQL。

那核心、更通用的技能呢?每项已安装的技能都会向您启动的每项任务的基准上下文注入 100-200 个 token。如果该技能实际激活,则该计数可能会快速跃升至数千。在大多数情况下,囤积基本技能既会适得其反,又会增加成本。在安装用于编写基本 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`.

检查 Wear 应用中水平分页器是否正确实现的评估示例

我们至少会在 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 文档”。当然,您也可以在提示中直接要求代理查看文档,从而强制执行此操作。

为什么拉取请求被停用?

由于我们的评估框架依赖于无法开源的内部基础架构,因此我们无法直接接受针对新技能的拉取请求。如果没有此基础架构,我们将无法重新评估传入的拉取请求更改。不过,我们会积极关注社区反馈。如果您想报告 bug、提出优化建议或请求新的官方技能,请提交问题!

何时适合使用核心技能或基本技能?

虽然 SOTA 模型通常不需要基本技能,但在某些场景中,启用核心技能或社区构建的技能会带来实际价值。例如:

  • 提示不明确:技能会放大您的意图。如果您给出了一个宽泛的提示,例如“为此屏幕添加动画”,那么特定的 Compose 动画技能可以启发模型,促使其采用它原本可能不会考虑的现代 API 或屏幕截图测试模式。
  • 您希望使用更小、更便宜的模型:前沿 LLM 价格昂贵。如果您将日常任务分流给 Gemma 4 等较小的开放权重模型,启用基本技能可以填补较小参数所缺失的知识空白。
  • 重构或审查旧代码:模型擅长生成可运行的代码,但在编辑旧代码库时,它们往往会优先考虑与周围的旧模式保持一致,而不是以现代准确性重写内容。配备核心技能的专业审核员智能体可以帮助打破这种习惯。
  • 偏离常规:LLM 偏爱标准的“Google 方式”来构建 Android 应用架构。如果您的团队使用高度自定义的视图层架构,模型将难以保持一致。明确描述架构的自定义技能大有裨益。

在哪里可以找到核心技能?

Android 社区随时为您提供支持。Chris Banes 提供了一套全面的 Compose 和 Kotlin 技能,Ivan Morgillo 发布了一项用于审核 Compose 项目的技能,Jaewoong Eum 则创建了测试和性能方面的两项技能。

请务必从信誉良好的来源下载技能!我个人不会信任包含数十或数百个 Android 技能的代码库,因为它们可能是 AI 生成的,未经测试,甚至可能包含恶意或有偏见的指令。此外,不要盲目安装通用软件工程技能;其中许多技能都是针对 Web 开发量身定制的。

目标:弃用

用 Karpathy 的话来说:今天的技能将成为明天的模型。随着 SOTA 模型不断改进,我们预计一些技能将会过时,尤其是那些围绕新 API 构建的技能。为了确定何时停用这些模型,我们会在新模型发布时运行评估。如果通过,我们会保留这些功能几个月,直到大多数用户都完成过渡。

作者:
继续阅读