Skip to content

GCP Skill Registry

The GCP Skill Registry lets you store and serve skills through Google Cloud’s Vertex AI Agent Platform. Once imported, skills can be referenced from any scion-agent.yaml using the gcp-skill:// URI scheme — no Scion Hub required.

This tutorial walks through setting up the registry, importing skills from a GitHub repository, and verifying the results using the helper scripts in scripts/skill-bank/gcp/.

  • A GCP project with the Agent Platform API (aiplatform.googleapis.com) enabled
  • Python 3.8+
  • Application Default Credentials configured
  • The scripts from scripts/skill-bank/gcp/ in your local checkout
Terminal window
gcloud services enable aiplatform.googleapis.com --project=YOUR_PROJECT_ID
Terminal window
gcloud auth application-default login

Or, for a service account:

Terminal window
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json

Your account needs the roles/aiplatform.user IAM role on the project.

The scripts require a few Python packages:

Terminal window
pip install -r scripts/skill-bank/gcp/requirements.txt

This installs:

  • google-auth — GCP authentication
  • google-auth-httplib2 — HTTP transport for auth
  • requests — HTTP client
  • pyyaml — YAML parsing for SKILL.md frontmatter

Edit scripts/skill-bank/gcp/config.py to point at your project and region:

PROJECT_ID = "your-gcp-project-id"
LOCATION = "us-central1"
API_BASE = f"https://{LOCATION}-aiplatform.googleapis.com/v1beta1"
SKILLS_PARENT = f"projects/{PROJECT_ID}/locations/{LOCATION}"
SKILLS_URL = f"{API_BASE}/{SKILLS_PARENT}/skills"

Change PROJECT_ID to your GCP project and LOCATION to your preferred region (e.g. us-central1, europe-west1).

The Skill Registry is a project-level service — there is no separate creation step. Run create_registry.py to confirm the API is enabled and accessible:

Terminal window
python3 scripts/skill-bank/gcp/create_registry.py

Expected output:

Project: your-gcp-project-id
Location: us-central1
Endpoint: https://us-central1-aiplatform.googleapis.com/v1beta1/projects/your-gcp-project-id/locations/us-central1/skills
Registry is accessible. 0 skill(s) found.

If you see a 403 or 404 error, double-check that the API is enabled and your credentials have the roles/aiplatform.user role.

The import_skills.py script clones a skill repository, discovers all valid skill directories, and uploads each one to the registry:

Terminal window
python3 scripts/skill-bank/gcp/import_skills.py

Example output:

Cloning https://github.com/mattpocock/skills.git...
Found 24 skills to import.
Importing engineering/api-design... OK
Importing engineering/code-review... OK
Importing engineering/debugging... OK
Importing misc/markdown-formatting... OK
Importing productivity/time-management... ALREADY EXISTS (skipped)
...
Results: 22 imported, 2 already existed, 0 failed
Total skills in repo: 24

The script walks the cloned repository looking for directories that contain a SKILL.md file. Each SKILL.md must have YAML frontmatter with name and description fields:

---
name: code-review
description: Guidelines for thorough code reviews.
---
# Code Review
Review checklist and best practices...

The entire skill directory (including any supporting files) is zipped and uploaded to the registry. Skills that already exist in the registry are skipped (HTTP 409).

List all skills in the registry to confirm the import succeeded:

Terminal window
python3 scripts/skill-bank/gcp/list_skills.py

Example output:

Listing skills in your-gcp-project-id / us-central1
Name Display Name State
------------------------------------------------------------------------------------------
api-design api-design ACTIVE
code-review code-review ACTIVE
debugging debugging ACTIVE
markdown-formatting markdown-formatting ACTIVE
time-management time-management ACTIVE
Total: 5 skill(s)

Once skills are in the GCP registry, reference them from a scion-agent.yaml using the gcp-skill:// URI scheme:

scion-agent.yaml
schema_version: "1"
name: my-agent
skills:
- uri: gcp-skill://my-registry/code-review
- uri: gcp-skill://my-registry/api-design@1.0.0
optional: true

The gcp-skill:// scheme follows the format gcp-skill://<alias>/<skillId>@<version>, where:

  • alias — the registry alias configured in your skill federation settings
  • skillId — the skill name as registered in GCP
  • version — an optional version specifier (defaults to latest)

For the federation setup that connects your Scion Hub to a GCP registry, see Skill Registry & Federation.