View a markdown version of this page

Mengelola aset - AWS DevOps Agen

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengelola aset

AWS DevOps Agen menyimpan konfigurasi dan bahan referensi untuk Ruang Agen sebagai aset, sumber daya yang dikelola pelanggan yang membentuk apa yang diketahui agen dan bagaimana perilakunya. Keterampilan, AGENTS.md file, dan lampiran adalah semua aset, dan Anda dapat membuat, membaca, memperbarui, dan menghapusnya secara terprogram melalui API Aset.

Untuk mengonfigurasi apa yang diketahui AWS DevOps Agen dan bagaimana perilakunya, kelola aset di Ruang Agen Anda. Topik ini mencakup model aset, izin IAM, dan metadata yang diharapkan setiap jenis aset. Gunakan AWS CLI, AWS SDK untuk Python (Boto3), atau AWS CloudFormation untuk mengelola aset end-to-end. Untuk ikhtisar konseptual keterampilan itu sendiri, lihatDevOps Keterampilan Agen. Untuk pengetahuan yang dihasilkan agen yang tidak Anda ciptakan sendiri, lihat. Keterampilan yang Dipelajari

Kapan menggunakan API Aset

Aplikasi Web Operator adalah cara tercepat untuk membuat satu keterampilan atau mengunggah AGENTS.md file secara interaktif. API Aset mengekspos operasi yang sama secara terprogram sehingga skrip dan otomatisasi dapat mengelola aset tanpa melalui Aplikasi Web. Alasan umum untuk memanggil API Aset secara langsung meliputi:

  • Menulis atau memperbarui aset dari skrip, terminal, atau buku catatan alih-alih Aplikasi Web.

  • Bulk-loading seperangkat keterampilan atau AGENTS.md file pemula ke Ruang Agen baru.

  • Membaca konten aset untuk mencadangkannya atau membandingkan versi.

Setiap operasi di API Aset diekspos melalui AWS CLI sebagai aws devops-agent <operation> dan melalui AWS SDK sebagai klien. devops-agent

Operasi API aset

API Aset mengekspos operasi berikut. Setiap baris mencantumkan tindakan IAM yang harus Anda berikan untuk memanggil operasi dan sumber daya yang diterapkan tindakan tersebut. Setiap tindakan berada di aidevops: namespace dan, kecualiListAssetTypes, berlaku untuk sumber daya Agen Space dari formulirarn:aws:aidevops:<region>:<account-id>:agentspace/<agentSpaceId>. Untuk latar belakang yang lebih luas tentang aidevops: izin, lihatDevOps Izin IAM agen.

Operasi Deskripsi Tindakan IAM Sumber daya
ListAssetTypes Buat daftar jenis aset yang didukung oleh AWS DevOps Agen. aidevops:ListAssetTypes *
CreateAsset Buat aset baru di Ruang Agen (keterampilan, lampiran AGENTS.md, agen kustom, penyimpanan memori, memori, profil pengujian, atau umpan balik). aidevops:CreateAsset Ruang Agen
GetAsset Mengambil metadata aset dan informasi versi. aidevops:GetAsset Ruang Agen
UpdateAsset Memperbarui metadata atau konten aset yang ada. aidevops:UpdateAsset Ruang Agen
DeleteAsset Hapus aset dan semua file-nya dari Ruang Agen. aidevops:DeleteAsset Ruang Agen
ListAssets Daftar aset di Ruang Agen, dengan pemfilteran opsional berdasarkan jenis aset. aidevops:ListAssets Ruang Agen
ListAssetVersions Buat daftar versi historis aset. aidevops:ListAssetVersions Ruang Agen
GetAssetContent Unduh konten lengkap aset sebagai bundel zip. aidevops:GetAssetContent Ruang Agen
CreateAssetFile Tambahkan file baru ke aset yang ada. aidevops:CreateAssetFile Ruang Agen
GetAssetFile Ambil satu file dari aset dengan jalurnya. aidevops:GetAssetFile Ruang Agen
UpdateAssetFile Ganti konten atau metadata dari file yang ada dalam aset. aidevops:UpdateAssetFile Ruang Agen
DeleteAssetFile Hapus satu file dari aset. aidevops:DeleteAssetFile Ruang Agen
ListAssetFiles Daftar file dalam aset. aidevops:ListAssetFiles Ruang Agen

Contoh kebijakan IAM

Kebijakan berikut memberikan akses manajemen penuh ke aset dalam satu Ruang Agen:

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

Kebijakan berikut memberikan akses baca-saja ke aset dalam satu Ruang Agen:

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

Jenis aset

Setiap aset memiliki assetType string yang mengidentifikasi jenis sumber daya apa itu. Anda dapat membuat delapan jenis aset melalui API Aset:skill,agents_md,attachment,custom_agent,memory_store,memory,test_profile, danfeedback. Bagian berikut menjelaskan setiap jenis. Anda juga dapat memanggil ListAssetTypes untuk mengambil pengidentifikasi tipe saat runtime.

Setiap aset membawa objek metadata JSON bentuk bebas yang menggambarkan sumber daya. Tombol di dalamnya metadata menggunakan snake_case (misalnya,agent_types,skill_type). Kunci di luarmetadata, di tingkat atas badan permintaan, menggunakan camelCase (misalnya,, agentSpaceIdassetType,clientToken). Kunci yang diperlukan dan opsional metadata tergantung pada jenis aset, seperti yang dijelaskan di bagian berikut.

Saat Anda memang UpdateAsset gil atauUpdateAssetFile, layanan menerapkan semantik PATCH kemetadata: kunci yang Anda sertakan diganti, dan kunci yang Anda hilangkan mempertahankan nilai yang disimpan. Anda tidak dapat mengubah aset assetType setelah dibuat.

keterampilan

A skill set mengemas instruksi dan materi referensi yang dimuat agen bila relevan. Keterampilan sederhana adalah satu SKILL.md file; keterampilan kompleks adalah bundel zip yang berisi SKILL.md file ditambah opsional references/ atau assets/ direktori.

Properti metadata yang dibutuhkan:

  • name (string) — Pengidentifikasi unik untuk keterampilan. Huruf kecil, angka, dan tanda hubung saja, 1-64 karakter. Tidak boleh dimulai atau diakhiri dengan tanda hubung. Diperlukan untuk keterampilan sederhana saja. Untuk unggahan zip, layanan membaca name dari SKILL.md frontmatter dan nilai apa pun yang diberikan di sini diabaikan.

  • deskripsi (string) — Penjelasan karakter 1-1024 tentang kapan agen harus menggunakan keterampilan. Diperlukan untuk keterampilan sederhana saja. Untuk unggahan zip, layanan membaca description dari SKILL.md frontmatter dan nilai apa pun yang diberikan di sini diabaikan.

  • agent_types (array of string) — Satu atau lebih jenis agen yang berlaku untuk skill ini. Gunakan ["GENERIC"] untuk membuat keterampilan tersedia untuk semua jenis agen. Nilai lain termasukCHAT,INCIDENT_TRIAGE,INCIDENT_RCA,INCIDENT_MITIGATION,PREVENTION,RELEASE_READINESS_REVIEW, danRELEASE_TESTING. GENERICNilai tidak dapat digabungkan dengan nilai lain.

