View a markdown version of this page

Model dan instruksi - Batuan Dasar Amazon AgentCore

Model dan instruksi

Tentukan harness sekali dengan default untuk model, prompt sistem, alat, memori, dan batas eksekusi. Ganti salah satu dari mereka pada satu pemanggilan saat Anda ingin bereksperimen. Sumber daya harness tetap tidak berubah; hanya panggilan itu yang menggunakan penggantian.

Ini adalah inti dari model berbasis konfigurasi: default pada waktu pembuatan, penggantian pada waktu pemanggilan. Anda dapat menguji kombinasi model/prompt N/tool dalam waktu yang diperlukan untuk menerapkan kembali sekali.

contoh
AWS CLI/boto3

Default pada: create-harness

aws bedrock-agentcore-control create-harness \ --harness-name "research-agent" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --system-prompt '[{"text": "You are a research assistant."}]' \ --tools '[{"type": "agentcore_browser", "name": "browser"}]'

Ganti per pemanggilan:

response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, # These apply only to this call; the harness defaults stay intact model={"bedrockModelConfig": {"modelId": "us.anthropic.claude-opus-4-5-20251101-v1:0"}}, systemPrompt=[{"text": "You are a terse research assistant. One paragraph answers only."}], tools=[ {"type": "agentcore_browser", "name": "browser"}, {"type": "agentcore_code_interpreter", "name": "code_interpreter"}, ], messages=[{"role": "user", "content": [{"text": "Summarize this paper as a bullet list."}]}], )

Untuk mengubah default secara permanen, gunakan. update-harness

AgentCore CLI

Tetapkan default saat Anda membuat atau memperbarui harness:

# Create a project if one does not already exist. agentcore create # Add a harness to the project agentcore add harness \ --name research-agent \ --model-id us.anthropic.claude-sonnet-4-6-20250514-v1:0 \ --system-prompt "You are a research assistant." \ --tools agentcore-browser agentcore deploy

Ganti pada pemanggilan:

# Switch the model for one call agentcore invoke --harness research-agent \ --model-id us.anthropic.claude-opus-4-5-20251101-v1:0 \ "Summarize this research paper" # Swap tools for one call agentcore invoke --harness research-agent \ --tools agentcore-browser,code-interpreter \ "Plot the citation counts as a bar chart"

Dapat diganti pada waktu pemanggilan:--model-id,,--tools,,--system-prompt,--max-iterations, --max-tokens--harness-timeout,--skills. --allowed-tools --actor-id Tambahkan --verbose untuk mencetak acara JSON streaming mentah untuk debugging.

Untuk mengubah default secara permanen, edit app/<name>/harness.json dan jalankan. agentcore deploy

Interactive

Jalankan agentcore di direktori proyek untuk membuka TUI, pilih tambah, lalu pilih Harness. Wizard memandu Anda melalui konfigurasi model dan instruksi langkah demi langkah.

  1. Pilih penyedia model Anda. Amazon Bedrock, OpenAI, Google Gemini, dan penyedia LiteLLM-compatible apa pun didukung, masing-masing dengan model default.

    Tambahkan panduan Harness: pilih penyedia model
  2. Pilih format API. Untuk Amazon Bedrock dan OpenAI, pilih Converse Stream (default), Respons, atau Penyelesaian Obrolan. Tanggapan dan Penyelesaian Obrolan dilayani oleh Bedrock Mantle.

    Tambahkan panduan Harness: pilih format API
  3. Jika Anda memilih LitellM, wizard akan meminta LiteLLM-specific bidang - ARN kunci API opsional, URL dasar API opsional untuk OpenAI-compatible gateway, dan parameter tambahan opsional yang diteruskan ke penyedia.

    Tambahkan panduan Harness: LitellM API key ARN, basis API, dan langkah-langkah parameter tambahan

Lanjutkan melalui langkah-langkah yang tersisa (lingkungan, memori, pengaturan lanjutan) dan konfirmasi. Kemudian jalankan agentcore deploy untuk melamar.

Gunakan model apa pun, alihkan pertengahan sesi

Gunakan model dari Amazon Bedrock, OpenAI, Google Gemini, atau penyedia lain melalui LitellM, termasuk titik akhir. OpenAI-compatible Ganti penyedia di antara putaran sesi yang sama dan percakapan berlanjut. Konteks terbawa.

Jika Anda tidak menentukan model, harness default ke Claude Sonnet 4.6 Anthropic di Amazon Bedrock global.anthropic.claude-sonnet-4-6 () sehingga Anda dapat segera memulai. Anda dapat mengubah default atau mengganti per pemanggilan kapan saja.

Simpan kunci API pihak ketiga di brankas token AgentCore Identity sebagai penyedia kredensi kunci API. Harness menarik kunci pada waktu doa. Kode agen Anda tidak pernah melihat kredensyal mentah.

contoh
AWS CLI/boto3

Daftarkan kunci API dengan AgentCore Identity:

aws bedrock-agentcore-control create-api-key-credential-provider \ --name my-openai-key \ --api-key "$OPENAI_API_KEY"

Beralih penyedia di seluruh belokan sesi yang sama:

