Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[Bug]: Testing agent gives one service's tools inconsistent name prefixes, so the model calls names that don't exist

オープン
#64 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
1〜2日
初心者へのやさしさ
55/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
android, kotlin

調査の方向性

Start by locating GeminiToolConverter.getGeminiFunctionName and trace how converted function names are matched when the Gemini provider receives a tool call; the report also names GeminiProviderImpl as a possible entry point. Reproduce with one service whose methods cross the 64-character cutoff at different points, then verify that its tools have consistent names or that calls resolve correctly; the issue provides no test file to run.

索引モデルが issue の本文から書いたものです。

説明

Description

The Testing Agent shortens each AppFunction id to a Gemini function name of at most 64 characters by keeping as many _-separated parts as fit, from the right (GeminiToolConverter.getGeminiFunctionName). Because the cutoff depends on each method's length, the tools of one service end up with different prefixes:

com.example.app.feature.notes.ExampleNotesAppFunctionService#addNote
  -> example_app_feature_notes_ExampleNotesAppFunctionService_addNote
com.example.app.feature.notes.ExampleNotesAppFunctionService#updateNoteSettings
  -> feature_notes_ExampleNotesAppFunctionService_updateNoteSettings
com.example.app.feature.notes.ExampleNotesAppFunctionService#getNoteFieldDescriptions
  -> notes_ExampleNotesAppFunctionService_getNoteFieldDescriptions

The model generalizes from the majority and "corrects" the others, so it calls names that don't exist, for example:

Called unknown function: feature_notes_ExampleNotesAppFunctionService_getNoteFieldDescriptions

We also saw a doubled prefix (the shortened prefix repeated in front of a full name) from the same confusion. Each failure ends the agent's turn.

Steps to reproduce
  1. Expose a service with a long package and class name and methods of varying length (anything that crosses the 64-character cutoff at different parts).
  2. Run a task in Agent Demo that needs one of the longer-named functions.
  3. The model calls a prefixed variant and the agent reports Called unknown function.
Suggested fix

Any of these would help:

  • Give all tools of one service the same prefix, e.g. pick the cutoff once per service (the deepest part every method of that service fits), or use ClassName_method with a short hash when even that exceeds 64 characters.
  • Resolve calls tolerantly: when the exact name is unknown, fall back to the unique tool whose name ends with the called name's ClassName_method suffix. A local patch doing this in GeminiProviderImpl removed the errors in our testing.
Environment
  • Testing Agent at a3a2a89 (main, Oct 23, 2026)
  • androidx.appfunctions 1.0.0-beta01
  • Android 17 (API 37) emulator, model gemini-3.5-flash

Related: #62, #63.

主要言語
Kotlin
スター
210
フォーク
45
平均マージ
12時間 24分
マージ済み PR(30日)
3

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

android/appfunctions のほかの issue

android/appfunctions の issue をすべて見る

似ている issue

Kotlin の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。