View a markdown version of this page

Gestion des actifs - AWS DevOps Agent

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion des actifs

AWS DevOps L'agent stocke la configuration et le matériel de référence d'un espace agent sous forme d'actifs, les ressources gérées par le client qui façonnent ce que l'agent sait et comment il se comporte. Les compétences, AGENTS.md les fichiers et les pièces jointes sont tous des actifs, et vous pouvez les créer, les lire, les mettre à jour et les supprimer par programmation via l'API Asset.

Cette rubrique explique le modèle d'actif, les autorisations IAM dont vous avez besoin, les métadonnées attendues par chaque type d'actif et comment gérer les actifs de bout en bout avec la AWS CLI et le AWS SDK for Python (Boto3). Pour un aperçu conceptuel des compétences elles-mêmes, voirDevOps Compétences des agents. Pour les connaissances générées par des agents que vous ne créez pas vous-même, consultez. Compétences apprises

Quand utiliser l'API Asset

L'application Web Operator est le moyen le plus rapide de créer une seule compétence ou de télécharger un AGENTS.md fichier de manière interactive. L'API Asset expose les mêmes opérations par programmation afin que les scripts et l'automatisation puissent gérer les actifs sans passer par l'application Web. Les raisons les plus courantes pour appeler directement l'API Asset sont les suivantes :

  • Création ou mise à jour d'une ressource à partir d'un script, d'un terminal ou d'un bloc-notes au lieu de l'application Web.

  • Bulk-loading un ensemble de compétences ou de AGENTS.md fichiers de départ dans un nouvel espace d'agents.

  • Lire le contenu d'un actif pour le sauvegarder ou comparer des versions.

Chaque opération de l'API Asset est exposée via la AWS CLI en tant que devops-agent client aws devops-agent <operation> et via AWS les SDK.

Opérations de l'API des actifs

L'API Asset expose les opérations suivantes. Chaque ligne répertorie l'action IAM que vous devez autoriser pour appeler l'opération et la ressource à laquelle l'action s'applique. Chaque action se trouve dans l'espace de aidevops: noms et, à l'exception deListAssetTypes, s'applique à une ressource Agent Space du formulairearn:aws:aidevops:<region>:<account-id>:agentspace/<agentSpaceId>. Pour de plus amples informations sur aidevops: les autorisations, voirDevOps Autorisations IAM de l'agent.

Opération Description Action IAM Ressource
ListAssetTypes Répertoriez les types d'actifs pris en charge par AWS DevOps l'Agent. aidevops:ListAssetTypes *
CreateAsset Créez un nouvel actif dans un espace agent (compétence AGENTS.md, pièce jointe, agent personnalisé, profil de test ou feedback). aidevops:CreateAsset Espace des agents
GetAsset Récupérez les métadonnées et les informations de version d'un actif. aidevops:GetAsset Espace des agents
UpdateAsset Mettez à jour les métadonnées ou le contenu d'une ressource existante. aidevops:UpdateAsset Espace des agents
DeleteAsset Supprimez un actif et tous ses fichiers d'un espace agent. aidevops:DeleteAsset Espace des agents
ListAssets Répertoriez les actifs dans un espace agent, avec un filtrage optionnel par type d'actif. aidevops:ListAssets Espace des agents
ListAssetVersions Répertoriez les versions historiques d'une ressource. aidevops:ListAssetVersions Espace des agents
GetAssetContent Téléchargez le contenu complet d'une ressource sous forme de bundle zip. aidevops:GetAssetContent Espace des agents
CreateAssetFile Ajoutez un nouveau fichier à une ressource existante. aidevops:CreateAssetFile Espace des agents
GetAssetFile Récupérez un seul fichier d'une ressource par son chemin. aidevops:GetAssetFile Espace des agents
UpdateAssetFile Remplacez le contenu ou les métadonnées d'un fichier existant dans une ressource. aidevops:UpdateAssetFile Espace des agents
DeleteAssetFile Supprimez un seul fichier d'une ressource. aidevops:DeleteAssetFile Espace des agents
ListAssetFiles Répertoriez les fichiers d'une ressource. aidevops:ListAssetFiles Espace des agents