Pro metadata perti opsional:

  • skill_type (string) — Defaultnya. USER API Aset hanya mengizinkan keterampilan yang dibuat pelanggan, jadi satu-satunya nilai yang diterima adalah. USER Layanan menolak permintaan yang diset skill_type el keLEARNED, yang disediakan untuk keterampilan yang dihasilkan oleh agen itu sendiri.

  • status (string) — Status aktivasi skill. Nilai yang diterima adalah ACTIVE dan INACTIVE (hanya huruf besar). Default ke ACTIVE. Keterampilan tidak aktif tetap ada di Ruang Agen tetapi tidak dimuat oleh agen selama investigasi atau obrolan. Gunakan UpdateAsset dengan metadata.status untuk menonaktifkan atau mengaktifkan kembali keterampilan tanpa menghapusnya. Keterampilan adalah satu-satunya jenis aset yang mendukung aktivasi; status bidang ini diabaikan pada setiap jenis aset lainnya. Lihat Mengaktifkan dan menonaktifkan keterampilan untuk contoh yang berhasil.

  • enable_tools (array of string) — Daftar pengenal alat yang dapat dipanggil agen saat memuat skill ini.

Contohmetadata:

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

Batasan: Upload zip tidak boleh melebihi 6 MB. Ruang Agen dapat berisi hingga 200 keterampilan yang dibuat pengguna.

agen_md

A agents_md set adalah file penurunan harga yang berisi instruksi agen tetap untuk jenis agen tertentu. Agen memuat pencocokan AGENTS.md di awal setiap tugas. Untuk informasi selengkapnya tentang instruksi agen, lihatInstruksi agen.

Properti metadata yang dibutuhkan:

  • agent_type (string) — Jenis agen yang diterapkan AGENTS.md file. Nilai yang valid adalah GENERICCHAT,INCIDENT_TRIAGE,INCIDENT_RCA,INCIDENT_MITIGATION,PREVENTION,RELEASE_READINESS_REVIEW, danRELEASE_TESTING.

Contohmetadata:

{ "agent_type": "INCIDENT_TRIAGE" }

Batas: Setiap Ruang Agen dapat berisi paling banyak satu AGENTS.md peragent_type. Konten file harus markdown (text/markdown) dan tidak boleh melebihi 25 KB.

lampiran

A attachment set menyimpan file biner atau teks yang dapat dirujuk agen selama penyelidikan, misalnya, diagram arsitektur, PDF runbook, atau file log sampel.

Properti metadata yang dibutuhkan:

  • filename (string) — Nama file asli, termasuk nama dasar dan ekstensi apa pun (misalnya,topology.png).

  • ekstensi (string) — Ekstensi file tanpa titik terdepan (misalnya,png,pdf,csv).

  • size (number) — Ukuran file dalam byte.

Contohmetadata:

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

Batasan: Ukuran total semua lampiran di Ruang Agen tidak boleh melebihi 10 GB.

agen kustom

A custom_agent set mendefinisikan konfigurasi agen khusus dengan seperangkat alat dan keterampilan yang dikuratori. Gunakan agen khusus untuk menjangkau agen ke alur kerja atau kumpulan kemampuan tertentu.

Properti metadata yang dibutuhkan:

  • name (string) — Pengidentifikasi unik untuk agen kustom. Huruf kecil, angka, dan tanda hubung saja, 1-64 karakter. Tidak boleh dimulai atau diakhiri dengan tanda hubung.

Pro metadata perti opsional:

  • tools (array of string) — Pengidentifikasi alat yang diizinkan untuk digunakan agen kustom. Defaultnya adalah daftar kosong saat dihilangkan.

  • skill (array of string) — Pengidentifikasi keterampilan yang dimuat agen kustom. Defaultnya adalah daftar kosong saat dihilangkan.

Contohmetadata:

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

memory_store

A memory_store set adalah wadah yang mengelompokkan file memori terkait. Agen membaca nama dan deskripsi toko untuk memutuskan apakah akan membukanya dan membuat daftar kenangan di dalamnya. Memori dan penyimpanan memori mendukung memori agen. Untuk informasi lebih lanjut tentang kenangan, lihatDevOps Kenangan Agen.

Buat kenangan dalam dua langkah. Pertama, buatmemory_store. Kemudian, buat masing-masing memory di dalamnya, seperti yang dijelaskan dalam memori.

