Skip to content

fix(skills): remove unregistered script tool from default instructions - #1590

Open
quifox wants to merge 1 commit into
google:mainfrom
quifox:fix/skill-tool-instruction
Open

quifox wants to merge 1 commit into
google:mainfrom
quifox:fix/skill-tool-instruction

Conversation

@quifox

@quifox quifox commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Description of Change

Problem: SkillToolset registers list_skills, load_skill, and load_skill_resource, but its default guidance advertises run_skill_script and describes scripts as executable through bash. Its class and constructor Javadocs also imply execution support that the toolset does not provide.

Solution: Remove the unregistered-tool instruction and use ADK Python's guidance for unavailable script execution: scripts can be read with load_skill_resource and followed by the model. Update the Javadocs to describe listing skills and loading their instructions and resources. Custom system instructions retain their existing behavior.

The regression test compares tool names in the default instruction with the registered tools and checks that the script guidance describes unavailable execution without advertising bash support.

Reference: ADK Python's script guidance.

Testing Plan

Unit Tests:

  • I have updated unit tests for my change.
  • Focused unit tests pass with the revised guidance.

Java 17, with Google Java formatting enabled:

mvn -B -ntp -pl core -Dfmt.skip=false -Dtest=SkillToolsetTest -Dsurefire.failIfNoSpecifiedTests=false test

The strengthened regression fails against the previous guidance (6 tests, 1 failure, 0 errors). With the revised guidance, SkillToolsetTest passes all 6 tests in each of the default-test and basic executions, with 0 failures, errors, or skips. These two executions run the same suite. The additional configured Surefire executions also complete successfully.

Manual End-to-End (E2E) Tests: Not run against a live model provider. The tests exercise the toolset's injected system instruction and the actual tools returned by getTools(), including the existing custom-instruction coverage.

Checklist

  • I have read CONTRIBUTING.md.
  • My pull request contains a single commit.
  • I have performed a self-review of my code.
  • I have added regression coverage for the default instruction.
  • Focused unit tests pass with my changes.
  • I have manually tested my changes end-to-end.

No script-execution tool, dependency, or public API is added.

@google-cla

google-cla Bot commented Oct 1, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@hemasekhar-p hemasekhar-p self-assigned this Oct 7, 2026
@hemasekhar-p
hemasekhar-p force-pushed the fix/skill-tool-instruction branch from 941d9e8 to b13dfc6 Compare October 7, 2026 10:36
@hemasekhar-p

Copy link
Copy Markdown
Contributor

Hi @quifox, thank you for your contribution! We appreciate you taking the time to submit this pull request. Currently this PR is under review by our team, we will keep you posted if any additional information is required. thank you.

@sherryfox

Copy link
Copy Markdown
Contributor

Thanks @quifox — SkillToolset never registers run_skill_script, so step 4 was sending the model to a tool that doesn't exist.

One request: the scripts/ bullet still says "Executable scripts that can be run via bash", which makes the same promise without naming a tool. ADK Python swaps that bullet when script execution is unavailable; could you use the same text? - **scripts/** (Optional): Scripts bundled with the skill. You cannot run them; use \load_skill_resource to read one and follow it yourself..

Optional: the class Javadoc ("list, load, and run skills") and the one-arg constructor Javadoc ("default execution settings") also mention running scripts.

@sherryfox sherryfox added needs update waiting on reporter Waiting for reaction by reporter. Failing that, maintainers will eventually closed it as stale. and removed needs review needs update labels Oct 22, 2026
@quifox
quifox force-pushed the fix/skill-tool-instruction branch from b13dfc6 to 9d68053 Compare October 24, 2026 01:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting on reporter Waiting for reaction by reporter. Failing that, maintainers will eventually closed it as stale.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants