View a markdown version of this page

Memulai Agen Terkelola Amazon Bedrock (dengan OpenAI) saat Runtime AgentCore - Batuan Dasar Amazon AgentCore

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

Memulai Agen Terkelola Amazon Bedrock (dengan OpenAI) saat Runtime AgentCore

catatan

Agen Terkelola Amazon Bedrock (dengan OpenAI) sedang dalam pratinjau. Fitur dan API dapat berubah sebelum ketersediaan umum.

Agen Terkelola Amazon Bedrock menjalankan harness OpenAI Codex. AWS Harness menjalankan loop antara model dan alat, menjaga sesi, dan memadatkan konteks saat percakapan tumbuh. Ketika agen harus menjalankan perintah atau bekerja dengan file, Agen Terkelola Bedrock mengirimkan pekerjaan ke lingkungan. Anda memutuskan di mana lingkungan itu berjalan.

Anda dapat menjalankan Codex exec-server di komputer Anda sendiri untuk pengembangan lokal. Untuk beban kerja lainnya, Agen Terkelola Bedrock memanggil AgentCore Runtime di akun Anda. Runtime memberikan setiap sesi microVM-nya sendiri. Sesi berjalan di bawah peran eksekusi yang Anda kontrol, dan Runtime dapat terhubung ke VPC Anda sehingga agen dapat menjangkau sumber daya pribadi. Panggilan model tetap berada di Bedrock Managed Agents, sehingga container hanya menjalankan perintah yang dikirim agen.

Dalam tutorial ini, Anda melakukan tugas-tugas ini:

  • Buat dan terapkan Runtime dengan CLI AgentCore .

  • Mulai sesi dengan OpenAI SDK. Agen menggunakan keterampilan sampel di Runtime Anda.

  • (Opsional) Tambahkan keterampilan Anda sendiri.

Langkah 1 hingga 4 memakan waktu sekitar 15 menit.

Sumber AWS daya yang Anda buat dalam tutorial ini dapat mengakibatkan biaya ke AWS akun Anda. Sumber daya ini mencakup Runtime, build AWS CodeBuild image, dan panggilan model Bedrock Managed Agents. Untuk informasi selengkapnya, lihat harga AgentCore . Untuk menghentikan tagihan, hapus sumber daya diLangkah 8: Membersihkan.

Prasyarat

  • Node.js 20 atau setelahnya. AgentCore CLI didistribusikan sebagai paket npm. Periksa dengannode --version.

  • uv. Klien sampel menggunakan uv untuk menginstal dependensi Python-nya.

  • AWS Akun dengan kredensi yang dikonfigurasi. Untuk membuat akun, lihat Memulai AWS akun. Untuk mengonfigurasi kredensil, lihat Mengkonfigurasi CLI. AWS

  • Izin IAM. Identitas Anda memerlukan izin untuk melakukan panggilan AgentCore API dan mengasumsikan peran bootstrap CDK yang digunakan selama penerapan. Lihat Gunakan AgentCore CLI. Klien sampel juga membutuhkan izin IAM. Lihat Peran sesi.

  • Akses model. Akun Anda memerlukan akses ke model openai.gpt-5.6-luna Agen Terkelola Batuan Dasar.

CLI membangun gambar kontainer dengan AWS CodeBuild di akun Anda.

Langkah 1: Buat proyek

Instal AgentCore CLI, dan atur kredensional dan Wilayah Anda:

npm install -g @aws/agentcore agentcore --version export AWS_PROFILE=your-profile export AWS_REGION=us-east-1

Buat proyek dengan BedrockManagedAgents kerangka kerja. Anda juga dapat menjalankan agentcore create tanpa bendera. Pilih Agen, lalu pilih Agen Terkelola Batuan Dasar sebagai kerangka kerja.

agentcore create --name MyManagedAgent --framework BedrockManagedAgents cd MyManagedAgent

Proyek ini memiliki konfigurasi Runtime agentcore/agentcore.json dan sumber kontainer diapp/MyManagedAgent/. Kontainer berjalancodex exec-server, yang terhubung ke Agen Terkelola Batuan Dasar dan menjalankan perintah agen.