Properti metadata yang dibutuhkan:

  • name (string) — Pengidentifikasi unik untuk penyimpanan memori. Huruf kecil, angka, dan tanda hubung saja, 1-128 karakter. Tidak boleh dimulai atau diakhiri dengan tanda hubung.

  • deskripsi (string) — Deskripsi karakter 1-1024 tentang apa yang dimiliki toko. Agen menggunakannya untuk memutuskan apakah akan membuka toko.

Pro metadata perti opsional:

  • agent_types (array string) — Jenis agen utama yang dapat melihat toko. Gunakan ["GENERIC"] untuk membuat toko terlihat oleh semua jenis agen.

Contohmetadata:

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

memori

A memory set adalah file memori individu yang termasuk dalam penyimpanan memori. Agen membaca nama memori dan deskripsi untuk memutuskan apakah akan membaca file lengkap. Buat indu memory_store k terlebih dahulu, lalu atur memory_store_id pada memori ke ID aset toko.

Properti metadata yang dibutuhkan:

  • name (string) — Pengidentifikasi untuk memori, ditulis sebagai jalur yang / dipisahkan dari segmen huruf kecil kebab, 1-255 karakter (misalnya,). databases/rds-failover

  • deskripsi (string) — Deskripsi karakter 1-1024 tentang apa yang terkandung dalam memori.

  • memory_store_id (string) — ID aset penyimpanan memori milik memori ini.

Pro metadata perti opsional:

  • expires_at (number) — Batas waktu retensi, dalam detik zaman. Saat diatur, layanan akan menghapus memori secara otomatis setelah tenggat waktu berlalu (biasanya dalam waktu 48 jam). Hilangkan properti ini untuk menyimpan memori sampai Anda menghapusnya.

Contohmetadata:

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

test_profile

A test_profile set menyimpan konfigurasi yang dapat digunakan kembali untuk menjalankan pengujian rilis, termasuk jenis pengujian yang akan dilakukan dan titik akhir target.

Properti metadata yang dibutuhkan:

  • test_agent_type (string) — Jenis pengujian yang dilakukan profil ini. Nilai yang valid adalah releaseUiTesting dan releaseApiTesting.

  • target_url (string) — URL yang ditargetkan uji coba.

Pro metadata perti opsional:

  • name (string) — Pengidentifikasi yang dapat dibaca manusia untuk profil pengujian. Huruf kecil, angka, dan tanda hubung saja, 1-128 karakter. Tidak boleh dimulai atau diakhiri dengan tanda hubung.

  • deskripsi (string) — Deskripsi karakter 1-1024 tentang apa yang dicakup oleh profil pengujian.

  • test_personas (array string) — Persona yang akan dilatih selama uji coba. Nilai yang valid adalah guest dan authenticated.

  • api_spec (string) — Spesifikasi API untuk uji coba. Relevan untukreleaseApiTesting.

  • credentialssecret_arn (string) — ARN dari AWS rahasia Manajer Rahasia yang menyimpan kredenSIAL untuk uji coba.

Contohmetadata:

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

Umpan Balik

Aset feedback mencatat umpan balik yang diberikan pelanggan pada eksekusi agen tunggal. Gunakan aset umpan balik untuk menangkap putusan dan catatan yang dapat digabungkan oleh jalur evaluasi hilir.

Properti metadata yang dibutuhkan:

  • agent_types (array dari string) — Jenis agen yang menghasilkan eksekusi. Harus berisi setidaknya satu nilai (misalnya,INCIDENT_TRIAGE).

Pro metadata perti opsional:

  • execution_id (string) — Eksekusi yang dikaitkan dengan umpan balik ini. Aktifkan iniCreateAsset; itu tidak dapat diubah olehUpdateAsset.

Contohmetadata:

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

Konten aset: file atau zip

