View a markdown version of this page

Verwaltung von Komponenten - AWS DevOps Agentin

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwaltung von Komponenten

AWS DevOps Der Agent speichert die Konfiguration und das Referenzmaterial für einen Agent Space als Ressourcen. Diese vom Kunden verwalteten Ressourcen bestimmen, was der Agent weiß und wie er sich verhält. Fähigkeiten, AGENTS.md Dateien und Anlagen sind alles Ressourcen, und Sie können sie programmgesteuert über die Asset-API erstellen, lesen, aktualisieren und löschen.

Um zu konfigurieren, was der AWS DevOps Agent weiß und wie er sich verhält, verwalten Sie Assets in Ihrem Agent Space. In diesem Thema werden das Asset-Modell, die IAM-Berechtigungen und die Metadaten behandelt, die jeder Asset-Typ erwartet. Verwenden Sie die AWS CLI, das AWS SDK für Python (Boto3) oder, um Assets von Anfang AWS CloudFormation bis Ende zu verwalten. Einen konzeptionellen Überblick über die Fähigkeiten selbst finden Sie unter. DevOps Fähigkeiten von Agenten Von Agenten generiertes Wissen, das Sie nicht selbst erstellen, finden Sie unter. Erlernte Fähigkeiten

Wann sollte die Asset-API verwendet werden

Die Operator Web App ist der schnellste Weg, um einen einzelnen Skill zu erstellen oder eine AGENTS.md Datei interaktiv hochzuladen. Die Asset-API stellt dieselben Operationen programmatisch zur Verfügung, sodass mithilfe von Skripten und Automatisierungen Ressourcen verwaltet werden können, ohne die Web-App zu verwenden. Zu den häufigsten Gründen, die Asset-API direkt aufzurufen, gehören:

  • Erstellen oder Aktualisieren eines Assets über ein Skript, ein Terminal oder ein Notizbuch statt über die Web App.

  • Bulk-loading einen ersten Satz von Fähigkeiten oder AGENTS.md Dateien in einem neuen Agentenbereich.

  • Lesen des Inhalts eines Assets, um es zu sichern oder Versionen zu vergleichen.

Jeder Vorgang in der Asset-API wird über die AWS CLI aws devops-agent <operation> und über die AWS SDKs als devops-agent Client bereitgestellt.

Asset-API-Operationen

Die Asset-API macht die folgenden Operationen verfügbar. In jeder Zeile sind die IAM-Aktion aufgeführt, die Sie gewähren müssen, um den Vorgang aufzurufen, sowie die Ressource, für die die Aktion gilt. Jede Aktion befindet sich im aidevops: Namespace und gilt, mit Ausnahme vonListAssetTypes, für eine Agent Space-Ressource dieses Formulars. arn:aws:aidevops:<region>:<account-id>:agentspace/<agentSpaceId> Weitere Hintergrundinformationen zu aidevops: Berechtigungen finden Sie unterDevOps IAM-Berechtigungen für Agenten.

Operation Description IAM-Aktion Ressource
ListAssetTypes Listet die vom AWS DevOps Agenten unterstützten Asset-Typen auf. aidevops:ListAssetTypes *
CreateAsset Erstellen Sie ein neues Asset in einem Agentenbereich (Skill AGENTS.md, Anhang, benutzerdefinierter Agent, Speicher, Speicher, Testprofil oder Feedback). aidevops:CreateAsset Agent-Bereich
GetAsset Ruft die Metadaten und Versionsinformationen eines Assets ab. aidevops:GetAsset Speicherplatz für Agenten
UpdateAsset Aktualisieren Sie die Metadaten oder den Inhalt eines vorhandenen Assets. aidevops:UpdateAsset Agent Space
DeleteAsset Löschen Sie ein Asset und alle zugehörigen Dateien aus einem Agentenbereich. aidevops:DeleteAsset Agent-Bereich
ListAssets Listet Ressourcen in einem Agentenbereich auf und filtert optional nach Asset-Typ. aidevops:ListAssets Bereich für Agenten
ListAssetVersions Listet die historischen Versionen eines Assets auf. aidevops:ListAssetVersions Agent Space
GetAssetContent Laden Sie den vollständigen Inhalt eines Assets als ZIP-Paket herunter. aidevops:GetAssetContent Agent Space
CreateAssetFile Fügt eine neue Datei zu einem vorhandenen Asset hinzu. aidevops:CreateAssetFile Speicherplatz für Agenten
GetAssetFile Ruft eine einzelne Datei anhand ihres Pfads aus einem Asset ab. aidevops:GetAssetFile Speicherplatz für Agenten
UpdateAssetFile Ersetzt den Inhalt oder die Metadaten einer vorhandenen Datei in einem Asset. aidevops:UpdateAssetFile Agent Space
DeleteAssetFile Entfernt eine einzelne Datei aus einem Asset. aidevops:DeleteAssetFile Agent Space
ListAssetFiles Listet die Dateien in einem Asset auf. aidevops:ListAssetFiles Agent Space