Exemple de politiques IAM

La politique suivante accorde un accès complet à la gestion des actifs dans un seul espace d'agent :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aidevops:CreateAsset", "aidevops:GetAsset", "aidevops:UpdateAsset", "aidevops:DeleteAsset", "aidevops:ListAssets", "aidevops:ListAssetVersions", "aidevops:GetAssetContent", "aidevops:CreateAssetFile", "aidevops:GetAssetFile", "aidevops:UpdateAssetFile", "aidevops:DeleteAssetFile", "aidevops:ListAssetFiles" ], "Resource": "arn:aws:aidevops:us-east-1:111122223333:agentspace/8f6187a7-0388-4926-8217-3a0fe32f757c" }, { "Effect": "Allow", "Action": "aidevops:ListAssetTypes", "Resource": "*" } ] }

La politique suivante accorde un accès en lecture seule aux ressources d'un seul espace d'agent :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aidevops:GetAsset", "aidevops:ListAssets", "aidevops:ListAssetVersions", "aidevops:GetAssetContent", "aidevops:GetAssetFile", "aidevops:ListAssetFiles" ], "Resource": "arn:aws:aidevops:us-east-1:111122223333:agentspace/8f6187a7-0388-4926-8217-3a0fe32f757c" }, { "Effect": "Allow", "Action": "aidevops:ListAssetTypes", "Resource": "*" } ] }

Types d'actifs

Chaque actif possède une assetType chaîne qui identifie le type de ressource dont il s'agit. Six types d'actifs peuvent être créés via l'API Asset : skillagents_md,attachment,custom_agent,test_profile, etfeedback. Les sections suivantes décrivent chaque type. Vous pouvez également appeler ListAssetTypes pour récupérer les identifiants de type lors de l'exécution.

Chaque ressource contient un objet metadata JSON de forme libre qui décrit la ressource. Les clés qu'il contient metadata utilisent snake_case (par exemple,agent_types). skill_type Les clés situées à l'extérieurmetadata, au niveau supérieur du corps de la requête, utilisent CamelCase (par exempleagentSpaceId,,assetType). clientToken Les metadata clés obligatoires et facultatives dépendent du type de ressource, comme décrit dans les sections suivantes.

Lorsque vous appelez UpdateAsset ouUpdateAssetFile, le service applique la sémantique PATCH à metadata : les clés que vous incluez sont remplacées, et les clés que vous omettez conservent leurs valeurs stockées. Vous ne pouvez pas modifier un actif une assetType fois qu'il a été créé.

skill

Un skill actif contient des instructions et du matériel de référence que l'agent charge le cas échéant. Une compétence simple consiste en un SKILL.md fichier unique ; une compétence complexe consiste en un ensemble de fichiers compressés contenant un SKILL.md fichier et references/ des assets/ répertoires optionnels.

metadataPropriétés requises :

  • name (chaîne) — Identifiant unique de la compétence. Lettres minuscules, chiffres et tirets uniquement, de 1 à 64 caractères. Ne doit pas commencer ou se terminer par un trait d'union. Nécessaire uniquement pour les compétences simples. Pour les téléchargements au format zip, le service lit name à partir de SKILL.md l'interface et toute valeur fournie ici est ignorée.

  • description (chaîne) — Une explication de 1 à 1024 caractères indiquant à quel moment l'agent doit utiliser la compétence. Nécessaire uniquement pour les compétences simples. Pour les téléchargements au format zip, le service lit description à partir de SKILL.md l'interface et toute valeur fournie ici est ignorée.

  • agent_types (tableau de chaînes) — Un ou plusieurs types d'agents auxquels cette compétence s'applique. ["GENERIC"]À utiliser pour rendre la compétence accessible à tous les types d'agents. Les autres valeurs incluent CHATINCIDENT_TRIAGE,INCIDENT_RCA,INCIDENT_MITIGATION,PREVENTION,CHANGE_REVIEW,CHANGE_RELEASE,QUALITY_ASSURANCE_TESTING,RELEASE_SHEPHERD,RELEASE_READINESS_REVIEW, etRELEASE_TESTING. La GENERIC valeur ne peut pas être combinée avec d'autres valeurs.

