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
namedariSKILL.mdfrontmatter 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
descriptiondariSKILL.mdfrontmatter 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.
USERAPI Aset hanya mengizinkan keterampilan yang dibuat pelanggan, jadi satu-satunya nilai yang diterima adalah.USERLayanan menolak permintaan yang disetskill_typeel keLEARNED, yang disediakan untuk keterampilan yang dihasilkan oleh agen itu sendiri.status (string) — Status aktivasi skill. Nilai yang diterima adalah
ACTIVEdanINACTIVE(hanya huruf besar). Default keACTIVE. Keterampilan tidak aktif tetap ada di Ruang Agen tetapi tidak dimuat oleh agen selama investigasi atau obrolan. GunakanUpdateAssetdenganmetadata.statusuntuk menonaktifkan atau mengaktifkan kembali keterampilan tanpa menghapusnya. Keterampilan adalah satu-satunya jenis aset yang mendukung aktivasi;statusbidang 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-failoverdeskripsi (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
releaseUiTestingdanreleaseApiTesting.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
guestdanauthenticated.api_spec (string) — Spesifikasi API untuk uji coba. Relevan untuk
releaseApiTesting.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 ini
CreateAsset; 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.textmembawa 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.bytesmembawa hingga 6 MB konten biner yang dikodekan base64. Gunakan ini untuk lampiran seperti gambar atau PDF. Karena gumpalan bersarang di dalamcontentunion, 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.zipFilemembawa arsip zip berkode base64 hingga 6 MB. Gunakan ini untuk keterampilan yang menyertakan file tambahanSKILL.mdplus dalamassets/direktorireferences/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 dengancontent.filedancontent.zip—Anda tidak dapat menggabungkannya dalam permintaan yang sama.Pembaruan khusus metadata (tanpa
content) 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:
AgentSpaceIddanAssetTypehanya dibuat. Mengubah salah satu menggantikan aset. CloudFormation membuat aset baru dengan yang baruAssetIddanArn, 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 (jenissourceUrlkonten). 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