IAM-Beispielrichtlinien

Die folgende Richtlinie gewährt vollen Verwaltungszugriff auf Ressourcen in einem einzigen Agentenbereich:

{ "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": "*" } ] }

Die folgende Richtlinie gewährt Lesezugriff auf Ressourcen in einem einzigen Agentenbereich:

{ "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": "*" } ] }

Arten von Vermögenswerten

Jedes Asset hat eine assetType Zeichenfolge, die angibt, um welche Art von Ressource es sich handelt. Über die Asset-API können Sie acht Asset-Typen erstellen: skill agents_mdattachment,custom_agent,memory_store,memory,test_profile, undfeedback. In den folgenden Abschnitten werden die einzelnen Typen beschrieben. Sie können auch aufrufenListAssetTypes, um die Typbezeichner zur Laufzeit abzurufen.

Jedes Asset enthält ein metadata JSON-Objekt in freier Form, das die Ressource beschreibt. Die darin enthaltenen Schlüssel metadata verwenden snake_case (z. B.,). agent_types skill_type Die Schlüssel außerhalbmetadata, auf der obersten Ebene des Anforderungstexts, verwenden camelCase (z. B.,,). agentSpaceId assetType clientToken Die erforderlichen und optionalen metadata Schlüssel hängen vom Asset-Typ ab, wie in den folgenden Abschnitten beschrieben.

Wenn Sie UpdateAsset oder aufrufenUpdateAssetFile, wendet der Service die PATCH-Semantik an aufmetadata: Schlüssel, die Sie einbeziehen, werden ersetzt, und Schlüssel, die Sie weglassen, behalten ihre gespeicherten Werte bei. Sie können die eines Assets nicht mehr ändern, assetType nachdem es erstellt wurde.

Qualifikation

Ein skill Asset enthält Anweisungen und Referenzmaterial, das der Agent bei Bedarf lädt. Ein einfacher Skill ist eine einzelne SKILL.md Datei; ein komplexer Skill ist ein ZIP-Paket, das eine SKILL.md Datei plus optionale references/ oder assets/ Verzeichnisse enthält.

Erforderliche metadata Eigenschaften:

  • name (string) — Ein eindeutiger Bezeichner für den Skill. Nur Kleinbuchstaben, Zahlen und Bindestriche, 1—64 Zeichen. Darf nicht mit einem Bindestrich beginnen oder enden. Nur für einfache Fähigkeiten erforderlich. Bei ZIP-Uploads liest der Dienst name aus der SKILL.md Titelseite und jeder hier angegebene Wert wird ignoriert.

  • description (string) — Eine 1—1024 Zeichen lange Erklärung, wann der Agent den Skill einsetzen sollte. Nur für einfache Fähigkeiten erforderlich. Bei ZIP-Uploads liest der Dienst description aus der SKILL.md Titelseite und jeder hier angegebene Wert wird ignoriert.

  • agent_types (Zeichenkettenarray) — Ein oder mehrere Agententypen, für die dieser Skill gilt. Wird verwendet["GENERIC"], um den Skill allen Agententypen zur Verfügung zu stellen. Andere Werte sind CHATINCIDENT_TRIAGE,INCIDENT_RCA,INCIDENT_MITIGATION, PREVENTIONRELEASE_READINESS_REVIEW, undRELEASE_TESTING. Der GENERIC Wert kann nicht mit anderen Werten kombiniert werden.

Optionale metadata Eigenschaften:

  • skill_type (string) — Der Standardwert ist. USER Die Asset-API erlaubt nur vom Kunden erstellte Skills, daher ist der einzig akzeptierte Wert USER Der Service lehnt Anfragen ab, die skill_type auf gesetzt sind. Dieser Wert ist für Fähigkeiten reserviertLEARNED, die vom Agenten selbst generiert wurden.

  • status (string) — Aktivierungsstatus des Skills. Zulässige Werte sind ACTIVE und INACTIVE (nur in Großbuchstaben). Standardeinstellung: ACTIVE. Inaktive Fähigkeiten verbleiben im Agentenbereich, werden aber vom Agenten während der Ermittlungen oder im Chat nicht geladen. Benutze UpdateAsset withmetadata.status, um einen Skill zu deaktivieren oder zu reaktivieren, ohne ihn zu löschen. Skills sind der einzige Asset-Typ, der die Aktivierung unterstützt. Das status Feld wird bei allen anderen Asset-Typen ignoriert. Ein praktisches Beispiel finden Sie unter Aktivierung und Deaktivierung von Fähigkeiten.

  • enable_tools (Zeichenkettenarray) — Eine Liste von Tool-Identifikatoren, die der Agent aufrufen kann, wenn er diesen Skill lädt.