metadataPropriétés facultatives :

  • skill_type (string) — La valeur par défaut est. USER L'API Asset n'autorise que les compétences créées par le client. La seule valeur acceptée est donc. USER Le service rejette les demandes définies sur skill_typeLEARNED, ce qui est réservé aux compétences générées par l'agent lui-même.

  • status (string) — État d'activation de la compétence. Les valeurs acceptées sont ACTIVE et INACTIVE (majuscules uniquement). La valeur par défaut est ACTIVE . Les compétences inactives restent dans l'espace des agents mais ne sont pas chargées par l'agent pendant les enquêtes ou le chat. Utilisez UpdateAsset with metadata.status pour désactiver ou réactiver une compétence sans la supprimer. Les compétences sont le seul type d'actif qui prend en charge l'activation ; le status champ est ignoré pour tous les autres types d'actifs. Voir Activation et désactivation des compétences pour un exemple concret.

  • enable_tools (tableau de chaînes) — Liste des identifiants d'outils que l'agent peut appeler lorsqu'il charge cette compétence.

Exemple metadata :

{ "name": "rds-performance-investigation", "description": "Investigation procedures for RDS performance issues including connection exhaustion, slow queries, replication lag, and storage capacity. Use this skill when investigating database latency, connection errors, or read/write performance degradation.", "agent_types": ["GENERIC"] }

Limites : les téléchargements au format zip ne doivent pas dépasser 6 Mo. Un espace agent peut contenir jusqu'à 200 compétences créées par l'utilisateur.

agents_md

Un agents_md actif est un fichier Markdown contenant des instructions d'agent permanent pour un type d'agent spécifique. L'agent charge la correspondance AGENTS.md au début de chaque tâche. Pour plus d'informations sur les instructions relatives aux agents, consultezInstructions pour les agents.

metadataPropriétés requises :

  • agent_type (string) — Le type d'agent auquel le AGENTS.md fichier s'applique. Les valeurs valides sont GENERIC, CHAT, INCIDENT_TRIAGE, INCIDENT_RCA, INCIDENT_MITIGATION, PREVENTION, CHANGE_REVIEW, CHANGE_RELEASE, QUALITY_ASSURANCE_TESTING, RELEASE_SHEPHERD, RELEASE_READINESS_REVIEW et RELEASE_TESTING.

Exemple metadata :

{ "agent_type": "INCIDENT_TRIAGE" }

Limites : Chaque espace d'agent peut en contenir au maximum un AGENTS.md paragent_type. Le contenu du fichier doit être en markdown (text/markdown) et ne doit pas dépasser 25 Ko.

attachment

Un attachment actif stocke un fichier binaire ou texte auquel l'agent peut faire référence lors des investigations, par exemple un schéma d'architecture, un fichier PDF ou un exemple de fichier journal.

metadataPropriétés requises :

  • filename (chaîne) — Le nom du fichier d'origine, y compris le nom de base et toute extension (par exemple,topology.png).

  • extension (chaîne) — L'extension du fichier sans le point initial (par exemplepng,pdf,csv).

  • taille (nombre) — Taille du fichier en octets.

Exemple metadata :

{ "filename": "topology.png", "extension": "png", "size": 184320 }

Limites : La taille totale de toutes les pièces jointes d'un espace agent ne peut pas dépasser 10 Go.

agent personnalisé

Un custom_agent actif définit une configuration d'agent spécialisée avec un ensemble d'outils et de compétences sélectionnés. Utilisez un agent personnalisé pour étendre l'agent à un flux de travail ou à un ensemble de fonctionnalités spécifiques.

