Skip to content

Adding VertexAI SkillsRegistry SkillsToolset Source#928

Open
nicholasbreckwoldt wants to merge 5 commits into
google:mainfrom
nicholasbreckwoldt:vertexai-skills-registry-source
Open

Adding VertexAI SkillsRegistry SkillsToolset Source#928
nicholasbreckwoldt wants to merge 5 commits into
google:mainfrom
nicholasbreckwoldt:vertexai-skills-registry-source

Conversation

@nicholasbreckwoldt
Copy link
Copy Markdown

Link to Issue or Description of Change

Describe the change:

Adding support for VertexAI SkillsRegistry.

Solution:
Integrating support for VertexAI SkillsRegistry through introducing a new Skills Source within current SkillsToolset implementation.

Also proposes an extended Source interface to support dynamic retrieval of skills through Search, complimented by adding a new SearchSkills to the SkillsToolset.

Testing Plan

Testing with SkillsRegistry within own Google Cloud project.

Unit Tests:

  • I have added or updated unit tests for my change.
  • All unit tests pass locally.

Please include a summary of passed go test results.

go test ./tool/skilltoolset/...

ok      google.golang.org/adk/tool/skilltoolset
ok      google.golang.org/adk/tool/skilltoolset/internal/skilltool
ok      google.golang.org/adk/tool/skilltoolset/skill
ok      google.golang.org/adk/tool/skilltoolset/skill/vertexai  2.965s

Manual End-to-End (E2E) Tests:
Manually testing using Google Cloud project SkillsRegistry configuration (and pre-bundled gcp-skill-registry skil).

Code snippet below:

import (
      ...
      vertexaiskills "google.golang.org/adk/tool/skilltoolset/skill/vertexai"
      "google.golang.org/adk/tool/skilltoolset"
)
...

source, err := vertexaiskills.NewRegistrySource(ctx, vertexaiskills.RegistryConfig{
		Project:  "GOOGLE_CLOUD_PROJECT",
		Location: "GOOGLE_CLOUD_REGION",
		Skills:   []string{
			"gcp-skill-registry",
		},
	})
if err != nil {
	log.Fatalf("Failed to create skill source: %v", err)
}

skillToolSet, err := skilltoolset.New(ctx, skilltoolset.Config{Source: source})
if err != nil {
	log.Fatalf("Failed to create skill toolset: %v", err)
}

...

adkAgent, err := llmagent.New(llmagent.Config{
    	...
	Toolsets: []tool.Toolset{
		skillToolSet,
	},
    	...
})
if err != nil {
        log.Fatalf("Failed to create agent: %v", err)
} 

ADK WebUI interaction example 1:

Screenshot 2026-05-31 at 08 03 24

ADK WebUI interaction example 2:

Screenshot 2026-05-31 at 08 05 02

Checklist

  • I have read the CONTRIBUTING.md document.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.
  • I have manually tested my changes end-to-end.
  • Any dependent changes have been merged and published in downstream modules.

Additional context

Due to current lacking formal support of SkillsRegistry in Golang Google Cloud library, the current proposed VertexAI SkillsRegistry client implementation relies on REST invocation. The elegance of this can certainly be improved by replacing wtih gRPC clients and protobuf definitions once made publically available.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

VertexAI SkillsRegistry

1 participant