Proyek mengonfigurasi Runtime dengan default ini:

MyManagedAgent/ ├── agentcore/ │ ├── agentcore.json │ └── cdk/ └── app/MyManagedAgent/ ├── Dockerfile ├── lifecycle/server.py ├── otel/collector.yaml ├── plugins/acr-report/ ├── policies/ │ ├── bma-acr-policy.json │ ├── bma-session-trust.json │ └── bma-session-policy.json ├── pyproject.toml ├── client.py └── README.md

File kunci:

  • lifecycle/server.py- Server siklus hidup. Agen Terkelola Bedrock memanggilnya untuk memulai sesi codex exec-server Runtime Anda. Jangan ubah file ini.

  • Dockerfile- Menginstal Codex, CloudWatch agen, dan Python, dan salinanlifecycle/,, dan ke. otel/ plugins/ /opt/bma

  • otel/collector.yaml- Mengirim bentang dan log dari exec-server ke. CloudWatch

  • plugins/acr-report/- Contoh plugin dengan satu keterampilan. Keterampilan menghemat acr-report.txt di ruang kerja.

  • policies/bma-acr-policy.json- Kebijakan peran eksekusi Runtime. Memungkinkan bedrock-mantle:RegisterEnvironment danbedrock-mantle:ConnectEnvironment. Untuk membatasinya pada satu proyek, ubah Resource kearn:aws:bedrock-mantle:<region>:<account-id>:project/<project-id>.

  • pyproject.toml- Dependensi Python. devGrup ini client.py hanya untuk.

  • policies/bma-session-trust.jsondan policies/bma-session-policy.json - Kebijakan kepercayaan dan izin peran sesi. Lihat Peran sesi.

  • client.py- Contoh klien yang memulai sesi. Anda menjalankannya di Langkah 3.

Tambahkan opsi jaringan keagentcore create:

agentcore create --name MyManagedAgent --framework BedrockManagedAgents \ --network-mode VPC --vpc-id <vpc-id> --subnets <subnet-ids> \ --security-groups <security-group-ids>

VPC harus memiliki rute ke titik akhir Agen Terkelola Batuan Dasar, karena server eksekusi terhubung ke sana. Pembuatan gambar mengunduh Codex dan Python, sehingga juga membutuhkan rute ke internet. Lihat Mengkonfigurasi AgentCore untuk VPC.

Proyek yang sama berjalan pada tipe komputasi Instances. Tambahkan penyedia kapasitas ke proyek, lalu tambahkan agen dengan penyedia kapasitas:

agentcore create --name MyManagedAgent --no-agent cd MyManagedAgent agentcore add capacity-provider --name MyCapacityProvider \ --subnets <subnet-ids> --security-groups <security-group-ids> \ --os LINUX_ARM64 --instance-types c7g.large agentcore add agent --name MyManagedAgent --framework BedrockManagedAgents \ --capacity-provider MyCapacityProvider

Kemudian lanjutkan denganLangkah 2: Menyebarkan. agentcore deployjuga menciptakan penyedia kapasitas dan peran operatornya.

  • Jenis instance use LINUX_ARM64 dan Graviton, karena image build membuat image ARM64.

  • Penyedia kapasitas memberikan jaringan. Subnet harus memiliki rute ke titik akhir Agen Terkelola Batuan Dasar.

Untuk melampirkan penyedia kapasitas yang tidak ada dalam proyek, berikan ARN ke. agentcore create --framework BedrockManagedAgents --capacity-provider <capacity-provider-arn> Lihat Instans Runtime dan penyedia kapasitas.

Langkah 2: Menyebarkan

agentcore deploy agentcore status

CLI membangun gambar dengan AWS CodeBuild di akun Anda, dan menyebarkan Runtime dan peran eksekusinya. Agen Terkelola Batuan Dasar memanggil Runtime untuk Anda.

Simpan ARN Runtime dari output: agentcore status

arn:aws:bedrock-agentcore:us-east-1:<account-id>:runtime/<runtime-id>

Langkah 3: Jalankan sesi