Setiap CreateAsset permintaan menyertakan content objek yang menyimpan byte yang disimpan aset. Bentuknya content tergantung pada apakah Anda mengunggah satu file atau bundel zip:

  • File teks tunggal content.file.body.text membawa hingga 1,5 MB UTF-8 teks. Gunakan ini untuk keterampilan dan AGENTS.md file sederhana.

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

  • File biner tunggal content.file.body.bytes membawa hingga 6 MB konten biner yang dikodekan base64. Gunakan ini untuk lampiran seperti gambar atau PDF. Karena gumpalan bersarang di dalam content union, base64-kodekan file sebelumnya dan kirimkan permintaan dengan --cli-input-json (lihat Membuat keterampilan dari file biner untuk contoh yang berhasil).

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

  • Bundel zip - content.zip.zipFile membawa arsip zip berkode base64 hingga 6 MB. Gunakan ini untuk keterampilan yang menyertakan file tambahan SKILL.md plus dalam assets/ direktori references/ atau.

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

Untuk menambah, mengganti, atau menghapus file individual di dalam aset yang ada tanpa mengunggah ulang seluruh bundel, gunakan CreateAssetFileUpdateAssetFile, danDeleteAssetFile.

Mengelola keterampilan ujung ke ujung

Panduan berikut menciptakan keterampilan tiga cara berbeda (dari satu file teks, dari file biner, dan dari bundel zip), dan kemudian melatih operasi baca, perbarui, dan hapus. Ganti 8f6187a7-0388-4926-8217-3a0fe32f757c dengan ID Ruang Agen Anda.

Buat keterampilan dari satu file teks

Ini adalah jalur paling sederhana: satu SKILL.md file yang diunggah sebaris. Karena unggahan berisi persis satu file teks, Anda harus memasok name dan description masukmetadata.

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 (Voto3):

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

Buat keterampilan dari file biner

Gunakan unggahan biner saat konten keterampilan bukan UTF-8 teks. Contoh di bawah ini mengunggah PDF yang telah dirender sebelumnya sebagai badan keterampilan. Karena badan permintaan berisi blob yang dikodekan base64 yang bersarang di dalam content union, berikan permintaan dari file JSON dengan --cli-input-json dan base64-kodekan blob sebelumnya.

-w 0Bendera di bawah ini memberitahu GNU base64 untuk memancarkan gumpalan yang dikodekan pada satu baris; tanpanya pembungkus baris 76-karakter default menyisipkan baris baru yang menghasilkan JSON yang tidak valid ketika gumpalan diinterpolasi ke dalam hereditoc. Di macOS, gunakan base64 -i ops-runbook.pdf (BSD base64 tidak membungkus secara default).

Bangun badan permintaan:

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 (Voto3):

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

Buat keterampilan dari bundel zip

Gunakan unggahan zip ketika keterampilan menyertakan lebih dari satu file, misalnya, SKILL.md materi referensi plus dan aset. Untuk unggahan zip, layanan membaca name dan description dari SKILL.md frontmatter, jadi jangan memasukkannya ke dalamnya. metadata

Tata letak zip terlihat seperti:

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

SKILL.mdharus menyertakan frontmatter sehingga layanan dapat mengekstrak nama dan deskripsi:

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

Bangun badan permintaan:

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 (Voto3):

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

Mengimpor keterampilan dari repositori

Anda dapat membuat keterampilan dengan mengimpornya langsung dari direktori GitHub repositori. AWS DevOps Agen mengambil konten keterampilan, mengekstrak nama dan deskripsi dari SKILL.md materi depan, dan menciptakan keterampilan di Ruang Agen Anda. Ini memungkinkan Anda mengelola keterampilan dalam kontrol versi dan mengimpor atau menyinkronkannya secara terprogram.

Prasyarat:

  • Ruang Agen Anda harus memiliki GitHub akun yang terkait. Lihat Menghubungkan GitHub.

  • Direktori repositori harus berisi SKILL.md file yang valid dengan 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 (Voto3):

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

