AWS DevOps Agent のエージェント応答言語を AWS CDK で日本語に設定してみた

AWS DevOps Agent のエージェント応答言語を AWS CDK で日本語に設定してみた

Agent Space の Locale プロパティで応答言語を指定できる。CloudFormation / CDK では 2026 年 5 月から設定可能。効くのは調査出力でチャットは入力言語に追従した。
2026.07.31

こんにちは、製造ビジネステクノロジー部の若槻です。

AWS DevOps Agent には、Agent Space 単位でエージェントの応答言語を指定する エージェントの応答言語(Agent response language) という設定があります。マネジメントコンソールのドロップダウンから選択できる設定ですが、AWS CDK(CloudFormation)からも AWS::DevOpsAgent::AgentSpaceLocale プロパティとして設定可能です。

今回は、この応答言語設定を AWS CDK で日本語(ja-JP)に設定し、CLI とマネジメントコンソールで反映を確認した上で、以前の記事と同じプロンプトで調査をトリガーして応答を比較してみました。

Locale プロパティの仕様

AWS::DevOpsAgent::AgentSpace のドキュメントによると、Locale の仕様は以下です。

項目
Required No
Type String
Pattern ^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$
文字数 2 〜 35
Update requires No interruption(置き換え不要)

ドキュメント上は有効なロケールコードの一覧が記載されていませんが、パターンは BCP 47 形式であり、マネジメントコンソールの選択肢と対応させると日本語は ja-JP となります。

なお ドキュメント によると、この設定は「ヒューマンサポートを依頼」で作成される AWS Support ケースの言語(対応するサポートエンジニアの言語)にも使われます。これ結構大きいですね。

実装

AgentSpaceConstructCfnAgentSpacelocale プロパティを追加します。

lib/constructs/devops-agent/agent-space/index.ts
import * as devopsagent from "aws-cdk-lib/aws-devopsagent";
import { Construct } from "constructs";

import { commonParameter } from "../../../../bin/parameter";
import { OperatorRoleConstruct } from "./operator-role";

/**
 * Agent Space とオペレーターロールの実装
 * @see https://github.com/aws-samples/sample-aws-devops-agent-cdk/blob/main/lib/devops-agent-stack.ts
 */
export class AgentSpaceConstruct extends Construct {
  public readonly agentSpace: devopsagent.CfnAgentSpace;

  constructor(scope: Construct, id: string) {
    super(scope, id);

    const { projectNamePascalCase } = commonParameter;

    const operatorRole = new OperatorRoleConstruct(this, "OperatorRole");

    this.agentSpace = new devopsagent.CfnAgentSpace(this, "Resource", {
      name: `${projectNamePascalCase}AgentSpace`,
      locale: "ja-JP", // エージェントの応答言語
      operatorApp: {
        iam: {
          operatorAppRoleArn: operatorRole.role.roleArn,
        },
      },
    });
  }
}

