View a markdown version of this page

Administración de activos - AWS DevOps Agente

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Administración de activos

AWS DevOps El agente almacena la configuración y el material de referencia de un espacio de agente como activos, los recursos administrados por el cliente que dan forma a lo que el agente sabe y a su comportamiento. Las habilidades, AGENTS.md los archivos y los archivos adjuntos son todos activos, y puede crearlos, leerlos, actualizarlos y eliminarlos mediante programación a través de la API de activos.

Para configurar lo que el AWS DevOps agente sabe y cómo se comporta, administre los activos en su espacio de agente. Este tema abarca el modelo de activos, los permisos de IAM y los metadatos que espera cada tipo de activo. Use la AWS CLI, el AWS SDK para Python (Boto3) o para administrar los activos de principio AWS CloudFormation a fin. Para obtener una descripción general conceptual de las propias habilidades, consulte. DevOps Habilidades de agente Para obtener conocimientos generados por agentes que usted no crea usted mismo, consulte. Habilidades aprendidas

¿Cuándo usar la Asset API

La aplicación web Operator es la forma más rápida de crear una sola habilidad o cargar un AGENTS.md archivo de forma interactiva. La API de activos expone las mismas operaciones mediante programación para que los scripts y la automatización puedan administrar los activos sin pasar por la aplicación web. Entre las razones más comunes para llamar directamente a la API Asset se incluyen las siguientes:

  • Crear o actualizar un activo desde un script, una terminal o una libreta en lugar de hacerlo desde la aplicación web.

  • Bulk-loading un conjunto inicial de habilidades o AGENTS.md archivos en un nuevo espacio de agente.

  • Leer el contenido de un activo para hacer copias de seguridad o comparar versiones.

Todas las operaciones de la API de activos se exponen a través de la AWS CLI aws devops-agent <operation> y a través de AWS los SDK como devops-agent cliente.

Operaciones de la API de activos

La API de activos expone las siguientes operaciones. En cada fila se muestra la acción de IAM que debes conceder para llamar a la operación y el recurso al que se aplica la acción. Todas las acciones se encuentran en el espacio de aidevops: nombres y, a excepción de ellasListAssetTypes, se aplican a un recurso del espacio de agente del formulario. arn:aws:aidevops:<region>:<account-id>:agentspace/<agentSpaceId> Para obtener información más amplia sobre aidevops: los permisos, consulteDevOps Permisos de IAM del agente.

Operación Description (Descripción) Acción de IAM Recurso
ListAssetTypes Enumere los tipos de activos admitidos por el AWS DevOps agente. aidevops:ListAssetTypes *
CreateAsset Cree un nuevo activo en un espacio de agentes (habilidad AGENTS.md, adjunto, agente personalizado, almacén de memoria, memoria, perfil de prueba o comentarios). aidevops:CreateAsset Agent Space
GetAsset Recupera los metadatos y la información de la versión de un activo. aidevops:GetAsset Espacio de agente
UpdateAsset Actualice los metadatos o el contenido de un activo existente. aidevops:UpdateAsset Espacio de agentes
DeleteAsset Elimine un activo y todos sus archivos de un espacio de agentes. aidevops:DeleteAsset Agent Space
ListAssets Enumere los activos en un espacio de agentes, con un filtrado opcional por tipo de activo. aidevops:ListAssets Espacio de agentes
ListAssetVersions Enumere las versiones históricas de un activo. aidevops:ListAssetVersions Agent Space
GetAssetContent Descarga el contenido completo de un activo como un paquete zip. aidevops:GetAssetContent Agent Space
CreateAssetFile Agregue un archivo nuevo a un activo existente. aidevops:CreateAssetFile Espacio de agente
GetAssetFile Recupera un único archivo de un activo por su ruta. aidevops:GetAssetFile Agent Space
UpdateAssetFile Reemplace el contenido o los metadatos de un archivo existente en un activo. aidevops:UpdateAssetFile Espacio de agente
DeleteAssetFile Elimine un único archivo de un activo. aidevops:DeleteAssetFile Agent Space
ListAssetFiles Enumere los archivos de un activo. aidevops:ListAssetFiles Agent Space