# Turn 1: Bedrock (native Converse API) response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={"bedrockModelConfig": {"modelId": "us.anthropic.claude-sonnet-4-5-20250514-v1:0"}}, messages=[{"role": "user", "content": [{"text": "Analyze this codebase."}]}], ) # Turn 2: Bedrock Mantle (OpenAI Responses format, no API key needed) response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={ "bedrockModelConfig": { "modelId": "openai.gpt-4o", "apiFormat": "responses", "additionalParams": {"reasoning": {"effort": "high"}}, } }, messages=[{"role": "user", "content": [{"text": "Now suggest fixes for the top three issues."}]}], ) # Turn 3: OpenAI model via Bedrock Mantle (no API key needed) response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={ "openAiModelConfig": { "modelId": "gpt-5.4", "apiFormat": "responses", "endpoint": {"bedrockMantle": {}}, } }, messages=[{"role": "user", "content": [{"text": "Summarize the fixes as a bullet list."}]}], )
Tip

Gunakan openAiModelConfig dengan "endpoint": {"bedrockMantle": {}} untuk memanggil model OpenAI melalui Amazon Bedrock Mantle — tidak diperlukan kunci API, menggunakan kredenal peran eksekusi Anda. Gunakan openAiModelConfig dengan apiKeyArn saat memanggil titik akhir OpenAI secara langsung.

AgentCore CLI

Tambahkan kunci API ke AgentCore Identity:

agentcore add credential --type api-key --name my-openai-key --api-key $OPENAI_API_KEY agentcore deploy

Memanggil dengan Bedrock Mantle (Format tanggapan, tidak diperlukan kunci API):

SESSION_ID="$(uuidgen)" # Turn 1: Bedrock Mantle (Responses format) agentcore invoke --harness my-agent \ --model-id us.anthropic.claude-sonnet-4-5-20250514-v1:0 \ --api-format responses \ --session-id "$SESSION_ID" \ "Analyze this codebase and identify performance bottlenecks."

Beralih ke OpenAI langsung pada sesi yang sama:

# Turn 2: OpenAI direct on the same session agentcore invoke --harness my-agent \ --model-provider open_ai \ --model-id gpt-5.4 \ --api-key-arn arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-openai-key \ --session-id "$SESSION_ID" \ "Now suggest fixes for the top three issues."

Pelajari lebih lanjut: AgentCore Identitas, penyedia kredensi kunci API.

Pilih format API model

Konfigurasi model Amazon Bedrock dan OpenAI masing-masing menerima bidang apiFormat opsional yang memilih protokol API mana yang digunakan harness untuk memanggil model.

UntukbedrockModelConfig, apiFormat pilih protokol API dan titik akhir Amazon Bedrock yang dipanggil harness:

  • converse_stream- Amazon Bedrock Converse API, dilayani oleh endpoint. bedrock-runtime Ini adalah opsi default.

  • responses- OpenAI-compatible Responses API, dilayani oleh bedrock-mantle endpoint.

  • chat_completions- API Penyelesaian OpenAI-compatible Obrolan, dilayani oleh titik bedrock-mantle akhir.

bedrock-mantleTitik akhir mendukung serangkaian model dan kemampuan yang berbeda dari titik bedrock-runtime akhir default. Untuk detailnya, lihat Titik akhir yang didukung oleh Amazon Bedrock.

UntukopenAiModelConfig, apiFormat bisa menjadi salah satu dari:

  • responses- API Tanggapan OpenAI. Ini adalah opsi default.

  • chat_completions- API Penyelesaian Obrolan OpenAI.

Kedua konfigurasi juga menerima additionalParams bidang opsional. Provider-specific parameter di additionalParams diteruskan ke penyedia model tidak berubah.

penting

Parameter dalam additionalParams dapat mengubah perilaku penyedia termasuk perutean titik akhir, penanganan kredenal, dan pemilihan wilayah. Jika aplikasi Anda meneruskan konfigurasi model yang disediakan pemanggil keInvokeHarness, validasi bidang ini sebelum pemanggilan. Lihat Model tanggung jawab bersama.

contoh
AgentCore CLI

Setel format API saat Anda membuat atau memperbarui harness dengan --api-format flag:

# Bedrock model through the OpenAI-compatible Responses API (bedrock-mantle endpoint) agentcore add harness --name research-agent \ --model-provider bedrock \ --model-id us.anthropic.claude-sonnet-4-5-20250514-v1:0 \ --api-format responses agentcore deploy
# OpenAI model using the Chat Completions API agentcore add harness --name openai-agent \ --model-provider open_ai \ --model-id gpt-5.4 \ --api-key-arn arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-openai-key \ --api-format chat_completions agentcore deploy
catatan

--api-formatmenerimaconverse_stream,responses, atau chat_completions untuk--model-provider bedrock, dan responses atau chat_completions untuk--model-provider open_ai. Itu tidak berlaku untuk gemini ataulite_llm.

Terapkan Pagar Batuan Dasar Amazon

