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 Vermögenswerten
AWS DevOps Der Agent speichert die Konfiguration und das Referenzmaterial für einen Agent Space in Form von Ressourcen, d. h. den vom Kunden verwalteten Ressourcen, die bestimmen, was der Agent weiß und wie er sich verhält. Fähigkeiten, AGENTS.md Dateien und Anlagen sind allesamt Ressourcen, die Sie mithilfe der Asset-API programmgesteuert erstellen, lesen, aktualisieren und löschen können.
In diesem Thema werden das Asset-Modell, die benötigten IAM-Berechtigungen, die Metadaten, die jeder Asset-Typ erwartet, und die umfassende Verwaltung von Assets mit der AWS CLI und dem AWS SDK for Python (Boto3) erläutert. Einen konzeptionellen Überblick über die Fähigkeiten selbst finden Sie unter. DevOps Fähigkeiten der Agenten Informationen zu durch Agenten generiertem 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 macht dieselben Operationen programmgesteuert verfügbar, sodass Skripte und Automatisierung Ressourcen verwalten können, ohne die Web-App verwenden zu müssen. 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 ein Startpaket von Fähigkeiten oder AGENTS.md Dateien in einem neuen Agent Space.
Den Inhalt eines Assets lesen, um es zu sichern oder Versionen zu vergleichen.
Jeder Vorgang in der Asset-API wird über die AWS CLI als aws devops-agent <operation> und über die AWS SDKs als devops-agent Client verfügbar gemacht.
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 sich die Aktion bezieht. Jede Aktion befindet sich im aidevops: Namespace und gilt, mit Ausnahme vonListAssetTypes, für eine Agent Space-Ressource der Form. 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 Agent-Bereich (Fähigkeit AGENTS.md, Anlage, benutzerdefinierter Agent, Testprofil oder Feedback). | aidevops:CreateAsset |
Agentenbereich |
GetAsset |
Rufen Sie die Metadaten und Versionsinformationen eines Assets ab. | aidevops:GetAsset |
Agentenbereich |
UpdateAsset |
Aktualisieren Sie die Metadaten oder den Inhalt eines vorhandenen Assets. | aidevops:UpdateAsset |
Agentenbereich |
DeleteAsset |
Löschen Sie ein Asset und alle zugehörigen Dateien aus einem Agent Space. | aidevops:DeleteAsset |
Agentenbereich |
ListAssets |
Listet Assets in einem Agent Space auf, mit optionaler Filterung nach Asset-Typ. | aidevops:ListAssets |
Agentenbereich |
ListAssetVersions |
Listet die historischen Versionen eines Assets auf. | aidevops:ListAssetVersions |
Agentenbereich |
GetAssetContent |
Laden Sie den vollständigen Inhalt eines Assets als Zip-Paket herunter. | aidevops:GetAssetContent |
Agentenbereich |
CreateAssetFile |
Fügt einem vorhandenen Asset eine neue Datei hinzu. | aidevops:CreateAssetFile |
Agentenbereich |
GetAssetFile |
Ruft eine einzelne Datei anhand ihres Pfads aus einem Asset ab. | aidevops:GetAssetFile |
Agentenbereich |
UpdateAssetFile |
Ersetzen Sie den Inhalt oder die Metadaten einer vorhandenen Datei in einem Asset. | aidevops:UpdateAssetFile |
Agentenbereich |
DeleteAssetFile |
Eine einzelne Datei aus einem Asset entfernen. | aidevops:DeleteAssetFile |
Agentenbereich |
ListAssetFiles |
Listet die Dateien in einem Asset auf. | aidevops:ListAssetFiles |
Agentenbereich |
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 nur 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": "*" } ] }
Asset-Typen
Jedes Asset hat eine assetType Zeichenfolge, die angibt, um welche Art von Ressource es sich handelt. Sechs Asset-Typen können über die Asset-API erstellt werden: skillagents_md,attachment,custom_agent,test_profile, undfeedback. In den folgenden Abschnitten werden die einzelnen Typen beschrieben. Sie können die Typbezeichner 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 Anforderungstextes, verwenden CamelCase (z. B., agentSpaceIdassetType,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 Dienst die PATCH-Semantik auf Folgendes anmetadata: Schlüssel, die Sie angeben, werden ersetzt, und Schlüssel, die Sie auslassen, behalten ihre gespeicherten Werte. Sie können ein Asset nicht mehr ändern, assetType nachdem es erstellt wurde.
Qualifikation
Ein skill Asset verpackt 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 sowie optionale assets/ Verzeichnisse references/ oder Verzeichnisse enthält.
Erforderliche metadata Eigenschaften:
name (string) — Eine eindeutige Kennung 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
nameaus derSKILL.mdTitelseite und jeder hier angegebene Wert wird ignoriert.description (string) — Eine Erklärung mit 1—1024 Zeichen, wann der Agent den Skill einsetzen sollte. Nur für einfache Skills erforderlich. Bei ZIP-Uploads liest der Dienst
descriptionaus derSKILL.mdTitelseite 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 für alle Agententypen verfügbar zu machen. Andere Werte umfassenCHAT,INCIDENT_TRIAGE,INCIDENT_RCA,INCIDENT_MITIGATION,PREVENTION,CHANGE_REVIEW,CHANGE_RELEASE,QUALITY_ASSURANCE_TESTING,RELEASE_SHEPHERD,RELEASE_READINESS_REVIEW, undRELEASE_TESTING. DerGENERICWert kann nicht mit anderen Werten kombiniert werden.
Optionale metadata Eigenschaften:
skill_type (string) — Der Standardwert ist.
USERDie Asset-API erlaubt nur vom Kunden erstellte Fähigkeiten, daher ist der einzig akzeptierte Wert.USERDer Service lehnt Anfragen ab, dieskill_typeauf gesetzt sind. Dieser Wert ist für Skills reserviertLEARNED, die vom Agenten selbst generiert wurden.status (Zeichenfolge) — Aktivierungsstatus des Skills. Zulässige Werte sind
ACTIVEundINACTIVE(nur in Großbuchstaben). Standardeinstellung:ACTIVE. Inaktive Skills verbleiben im Agentenbereich, werden aber nicht vom Agenten bei Ermittlungen oder im Chat geladen. Verwenden SieUpdateAssetmitmetadata.status, um einen Skill zu deaktivieren oder zu reaktivieren, ohne ihn zu löschen. Fähigkeiten sind der einzige Asset-Typ, der die Aktivierung unterstützt. DasstatusFeld wird bei allen anderen Asset-Typen ignoriert. Ein funktionierendes Beispiel finden Sie unter Fähigkeiten aktivieren und deaktivieren.enable_tools (Zeichenkettenarray) — Eine Liste von Tool-IDs, 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 vom Benutzer 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 sich die AGENTS.md Datei bezieht. Gültige Werte sind:
GENERIC,CHAT,INCIDENT_TRIAGE,INCIDENT_RCA,INCIDENT_MITIGATION,PREVENTION,CHANGE_REVIEW,CHANGE_RELEASE,QUALITY_ASSURANCE_TESTING,RELEASE_SHEPHERD,RELEASE_READINESS_REVIEWundRELEASE_TESTING.
Beispiel: metadata
{ "agent_type": "INCIDENT_TRIAGE" }
Grenzwerte: Jeder Agentenbereich kann maximal einen AGENTS.md pro 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 aller 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 spezielle Agentenkonfiguration mit einem kuratierten Satz von Tools und Fähigkeiten. Verwenden Sie einen benutzerdefinierten Agenten, um den Agenten auf einen bestimmten Workflow oder eine Reihe von Funktionen zu beschränken.
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. Standardmäßig wird eine leere Liste angezeigt, wenn sie weggelassen wird.
skills (Array von Zeichenketten) — Die Skill-IDs, die der benutzerdefinierte Agent lädt. Wenn sie weggelassen wird, wird standardmäßig eine leere Liste angezeigt.
Beispiel: metadata
{ "name": "rds-firefighter", "tools": ["cloudwatch:GetMetricData", "rds:DescribeDBInstances"], "skills": ["rds-performance-investigation"] }
test_profile
Ein test_profile Asset speichert eine wiederverwendbare Konfiguration für einen Release-Testlauf, einschließlich der Art der 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
releaseUiTestingundreleaseApiTesting.target_url (string) — Die URL, auf die der Testlauf abzielt.
Optionale Eigenschaften: metadata
name (string) — Eine für Menschen lesbare Kennung für das Testprofil. Nur Kleinbuchstaben, Zahlen und Bindestriche, 1—128 Zeichen. Darf nicht mit einem Bindestrich beginnen oder enden.
Beschreibung (Zeichenfolge) — Eine 1—1024 Zeichen umfassende Beschreibung dessen, was das Testprofil abdeckt.
test_personas (Zeichenkettenarray) — Die Personas, die während des Testlaufs trainiert werden sollen. Gültige Werte sind
guestundauthenticated.api_spec (string) — Eine API-Spezifikation für den Testlauf. Relevant für.
releaseApiTestingcredentials als_secret_arn (string) — Der ARN eines AWS Secrets Manager, das 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 vom Kunden bereitgestelltes Feedback zur Ausführung eines einzelnen Agenten auf. Verwenden Sie Feedback-Assets, um Urteile und Notizen zu erfassen, die dann in den nachfolgenden Evaluierungspipelines zusammengefasst werden können.
Erforderliche Eigenschaften: metadata
agent_types (Zeichenkettenarray) — Die Agententypen, die die Ausführung ausgeführt 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. Stellen Sie dies ein
CreateAsset; es kann nicht geändert werden von.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 Bytes 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.textenthält bis zu 1,5 MB UTF-8 Text. Verwenden Sie dies 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.bytesenthält bis zu 6 MB an Base64-codierten Binärinhalten. Verwenden Sie dies für Anhänge wie Bilder oder PDF-Dateien. Da der Blob innerhalb dercontentUnion verschachtelt ist, kodieren Sie die Datei im Voraus mit Base64 und reichen Sie die Anfrage mit ein--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.zipFileenthält ein Base64-kodiertes Zip-Archiv mit bis zu 6 MB. Verwenden Sie dies für Fähigkeiten, die einSKILL.mdPlus zusätzlicher Dateien in einemreferences/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, verwenden Sie CreateAssetFileUpdateAssetFile, und. DeleteAssetFile
Ganzheitliche Verwaltung eines Skills
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 inline hochgeladen wird. Da der Upload genau eine Textdatei enthält, müssen Sie diese angeben name und description eingebenmetadata.
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 (Teil 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 der Skill-Inhalt kein UTF-8 Text ist. Im folgenden Beispiel wird eine vorab gerenderte PDF-Datei als Skilltext hochgeladen. Da der Anforderungstext einen innerhalb der content Union verschachtelten Base64-codierten Blob enthält, sollten Sie die Anfrage aus einer JSON-Datei mit angeben --cli-input-json und den Blob im Voraus mit Base64-kodieren.
Das unten stehende -w 0 Flag weist GNU base64 an, den codierten Blob in einer einzigen Zeile auszugeben. Andernfalls fügt der standardmäßige 76-stellige Zeilenumbruch Zeilenumbrüche ein, die ungültiges JSON erzeugen, wenn der Blob in das Heredoc interpoliert wird. Verwenden Sie unter macOS base64 -i ops-runbook.pdf (das BSD base64 wird standardmäßig nicht umgebrochen).
Erstellen Sie den Hauptteil der Anfrage:
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 (Teil 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}, } }, )
Einen Skill aus einem Zip-Paket erstellen
Verwenden Sie einen ZIP-Upload, wenn der Skill mehr als eine Datei enthält, z. B. eine SKILL.md sowie Referenzmaterial und Ressourcen. Bei ZIP-Uploads liest der Service name und description aus der SKILL.md Titelseite. Fügen Sie sie also nicht in die Datei 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 Service 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 Hauptteil der Anfrage:
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 (Teil 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}}, )
Importiert 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 Skill-Inhalt ab, extrahiert den Namen und die Beschreibung aus der SKILL.md Titelseite und erstellt den Skill in Ihrem Agent-Bereich. 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 (Teil 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 Verzeichnisinhalt ab, liest die SKILL.md Titelzeile für und name und importiert alle description Dateien. Nicht einschließen name oder description einbeziehen metadata — sie werden automatisch aus der Titeldatei extrahiert.
Synchronisieren eines importierten Skills:
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) werden beibehalten.
Importquelle anzeigen:
GetAssetgibt die Quellinformationen metadata.source für aus dem 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:
Es werden nur URLs akzeptiert GitHub . Sie können auf ein Verzeichnis verweisen, das SKILL.md (z. B.
https://github.com/org/repo/tree/main/skills/my-skill) enthält, wodurch das gesamte Verzeichnis einschließlich der Referenzdateien importiert wird. 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 Titelbild enthalten.
Die Gesamtgröße des Verzeichnisses darf 6 MB und höchstens 100 Dateien nicht überschreiten.
content.sourceUrlschließt sich mitcontent.fileund gegenseitig auscontent.zip— Sie können sie nicht in derselben Anfrage kombinieren.Bei einem reinen Metadaten-Update (ohne
content) wird die bestehende Importquelle beibehalten und sie wird nicht erneut aus dem Repository abgerufen.
Abrufen, Auflisten, Aktualisieren und Löschen
Wird verwendetGetAsset, um ein einzelnes Asset anhand der 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 Agent Space zu durchblä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 hochzuladen. Schlüssel, die Sie auslassen, 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 OD-Aufruf wird die Versionsnummer des Assets weitergeleitet:
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. Verwenden SieCreateAssetFile:
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 es update-asset-file mit denselben Argumenten. Um sie zu entfernen, verwenden Siedelete-asset-file.
Fähigkeiten aktivieren und deaktivieren
Fähigkeiten haben einen Aktivierungsstatus. 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 nehmen, ohne ihn zu löschen, z. B. während Sie untersuchen, warum er zu unerwarteten Ergebnissen führt, und ihn später erneut aktivieren.
Legen Sie den Anfangsstatus bei der Erstellung 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" } } }'
Deaktivieren Sie einen vorhandenen Skill mitUpdateAsset. Da metadata es sich um ein teilweises Update handelt, bleiben beim status Senden nur alle anderen Felder intakt:
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 füge immer die aktuellen status Skill-Assets hinzu, sodass du den Status der Live-Aktivierung jederzeit ablesen kannst. metadata
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 Fertigkeiten; die Einstellung metadata.status für einen anderen Asset-Typ hat keine Auswirkung und das Feld wird aus der Antwort entfernt.
Beispiele für die anderen Asset-Typen
Die obige Anleitung zu den Fähigkeiten gilt für jeden anderen Asset-Typ. 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.
Erstellen Sie ein 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 beschrieben):
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