Ejemplos de políticas de IAM

La siguiente política otorga acceso de administración total a los activos en un único espacio de agente:

{ "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 siguiente política otorga acceso de solo lectura a los activos en un único espacio de agente:

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

Tipos de activos

Cada activo tiene una assetType cadena que identifica qué tipo de recurso es. Puede crear ocho tipos de activos a través de la API de activos: skill agents_mdattachment,custom_agent,memory_store,memory,test_profile, yfeedback. En las secciones siguientes se describe cada tipo. También puedes llamar ListAssetTypes para recuperar los identificadores de tipo en tiempo de ejecución.

Cada activo contiene un objeto metadata JSON de formato libre que describe el recurso. Las claves internas metadata usan snake_case (por ejemplo,). agent_types skill_type Las claves externasmetadata, en el nivel superior del cuerpo de la solicitud, usan CamelCase (por ejemplo,,,). agentSpaceId assetType clientToken Las metadata claves obligatorias y opcionales dependen del tipo de activo, tal y como se describe en las secciones siguientes.

Al llamar UpdateAsset oUpdateAssetFile, el servicio aplica la semántica de PATCHmetadata: las claves que incluyas se sustituyen y las que omites conservan sus valores almacenados. No puedes cambiar el activo una assetType vez creado.

habilidad

Un skill activo incluye instrucciones y material de referencia que el agente carga cuando es relevante. Una habilidad simple es un SKILL.md archivo único; una habilidad compleja es un paquete zip que contiene un SKILL.md archivo más los directorios opcionales references/ o assets/ los directorios.

metadataPropiedades obligatorias:

  • nombre (cadena): identificador único de la habilidad. Solo letras minúsculas, números y guiones, de 1 a 64 caracteres. No debe empezar ni terminar con un guión. Solo se requiere para habilidades simples. En el caso de las subidas en formato zip, el servicio lee name desde la SKILL.md primera página y se ignora cualquier valor que se introduzca aquí.

  • descripción (cadena): una explicación de 1 a 1024 caracteres sobre cuándo el agente debe usar la habilidad. Solo se requiere para habilidades sencillas. En el caso de las subidas en formato zip, el servicio lee description desde la SKILL.md primera página y se ignora cualquier valor que se introduzca aquí.

  • agent_types (matriz de cadenas): uno o más tipos de agentes a los que se aplica esta habilidad. Se usa ["GENERIC"] para que la habilidad esté disponible para todos los tipos de agentes. Otros valores incluyen CHATINCIDENT_TRIAGE,INCIDENT_RCA,INCIDENT_MITIGATION, PREVENTIONRELEASE_READINESS_REVIEW, yRELEASE_TESTING. El GENERIC valor no se puede combinar con otros valores.

metadataPropiedades opcionales:

  • skill_type (string): el valor predeterminado es. USER La Asset API solo permite habilidades creadas por el cliente, por lo que el único valor aceptado es. USER El servicio rechaza las solicitudes con el valor skill_typeLEARNED, que está reservado para las habilidades generadas por el propio agente.

  • status (cadena): estado de activación de la habilidad. Los valores aceptados son ACTIVE y INACTIVE (solo en mayúsculas). El valor predeterminado es ACTIVE. Las habilidades inactivas permanecen en el espacio de agentes, pero el agente no las carga durante las investigaciones o el chat. Usa UpdateAsset con metadata.status para desactivar o reactivar una habilidad sin eliminarla. Las habilidades son el único tipo de activo que admite la activación; el status campo se ignora en todos los demás tipos de activos. Consulta Activación y desactivación de habilidades para ver un ejemplo práctico.

  • enable_tools (matriz de cadenas): una lista de identificadores de herramientas a los que el agente puede invocar cuando carga esta habilidad.

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

Límites: las subidas en formato zip no deben superar los 6 MB. Un espacio de agente puede contener hasta 200 habilidades creadas por los usuarios.

agents_md

Un agents_md activo es un archivo de descuentos que contiene instrucciones permanentes para un tipo de agente específico. El agente carga las coincidencias AGENTS.md al principio de cada tarea. Para obtener más información sobre las instrucciones del agente, consulteInstrucciones del agente.

metadataPropiedades necesarias:

  • agent_type (string): el tipo de agente al que se aplica el AGENTS.md archivo. Los valores válidos sonGENERIC,CHAT,INCIDENT_TRIAGE, INCIDENT_RCA INCIDENT_MITIGATIONPREVENTION, RELEASE_READINESS_REVIEW y. RELEASE_TESTING

Ejemplometadata:

{ "agent_type": "INCIDENT_TRIAGE" }

Límites: cada espacio de agente puede contener como máximo uno AGENTS.md por cada unoagent_type. El contenido del archivo debe ser Markdown (text/markdown) y no debe superar los 25 KB.

attachment

Un attachment activo almacena un archivo binario o de texto al que el agente puede hacer referencia durante las investigaciones, por ejemplo, un diagrama de arquitectura, un PDF con un libro de ejecución o un archivo de registro de muestra.

metadataPropiedades requeridas:

  • nombre de archivo (cadena): el nombre del archivo original, incluido el nombre base y cualquier extensión (por ejemplo,topology.png).

  • extension (string): la extensión del archivo sin el punto inicial (por ejemplo,png,pdf,csv).

  • size (número): el tamaño del archivo en bytes.

Ejemplometadata:

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

Límites: el tamaño total de todos los archivos adjuntos de un espacio de agente no puede superar los 10 GB.

custom_agent

Un custom_agent activo define la configuración de un agente especializado con un conjunto seleccionado de herramientas y habilidades. Utilice un agente personalizado para adaptar el agente a un flujo de trabajo o conjunto de capacidades específicos.

metadataPropiedades necesarias:

  • nombre (cadena): un identificador único para el agente personalizado. Solo letras minúsculas, números y guiones, de 1 a 64 caracteres. No debe empezar ni terminar con un guión.

metadataPropiedades opcionales:

  • herramientas (matriz de cadenas): los identificadores de herramientas que el agente personalizado puede usar. El valor predeterminado es una lista vacía cuando se omite.

  • habilidades (matriz de cadenas): los identificadores de habilidades que carga el agente personalizado. El valor predeterminado es una lista vacía cuando se omite.

Ejemplo: metadata

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

memory_store

Un memory_store activo es un contenedor que agrupa los archivos de memoria relacionados. El agente lee el nombre y la descripción de la tienda para decidir si quiere abrirla y hacer una lista de los recuerdos que contiene. Las memorias y los almacenes de memoria admiten la memoria del agente. Para obtener más información sobre las memorias, consulteDevOps Memorias de agentes.

Cree recuerdos en dos pasos. Primero, cree la memory_store. Luego, crea cada uno en memory su interior, tal y como se describe en la memoria.

metadataPropiedades requeridas:

  • nombre (cadena): un identificador único para el almacén de memoria. Solo letras minúsculas, números y guiones, de 1 a 128 caracteres. No debe empezar ni terminar con un guión.

  • descripción (cadena): una descripción de 1 a 1024 caracteres de lo que contiene la tienda. El agente la usa para decidir si va a abrir la tienda.

metadataPropiedades opcionales:

  • agent_types (matriz de cadenas): los tipos de agentes principales que pueden ver la tienda. Se usa ["GENERIC"] para hacer que la tienda sea visible para todos los tipos de agentes.

Ejemplometadata:

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

memoria

Un memory activo es un archivo de memoria individual que pertenece a un almacén de memoria. El agente lee el nombre y la descripción de la memoria para decidir si desea leer el archivo completo. Cree memory_store primero el archivo principal y, a continuación, memory_store_id configúrelo en la memoria con el ID del activo de la tienda.

metadataPropiedades requeridas:

  • nombre (cadena): identificador de la memoria, escrito como una ruta / separada por segmentos en minúscula en forma de kebab, de 1 a 255 caracteres (por ejemplo,). databases/rds-failover

  • descripción (cadena): una descripción de 1 a 1024 caracteres de lo que contiene la memoria.

  • memory_store_id (cadena): el ID del activo del almacén de memoria al que pertenece esta memoria.

metadataPropiedades opcionales:

  • expires_at (número): una fecha límite de retención, en segundos de época. Cuando se establece, el servicio elimina la memoria automáticamente una vez transcurrido el plazo (normalmente, en un plazo de 48 horas). Omita esta propiedad para conservar la memoria hasta que la borre.

Ejemplometadata:

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

test_profile

Un test_profile activo almacena una configuración reutilizable para la ejecución de una prueba de versión, incluido el tipo de prueba que se va a realizar y el punto final de destino.

Propiedades requeridasmetadata:

  • test_agent_type (string): el tipo de prueba que realiza este perfil. Los valores válidos son releaseUiTesting y releaseApiTesting.

  • target_url (string): la URL a la que se dirige la ejecución de la prueba.

Propiedades opcionalesmetadata:

  • nombre (cadena): un identificador legible por humanos para el perfil de prueba. Solo letras minúsculas, números y guiones, de 1 a 128 caracteres. No debe empezar ni terminar con un guión.

  • descripción (cadena): una descripción de 1 a 1024 caracteres de lo que cubre el perfil de la prueba.

  • test_personas (matriz de cadenas): las personas que se van a utilizar durante la ejecución de la prueba. Los valores válidos son guest y authenticated.

  • api_spec (string): una especificación de API para la ejecución de la prueba. Relevante para. releaseApiTesting

  • credentials_secret_arn (string): el ARN de un secreto de AWS Secrets Manager que contiene las credenciales para la ejecución de la prueba.

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

valoración

Un feedback activo registra los comentarios proporcionados por los clientes sobre la ejecución de un solo agente. Utilice los recursos de comentarios para recopilar los veredictos y las notas que puedan acumular los procesos de evaluación posteriores.

Propiedades requeridas: metadata

  • agent_types (matriz de cadenas): los tipos de agentes que produjeron la ejecución. Debe contener al menos un valor (por ejemplo,). INCIDENT_TRIAGE

metadataPropiedades opcionales:

  • execution_id (string): la ejecución a la que está asociado este comentario. ActívalaCreateAsset; no se puede cambiar. UpdateAsset

Ejemplometadata:

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

Contenido del activo: archivo o zip

Cada CreateAsset solicitud incluye un content objeto que contiene los bytes que almacena el activo. La forma content depende de si subes un único archivo o un paquete zip:

  • Archivo de texto único: content.file.body.text contiene hasta 1,5 MB de UTF-8 texto. Utilízalo para habilidades y AGENTS.md archivos sencillos.

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

  • Archivo binario único: content.file.body.bytes contiene hasta 6 MB de contenido binario codificado en base64. Utilícelo para archivos adjuntos, como imágenes o archivos PDF. Como el blob está anidado dentro de la content unión, codifique el archivo en base64 con antelación y envíe la solicitud con --cli-input-json (consulte Crear una habilidad a partir de un archivo binario para ver un ejemplo práctico).

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

  • Paquete zip: content.zip.zipFile contiene un archivo zip codificado en base64 de hasta 6 MB. Utilícelo para habilidades que incluyan SKILL.md más archivos adicionales en un directorio references/ oassets/.

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

Para agregar, reemplazar o eliminar archivos individuales dentro de un activo existente sin volver a cargar todo el paquete CreateAssetFileUpdateAssetFile, utilice y. DeleteAssetFile

Administrar una habilidad de principio a fin

En el siguiente tutorial, se crea una habilidad de tres maneras diferentes (a partir de un único archivo de texto, de un archivo binario y de un paquete zip) y, a continuación, se ejercitan las operaciones de lectura, actualización y eliminación. 8f6187a7-0388-4926-8217-3a0fe32f757cSustitúyala por tu ID de Agent Space.

Crea una habilidad a partir de un único archivo de texto

Esta es la ruta más sencilla: subir un único SKILL.md archivo en línea. Como el archivo subido contiene exactamente un archivo de texto, debes introducirlo name e introducirlodescription. metadata

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

Crea una habilidad a partir de un archivo binario

Utilice una carga binaria cuando el contenido de la habilidad no sea UTF-8 texto. En el siguiente ejemplo, se carga un PDF renderizado previamente como conjunto de habilidades. Como el cuerpo de la solicitud contiene un blob codificado en base64 anidado dentro de la content unión, proporcione la solicitud desde un archivo JSON --cli-input-json y codifique el blob en base64 con antelación.

El -w 0 indicador que aparece a continuación indica base64 a GNU que emita el blob codificado en una sola línea; sin él, el ajuste de línea predeterminado de 76 caracteres inserta líneas nuevas que producen un JSON no válido cuando el blob se interpola en el heredoc. En macOS, utilice base64 -i ops-runbook.pdf (el BSD no se ajusta de forma predeterminada). base64

Crea el cuerpo de la solicitud:

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

Crea una habilidad a partir de un paquete zip

Usa la opción de subir archivos en formato zip cuando la habilidad incluya más de un SKILL.md archivo, por ejemplo, material de referencia y recursos adicionales. En el caso de las subidas en formato zip, el servicio lee name y description desde SKILL.md la portada, así que no los incluyas. metadata

El diseño del zip tiene el siguiente aspecto:

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

SKILL.mddebe incluir frontmatter para que el servicio pueda extraer el nombre y la descripción:

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

Crea el cuerpo de la solicitud:

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

Importa una habilidad desde un repositorio

Puedes crear una habilidad importándola directamente desde el directorio de un GitHub repositorio. AWS DevOps El agente obtiene el contenido de la habilidad, extrae el nombre y la descripción del SKILL.md documento preliminar y crea la habilidad en tu espacio de agente. Esto le permite gestionar las habilidades de control de versiones e importarlas o sincronizarlas mediante programación.

Requisitos previos:

  • Su espacio de agente debe tener una GitHub cuenta asociada. Consulte Conectando GitHub.

  • El directorio del repositorio debe contener un SKILL.md archivo válido con 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"]

El servicio obtiene el contenido del directorio, lee la SKILL.md portada de name y e description importa todos los archivos. No los incluya name ni incluyametadata: se description extraen automáticamente de la portada.

Sincronizar una habilidad importada:

Para obtener los cambios más recientes del repositorio, llama UpdateAsset concontent.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 sincronización reemplaza completamente el contenido de la habilidad por el estado actual del directorio del repositorio. Los campos editables (estado, tipos de agentes) se conservan.

Visualización de la fuente de importación:

GetAssetdevuelve la información de origen de las metadata.source habilidades importadas al repositorio:

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

Restricciones:

  • Solo se aceptan las GitHub URL. Puede apuntar a un directorio que contenga un SKILL.md (por ejemplo,https://github.com/org/repo/tree/main/skills/my-skill), que importa todo el directorio, incluidos los archivos de referencia. Si SKILL.md está en la raíz del repositorio, también puedes vincular directamente al archivo (por ejemplo,https://github.com/org/repo/blob/main/SKILL.md), que solo importa el SKILL.md.

  • El directorio debe contener SKILL.md una portada válida.

  • El tamaño total del directorio no debe superar los 6 MB y un máximo de 100 archivos.

  • content.sourceUrlse excluye mutuamente con content.file ycontent.zip: no se pueden combinar en la misma solicitud.

  • Una actualización exclusiva de metadatos (sin ellacontent) conserva la fuente de importación existente y no se recupera del repositorio.

Obtenga, enumere, actualice y elimine

GetAssetUtilízalo para recuperar un único activo por ID:

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

Úselo ListAssets para hojear todos los activos de un espacio de agente:

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>

UpdateAssetUtilícelo para cambiar uno o más metadata campos sin volver a cargar el contenido. Las claves que omitas conservan sus valores actuales:

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

Se usa ListAssetVersions para inspeccionar el historial de versiones de un activo. Cada UpdateAssetFile llamada UpdateAsset o llamada exitosa muestra el número de versión del activo:

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

DeleteAssetUtilícelo para eliminar el activo y todos sus archivos:

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

Añade un único archivo a una habilidad existente

Si ya has creado una habilidad a partir de un paquete zip y quieres añadir un nuevo archivo de referencia, no necesitas volver a subir todo el paquete. UsoCreateAssetFile:

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

Para reemplazar el archivo en su lugar, utilícelo update-asset-file con los mismos argumentos. Para eliminarlo, utilicedelete-asset-file.

Activación y desactivación de habilidades

Las habilidades tienen un estado de activación. metadata.status Las nuevas habilidades vienen ACTIVE por defecto y el agente las carga durante las investigaciones y el chat. Puedes desactivar una habilidad para quitarla de la rotación sin eliminarla, por ejemplo, mientras investigas por qué produce resultados inesperados y reactivarla más tarde.

Establece el estado inicial al crearla incluyendo metadata.status en la CreateAsset solicitud:

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

Desactiva una habilidad existente conUpdateAsset. Como metadata se aplica como una actualización parcial, el envío solo status deja intactos todos los demás campos:

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

Reactívala de la misma manera, con"status": "ACTIVE":

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

GetAssete incluye ListAssets siempre los activos status de habilidad actuales metadata para que puedas leer el estado de activación en tiempo real en cualquier momento.

El campo status distingue entre mayúsculas y minúsculas. Solo se ACTIVE aceptan y INACTIVE (en mayúsculas). Cualquier otro valor falla con un. ValidationException La activación solo se aplica a las habilidades; metadata.status la configuración de cualquier otro tipo de activo no tiene ningún efecto y el campo se elimina de la respuesta.

Gestionar los activos con AWS CloudFormation

Utilice la Asset API para realizar cambios interactivos o basados en scripts. Para administrar los activos de forma declarativa, modeléelos como AWS::DevOpsAgent::Asset recursos en. AWS CloudFormation Con este enfoque, puede controlar las versiones de sus activos junto con el resto de su infraestructura, implementarlos a través de una canalización y reproducirlos en Agent Spaces. CloudFormation crea cada activo como un elemento secundario de un espacio de agente principal, de modo que un activo que defina en una plantilla se asigne exactamente al mismo recurso que produce una CreateAsset llamada.

Gestiona todos los tipos de activos a través del mismo AWS::DevOpsAgent::Asset recurso. Los tipos admitidos son skill agents_mdattachment,custom_agent, memory_storememory,test_profile, yfeedback. Solo el contenido AssetTypeMetadata, y difiere de un tipo a otro. Los siguientes ejemplos crean una habilidad y un agente personalizado; los demás tipos siguen la misma forma y utilizan los metadatos descritos en Tipos de activos.

La AWS:DevOpsAgent: :Recurso de activos

Las propiedades del recurso se asignan directamente a los campos de CreateAsset solicitud descritos anteriormente en este tema:

CloudFormation propiedad Tipo Se asigna a Notas
AgentSpaceId Cadena agentSpaceId Obligatorio. Create-only—cambiarlo reemplaza el activo.
AssetType Cadena assetType Obligatorio. Create-only. El identificador del tipo de activo, por ejemplo o. skill custom_agent Cualquier tipo de tipo de activo es válido.
Metadata JSON metadata El mismo documento de metadatos que la API (para una habilidad: namedescription,agent_types, y opcionalmentestatus). Se actualizó en su lugar.
Files Enumeración content.file Archivos en línea, cada uno con Path y ContentText oContentBytes, además, opcional por Metadata archivo. Mutuamente excluyente con Zip.
Zip Cadena content.zip.zipFile Base64-encoded paquete zip. Mutuamente excluyente con Files.
AssetId Cadena asset.assetId Read-only. Recupera conFn::GetAtt.
Arn Cadena asset.arn Read-only. El ARN del activo, anidado en el espacio de agente principal.
Version Entero asset.version Read-only. Se bloquea en cada actualización exitosa.
CreatedAt / UpdatedAt Cadena asset.createdAt / updatedAt Read-only marcas de tiempo.

Vale la pena destacar dos comportamientos antes de escribir una plantilla:

  • AgentSpaceIdy AssetType son de creación exclusiva. Cambiar cualquiera de los dos reemplaza el activo. CloudFormation crea un nuevo activo con otro nuevo AssetId yArn, a continuación, elimina el antiguo. Los cambios en el contenido y los metadatos actualizan el activo existente en su lugar.

  • CloudFormation administra el activo en su conjunto: sus metadatos y su conjunto completo de archivos. Para cambiar una habilidad, edita la plantilla y actualiza la pila. Las operaciones que actúan sobre partes de un activo no forman parte del recurso y permanecen API-only. Esto incluye las ediciones por archivo (CreateAssetFile,UpdateAssetFile,DeleteAssetFile) y el historial de versiones (ListAssetVersions). También incluye la descarga de contenido (GetAssetContent) y la importación y sincronización de repositorios (el tipo de sourceUrl contenido). Para ello, utilice la AWS CLI o un SDK, tal y como se ha mostrado anteriormente en este tema.

Crea una habilidad

La siguiente plantilla crea la rds-performance-investigation habilidad de un solo archivo utilizada en el tutorial de la AWS CLI. Toma el ID principal del espacio de agente como parámetro y exporta el ID y el ARN del nuevo activo.

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

Impleméntelo con la AWS CLI, pasando su ID de Agent Space:

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

Una habilidad que incluye más de un archivo (por ejemplo, un documento SKILL.md más un documento de referencia) agrega más entradas a: 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.

Para crear la habilidad desactivada o desactivarla más adelante, configura Metadata (consulta Activación y desactivación status de habilidades) y actualiza la pila:

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

Crea un agente personalizado

Un agente personalizado es el mismo recurso con un contenido diferenteAssetType. Metadata El siguiente recurso crea un custom_agent activo que selecciona un conjunto de herramientas y habilidades. La skills lista hace referencia a las habilidades según sus name metadatos, por lo que puede hacer referencia a la habilidad que creó anteriormente.

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.

Los demás tipos de activos funcionan de la misma manera: establece AssetType y proporciona Metadata las claves que requiere el tipo (consulta Tipos de activos). Por ejemplo, un conjunto agents_md AssetType: agents_md de activos Metadata contiene agent_type: INCIDENT_TRIAGE y contiene un AGENTS.md archivo.

Programa el agente personalizado con un activador

Para ejecutar el agente personalizado automáticamente, añada un AWS::DevOpsAgent::Trigger recurso. Un disparador es un elemento secundario del Agent Space. Su acción hace referencia al agente personalizado para que se ejecute por ID de activo, en el formulariocustom:<assetId>. Utilízalo Fn::GetAtt para transferir la información del AssetId agente personalizado, conectar los dos recursos y ordenar su creación. CloudFormation

El siguiente activador ejecuta el agente rds-firefighter personalizado una vez al día:

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

Las Action propiedades AgentSpaceIdType,Condition, y son de solo creación. Si se cambia cualquiera de ellas, se reemplaza el disparador. La Status propiedad acepta Active o Inactive y puede actualizarse en su lugar. Configúrala Inactive para pausar el disparador sin eliminarlo. Para obtener más información sobre la sintaxis de las expresiones de programación, consulteEjecución de agentes personalizados.

AWS::DevOpsAgent::Assety AWS::DevOpsAgent::Trigger están disponibles en las AWS regiones en las que se ofrece el AWS DevOps agente. Para obtener más información sobre AWS las regiones compatibles, consulteRegiones admitidas. Para implementar el espacio de agente principal, las funciones de IAM y la aplicación de operador como infraestructura a modo de código, consulteIntroducción al AWS DevOps Agente que usa AWS CloudFormation.

Ejemplos de otros tipos de activos

El tutorial de habilidades anterior se aplica a todos los demás tipos de activos. La única diferencia es el metadata bloque y, en el caso de los archivos adjuntos, la elección del contenido binario. Las CreateAsset llamadas mínimas que aparecen a continuación ilustran cada tipo.

Los almacenes de memoria y las memorias utilizan la misma CreateAsset operación. Crea primero el almacén y, a continuación, la memoria. Para obtener más información sobre sus metadatos, consulte memory_store y memory. #memory

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

Cree un archivo adjunto (contenido binario; cree la solicitud a partir de un archivo JSON como se muestra en Crear una habilidad a partir de un archivo binario):

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

Crea un agente personalizado:

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

Crea un perfil de prueba:

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

Crea un recurso de comentarios:

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

Enumera los tipos de activos compatibles:

aws devops-agent list-asset-types