Agen Terkelola Batuan Dasar menggunakan peran sesi untuk memanggil model dan memanggil Runtime Anda. Peran sesi bukan peran eksekusi Runtime. Ketika Anda menjalankanclient.py, itu menciptakan peran sesi di akun Anda. agentcore deploytidak membuat peran sesi, dan agentcore remove tidak menghapusnya. Lihat Peran sesi.

Jalankan klien dari direktori agen:

cd app/MyManagedAgent uv run client.py --runtime <runtime-arn>

Klien membuat sesi dan mencetak ID sesi, setiap perintah dengan outputnya, dan jawaban agen. Secara default, agen menggunakan acr-report keterampilan untuk menyimpan acr-report.txt di ruang kerja.

Bagian selanjutnya memberi tahu Anda bagaimana klien mengelola peran sesi, dan izin IAM mana yang Anda perlukan untuk menjalankan klien.

Peran sesi bukan peran eksekusi Runtime. agentcore deploymenciptakan peran eksekusi denganpolicies/bma-acr-policy.json. Klien memberikan peran sesi kepada Agen Terkelola Batuan Dasar di role_arn lapangan saat membuat sesi.

Ketika Anda memulai sesi baru dan tidak memberi--role-arn, klien melakukan langkah-langkah ini:

  1. Jika peran BmaSessionRole-<region> tidak ada, klien menciptakannya.

  2. Klien membandingkan kebijakan kepercayaan dan kebijakan inline peran dengan policies/bma-session-trust.json dan. BmaSession policies/bma-session-policy.json Jika kebijakan tidak sama, klien menulis file ke peran. File terbatas pada akun dan Wilayah Runtime.

  3. Jika klien mengubah peran, itu menunggu 15 detik. IAM membutuhkan waktu ini sebelum Agen Terkelola Batuan Dasar dapat menggunakan perubahan.

Untuk mengubah peran, ubah file. Klien tidak menghapus kebijakan lain yang ditambahkan seseorang ke peran tersebut. Itu tidak memeriksa peran ketika Anda memberi--session-id, dan itu tidak mengubah peran yang Anda berikan--role-arn.