metadataPropriétés requises :

  • name (chaîne) — Identifiant unique pour l'agent personnalisé. Lettres minuscules, chiffres et tirets uniquement, de 1 à 64 caractères. Ne doit pas commencer ou se terminer par un trait d'union.

metadataPropriétés facultatives :

  • tools (tableau de chaînes) : identificateurs d'outils que l'agent personnalisé est autorisé à utiliser. La valeur par défaut est une liste vide en cas d'omission.

  • skills (ensemble de chaînes) — Les identifiants de compétence chargés par l'agent personnalisé. La valeur par défaut est une liste vide en cas d'omission.

Exemple metadata :

{ "name": "rds-firefighter", "tools": ["cloudwatch:GetMetricData", "rds:DescribeDBInstances"], "skills": ["rds-performance-investigation"] }

profil_test

Un test_profile actif stocke une configuration réutilisable pour une exécution de test de version, y compris le type de test à effectuer et le point de terminaison cible.

metadataPropriétés requises :

  • test_agent_type (string) — Type de test effectué par ce profil. Les valeurs valides sont releaseUiTesting et releaseApiTesting.

  • target_url (string) — L'URL cible par le test.

metadataPropriétés facultatives :

  • name (chaîne) — Identifiant lisible par l'homme pour le profil de test. Lettres minuscules, chiffres et tirets uniquement, de 1 à 128 caractères. Ne doit pas commencer ou se terminer par un trait d'union.

  • description (chaîne) — Description de 1 à 1024 caractères de ce que couvre le profil de test.

  • test_personas (tableau de chaînes) — Les personas à exercer pendant le test. Les valeurs valides sont guest et authenticated.

  • api_spec (string) — Spécification d'API pour le test. Pertinent pourreleaseApiTesting.

  • credentials_secret_arn (string) — L'ARN d'un secret de AWS Secrets Manager contenant les informations d'identification pour le test.

Exemple metadata :

{ "name": "checkout-api-tests", "description": "Release API tests for the checkout service.", "test_agent_type": "releaseApiTesting", "target_url": "https://api.example.com", "test_personas": ["guest", "authenticated"], "api_spec": "openapi: 3.0.0", "credentials_secret_arn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:checkout-creds" }

commentaire

Un feedback actif enregistre les commentaires fournis par le client sur l'exécution d'un seul agent. Utilisez les ressources de feedback pour recueillir des verdicts et des notes que les pipelines d'évaluation en aval peuvent agréger.

metadataPropriétés requises :

  • agent_types (tableau de chaînes) — Les types d'agents qui ont produit l'exécution. Doit contenir au moins une valeur (par exemple,INCIDENT_TRIAGE).

metadataPropriétés facultatives :

  • execution_id (string) — L'exécution à laquelle ce feedback est associé. Activez cette option CreateAsset ; elle ne peut pas être modifiée parUpdateAsset.

Exemple metadata :

{ "execution_id": "b2c3d4e5-6789-01ab-cdef-example22222", "agent_types": ["INCIDENT_TRIAGE"] }

Contenu de la ressource : fichier ou zip

Chaque CreateAsset demande inclut un content objet qui contient les octets stockés par la ressource. La forme de content varie selon que vous chargez un seul fichier ou un bundle zip :

  • Fichier texte unique : content.file.body.text contient jusqu'à 1,5 Mo de UTF-8 texte. Utilisez-le pour des compétences et des AGENTS.md fichiers simples.

json { "content": { "file": { "path": "SKILL.md", "body": { "text": "# Skill\n\nInstructions go here." } } } }

  • Fichier binaire unique : content.file.body.bytes contient jusqu'à 6 Mo de contenu binaire codé en base64. Utilisez-le pour les pièces jointes telles que les images ou les PDF. Le blob étant imbriqué dans l'contentunion, codez le fichier en base64 à l'avance et soumettez la demande avec --cli-input-json (voir Créer une compétence à partir d'un fichier binaire pour un exemple concret).