Gunakan Amazon Bedrock Guardrails untuk memfilter konten berbahaya atau memblokir topik yang ditolak dalam input dan output model. Untuk menerapkan pagar pembatas ke setiap permintaan model, tambahkan guardrailConfig objek ke. bedrockModelConfig.additionalParams Harness meneruskan objek ini ke Amazon Bedrock dengan setiap permintaan model.

Untuk menggunakan Amazon Bedrock Guardrails dengan harness, konfigurasikan bedrockModelConfig dengan format API. converse_stream Jika Anda menghilangkanapiFormat, harness menggunakan secara converse_stream default. Setel konfigurasi ini di CreateHarness atauUpdateHarness, atau ganti untuk satu panggilan masukInvokeHarness.

Contoh Python berikut memanggil InvokeHarness dengan konfigurasi pagar pembatas. Ganti HARNESS_ARN dengan ARN harness Anda SESSION_ID dan dengan ID sesi runtime yang unik.

import boto3 client = boto3.client("bedrock-agentcore") response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={ "bedrockModelConfig": { "modelId": "us.amazon.nova-micro-v1:0", "apiFormat": "converse_stream", "additionalParams": { "guardrailConfig": { "guardrailIdentifier": "arn:aws:bedrock:us-west-2:111122223333:guardrail/abc123def456", "guardrailVersion": "1", "trace": "enabled_full", } }, } }, messages=[{"role": "user", "content": [{"text": "Help me plan a trip."}]}], )

Untuk izin model dasar, lihat kebijakan peran eksekusi. Tambahkan pernyataan JSON berikut ke kebijakan peran eksekusi harness:

{ "Effect": "Allow", "Action": "bedrock:ApplyGuardrail", "Resource": "arn:aws:bedrock:us-west-2:111122223333:guardrail/abc123def456" }

Gunakan pagar pembatas di AWS Wilayah yang sama dengan permintaan model. Ketika pagar pembatas mengintervensi, aliran respons melaporkan guardrail_intervened sebagai alasan berhenti.

Untuk informasi selengkapnya tentang bidang konfigurasi guardrail, lihat Menggunakan pagar pembatas dengan Converse API. Untuk informasi selengkapnya tentang izin IAM, lihat Menyiapkan izin untuk menggunakan Amazon Bedrock Guardrails.

Gunakan model melalui LitellM

Gunakan liteLlmModelConfig untuk menjangkau penyedia mana pun yang didukung LitellM, termasuk OpenAI-compatible titik akhir. Setel modelId ke ID model awalan penyedia LiteLM, seperti atau. gemini/gemini-2.5-pro anthropic/claude-sonnet-4-6

Penyedia yang mengautentikasi dengan kunci API (seperti Google atau Anthropic) memerlukan. apiKeyArn Model Amazon Bedrock yang diakses dengan bedrock/ awalan menggunakan izin peran eksekusi harness dan tidak memerlukan kunci API.

  • modelId(wajib) - ID model awalan penyedia LitellM.

  • apiKeyArn- ARN kunci API penyedia, disimpan dalam AgentCore Identity sebagai penyedia kredensi kunci API. Titik akhir harus menerima kunci API ini.

  • apiBase- URL endpoint khusus untuk OpenAI-compatible gateway, seperti proxy atau endpoint yang dihosting sendiri.

  • additionalParams- parameter khusus penyedia diteruskan ke LitellM tidak berubah. Ini termasuk parameter yang dapat mengganti titik akhir (aws_bedrock_runtime_endpoint), mengasumsikan peran IAM (aws_role_name), atau mengubah perutean permintaan. Lihat Model tanggung jawab bersama.

liteLlmModelConfigjuga menerima opsionalmaxTokens,temperature, dan topP bidang.

contoh
boto3

Konfigurasikan model LiteLM:

response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={ "liteLlmModelConfig": { "modelId": "gemini/gemini-2.5-pro", "apiKeyArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-gemini-key", } }, messages=[{"role": "user", "content": [{"text": "Summarize this paper."}]}], )
AgentCore CLI

Konfigurasikan model LiteLM dengan: --model-provider lite_llm

agentcore add harness --name research-agent \ --model-provider lite_llm \ --model-id gemini/gemini-2.5-pro \ --api-key-arn arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-gemini-key agentcore deploy

Jangkau OpenAI-compatible gateway dengan--api-base, dan lewati parameter khusus penyedia dengan: --additional-params

agentcore add harness --name proxy-agent \ --model-provider lite_llm \ --model-id openai/gpt-5.4 \ --api-base https://my-llm-gateway.example.com/v1 \ --api-key-arn arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-gateway-key \ --additional-params '{"timeout": 30}' agentcore deploy
catatan

--api-basedan hanya --additional-params berlaku untuk--model-provider lite_llm. Model Amazon Bedrock yang dicapai dengan bedrock/ awalan menggunakan izin peran eksekusi dan tidak perlu. --api-key-arn

Saat harness Anda menggunakan penyedia kredensi kunci API, berikan izin peran eksekusi untuk membaca kunci. Lihat Kontrol keamanan dan akses.

Untuk informasi tambahan tentang konfigurasi harness, lihat Dokumentasi API