Layanan mengambil konten direktori, membaca bagian SKILL.md depan untuk name dandescription, dan mengimpor semua file. Jangan menyertakan name atau description masuk metadata —mereka diekstraksi dari materi depan secara otomatis.

Menyinkronkan keterampilan yang diimpor:

Untuk menarik perubahan terbaru dari repositori, hubungi UpdateAsset dengancontent.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" } }, )

Sinkronisasi menggantikan konten keterampilan sepenuhnya dengan status direktori repositori saat ini. Bidang yang dapat diedit (status, jenis agen) dipertahankan.

Melihat sumber impor:

GetAssetmengembalikan informasi sumber metadata.source untuk keterampilan yang diimpor repositori:

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

Kendala:

  • Hanya GitHub URL yang diterima. Anda dapat menunjuk ke direktori yang berisi SKILL.md (misalnya,https://github.com/org/repo/tree/main/skills/my-skill), yang mengimpor seluruh direktori termasuk file referensi. Jika SKILL.md ada di root repositori, Anda juga dapat menautkan langsung ke file (misalnya,https://github.com/org/repo/blob/main/SKILL.md), yang hanya mengimpor file SKILL.md.

  • Direktori harus berisi front SKILL.md matter yang valid.

  • Total ukuran direktori tidak boleh melebihi 6 MB dan paling banyak 100 file.

  • content.sourceUrlsaling eksklusif dengan content.file dan content.zip —Anda tidak dapat menggabungkannya dalam permintaan yang sama.

  • Pembaruan khusus metadata (tanpacontent) mempertahankan sumber impor yang ada dan tidak mengambil ulang dari repositori.

Dapatkan, daftar, perbarui, dan hapus

Gunakan GetAsset untuk mengambil satu aset berdasarkan ID:

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

Gunakan ListAssets untuk menelusuri setiap aset di Ruang Agen:

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>

Gunakan UpdateAsset untuk mengubah satu atau lebih metadata bidang tanpa mengunggah ulang konten. Kunci yang Anda hilangkan menjaga nilai yang ada:

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

Gunakan ListAssetVersions untuk memeriksa riwayat versi aset. Setiap UpdateAssetFile panggilan UpdateAsset atau panggilan berhasil memajukan nomor versi aset:

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

Gunakan DeleteAsset untuk menghapus aset dan semua file-nya:

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

Tambahkan satu file ke keterampilan yang ada

Jika Anda sudah membuat keterampilan dari bundel zip dan ingin menambahkan satu file referensi baru, Anda tidak perlu mengunggah ulang seluruh bundel. GunakanCreateAssetFile:

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

Untuk mengganti file di tempat, gunakan update-asset-file dengan argumen yang sama. Untuk menghapusnya, gunakandelete-asset-file.

Mengaktifkan dan menonaktifkan keterampilan

Keterampilan membawa status aktivasimetadata.status. Keterampilan baru ACTIVE secara default dan dimuat oleh agen selama investigasi dan obrolan. Anda dapat menonaktifkan keterampilan untuk mengeluarkannya dari rotasi tanpa menghapusnya, misalnya saat Anda menyelidiki mengapa itu menghasilkan hasil yang tidak terduga, dan mengaktifkannya kembali nanti.

Atur status awal saat membuat dengan memasukkan metadata.status dalam CreateAsset permintaan:

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

Nonaktifkan keterampilan yang ada denganUpdateAsset. Karena metadata diterapkan sebagai pembaruan parSIAL, pengiriman hanya membuat setiap status bidang lainnya tetap utuh:

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

Aktifkan kembali dengan cara yang sama, dengan: "status": "ACTIVE"

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

GetAssetdan ListAssets selalu sertakan status terkini metadata untuk aset keterampilan, sehingga Anda dapat membaca status aktivasi langsung kapan saja.

statusBidang ini peka huruf besar/kecil. Hanya ACTIVE dan INACTIVE (huruf besar) yang diterima. Nilai lain gagal dengan aValidationException. Aktivasi hanya berlaku untuk keterampilan; pengaturan metadata.status pada jenis aset lainnya tidak berpengaruh dan bidang dihapus dari respons.

Mengelola aset dengan AWS CloudFormation

Gunakan API Aset untuk perubahan interaktif atau berbasis skrip. Untuk mengelola aset secara deklaratif, modelkan aset sebagai AWS::DevOpsAgent::Asset sumber daya di AWS CloudFormation. Dengan pendekatan ini, Anda dapat mengontrol versi aset Anda bersama infrastruktur Anda yang lain, menyebarkannya melalui pipeline, dan mereproduksinya di seluruh Agen Spaces. CloudFormation membuat setiap aset sebagai anak dari Ruang Agen induk, sehingga aset yang Anda tentukan dalam template dipetakan ke sumber daya yang persis sama dengan yang CreateAsset dihasilkan panggilan.

Anda mengelola setiap jenis aset melalui AWS::DevOpsAgent::Asset sumber daya yang sama. Jenis yang didukung adalahskill, agents_mdattachment,custom_agent,memory_store,memory,test_profile, danfeedback. HanyaAssetType,Metadata, dan konten yang berbeda dari satu jenis ke jenis berikutnya. Contoh berikut membuat keterampilan dan agen khusus; jenis lainnya mengikuti bentuk yang sama, menggunakan metadata yang dijelaskan dalam Jenis aset.

Bagian AWS::DevOpsAgent: :Sumber daya aset

Properti sumber daya dipetakan langsung ke bidang CreateAsset permintaan yang dijelaskan sebelumnya dalam topik ini:

CloudFormation properti Tipe Peta ke Catatan
AgentSpaceId String agentSpaceId Diperlukan. Create-onlyMengubahnya menggantikan aset.
AssetType String assetType Diperlukan. Create-only. Pengidentifikasi jenis aset—misalnya atau. skill custom_agent Setiap jenis dalam jenis A set valid.
Metadata JSON metadata Dokumen metadata yang sama dengan API (untuk keterampilan:name,, descriptionagent_types, dan opsionalstatus). Diperbarui di tempat.
Files Daftar content.file File sebaris, masing-masing dengan Path dan salah satu ContentText atauContentBytes, ditambah opsional per fileMetadata. Saling eksklusif denganZip.
Zip String content.zip.zipFile Base64-encoded bundel zip. Saling eksklusif denganFiles.
AssetId String asset.assetId Read-only. Ambil denganFn::GetAtt.
Arn String asset.arn Read-only. Aset ARN, bersarang di bawah Ruang Agen induk.
Version Bilangan Bulat asset.version Read-only. Benjolan pada setiap pembaruan yang berhasil.
CreatedAt / UpdatedAt String asset.createdAt / updatedAt Read-only stempel waktu.

Dua perilaku layak dipanggil sebelum Anda menulis template:

  • AgentSpaceIddan AssetType hanya dibuat. Mengubah salah satu menggantikan aset. CloudFormation membuat aset baru dengan yang baru AssetId danArn, kemudian menghapus yang lama. Perubahan konten dan metadata memperbarui aset yang ada di tempat.

  • CloudFormation mengelola aset secara keseluruhan —metadata dan set file lengkapnya. Untuk mengubah keterampilan, edit template dan perbarui tumpukan. Operasi yang bertindak pada bagian-bagian dari aset bukanlah bagian dari sumber daya dan tetap ada API-only. Ini termasuk pengeditan per file (CreateAssetFile,UpdateAssetFile,DeleteAssetFile) dan riwayat versi (ListAssetVersions). Ini juga termasuk download konten (GetAssetContent) dan impor repositori dan sinkronisasi (jenis sourceUrl konten). Untuk itu, gunakan AWS CLI atau SDK seperti yang ditunjukkan sebelumnya dalam topik ini.

Buat keterampilan

Template berikut menciptakan rds-performance-investigation keterampilan file tunggal yang digunakan dalam panduan AWS CLI. Ini mengambil ID Ruang Agen induk sebagai parameter dan mengekspor ID aset baru dan ARN.

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

Terapkan dengan AWS CLI, meneruskan ID Ruang Agen Anda:

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

Keterampilan yang mengirimkan lebih dari satu file—misalnya SKILL.md plus dokumen rujukan—menambahkan lebih banyak entri ke: 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.

Untuk membuat skill dinonaktifkan, atau menonaktifkannya nanti, atur Metadata (lihat status Mengaktifkan dan menonaktifkan keterampilan) dan perbarui tumpukan:

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

Buat agen kustom

Agen kustom adalah sumber daya yang sama dengan kontenAssetType,Metadata, dan yang berbeda. Sumber daya berikut menciptakan custom_agent aset yang menyusun seperangkat alat dan keterampilan. skillsDaftar mereferensikan keterampilan berdasarkan name metadatanya, sehingga Anda dapat mereferensikan keterampilan yang Anda buat sebelumnya.

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.

Jenis aset lainnya bekerja dengan cara yang sama—mengatur AssetType dan menyediakan Metadata kunci yang dibutuhkan jenis (lihat Jenis #asset-types aset). Misalnya, agents_md set aset AssetType: agents_md dengan Metadata berisi agent_type: INCIDENT_TRIAGE dan AGENTS.md file.

Jadwalkan agen khusus dengan pemicu

Untuk menjalankan agen kustom secara otomatis, tambahkan AWS::DevOpsAgent::Trigger sumber daya. Pemicu adalah anak dari Agen Space. Tindakannya mereferensikan agen kustom untuk dijalankan oleh ID aset, dalam formulircustom:<assetId>. Gunakan Fn::GetAtt untuk meneruskan agen kustom AssetId sehingga menghubungkan CloudFormation kedua sumber daya bersama-sama dan memerintahkan pembuatannya.

Pemicu berikut menjalankan agen rds-firefighter kustom sekali sehari:

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

Pro AgentSpaceId pertiType,Condition,, dan Action hanya dibuat. Mengubah salah satu dari mereka menggantikan pemicu. Pro Status perti menerima Active atau Inactive dan dapat diperbarui di tempat. Atur Inactive untuk menjeda pemicu tanpa menghapusnya. Untuk informasi selengkapnya tentang sintaks ekspresi jadwal, lihatMenjalankan agen kustom.

AWS::DevOpsAgent::Assetdan AWS::DevOpsAgent::Trigger tersedia di Wil AWS ayah tempat AWS DevOps Agen ditawarkan. Untuk informasi selengkapnya tentang Wil AWS ayah yang didukung, lihatWilayah yang Didukung. Untuk menerapkan Ruang Agen induk, peran IAM, dan aplikasi operator sebagai infrastruktur sebagai kode, lihatMemulai dengan AWS DevOps Agen menggunakan AWS CloudFormation.

Contoh untuk jenis aset lainnya

Panduan keterampilan di atas berlaku untuk setiap jenis aset lainnya. Satu-satunya perbedaan adalah metadata blok dan, untuk lampiran, pilihan konten biner. Pang CreateAsset gilan minimal di bawah ini menggambarkan setiap jenis.

Penyimpanan memori dan memori menggunakan CreateAsset operasi yang sama. Buat toko terlebih dahulu, lalu memori. Untuk informasi selengkapnya tentang metadata mereka, lihat memory_store dan memori.

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

Buat lampiran (konten biner; buat permintaan dari file JSON seperti yang ditunjukkan dalam Buat keterampilan dari file biner):

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

Buat agen kustom:

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

Buat profil pengujian:

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

Buat aset umpan balik:

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

Daftar jenis aset yang didukung:

aws devops-agent list-asset-types