Beispiel: 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"] }

Einschränkungen: Zip-Uploads dürfen 6 MB nicht überschreiten. Ein Agent Space kann bis zu 200 von Benutzern erstellte Skills enthalten.

agents_md

Ein agents_md Asset ist eine Markdown-Datei, die ständige Agentenanweisungen für einen bestimmten Agententyp enthält. Der Agent lädt das Matching AGENTS.md zu Beginn jeder Aufgabe. Weitere Informationen zu Anweisungen für Agenten finden Sie unterAnweisungen für Agenten.

Erforderliche metadata Eigenschaften:

  • agent_type (string) — Der Agententyp, für den die AGENTS.md Datei gilt. Gültige Werte sindGENERIC,CHAT,INCIDENT_TRIAGE,INCIDENT_RCA, INCIDENT_MITIGATION PREVENTIONRELEASE_READINESS_REVIEW, und. RELEASE_TESTING

Beispielmetadata:

{ "agent_type": "INCIDENT_TRIAGE" }

Grenzwerte: Jeder Agentenbereich kann maximal einen AGENTS.md pro Person enthaltenagent_type. Der Dateiinhalt muss markdown (text/markdown) sein und darf 25 KB nicht überschreiten.

attachment

Ein attachment Asset speichert eine Binär- oder Textdatei, auf die der Agent bei Untersuchungen verweisen kann, z. B. ein Architekturdiagramm, ein Runbook-PDF oder eine Beispielprotokolldatei.

Erforderliche metadata Eigenschaften:

  • filename (string) — Der ursprüngliche Dateiname, einschließlich des Basisnamens und eventueller Erweiterungen (z. B.topology.png).

  • extension (string) — Die Dateierweiterung ohne den führenden Punkt (z. B.png,pdf,csv).

  • size (number) — Die Größe der Datei in Byte.

Beispielmetadata:

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

Grenzwerte: Die Gesamtgröße aller Anlagen in einem Agent Space darf 10 GB nicht überschreiten.

custom_agent

Ein custom_agent Asset definiert eine spezialisierte Agentenkonfiguration mit einem kuratierten Satz von Tools und Fähigkeiten. Verwenden Sie einen benutzerdefinierten Agenten, um den Agenten auf einen bestimmten Arbeitsablauf oder eine Reihe von Funktionen zuzuweisen.

Erforderliche metadata Eigenschaften:

  • name (string) — Ein eindeutiger Bezeichner für den benutzerdefinierten Agenten. Nur Kleinbuchstaben, Zahlen und Bindestriche, 1—64 Zeichen. Darf nicht mit einem Bindestrich beginnen oder enden.

Optionale metadata Eigenschaften:

  • tools (Zeichenkettenarray) — Die Tool-IDs, die der benutzerdefinierte Agent verwenden darf. Wenn sie weggelassen wird, wird standardmäßig eine leere Liste verwendet.

  • Skills (Reihe von Zeichenketten) — Die Skill-Identifikatoren, die der benutzerdefinierte Agent lädt. Wenn sie weggelassen wird, wird standardmäßig eine leere Liste verwendet.

Beispiel: metadata

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

memory_store

Ein memory_store Asset ist ein Container, der zusammengehörende Speicherdateien gruppiert. Der Agent liest den Namen und die Beschreibung des Speichers, um zu entscheiden, ob er ihn öffnen und die darin enthaltenen Speicher auflisten soll. Speicher und Speicherspeicher unterstützen den Agentenspeicher. Weitere Informationen zu Erinnerungen finden Sie unterDevOps Erinnerungen an Agenten.

Erstellen Sie Erinnerungen in zwei Schritten. Erstellen Sie zunächst die memory_store. Erstellen Sie dann jedes memory darin enthaltene Element, wie im Speicher beschrieben.

Erforderliche metadata Eigenschaften:

  • name (string) — Ein eindeutiger Bezeichner für den Speicher. Nur Kleinbuchstaben, Zahlen und Bindestriche, 1—128 Zeichen. Darf nicht mit einem Bindestrich beginnen oder enden.

  • description (string) — Eine 1—1024 Zeichen lange Beschreibung dessen, was das Geschäft enthält. Der Agent verwendet es, um zu entscheiden, ob das Geschäft geöffnet werden soll.

Optionale metadata Eigenschaften:

  • agent_types (Zeichenkettenarray) — Die Leadagententypen, die den Shop sehen können. Wird verwendet["GENERIC"], um den Store für alle Agententypen sichtbar zu machen.

Beispielmetadata:

{ "name": "incident-runbooks", "description": "Operational memories about past incidents and their resolutions.", "agent_types": ["GENERIC"] }

memory