スナップショットテストの差分を見ると、CloudFormation テンプレートに Locale が追加されていることが分かります。

     "DevOpsAgentAgentSpace40452AB1": {
       "Properties": {
+        "Locale": "ja-JP",
         "Name": "SampleProjectAgentSpace",

設定前後の確認(AWS CLI)

デプロイ前の Agent Space には locale フィールドがありません。

aws devops-agent get-agent-space --agent-space-id <agent-space-id>
{
  "agentSpace": {
    "name": "<agent-space-name>",
    "createdAt": "2026-05-19T04:29:41.250000+00:00",
    "updatedAt": "2026-05-19T04:33:35.043000+00:00",
    "agentSpaceId": "<agent-space-id>"
  }
}

デプロイ後に再度実行すると、localeja-JP として設定されています。

aws devops-agent get-agent-space --agent-space-id <agent-space-id>
{
  "agentSpace": {
    "name": "SampleProjectAgentSpace",
    "locale": "ja-JP",
    "createdAt": "2026-07-30T12:30:17.524000+00:00",
    "updatedAt": "2026-07-30T12:30:17.524000+00:00",
    "agentSpaceId": "<agent-space-id>"
  }
}

設定後の確認(マネジメントコンソール)

マネジメントコンソールでは、Agent Space の アクション → エージェントスペースを編集 から エージェントの応答言語 を確認できます。ja-JP を指定した結果、Japanese (Japan) が選択された状態になっています。


エージェントスペースの編集画面。エージェントの応答言語が Japanese (Japan) になっている

選択肢は「None(no preferred language)」を含めて 18 種類でした。デフォルトの「None」の場合は、入力の言語に合わせて応答するという挙動になります。


エージェントの応答言語の選択肢。日本語は Japanese (Japan)

動作確認:過去記事と同じプロンプトで調査をトリガー

以前の記事「AWS DevOps Agent の複数 AWS アカウントへの接続を AWS CDK で実装して、各アカウントを調査してみた」と同じプロンプトで調査をトリガーしました。

Security Hub で最近3日間に新規作成された検出結果を教えて。

調査タイムラインは日本語で出力されました。


日本語プロンプトでの調査タイムライン。過去記事と同じプロンプトを使用

調査結果のレポートも日本語です。


日本語で出力された調査レポート。重要度別・コンプライアンス別の集計まで日本語

ただしこの結果は、応答言語を設定していなかった過去記事の時点でも同じでした。プロンプトが日本語であれば、応答言語が未設定でも日本語で応答が返っていたためです。

つまり、日本語プロンプトでは応答言語設定の効果を確認できません。そこで、同じ内容を英語のプロンプトで投げて比較してみます。

Tell me the Security Hub findings that were newly created in the last 3 days.

調査(インシデントレスポンス)では、英語のプロンプトに対して日本語で出力されました。応答言語設定が効いていることが確認できます。


英語プロンプトでの調査タイムライン。DESCRIPTION は英語だが、エージェントの出力は日本語

一方で、同じ英語のプロンプトをチャットに投げた場合は、英語で応答が返りました。以下は左がチャット、右が調査です。同じプロンプトでも出力言語が異なっています。


同じ英語プロンプトでの比較。左のチャットは英語、右の調査は日本語で出力されている

結果をまとめると以下となりました(応答言語 = ja-JP 設定時)。

プロンプトの言語 チャットの応答 調査の出力
日本語 日本語 日本語
英語 英語 日本語

コンソールの説明文では「エージェントが応答、検出結果、調査出力を生成する際に使用する言語」とされていますが、少なくとも今回の検証では、チャットの応答は応答言語設定よりも入力の言語に追従する挙動でした。調査(インシデントレスポンス)の出力については、入力言語に関係なく設定した言語で出力されています。

また、チャットの進捗表示など一部の UI メッセージは応答言語設定に関係なく英語のままでした。

Digging into your environment to gather the details — hang tight, this may take a moment

注意点:コンストラクト ID の変更による Agent Space の置き換え

今回のデプロイでは、locale の追加とは別の理由で Agent Space が置き換え(削除 → 再作成)となりました。カスタムコンストラクト化のリファクタリングによって CfnAgentSpace のコンストラクト ID(ひいては論理 ID)が変わっていたためです。

Locale 自体は Update requires: No interruption であり、既存の Agent Space に対して in-place で追加できます。一方で論理 ID が変わると Agent Space が作り直され、調査履歴・トポロジの学習結果・メモリは引き継がれませんlocale を後から追加する際は、cdk diff で Agent Space が destroy / replace になっていないかを確認するのがおすすめです。

なお、AWS CLI であれば既存の Agent Space に対して応答言語のみを更新することもできます。

aws devops-agent update-agent-space \
  --agent-space-id <agent-space-id> \
  --locale ja-JP

いつから CDK で設定できたのか

AWS DevOps Agent ユーザーガイドの What's new および Document history には応答言語設定に関するエントリが見つかりませんでした。そこで、CloudFormation リソーススキーマと API モデルの更新履歴から Locale プロパティが使えるようになった時期を確認しました。

日付 出来事 根拠
2025/12/02 プレビュー版として AWS::DevOpsAgent::AgentSpace が CloudFormation に追加。この時点のリソーススキーマのプロパティは DescriptionName のみ プレビュー発表 / CFN テンプレートリファレンスのドキュメント履歴 / スキーマのスナップショット
2026/03/31 GA。公開された API モデル(apiVersion: 2026-01-01)には locale が含まれており、CLI / SDK からは GA 時点で設定可能 GA 発表 / botocore への API モデル追加コミット
2026/05/08 CloudFormation リソーススキーマに Locale が追加 スキーマ更新コミット
2026/05/13 aws-cdk-lib 2.254.0 がリリースされ、CfnAgentSpacelocale プロパティが利用可能に リリースノート / npm の公開日時

CloudFormation リソーススキーマの履歴

CDK の L1 コンストラクトの生成元となる cdklabs/awscdk-service-spec には、CloudFormation リソーススキーマのスナップショットが取り込まれています。Agent Space のスキーマの更新コミットは以下の 4 件でした。

gh api -X GET repos/cdklabs/awscdk-service-spec/commits \
  -f path="sources/CloudFormationSchema/us-east-1/aws-devopsagent-agentspace.json" \
  --jq '.[] | "\(.commit.author.date) \(.sha[0:8])"'
2026-05-08T04:30:30Z 221694ca
2026-03-30T04:31:01Z a658208a
2026-02-26T16:15:46Z 1ec920e6
2025-12-04T18:30:55Z 67b394a2

ただし、このコミット一覧だけではどのコミットで Locale が入ったのかは分かりません。スキーマファイルは Git LFS 管理のため、コミットの差分にはポインタの内容(ハッシュとサイズ)しか現れません。

gh api repos/cdklabs/awscdk-service-spec/commits/221694ca8ae7e7e556a69f1e27641633c6f39c8e \
  --jq '.files[] | select(.filename|contains("devopsagent-agentspace")) | .patch'
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:fd586d4c7e47591542106be490a13506164fb67964d1c4eab2e77cd1e963b867
-size 6572
+oid sha256:1c1815d1566f138bd6b9db2ead09fdf65744454ee5213c2406063dfbc3342bed
+size 6835

そこで、media.githubusercontent.com から各コミット時点の LFS の実体を取得して、properties のキーを比較しました。

for sha in 67b394a2 1ec920e6 a658208a 221694ca; do
  printf "%s: " "$sha"
  curl -sL "https://media.githubusercontent.com/media/cdklabs/awscdk-service-spec/$sha/sources/CloudFormationSchema/us-east-1/aws-devopsagent-agentspace.json" \
    | python3 -c "import json,sys; print(','.join(sorted(json.load(sys.stdin)['properties'])))"
done
67b394a2: AgentSpaceId,Arn,CreatedAt,Description,Name,UpdatedAt
1ec920e6: AgentSpaceId,Arn,CreatedAt,Description,Name,OperatorApp,UpdatedAt
a658208a: AgentSpaceId,Arn,CreatedAt,Description,KmsKeyArn,Name,OperatorApp,Tags,UpdatedAt
221694ca: AgentSpaceId,Arn,CreatedAt,Description,KmsKeyArn,Locale,Name,OperatorApp,Tags,UpdatedAt

これを整理すると、Locale が追加されたのは 2026/05/08 のコミット(221694ca)であることが分かります。

コミット日 プロパティ
2025/12/04 AgentSpaceId Arn CreatedAt Description Name UpdatedAt
2026/02/26 上記 + OperatorApp
2026/03/30 上記 + KmsKeyArn Tags
2026/05/08 上記 + Locale

aws-cdk-lib のバージョン

aws-cdk-lib のどのバージョンから locale プロパティが含まれるかは、各バージョンの型定義ファイルを直接確認しました。

for v in 2.253.0 2.253.1 2.254.0; do
  printf "%s: " "$v"
  curl -s "https://unpkg.com/aws-cdk-lib@$v/aws-devopsagent/lib/devopsagent.generated.d.ts" \
    | grep -c "readonly locale"
done
2.253.0: 0
2.253.1: 0
2.254.0: 1

2.253.1(2026/05/08 公開)には含まれず、2.254.0(2026/05/13 公開、リリースノート)から含まれるようになっています。公開日時は npm view aws-cdk-lib time でも確認できます。

CLI / SDK は GA 時点から対応済み

一方で aws devops-agent の API モデルには、GA 時点から locale が含まれていました。

curl -s "https://raw.githubusercontent.com/boto/botocore/85bae5b8/botocore/data/devops-agent/2026-01-01/service-2.json" \
  | python3 -c "
import json,sys
j=json.load(sys.stdin)
print('apiVersion:', j['metadata']['apiVersion'])
for shape,s in j['shapes'].items():
    if 'locale' in s.get('members',{}):
        print('has locale ->', shape)
"
apiVersion: 2026-01-01
has locale -> AgentSpace
has locale -> CreateAgentSpaceInput
has locale -> UpdateAgentSpaceInput

85bae5b8 は botocore に devops-agent の API モデルが追加された 2026/03/30 のコミットです(devops-agent ディレクトリにはこれ以前の API バージョンは存在しません)。つまり CLI / SDK では GA 時点(2026 年 3 月末)から、CloudFormation / CDK では 2026 年 5 月から設定できたということになります。

終わりに

AWS DevOps Agent のエージェント応答言語を AWS CDK で日本語に設定してみました。

CloudFormation / CDK から設定できるようになったのは 2026 年 5 月からで、それ以前でも CLI / SDK からは設定可能でした。

応答言語を設定しても日本語プロンプトでの応答は変わりませんが、英語のアラートや外部連携をきっかけに調査がトリガーされるケースでは、調査出力を日本語に固定できるメリットがあります。運用メンバーが日本語話者中心のチームでは設定しておくとよいでしょう。

以上

この記事をシェアする

関連記事