Untuk produksi, berikan klien peran untuk satu Runtime dan satu gateway dengan--role-arn. Untuk membuat peran, gunakan dua file dipolicies/. Masukkan partisi, Wilayah, dan ID akun Anda, dan ubah masuk runtime/ dan gateway/* ke ID Runtime dan ID gateway Anda. Jangan mengubah file dalam proyek, karena semua proyek di Wilayah berbagiBmaSessionRole-<region>.

Identitas yang menjalankan klien memerlukan izin klien Agen Terkelola Batuan Dasarbedrock-mantle:CallWithBearerToken, dan iam:PassRole pada peran sesi. Untuk membiarkan klien membuat dan memperbaiki peran, berikan jugaiam:GetRole,, iam:CreateRoleiam:UpdateAssumeRolePolicy,iam:GetRolePolicy, dan iam:PutRolePolicy seterusnyaarn:aws:iam::<account-id>:role/BmaSessionRole-*. Jika Anda memberi--role-arn, klien tidak memerlukan lima izin ini.

Untuk kebijakan kepercayaan, izin peran sesi, dan izin klien, lihat Peran Keamanan dan IAM di Panduan Pengguna Amazon Bedrock.

Klien menggunakan client.beta.agents sumber daya openai paket. Agen Terkelola Batuan Dasar menjalankan loop agen.

Ketika klien membuat sesi, ia menetapkan nilai-nilai ini dalamenvironment:

  • type-aws_bedrock_agentcore, yang memberitahu Bedrock Managed Agents untuk menggunakan AgentCore Runtime.

  • runtime_arn- Runtime Anda. Sesi berjalan di Wilayah Runtime.

  • workspace_directory- Direktori tempat agen menjalankan perintahnya. Klien menggunakan/home/app/workspace. Server siklus hidup membuat direktori.

  • runtime_qualifier- Titik akhir Runtime. Klien menggunakanDEFAULT.

  • capability_directories- Direktori tempat Agen Dikelola Bedrock menemukan keterampilan. Klien menggunakan/opt/bma/plugins.

Klien juga extra_body menetapkan role_arn peran sesi. openaiPaket tidak memiliki parameter untuk bidang ini.

provide_tokenPembantu menggunakan AWS kredensil Anda untuk mendapatkan token pembawa Amazon Bedrock berumur pendek untuk setiap permintaan.

Jika Anda menambahkan gateway ke proyek, berikan ARN dari output with. agentcore deploy --gateway Gunakan bendera hanya untuk sesi baru. Klien menambahkan gateway sebagai mcp alat dengan ARN di. connector_id Agen Terkelola Batuan Dasar memanggil gateway dengan peran sesi. Gateway harus mendukung versi 2025-03-26 MCP. Jika tidak, agen tidak mendapatkan alat gateway, dan Agen Terkelola Bedrock tidak menunjukkan kesalahan.

"""Send an input to a Bedrock Managed Agents session that uses this project's ACR.""" import argparse import json import time from pathlib import Path from typing import Any import boto3 from aws_bedrock_token_generator import provide_token from botocore.exceptions import ClientError from openai import NotFoundError, OpenAI BMA_MODEL_ID = "openai.gpt-5.6-luna" # The agent runs its commands in this directory. The lifecycle server creates it. WORKSPACE_DIRECTORY = "/home/app/workspace" # Plugins and skills that the agent can use. The image has the acr-report plugin # at this path. Add the path of an S3 Files mount to use the skills in a bucket. CAPABILITY_DIRECTORIES = ["/opt/bma/plugins"] TURN_END = ("completed", "failed", "cancelled") TOOL_CALLS = ("mcp_call", "function_call", "web_search_call") POLICIES = Path(__file__).parent / "policies" SESSION_ROLE = "BmaSessionRole-{region}" SESSION_POLICY = "BmaSession" def show(data: dict[str, Any]) -> None: """Prints the session ID, the commands, the tool calls, and the answer.""" kind = data["type"].removeprefix("agent.session.") item = data.get("item") or {} if kind == "created": print(f"Session {data['session']['id']}") elif kind == "turn.output_text.delta": print(data["delta"], end="", flush=True) elif kind == "turn.item.done" and item.get("type") == "command_execution": print(f"\n$ {item['command']}\n{item.get('output') or ''}".rstrip()) elif kind == "turn.item.done" and item.get("type") in TOOL_CALLS: print(f"\nTool {item.get('name') or item['type']} {item.get('status')}") elif kind == "error" or kind.split(".")[-1] in TURN_END: source = data.get("turn") or data.get("environment") or data.get("session") print(f"\n{kind} {(source or data).get('error') or ''}".rstrip()) def load_policy(name: str, partition: str, region: str, account: str) -> str: """Reads a policy file and puts in the partition, the Region, and the account.""" text = (POLICIES / name).read_text() for key, value in (("Partition", partition), ("Region", region), ("AccountId", account)): text = text.replace("${AWS::" + key + "}", value) return text def session_role(runtime_arn: str) -> str: """Creates or repairs the session role, and returns its ARN. If the trust policy or the policy of the role is not the same as the file in `policies/`, the client writes the file to the role. """ _, partition, _, region, account = runtime_arn.split(":")[:5] name = SESSION_ROLE.format(region=region) trust = load_policy("bma-session-trust.json", partition, region, account) policy = load_policy("bma-session-policy.json", partition, region, account) iam = boto3.client("iam") changed = False try: role = iam.get_role(RoleName=name)["Role"] except iam.exceptions.NoSuchEntityException: role = iam.create_role(RoleName=name, AssumeRolePolicyDocument=trust)["Role"] print(f"Created the session role {name}") changed = True else: if role["AssumeRolePolicyDocument"] != json.loads(trust): iam.update_assume_role_policy(RoleName=name, PolicyDocument=trust) print(f"Updated the trust policy of {name}") changed = True try: current = iam.get_role_policy(RoleName=name, PolicyName=SESSION_POLICY)["PolicyDocument"] except iam.exceptions.NoSuchEntityException: current = None if current != json.loads(policy): iam.put_role_policy(RoleName=name, PolicyName=SESSION_POLICY, PolicyDocument=policy) if not changed: print(f"Updated the policy of {name}") changed = True if changed: # IAM needs some seconds before Bedrock Managed Agents can use a new or changed role. time.sleep(15) return role["Arn"] def main() -> None: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--runtime", required=True, help="The ACR ARN.") parser.add_argument( "--session-id", help="The BMA session ID. If it does not exist, the client creates a session.", ) parser.add_argument( "--input", default="Use the acr-report skill to save an ACR report in the workspace.", ) parser.add_argument( "--gateway", help="The Gateway ARN from the output of `agentcore deploy`.", ) parser.add_argument( "--role-arn", help="The session role that BMA assumes. If you do not give it, the client creates a role.", ) parser.add_argument("--delete", action="store_true", help="Delete the session.") parser.add_argument("--raw", action="store_true", help="Print events as JSON.") args = parser.parse_args() # BMA must run in the Region of the ACR. region = args.runtime.split(":")[3] with OpenAI( api_key=lambda: provide_token(region=region), base_url=f"https://bedrock-mantle.{region}.api.aws/openai/v1", ) as client: sessions = client.beta.agents.sessions session_id = args.session_id if session_id: try: session = sessions.retrieve(session_id).model_dump(warnings=False) except NotFoundError: print(f"Session {session_id} does not exist.") session_id = None else: if session["environment"].get("runtime_arn") != args.runtime: raise ValueError(f"Session {session_id} uses another ACR.") if not session_id and not args.role_arn: try: args.role_arn = session_role(args.runtime) except ClientError as error: parser.error( f"The client cannot create or check the session role: {error}. " "Get the IAM permissions in README.md, or give --role-arn." ) print(f"Session role {args.role_arn}") if session_id: # BMA opens the stream only with stream=true, and the SDK does not send it. events = sessions.events.stream(session_id, extra_query={"stream": "true"}) message = { "role": "user", "content": [{"type": "input_text", "text": args.input}], } sessions.events.create( session_id, events=[{"type": "agent.session.input.message", "input": [message]}], ) else: agent: dict[str, Any] = { "model": BMA_MODEL_ID, "instructions": "Use the available tools to complete the task.", } if args.gateway: # Bedrock Managed Agents calls Gateway with the session role from the service side. agent["tools"] = [ {"type": "mcp", "server_label": "team_tools", "connector_id": args.gateway} ] args.input += " Then list the tools that the Gateway gives you." events = sessions.create( agent=agent, environment={ "type": "aws_bedrock_agentcore", "runtime_arn": args.runtime, "runtime_qualifier": "DEFAULT", "workspace_directory": WORKSPACE_DIRECTORY, "capability_directories": CAPABILITY_DIRECTORIES, }, input=args.input, stream=True, # The SDK has no role_arn parameter. BMA assumes this role to call the ACR. extra_body={"role_arn": args.role_arn}, ) with events: for event in events: data = event.model_dump(mode="json", warnings=False) session_id = session_id or (data.get("session") or {}).get("id") if args.raw: print(json.dumps(data), flush=True) else: show(data) if data["type"].removeprefix("agent.session.turn.") in TURN_END: break if args.delete: sessions.delete(session_id) print(f"\nDeleted session {session_id}") if __name__ == "__main__": main()

Langkah 4: Lanjutkan sesi

Untuk mengirim input lain ke sesi yang sama, tambahkan ID sesi. Giliran menggunakan ruang kerja yang sama. Untuk menjaga ruang kerja setelah berhenti diam, tambahkan penyimpanan sesi seperti di. Menyimpan file setelah berhenti diam

uv run client.py --runtime <runtime-arn> --session-id <session-id> \ --input "Run cat acr-report.txt and show the output."

Jika sesi tidak ada, klien membuat sesi baru. Tambahkan --delete untuk menghapus sesi setelah giliran, atau --raw untuk mencetak setiap acara sebagai JSON.

Pada MicroVM Runtime, letakkan direktori home server eksekusi pada penyimpanan sesi. Kemudian ruang kerja, status koneksi, dan CODEX_HOME tinggal setelah berhenti diam.

  1. Alih-alih perintah di Langkah 1, buat proyek dengan penyimpanan sesi:

    agentcore create --name MyManagedAgent --framework BedrockManagedAgents \ --session-storage-mount-path /mnt/home cd MyManagedAgent
  2. Dalamagentcore/agentcore.json, tambahkan variabel ini ke entri untuk Runtime:

    "envVars": [{ "name": "BMA_HOME_DIR", "value": "/mnt/home" }]
  3. Diclient.py, aturWORKSPACE_DIRECTORY = "/mnt/home/workspace".

  4. Menyebarkan, dan menjalankan klien.

Untuk informasi selengkapnya tentang penyimpanan sesi, lihat Konfigurasi sistem berkas untuk AgentCore Runtime.

Langkah 5: (Opsional) Tambahkan keterampilan

Untuk menambahkan keterampilan pada gambar, tambahkan plugin di bawah plugins/ dan terapkan. Plugin memiliki .codex-plugin/plugin.json file dan skills/ direktori. skills/Direktori memiliki satu subdirektori untuk setiap keterampilan, dengan SKILL.md file di dalamnya. Gambar menyalinnya/opt/bma/plugins, yang sudah diberikan klien kepada Agen Terkelola Bedrock.

Untuk memulai, menyalinplugins/acr-report/, dan mengganti nama direktori plugin dan skills/acr-report/ nama plugin Anda dan keahlian Anda. Dalamplugin.json, setname,version,description, dan"skills": "./skills/". Masing-masing SKILL.md dimulai dengan materi depan yang memiliki name dandescription. Setelah penerapan, mulailah sesi baru dengan--input "Use the <skill-name> skill to …​".

Pasang titik akses File S3 di Runtime. Kemudian keterampilan berubah ketika ember berubah, dan gambar tetap sama. Untuk sistem file File S3, titik akses, dan aturan grup keamanan, lihat Konfigurasi sistem file untuk AgentCore Runtime.

Mount File S3 membutuhkan Runtime dalam mode jaringan VPC. Buat proyek dengan opsi jaringan diMenerapkan Runtime di VPC.

Di ember, letakkan setiap plugin di direktorinya sendiri di bawah direktori root titik akses. Gunakan tata letak yang sama denganplugins/acr-report/: <plugin>/.codex-plugin/plugin.json dan<plugin>/skills/<skill>/SKILL.md.

Tambahkan mount ke entri untuk Runtime diagentcore/agentcore.json:

{ "filesystemConfigurations": [ { "s3FilesAccessPoint": { "accessPointArn": "arn:aws:s3files:us-east-1:111122223333:file-system/fs-0123456789abcdef0/access-point/fsap-0123456789abcdef0", "mountPath": "/mnt/skills" } } ] }

Kemudian atur CAPABILITY_DIRECTORIES client.py ke["/opt/bma/plugins", "/mnt/skills"], dan terapkan.

Langkah 6: Lihat log dan jejak

agentcore logs --since 15m

Penerapan pertama mengaktifkan Pencarian CloudWatch Transaksi di akun Anda. Jejak terlihat setelah sekitar 10 menit. Untuk melihat jejak, buka CloudWatch konsol dan pilih GenAI Observability. Setiap panggilan dari Agen Terkelola Bedrock ke server siklus hidup memiliki satu rentang. bma.invocation Untuk informasi selengkapnya, lihat Melihat data observabilitas untuk agen Amazon Bedrock AgentCore Anda.

Pengaturan Penelusuran Transaksi berlaku untuk seluruh akun

Pencarian Transaksi dan pengindeksan rentangnya berlaku untuk seluruh akun di Wilayah, dan biaya tambahan mungkin berlaku. Untuk mempertahankan pengaturan Anda saat ini, tambahkan "disableTransactionSearch": true ke ~/.agentcore/config.json sebelum Anda menerapkan.

Langkah 7: Perbarui dan terapkan ulang

Ubah pengaturan Runtime diagentcore/agentcore.json, atau file gambar, dan terapkan lagi. Misalnya, pengaturan ini menghentikan sesi idle setelah 10 menit. Nilainya dalam hitungan detik.

{ "lifecycleConfiguration": { "idleRuntimeSessionTimeout": 600, "maxLifetime": 28800 } }
agentcore deploy

Perubahan berlaku untuk sesi baru.

Tambahkan variabel ke envVars dalam entri untuk Runtime, misalnya{ "name": "DISABLE_ADOT_OBSERVABILITY", "value": "true" }.

Variabel Default Deskripsi

DISABLE_ADOT_OBSERVABILITY

Tidak diatur

Set true untuk mematikan jejak dan log exec-server. Server siklus hidup masih menulis lognya sendiri ke grup log Runtime.

BMA_HOME_DIR

/home/app

HOMEdari exec-server.

BMA_STATE_DIR

.bma di BMA_HOME_DIR

Direktoristate.json, yang menjaga status koneksi sesi.

BMA_CODEX_HOME

.codex di BMA_HOME_DIR

CODEX_HOMEdari exec-server.

BMA_CODEX_BINARY

/opt/bma/bin/codex

Biner Codex.

BMA_MAX_TURN_LEASE

300

Sewa giliran terpanjang, dalam hitungan detik.

Setiap build image menginstal rilis Codex terbaru. Server siklus hidup membutuhkan Codex 0.154.0 atau yang lebih baru. Untuk menyematkan rilis, tambahkan CODEX_NON_INTERACTIVE=1 di CODEX_RELEASE=<version> sebelahDockerfile.

Langkah 8: Membersihkan

Untuk menghapus sesi, tambahkan --delete ke proses terakhir klien untuk sesi itu. Kemudian hapus sumber daya proyek, dan terapkan untuk menghapus Runtime, peran eksekusi, dan tumpukan.

agentcore remove all agentcore deploy

Penyebaran tidak menghapus sumber daya ini:

  • Grup CloudWatch log Log dari Runtime, CodeBuild proyek yang membangun image, dan fungsi Lambda yang memulai build.

  • Kunci AWS KMS dari repositori Amazon ECR. Kunci tetap dalam status penghapusan Tertunda selama 30 hari, dan kemudian AWS KMS menghapusnya.

  • CDKToolkitTumpukan, jika penerapan pertama melakukan bootstrap akun dan Wilayah. Aplikasi AWS CDK lain dapat menggunakan tumpukan ini. Hapus hanya jika tidak ada aplikasi lain yang menggunakannya.

  • Pengaturan Pencarian Transaksi dari Langkah 6.

  • Peran sesi yang client.py dibuat pada Langkah 3.

Untuk menghapus peran sesi, jalankan perintah ini:

aws iam delete-role-policy --role-name BmaSessionRole-<region> --policy-name BmaSession aws iam delete-role --role-name BmaSessionRole-<region>

Untuk menemukan grup log, jalankan perintah ini. Kemudian hapus setiap grup log.

aws logs describe-log-groups --log-group-name-prefix /aws/bedrock-agentcore/runtimes/<project-name>_<agent-name>- --query 'logGroups[].logGroupName' aws logs describe-log-groups --log-group-name-prefix /aws/codebuild/AgentCore-<project-name>-<target-name>- --query 'logGroups[].logGroupName' aws logs describe-log-groups --log-group-name-prefix /aws/lambda/AgentCore- --query 'logGroups[].logGroupName' aws logs delete-log-group --log-group-name <log-group-name>

Ganti nilai-nilai ini:

  • <project-name>- Nama proyek. Pada Langkah 1, itu adalahMyManagedAgent.

  • <agent-name>- Nama agennya. Pada Langkah 1, itu jugaMyManagedAgent.

  • <target-name>- Nama target penyebaran diagentcore/aws-targets.json. Nilai default-nya default. Dalam CodeBuild nama, setiap garis bawah (_) dalam nama proyek dan nama target berubah menjadi tanda hubung (). -

Nama grup log Lambda dipersingkat, seperti dalam contoh ini:

/aws/lambda/AgentCore-MyManagedAgent--ApplicationAgentMyManage-<suffix>

Perintah tersebut mencantumkan grup log Lambda dari semua proyek AgentCore CLI di Wilayah. Hapus hanya grup log proyek Anda.

Jika Anda menambahkan sumber daya lain ke proyek, seperti gateway atau memori, periksa apakah penerapan menghapusnya.