json { "content": { "file": { "path": "topology.png", "body": { "bytes": "<base64-encoded bytes>" } } } }

  • Bundle Zip : content.zip.zipFile contient une archive zip codée en base64 d'une taille maximale de 6 Mo. Utilisez-le pour les compétences qui incluent un SKILL.md et des fichiers supplémentaires dans un assets/ répertoire references/ ou.

json { "content": { "zip": { "zipFile": "<base64-encoded zip bytes>" } } }

Pour ajouter, remplacer ou supprimer des fichiers individuels à l'intérieur d'une ressource existante sans avoir à télécharger à nouveau l'ensemble complet, utilisez CreateAssetFileUpdateAssetFile, et. DeleteAssetFile

Gérer une compétence de bout en bout

La procédure pas à pas qui suit crée une compétence de trois manières différentes (à partir d'un seul fichier texte, à partir d'un fichier binaire et à partir d'un bundle zip), puis exécute les opérations de lecture, de mise à jour et de suppression. 8f6187a7-0388-4926-8217-3a0fe32f757cRemplacez-le par votre identifiant Agent Space.

Création d'une compétence à partir d'un seul fichier texte

C'est le chemin le plus simple : un seul SKILL.md fichier téléchargé en ligne. Comme le téléchargement ne contient qu'un seul fichier texte, vous devez le fournir name et description le saisirmetadata.

AWS CLI :

aws devops-agent create-asset \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-type skill \ --metadata '{ "name": "rds-performance-investigation", "description": "Investigation procedures for RDS performance issues. Use when investigating database latency, connection errors, or query timeouts.", "agent_types": ["GENERIC"] }' \ --content '{ "file": { "path": "SKILL.md", "body": { "text": "# RDS Performance Investigation\n\nUse this skill when customers report database latency, connection errors, query timeouts, or read/write performance degradation." } } }'

Python (Boto3) :

import boto3 client = boto3.client("devops-agent") response = client.create_asset( agentSpaceId="8f6187a7-0388-4926-8217-3a0fe32f757c", assetType="skill", metadata={ "name": "rds-performance-investigation", "description": ( "Investigation procedures for RDS performance issues. " "Use when investigating database latency, connection errors, " "or query timeouts." ), "agent_types": ["GENERIC"], }, content={ "file": { "path": "SKILL.md", "body": { "text": ( "# RDS Performance Investigation\n\n" "Use this skill when customers report database latency, " "connection errors, query timeouts, or read/write " "performance degradation." ) }, } }, ) asset_id = response["asset"]["assetId"]

Création d'une compétence à partir d'un fichier binaire

Utilisez un téléchargement binaire lorsque le contenu de la compétence n'est pas UTF-8 du texte. L'exemple ci-dessous télécharge un PDF pré-rendu en tant que corps de compétences. Comme le corps de la demande contient un blob codé en base64 imbriqué dans l'contentunion, fournissez la demande à partir d'un fichier JSON --cli-input-json et encodez le blob en base64 à l'avance.

L'-w 0indicateur ci-dessous indique base64 à GNU d'émettre le blob codé sur une seule ligne ; sans lui, l'enroulement de ligne de 76 caractères par défaut insère de nouvelles lignes qui produisent du JSON non valide lorsque le blob est interpolé dans le heredoc. Sur macOS, utilisez base64 -i ops-runbook.pdf (le BSD n'est base64 pas encapsulé par défaut).

Créez le corps de la demande :

base64 -w 0 ops-runbook.pdf > ops-runbook.b64 cat > create-skill.json <<EOF { "agentSpaceId": "8f6187a7-0388-4926-8217-3a0fe32f757c", "assetType": "skill", "metadata": { "name": "ops-runbook", "description": "Operations runbook covering on-call escalation paths.", "agent_types": ["GENERIC"] }, "content": { "file": { "path": "SKILL.pdf", "body": { "bytes": "$(cat ops-runbook.b64)" } } } } EOF

AWS CLI :

aws devops-agent create-asset --cli-input-json file://create-skill.json

Python (Boto3) :

