AWS Bedrockにはプロンプト管理という機能があります。
ざっくりいうと、プロンプトをテンプレート化してバージョン管理できる機能です。プロンプトの一部を{{変数名}}のように二重中括弧で囲んで変数化することができます。
コンソールにて作成でき、テストもできます。が、ちょっと分かりにくく。「プロンプト」を入力してそのまま「ドラフトを保存」をクリックしても「ValidationException」がでて保存できません。

原因は「設定 - オプション」として書かれているところの「モデルを選択」を実施してないためです。必須条件ならオプションと書かないで欲しい...

ドラフトを保存したり、バージョンを作成することでSDKで実際に使うことができます。Rubyでは次のようにします。
まずは、aws-sdk-bedrockruntimeをgem installします。今回使ったバージョンは1.63.0です。
あとは普通のようにconverse APIを呼び出します。
bedrock_client = Aws::BedrockRuntime::Client.new(region: 'ap-northeast-1') bedrock_client.converse({ model_id: "arn:aws:bedrock:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx", prompt_variables: { "team_name" => { text: "阪神タイガース" } } })
model_idにはプロンプト管理から確認できるプロンプトARNを指定します。arn:aws:bedrock:リージョン:アカウントID:prompt/ランダムな英数字という形式のようです。バージョンを指定する場合は、arn:aws:bedrock:リージョン:アカウントID:prompt/ランダムな英数字:バージョン番号という形になるようです。
prompt_variablesにはプロンプト管理で指定した変数名とその値を与えます。
応答は以下のようなstructが返ります。
#<struct Aws::BedrockRuntime::Types::ConverseResponse
output=
#<struct Aws::BedrockRuntime::Types::ConverseOutput::Message
message=
#<struct Aws::BedrockRuntime::Types::Message
role="assistant",
content=
[#<struct Aws::BedrockRuntime::Types::ContentBlock::Text
text=
"阪神タイガースは、日本のプロ野球・セントラル・リーグに所属するプロ野球球団です。(以下略)",
image=nil,
document=nil,
video=nil,
tool_use=nil,
tool_result=nil,
guard_content=nil,
cache_point=nil,
reasoning_content=nil,
citations_content=nil,
unknown=nil>]>,
unknown=nil>,
stop_reason="end_turn",
(略)
ちなみに、invoke_model APIはaws-sdk-bedrockruntime(バージョンは1.63.0)の場合prompt_variablesを引数に取れないので、プロンプト管理は使えませんでした。