Ein memory Asset ist eine einzelne Speicherdatei, die zu einem Speicherspeicher gehört. Der Agent liest den Namen und die Beschreibung des Speichers, um zu entscheiden, ob die gesamte Datei gelesen werden soll. Erstellen Sie memory_store zuerst das übergeordnete Objekt und geben Sie dann memory_store_id im Speicher die Asset-ID des Speichers ein.

Erforderliche metadata Eigenschaften:

  • name (string) — Ein Bezeichner für den Speicher, geschrieben als / -getrennter Pfad aus Segmenten in Kebab-Großbuchstaben, 1—255 Zeichen (z. B.). databases/rds-failover

  • description (string) — Eine 1—1024 Zeichen umfassende Beschreibung dessen, was der Speicher enthält.

  • memory_store_id (string) — Die Asset-ID des Speichers, zu dem dieser Speicher gehört.

metadataOptionale Eigenschaften:

  • expires_at (number) — Eine Aufbewahrungsfrist in Epochensekunden. Wenn diese Option gesetzt ist, löscht der Dienst den Speicher automatisch nach Ablauf der Frist (normalerweise innerhalb von 48 Stunden). Lassen Sie diese Eigenschaft weg, um den Speicher so lange beizubehalten, bis Sie ihn löschen.

Beispiel: metadata

{ "name": "databases/rds-failover", "description": "Steps that resolved the RDS failover incident in June.", "memory_store_id": "a1b2c3d4-5678-90ab-cdef-example11111" }

test_profile

Ein test_profile Asset speichert eine wiederverwendbare Konfiguration für einen Release-Testlauf, einschließlich der Art des durchzuführenden Tests und des Zielendpunkts.

Erforderliche Eigenschaftenmetadata:

  • test_agent_type (string) — Die Art der Tests, die dieses Profil durchführt. Gültige Werte sind releaseUiTesting und releaseApiTesting.

  • target_url (string) — Die URL, auf die der Testlauf abzielt.

Optionale Eigenschaften: metadata

  • name (string) — Ein für Menschen lesbarer Bezeichner für das Testprofil. Nur Kleinbuchstaben, Zahlen und Bindestriche, 1—128 Zeichen. Darf nicht mit einem Bindestrich beginnen oder enden.

  • description (string) — Eine 1—1024 Zeichen lange Beschreibung dessen, was das Testprofil abdeckt.

  • test_personas (Zeichenkettenarray) — Die Personas, die während des Testlaufs trainiert werden sollen. Gültige Werte sind guest und authenticated.

  • api_spec (string) — Eine API-Spezifikation für den Testlauf. Relevant für. releaseApiTesting

  • credentials secret_arn (string) — Der ARN eines AWS Secrets Manager-Geheimnisses, das die Anmeldeinformationen für den Testlauf enthält.

Beispiel: 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" }

Feedback

Ein feedback Asset zeichnet das Feedback des Kunden zu einer einzelnen Agentenausführung auf. Verwenden Sie Feedback-Ressourcen, um Urteile und Notizen zu erfassen, die in den nachgelagerten Evaluierungspipelines zusammengefasst werden können.

Erforderliche Eigenschaften: metadata

  • agent_types (Zeichenkettenarray) — Die Agententypen, die die Ausführung ausgelöst haben. Muss mindestens einen Wert enthalten (z. B.INCIDENT_TRIAGE).

Optionale metadata Eigenschaften:

  • execution_id (string) — Die Ausführung, mit der dieses Feedback verknüpft ist. Schalten Sie diese Option einCreateAsset; sie kann nicht geändert werden. UpdateAsset

Beispielmetadata:

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

Inhalt des Assets: Datei oder Zip

Jede CreateAsset Anfrage enthält ein content Objekt, das die Byte enthält, die das Asset speichert. Die Form von content hängt davon ab, ob Sie eine einzelne Datei oder ein Zip-Paket hochladen:

  • Einzelne Textdatei content.file.body.text enthält bis zu 1,5 MB UTF-8 Text. Verwenden Sie diese Option für einfache Fähigkeiten und AGENTS.md Dateien.

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

  • Einzelne Binärdatei content.file.body.bytes enthält bis zu 6 MB an Base64-kodiertem Binärinhalt. Verwenden Sie diese Option für Anlagen wie Bilder oder PDFs. Da das Blob innerhalb der content Union verschachtelt ist, sollten Sie die Datei im Voraus mit Base64 kodieren und die Anfrage mit senden --cli-input-json (ein funktionierendes Beispiel finden Sie unter Erstellen eines Skills aus einer Binärdatei).

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

  • Zip-Paket content.zip.zipFile enthält ein Base64-kodiertes Zip-Archiv von bis zu 6 MB. Verwenden Sie dies für Fähigkeiten, die zusätzliche Dateien SKILL.md in einem references/ OR-Verzeichnis enthalten. assets/

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

Um einzelne Dateien in einem vorhandenen Asset hinzuzufügen, zu ersetzen oder zu löschen, ohne das gesamte Paket erneut hochzuladen CreateAssetFileUpdateAssetFile, verwenden Sie und. DeleteAssetFile