with open("ops-runbook.pdf", "rb") as f: body_bytes = f.read() response = client.create_asset( agentSpaceId="8f6187a7-0388-4926-8217-3a0fe32f757c", assetType="skill", metadata={ "name": "ops-runbook", "description": "Operations runbook covering on-call escalation paths.", "agent_types": ["GENERIC"], }, content={ "file": { "path": "SKILL.pdf", "body": {"bytes": body_bytes}, } }, )

Création d'une compétence à partir d'un bundle zip

Utilisez un téléchargement zip lorsque la compétence inclut plusieurs fichiers, par exemple un document SKILL.md de référence et des ressources. Pour les téléchargements au format zip, le service lit name et description depuis SKILL.md l'interface, ne les incluez donc pas. metadata

La mise en page du zip ressemble à :

rds-performance-investigation.zip ├── SKILL.md ├── references/ │ └── rds-metrics-reference.md └── assets/ └── rds-investigation-flowchart.png

SKILL.mddoit inclure le frontmatter afin que le service puisse en extraire le nom et la description :

--- name: rds-performance-investigation description: Investigation procedures for RDS performance issues including connection exhaustion, slow queries, replication lag, and storage capacity. Use this skill when investigating database latency, connection errors, or read/write performance degradation. --- # RDS Performance Investigation ...

Créez le corps de la demande :

base64 -w 0 rds-performance-investigation.zip > skill.zip.b64 cat > create-skill.json <<EOF { "agentSpaceId": "8f6187a7-0388-4926-8217-3a0fe32f757c", "assetType": "skill", "metadata": { "agent_types": ["GENERIC"] }, "content": { "zip": { "zipFile": "$(cat skill.zip.b64)" } } } EOF

AWS CLI :

aws devops-agent create-asset --cli-input-json file://create-skill.json

Python (Boto3) :

with open("rds-performance-investigation.zip", "rb") as f: zip_bytes = f.read() response = client.create_asset( agentSpaceId="8f6187a7-0388-4926-8217-3a0fe32f757c", assetType="skill", metadata={"agent_types": ["GENERIC"]}, content={"zip": {"zipFile": zip_bytes}}, )

Importer une compétence depuis un référentiel

Vous pouvez créer une compétence en l'important directement depuis un répertoire de GitHub dépôt. AWS DevOps L'agent récupère le contenu de la compétence, extrait le nom et la description de la SKILL.md matière première et crée la compétence dans votre espace agent. Cela vous permet de gérer les compétences en matière de contrôle de version et de les importer ou de les synchroniser par programmation.

Prérequis :

  • Un GitHub compte doit être associé à votre espace agent. Consultez Connecter GitHub.

  • Le répertoire du référentiel doit contenir un SKILL.md fichier valide avec frontmatter.

AWS CLI :

aws devops-agent create-asset \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-type skill \ --metadata '{ "agent_types": ["GENERIC"] }' \ --content '{"sourceUrl": {"url": "https://github.com/my-org/my-repo/tree/main/skills/rds-investigation"}}'

Python (Boto3) :

response = client.create_asset( agentSpaceId="8f6187a7-0388-4926-8217-3a0fe32f757c", assetType="skill", metadata={"agent_types": ["GENERIC"]}, content={ "sourceUrl": { "url": "https://github.com/my-org/my-repo/tree/main/skills/rds-investigation" } }, ) asset_id = response["asset"]["assetId"]

Le service récupère le contenu du répertoire, lit la partie SKILL.md initiale de name etdescription, puis importe tous les fichiers. Ne les incluez pas name ou n'y description metadata insérez pas : elles sont automatiquement extraites de la matière première.

Synchronisation d'une compétence importée :

Pour extraire les dernières modifications du référentiel, appelez UpdateAsset content.sourceUrl :

aws devops-agent update-asset \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-id <assetId> \ --content '{"sourceUrl": {"url": "https://github.com/my-org/my-repo/tree/main/skills/rds-investigation"}}'
response = client.update_asset( agentSpaceId="8f6187a7-0388-4926-8217-3a0fe32f757c", assetId="<assetId>", content={ "sourceUrl": { "url": "https://github.com/my-org/my-repo/tree/main/skills/rds-investigation" } }, )

