Registre des compétences Vertex AI

Le registre des compĂ©tences est le service du pilier Build de Gemini Enterprise Agent Platform qui stocke les packages SKILL.md versionnĂ©s sous forme d’archives zip sur aiplatform.googleapis.com. ADK-Rust s’y intĂšgre en mode consommation uniquement : les agents dĂ©couvrent, tĂ©lĂ©chargent et chargent des compĂ©tences gouvernĂ©es de maniĂšre centralisĂ©e, tandis que le provisionnement (crĂ©ation, mise Ă  jour, suppression, publication) reste assurĂ© par les outils de la plateforme.

Remarque : le API du registre des compétences est en v1beta1 (Preview), fourni uniquement depuis des points de terminaison https://{location}-aiplatform.googleapis.com régionaux dans us-central1, europe-west4 et us-east5. Il est distinct du registre des agents, un service séparé du pilier Govern destiné à cataloguer les agents.

Configuration

Activez la fonctionnalité sur adk-skill (et sur adk-cli pour les commandes) :

[dependencies]
adk-skill = { version = "2.1.0", features = ["vertex-skill-registry"] }

L’authentification utilise les identifiants par dĂ©faut de l’application (gcloud auth application-default login). La configuration provient de GOOGLE_CLOUD_PROJECT et GOOGLE_CLOUD_LOCATION, ou de valeurs explicites.

Ce que fait le client — et ce qu’il ne fait pas

OpérationSurface
Obtenir une compétence (avec charge utile)SkillRegistryClient::get_skill
Répertorier les compétencesSkillRegistryClient::list_skills
Recherche sémantiqueSkillRegistryClient::search_skills
Répertorier / récupérer les révisionslist_skill_revisions, get_skill_revision
Télécharger, vérifier, extrairefetch_skill_content, fetch_skill_revision_content
CrĂ©er / mettre Ă  jour / supprimerNon implĂ©mentĂ© — les outils de la plateforme gĂšrent le cycle de vie

Chaque charge utile tĂ©lĂ©chargĂ©e est vĂ©rifiĂ©e par SHA-256 par rapport Ă  l’empreinte du registre, puis extraite avec une validation zip en profondeur (nombre d’entrĂ©es, traversĂ©e de chemins, liens symboliques, noms en double, taille, ratio de compression et limites de profondeur) avant que le moindre octet ne soit utilisĂ©.

Charger les compétences du registre dans un agent

load_skill_index_from_registry produit un SkillIndex standard, de sorte que l’injection, la sĂ©lection et la coordination fonctionnent exactement comme avec les compĂ©tences du systĂšme de fichiers :

use adk_skill::registry::{
    RegistrySkillFilter, SkillRegistryClient, SkillRegistryConfig,
    load_skill_index_from_registry, merge_skill_indexes,
};
use adk_skill::load_skill_index;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = SkillRegistryClient::new_with_adc(SkillRegistryConfig::from_env()?)?;

    // Select by semantic search

    let remote = load_skill_index_from_registry(
        &client,
        RegistrySkillFilter::by_query("quarterly reporting").with_top_k(5),
    )
    .await?;

    // 
or by explicit names, optionally pinned to a revision.
    let pinned = load_skill_index_from_registry(
        &client,
        RegistrySkillFilter::by_names(["report-writer"]).with_revision("3"),
    )
    .await?;

    // Merge with project-local skills — local wins on name collision,
    // matching the project-local-over-global precedence of
    // load_skill_index_with_extras.
    let local = load_skill_index(".")?;
    let merged = merge_skill_indexes(local, remote);
    println!("{} skill(s) available ({} pinned)", merged.len(), pinned.len());
    Ok(())
}

Les SkillDocuments adossĂ©es au registre sont créées par le mĂȘme analyseur et le mĂȘme mĂ©canisme de hachage que les compĂ©tences du systĂšme de fichiers ; elles contiennent un path virtuel de {resource name}/SKILL.md et aucun horodatage last_modified.

L’outil d’agent search_skills

SkillSearchTool expose la recherche dans le registre aux agents LLM. Il est en lecture seule et sûr en contexte concurrent, ce qui lui permet de participer à la distribution parallÚle des outils :

use adk_skill::registry::{SkillRegistryClient, SkillRegistryConfig, SkillSearchTool};
use std::sync::Arc;

fn build_tool() -> adk_core::Result<SkillSearchTool> {
    let client = SkillRegistryClient::new_with_adc(SkillRegistryConfig::from_env()?)?;
    Ok(SkillSearchTool::new(Arc::new(client)))
}

L’entrĂ©e est un {"query": string, "top_k"?: integer} ; la sortie est un tableau de JSON composĂ© d’objets {name, skillName, description}, avec le meilleur rĂ©sultat en premier (le API ne renvoie aucun score).

CLI

Le binaire adk-rust acquiert deux sous-commandes en lecture seule derriÚre la fonctionnalité vertex-skill-registry :

[dependencies]
adk-cli = { version = "2.1.0", features = ["vertex-skill-registry"] }
# Semantic search (best match first)
adk-rust skills search "quarterly reporting" --top-k 5

# Materialize a skill package under .skills/<skill-id>/
adk-rust skills pull report-writer

# Pin a revision and choose the target directory
adk-rust skills pull report-writer --revision 3 --dir vendored-skills

Les deux commandes lisent les options --project/--location, en utilisant GOOGLE_CLOUD_PROJECT/GOOGLE_CLOUD_LOCATION comme solution de repli. Les compĂ©tences rĂ©cupĂ©rĂ©es sont placĂ©es dans la structure standard des compĂ©tences (SKILL.md ainsi que son references/), de sorte que skills list, skills match et la dĂ©couverte des compĂ©tences par l’agent les prennent immĂ©diatement en compte. Il n’existe aucune commande push — la publication passe par les outils de la plateforme.

Registre des compétences Vertex AI - Documentation ADK-Rust | ADK-Rust