Eine Fähigkeit von Anfang bis Ende verwalten

In der folgenden exemplarischen Vorgehensweise wird ein Skill auf drei verschiedene Arten erstellt (aus einer einzelnen Textdatei, aus einer Binärdatei und aus einem Zip-Paket). Anschließend werden die Lese-, Aktualisierungs- und Löschvorgänge ausgeführt. Ersetzen Sie es 8f6187a7-0388-4926-8217-3a0fe32f757c durch Ihre Agent Space-ID.

Erstellen Sie einen Skill aus einer einzigen Textdatei

Dies ist der einfachste Pfad: eine einzelne SKILL.md Datei, die direkt hochgeladen wird. Da der Upload genau eine Textdatei enthält, müssen Sie eine name und description in angebenmetadata.

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 (Boot 3):

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"]

Erstellen Sie einen Skill aus einer Binärdatei

Verwenden Sie einen binären Upload, wenn es sich bei dem Skillinhalt nicht um UTF-8 Text handelt. Im folgenden Beispiel wird eine vorgerenderte PDF-Datei als Skill-Text hochgeladen. Da der Anforderungstext einen Base64-kodierten Blob enthält, der innerhalb der content Union verschachtelt ist, stellen Sie die Anfrage aus einer JSON-Datei bereit --cli-input-json und codieren Sie das Blob im Voraus mit Base64.

Das -w 0 Flag unten weist GNU base64 an, den kodierten Blob in einer einzigen Zeile auszugeben; ohne ihn fügt der standardmäßige 76-Zeichen-Zeilenumbruch Zeilenumbrüche ein, die zu ungültigem JSON führen, wenn das Blob in das Heredoc interpoliert wird. Verwenden base64 -i ops-runbook.pdf Sie unter macOS (das BSD umbricht standardmäßig nicht). base64

Erstellen Sie den Anfragetext:

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 (Boot 3):

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}, } }, )

Erstelle einen Skill aus einem ZIP-Paket

Verwenden Sie einen ZIP-Upload, wenn der Skill mehr als eine Datei enthält, z. B. SKILL.md ein zusätzliches Referenzmaterial und Ressourcen. Bei ZIP-Uploads liest der Dienst name und description von der SKILL.md Titelseite, also füge sie nicht ein. metadata

Das Zip-Layout sieht wie folgt aus:

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

SKILL.mdmuss Frontmatter enthalten, damit der Dienst den Namen und die Beschreibung extrahieren kann:

--- 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 ...

Erstellen Sie den Anfragetext:

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 (Boot 3):

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}}, )

Importiere einen Skill aus einem Repository

Sie können einen Skill erstellen, indem Sie ihn direkt aus einem GitHub Repository-Verzeichnis importieren. AWS DevOps Der Agent ruft den Inhalt des Skills ab, extrahiert den Namen und die Beschreibung aus der SKILL.md Titelseite und erstellt den Skill in Ihrem Agentenbereich. Auf diese Weise können Sie Skills in der Versionskontrolle verwalten und sie programmgesteuert importieren oder synchronisieren.

Voraussetzungen:

  • Ihrem Agent Space muss ein GitHub Konto zugeordnet sein. Siehe Verbindung herstellen GitHub.

  • Das Repository-Verzeichnis muss eine gültige SKILL.md Datei mit Frontmatter enthalten.

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 (Boot 3):

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"]

Der Dienst ruft den Inhalt des Verzeichnisses ab, liest die SKILL.md Titelzeile für und name und importiert alle description Dateien. Ohne name oder description in metadata — sie werden automatisch aus der Titelseite extrahiert.

Einen importierten Skill synchronisieren:

Um die neuesten Änderungen aus dem Repository abzurufen, rufen Sie an UpdateAsset mitcontent.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" } }, )

Bei der Synchronisierung wird der Skill-Inhalt vollständig durch den aktuellen Status des Repository-Verzeichnisses ersetzt. Bearbeitbare Felder (Status, Agententypen) bleiben erhalten.

Die Importquelle anzeigen:

GetAssetgibt die Quellinformationen metadata.source für im Repository importierte Fähigkeiten zurück:

{ "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" } }