La synchronisation remplace entièrement le contenu de la compétence par l'état actuel du répertoire du référentiel. Les champs modifiables (statut, types d'agents) sont conservés.

Affichage de la source d'importation :

GetAssetrenvoie les informations source metadata.source pour les compétences importées dans le référentiel :

{ "metadata": { "name": "rds-performance-investigation", "description": "Investigation procedures for RDS performance issues...", "source": { "url": "https://github.com/my-org/my-repo/tree/main/skills/rds-investigation", "lastSyncedAt": 1718467200 }, "agent_types": ["GENERIC"], "skill_type": "USER", "status": "ACTIVE" } }

Contraintes :

  • Seules GitHub les URL sont acceptées. Vous pouvez pointer vers un répertoire contenant un SKILL.md (par exemple,https://github.com/org/repo/tree/main/skills/my-skill), qui importe l'intégralité du répertoire, y compris les fichiers de référence. Si le SKILL.md se trouve à la racine du référentiel, vous pouvez également créer un lien direct vers le fichier (par exemple,https://github.com/org/repo/blob/main/SKILL.md), qui importe uniquement le SKILL.md.

  • Le répertoire doit contenir SKILL.md un frontal valide.

  • La taille totale du répertoire ne doit pas dépasser 6 Mo et 100 fichiers au maximum.

  • content.sourceUrls'exclut mutuellement content.file et content.zip vous ne pouvez pas les combiner dans la même demande.

  • Une mise à jour contenant uniquement les métadonnées (sanscontent) préserve la source d'importation existante et n'est pas extraite à nouveau du référentiel.

Obtenir, répertorier, mettre à jour et supprimer

GetAssetÀ utiliser pour récupérer un seul actif par identifiant :

aws devops-agent get-asset \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-id <assetId>

ListAssetsÀ utiliser pour parcourir toutes les ressources d'un espace agent :

aws devops-agent list-assets \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --max-results 50 aws devops-agent list-assets \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --max-results 50 \ --next-token <token>

UpdateAssetÀ utiliser pour modifier un ou plusieurs metadata champs sans télécharger à nouveau le contenu. Les clés que vous omettez conservent leurs valeurs existantes :

aws devops-agent update-asset \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-id <assetId> \ --metadata '{ "agent_types": ["INCIDENT_TRIAGE", "INCIDENT_RCA"] }'

ListAssetVersionsÀ utiliser pour inspecter l'historique des versions d'une ressource. Chaque UpdateAssetFile appel UpdateAsset ou appel réussi fait avancer le numéro de version de la ressource :

aws devops-agent list-asset-versions \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-id <assetId>

DeleteAssetÀ utiliser pour supprimer la ressource et tous ses fichiers :

aws devops-agent delete-asset \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-id <assetId>

Ajouter un seul fichier à une compétence existante

Si vous avez déjà créé une compétence à partir d'un bundle zip et que vous souhaitez ajouter un nouveau fichier de référence, il n'est pas nécessaire de télécharger à nouveau le bundle complet. Utilisation CreateAssetFile :

aws devops-agent create-asset-file \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-id <assetId> \ --path references/troubleshooting.md \ --content '{ "text": "# Troubleshooting\n\nAdditional notes." }'

Pour remplacer le fichier sur place, utilisez-le update-asset-file avec les mêmes arguments. Pour le supprimer, utilisezdelete-asset-file.

Activation et désactivation des compétences

Les compétences comportent un état d'activationmetadata.status. Les nouvelles compétences sont ACTIVE disponibles par défaut et sont chargées par l'agent lors des enquêtes et du chat. Vous pouvez désactiver une compétence pour la mettre hors rotation sans la supprimer, par exemple pendant que vous étudiez les raisons pour lesquelles elle produit des résultats inattendus et que vous la réactivez ultérieurement.

Définissez l'état initial lors de la création en incluant metadata.status dans la CreateAsset demande :

aws devops-agent create-asset \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-type skill \ --metadata '{ "name": "rds-performance-investigation", "description": "Investigation procedures for RDS performance issues.", "agent_types": ["GENERIC"], "status": "INACTIVE" }' \ --content '{ "file": { "path": "SKILL.md", "body": { "text": "# RDS Performance Investigation" } } }'

Désactivez une compétence existante avecUpdateAsset. Comme il s'metadataagit d'une mise à jour partielle, l'envoi ne status laisse que tous les autres champs intacts :

aws devops-agent update-asset \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-id <assetId> \ --metadata '{ "status": "INACTIVE" }'

Réactivez de la même manière, avec "status": "ACTIVE" :

aws devops-agent update-asset \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-id <assetId> \ --metadata '{ "status": "ACTIVE" }'

GetAssetet incluez ListAssets toujours le courant status dans metadata les actifs de compétence, afin que vous puissiez lire l'état d'activation en temps réel à tout moment.

Le champ status est sensible à la casse. Seuls ACTIVE et INACTIVE (majuscules) sont acceptés. Toute autre valeur échoue avec unValidationException. L'activation s'applique uniquement aux compétences ; metadata.status la définition d'un autre type d'actif n'a aucun effet et le champ est supprimé de la réponse.

Exemples pour les autres types d'actifs

La description des compétences ci-dessus s'applique à tous les autres types d'actifs. La seule différence réside dans le metadata bloc et, pour les pièces jointes, dans le choix du contenu binaire. Les CreateAsset appels minimaux ci-dessous illustrent chaque type.

Créez un AGENTS.md :

aws devops-agent create-asset \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-type agents_md \ --metadata '{ "agent_type": "INCIDENT_TRIAGE" }' \ --content '{ "file": { "path": "AGENTS.md", "body": { "text": "# Triage Instructions\n\nFollow these steps for new incidents." } } }'

Créez une pièce jointe (contenu binaire ; créez la demande à partir d'un fichier JSON comme indiqué dans Création d'une compétence à partir d'un fichier binaire) :

base64 -w 0 topology.png > topology.png.b64 cat > create-attachment.json <<EOF { "agentSpaceId": "8f6187a7-0388-4926-8217-3a0fe32f757c", "assetType": "attachment", "metadata": { "filename": "topology.png", "extension": "png", "size": 184320 }, "content": { "file": { "path": "topology.png", "body": { "bytes": "$(cat topology.png.b64)" } } } } EOF aws devops-agent create-asset --cli-input-json file://create-attachment.json

Créez un agent personnalisé :

aws devops-agent create-asset \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-type custom_agent \ --metadata '{ "name": "rds-firefighter", "tools": ["cloudwatch:GetMetricData", "rds:DescribeDBInstances"], "skills": ["rds-performance-investigation"] }' \ --content '{ "file": { "path": "AGENT.md", "body": { "text": "# RDS Firefighter\n\nCustom agent for RDS incidents." } } }'

Créez un profil de test :

aws devops-agent create-asset \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-type test_profile \ --metadata '{ "name": "checkout-api-tests", "test_agent_type": "releaseApiTesting", "target_url": "https://api.example.com", "test_personas": ["guest", "authenticated"] }' \ --content '{ "file": { "path": "PROFILE.md", "body": { "text": "# Checkout API test profile" } } }'

Créez une ressource de commentaires :

aws devops-agent create-asset \ --agent-space-id 8f6187a7-0388-4926-8217-3a0fe32f757c \ --asset-type feedback \ --metadata '{ "execution_id": "b2c3d4e5-6789-01ab-cdef-example22222", "agent_types": ["INCIDENT_TRIAGE"] }' \ --content '{ "file": { "path": "FEEDBACK.md", "body": { "text": "{\"verdict\":\"correct\"}" } } }'

Liste des types de ressources pris en charge :

aws devops-agent list-asset-types