Einschränkungen:

  • Nur URLs werden akzeptiert GitHub . Sie können auf ein Verzeichnis verweisen, das ein SKILL.md (z. B.https://github.com/org/repo/tree/main/skills/my-skill) enthält, das das gesamte Verzeichnis einschließlich der Referenzdateien importiert. Wenn SKILL.md sich das im Stammverzeichnis des Repositorys befindet, können Sie auch direkt auf die Datei verlinken (z. B.https://github.com/org/repo/blob/main/SKILL.md), wodurch nur die importiert wird SKILL.md.

  • Das Verzeichnis muss eine SKILL.md mit gültigem Frontmatter enthalten.

  • Die Gesamtgröße des Verzeichnisses darf 6 MB und höchstens 100 Dateien nicht überschreiten.

  • content.sourceUrlschließt sich mit content.file und gegenseitig aus content.zip — Sie können sie nicht in derselben Anfrage kombinieren.

  • Bei einem reinen Metadaten-Update (ohnecontent) bleibt die bestehende Importquelle erhalten und es erfolgt kein erneutes Abrufen aus dem Repository.

Abrufen, Auflisten, Aktualisieren und Löschen

Wird verwendetGetAsset, um ein einzelnes Asset nach ID abzurufen:

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

Wird verwendetListAssets, um jedes Asset in einem Agentenbereich durchzublättern:

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>

Wird verwendetUpdateAsset, um ein oder mehrere metadata Felder zu ändern, ohne den Inhalt erneut hochladen zu müssen. Schlüssel, die Sie weglassen, behalten ihre vorhandenen Werte bei:

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

Wird verwendetListAssetVersions, um den Versionsverlauf eines Assets zu überprüfen. Bei jedem erfolgreichen UpdateAsset UpdateAssetFile Aufruf wird die Versionsnummer des Assets aktualisiert:

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

Verwenden SieDeleteAsset, um das Asset und alle zugehörigen Dateien zu entfernen:

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

Eine einzelne Datei zu einem vorhandenen Skill hinzufügen

Wenn Sie bereits einen Skill aus einem ZIP-Paket erstellt haben und eine neue Referenzdatei hinzufügen möchten, müssen Sie nicht das gesamte Paket erneut hochladen. BenutzeCreateAssetFile:

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." }'

Um die Datei an Ort und Stelle zu ersetzen, verwenden Sie sie update-asset-file mit denselben Argumenten. Um es zu entfernen, verwenden Siedelete-asset-file.

Fähigkeiten aktivieren und deaktivieren

Fähigkeiten haben einen Aktivierungszustand. metadata.status Neue Fähigkeiten sind ACTIVE standardmäßig verfügbar und werden vom Agenten während der Ermittlungen und im Chat geladen. Sie können einen Skill deaktivieren, um ihn aus der Rotation zu entfernen, ohne ihn zu löschen, z. B. während Sie untersuchen, warum er zu unerwarteten Ergebnissen führt, und ihn später wieder aktivieren.

Legen Sie den Anfangsstatus bei „Erstellen“ fest, indem Sie Folgendes metadata.status in die CreateAsset Anfrage aufnehmen:

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" } } }'

Deaktiviere einen vorhandenen Skill mitUpdateAsset. Da metadata es sich um ein teilweises Update handelt, status bleibt beim Senden nur jedes andere Feld erhalten:

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

Reaktivieren Sie auf die gleiche Weise, mit"status": "ACTIVE":

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

GetAssetund ListAssets geben Sie immer den aktuellen status Eingang metadata für Skill-Assets an, sodass Sie den aktuellen Aktivierungsstatus jederzeit nachlesen können.

Das Feld status unterscheidet Groß- und Kleinschreibung. Nur ACTIVE und INACTIVE (Großbuchstaben) werden akzeptiert. Jeder andere Wert schlägt mit einem ValidationException fehl. Die Aktivierung gilt nur für Fähigkeiten; die Einstellung metadata.status für einen anderen Asset-Typ hat keine Auswirkung und das Feld wird aus der Antwort entfernt.

Verwaltung von Vermögenswerten mit AWS CloudFormation

Verwenden Sie die Asset-API für interaktive oder skriptgesteuerte Änderungen. Um Vermögenswerte deklarativ zu verwalten, modellieren Sie sie als AWS::DevOpsAgent::Asset Ressourcen in. AWS CloudFormation Mit diesem Ansatz können Sie Ihre Ressourcen zusammen mit Ihrer anderen Infrastruktur versionskontrollieren, sie über eine Pipeline bereitstellen und sie in Agent Spaces reproduzieren. CloudFormation erstellt jedes Asset als untergeordnetes Element eines übergeordneten Agent Space, sodass ein Asset, das Sie in einer Vorlage definieren, genau der Ressource zugeordnet ist, die ein CreateAsset Aufruf generiert.

Sie verwalten jeden Asset-Typ über dieselbe AWS::DevOpsAgent::Asset Ressource. Die unterstützten Typen sindskill, agents_mdattachment,custom_agent,memory_store,memory,test_profile, undfeedback. Nur der Inhalt von AssetTypeMetadata, und unterscheidet sich von Typ zu Typ. In den folgenden Beispielen werden ein Skill und ein benutzerdefinierter Agent erstellt. Die anderen Typen folgen derselben Form und verwenden dabei die unter Asset-Typen beschriebenen Metadaten.

Das Tool AWS:DevOpsAgent: :Asset-Ressource

Die Ressourceneigenschaften werden direkt den zuvor in diesem Thema beschriebenen CreateAsset Anforderungsfeldern zugeordnet:

CloudFormation Eigentum Typ Zugeordnet zu Hinweise
AgentSpaceId Zeichenfolge agentSpaceId Erforderlich. Create-only— Wenn Sie es ändern, wird das Asset ersetzt.
AssetType Zeichenfolge assetType Erforderlich. Create-only. Die Asset-Typ-ID — zum Beispiel oder. skill custom_agent Jeder Typ unter Asset-Typen ist gültig.
Metadata JSON metadata Das gleiche Metadatendokument wie die API (für einen Skill: namedescription,agent_types, und optionalstatus). An Ort und Stelle aktualisiert.
Files Auflisten content.file Inline-Dateien, jeweils mit Path und entweder ContentText oderContentBytes, plus optional pro DateiMetadata. Schließt sich gegenseitig mit Zip aus.
Zip Zeichenfolge content.zip.zipFile Base64-encoded Zip-Paket. Schließt sich gegenseitig mit Files aus.
AssetId Zeichenfolge asset.assetId Read-only. Abrufen mitFn::GetAtt.
Arn Zeichenfolge asset.arn Read-only. Der Asset-ARN, der unter dem übergeordneten Agent Space verschachtelt ist.
Version Ganzzahl asset.version Read-only. Probleme bei jedem erfolgreichen Update.
CreatedAt / UpdatedAt Zeichenfolge asset.createdAt / updatedAt Read-only Zeitstempel.

Es lohnt sich, auf zwei Verhaltensweisen hinzuweisen, bevor Sie eine Vorlage schreiben:

  • AgentSpaceIdund können AssetType nur erstellt werden. Wenn Sie eines der beiden ändern, wird das Asset ersetzt. CloudFormation erstellt ein neues Asset mit einem neuen AssetId und Arn löscht dann das alte. Durch Änderungen an Inhalten und Metadaten wird das vorhandene Asset an Ort und Stelle aktualisiert.

  • CloudFormation verwaltet das Asset als Ganzes — seine Metadaten und sein vollständiger Dateisatz. Um einen Skill zu ändern, bearbeiten Sie die Vorlage und aktualisieren Sie den Stack. Operationen, die sich auf Teile einer Anlage auswirken, sind nicht Teil der Ressource und bleiben erhalten API-only. Dazu gehören Änderungen pro Datei (CreateAssetFile,UpdateAssetFile,DeleteAssetFile) und der Versionsverlauf (ListAssetVersions). Dazu gehören auch das Herunterladen von Inhalten (GetAssetContent) sowie das Importieren und Synchronisieren von Repositorys (der sourceUrl Inhaltstyp). Verwenden Sie dafür die AWS CLI oder ein SDK, wie weiter oben in diesem Thema gezeigt.

Erstellen Sie eine Fähigkeit

Die folgende Vorlage erstellt den rds-performance-investigation Skill in einer einzelnen Datei, der in der AWS CLI-Komplettlösung verwendet wird. Sie verwendet die übergeordnete Agent Space ID als Parameter und exportiert die ID und den ARN des neuen Assets.

AWSTemplateFormatVersion: '2010-09-09' Description: A DevOps Agent skill managed as an AWS::DevOpsAgent::Asset resource. Parameters: AgentSpaceId: Type: String Description: The ID of the Agent Space that owns the skill. Resources: RdsPerformanceSkill: Type: AWS::DevOpsAgent::Asset Properties: AgentSpaceId: !Ref AgentSpaceId AssetType: skill Metadata: name: rds-performance-investigation description: Investigation procedures for RDS performance issues. agent_types: - GENERIC Files: - Path: SKILL.md ContentText: | # RDS Performance Investigation Use this skill when customers report database latency, connection errors, query timeouts, or read/write performance degradation. Outputs: SkillAssetId: Value: !GetAtt RdsPerformanceSkill.AssetId SkillArn: Value: !GetAtt RdsPerformanceSkill.Arn

Stellen Sie es mit der AWS CLI bereit und übergeben Sie dabei Ihre Agent Space ID:

aws cloudformation deploy \ --template-file skill.yaml \ --stack-name DevOpsAgentSkillStack \ --parameter-overrides AgentSpaceId=8f6187a7-0388-4926-8217-3a0fe32f757c \ --region <REGION>

Ein Skill, der mehr als eine Datei enthält — zum Beispiel ein SKILL.md Referenzdokument — fügt weitere Einträge hinzu zu: Files

Files: - Path: SKILL.md ContentText: | # RDS Performance Investigation Investigation entry point. - Path: references/rds-metrics-reference.md ContentText: | # RDS metrics reference Key CloudWatch metrics to check.

Um den Skill deaktiviert zu erstellen oder ihn später zu deaktivieren, geben Sie Folgendes ein Metadata (siehe status Skills #activating-and-deactivating-skills aktivieren und deaktivieren) und aktualisieren Sie den Stack:

Metadata: name: rds-performance-investigation description: Investigation procedures for RDS performance issues. agent_types: - GENERIC status: INACTIVE

Erstellen Sie einen benutzerdefinierten Agenten

Ein benutzerdefinierter Agent ist dieselbe Ressource mit einem anderen AssetTypeMetadata, und Inhalt. Die folgende Ressource erstellt ein custom_agent Asset, das eine Reihe von Tools und Fähigkeiten kuratiert. In der skills Liste werden Skills anhand ihrer name Metadaten referenziert, sodass Sie auf den Skill, den Sie zuvor erstellt haben, verweisen können.

RdsFirefighter: Type: AWS::DevOpsAgent::Asset Properties: AgentSpaceId: !Ref AgentSpaceId AssetType: custom_agent Metadata: name: rds-firefighter tools: - cloudwatch:GetMetricData - rds:DescribeDBInstances skills: - rds-performance-investigation Files: - Path: AGENT.md ContentText: | # RDS Firefighter Custom agent for RDS incidents.

Die anderen Asset-Typen funktionieren auf die gleiche Weise — legen Sie die Metadata Schlüssel fest AssetType und geben Sie sie an, die für den Typ erforderlich sind (siehe Asset-Typen). Zum Beispiel ein agents_md Asset-Set, das eine AssetType: agents_md Datei agent_type: INCIDENT_TRIAGE und eine AGENTS.md Datei Metadata enthält.

Planen Sie den benutzerdefinierten Agenten mit einem Trigger

Um den benutzerdefinierten Agenten automatisch auszuführen, fügen Sie eine AWS::DevOpsAgent::Trigger Ressource hinzu. Ein Trigger ist ein Kind des Agent Space. Seine Aktion verweist auf den benutzerdefinierten Agenten, der ausgeführt werden soll, anhand der Asset-ID im Formularcustom:<assetId>. Wird verwendetFn::GetAtt, um die Daten des benutzerdefinierten Agenten zu übergeben CloudFormation , AssetId sodass die beiden Ressourcen miteinander verbunden werden und deren Erstellung angeordnet wird.

Der folgende Trigger führt den rds-firefighter benutzerdefinierten Agenten einmal täglich aus:

DailyRdsCheck: Type: AWS::DevOpsAgent::Trigger Properties: AgentSpaceId: !Ref AgentSpaceId Type: TIME_BASED Condition: Schedule: Expression: rate(1 day) Action: actionType: create:task task: agent: !Sub - custom:${AssetId} - AssetId: !GetAtt RdsFirefighter.AssetId Status: Active

Die Action Eigenschaften AgentSpaceIdType,Condition, und können nur erstellt werden. Wenn Sie einen von ihnen ändern, wird der Trigger ersetzt. Die Status Unterkunft akzeptiert Active oder Inactive und kann vor Ort aktualisiert werden. Stellen Sie ihn auf einInactive, um den Trigger anzuhalten, ohne ihn zu löschen. Weitere Hinweise zur Syntax von Zeitplanausdrücken finden Sie unterAusführen benutzerdefinierter Agenten.

AWS::DevOpsAgent::Assetund AWS::DevOpsAgent::Trigger sind in den AWS Regionen verfügbar, in denen AWS DevOps Agent angeboten wird. Weitere Informationen zu den unterstützten AWS Regionen finden Sie unterUnterstützte Regionen. Informationen zur Bereitstellung des übergeordneten Agent Space, der IAM-Rollen und der Operator-App als Infrastruktur in Form von Code finden Sie unterErste Schritte mit AWS DevOps Agent verwendet AWS CloudFormation.

Beispiele für die anderen Asset-Typen

Die obige Komplettlösung gilt für alle anderen Asset-Typen. Der einzige Unterschied besteht im metadata Block und, bei Anhängen, in der Wahl des binären Inhalts. Die folgenden minimalen CreateAsset Aufrufe veranschaulichen die einzelnen Typen.

Speicherspeicher und Speicher verwenden dieselbe CreateAsset Operation. Erstellen Sie zuerst den Speicher und dann den Speicher. Weitere Informationen zu ihren Metadaten finden Sie unter memory_store und memory.

Erstellen Sie eine: 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." } } }'

Erstellen Sie einen Anhang (binärer Inhalt; erstellen Sie die Anfrage aus einer JSON-Datei, wie unter Einen Skill aus einer Binärdatei erstellen gezeigt):

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

Erstellen Sie einen benutzerdefinierten Agenten:

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." } } }'

Erstellen Sie ein Testprofil:

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" } } }'

Erstellen Sie ein Feedback-Asset:

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 der unterstützten Asset-Typen:

aws devops-agent list-asset-types