メインコンテンツに移動

builders.flash

少量のレガシー言語プログラムを Amazon Quick で解読してみた

2026-08-03 | Author : 皆川 元

Missing alt text value

はじめに

こんにちは、Mainframe Modernization Specialist Solutions Architect の皆川元です。

メインフレームモダナイゼーションのためのエージェンティック AI サービスである AWS Transform for mainframe により、IBM z/OS 上の COBOL や PL/I および JCL のドキュメント生成、ビジネスロジック抽出、データ分析を行うことができます。これらのアウトプットを基にして、様々なアプローチでメインフレームモダナイゼーションが実践されています。

一方で、AWS Transform for mainframe がサポートしていないレガシー言語で実装したアプリケーションは、どのようにモダナイズすることができるでしょう。本記事では、エージェンティック AI サービス Amazon Quick のスペースとチャットエージェントによって、少量のコードを解読した操作例を紹介します。なお、実際の操作画面やメッセージは、本記事の記載内容と異なる表示になる場合がありますが、ご了承願います。

X ポスト » | Facebook シェア » | はてブ »

ご注意

本記事で紹介する AWS サービスを起動する際には、料金がかかります。builders.flash メールメンバー特典の、クラウドレシピ向けクレジットコードプレゼントの入手をお勧めします。

*ハンズオン記事およびソースコードにおける免責事項 »

今すぐ登録 »

builders.flash メールメンバー登録

builders.flash メールメンバー登録で、毎月の最新アップデート情報とともに、AWS を無料でお試しいただけるクレジットコードを受け取ることができます。

今すぐ登録 »

想定するユースケース

大量のファイルを含む大規模なコードベースのモダナイゼーションは、コードの構造やコード間の依存関係を正確に捕捉する必要があるため、ベンダー各社で実績ある移行ソリューションや、AWS Transform for mainframe のような専用ツールの利用が効果的です。既存ツールがサポートしていないレガシー言語による少量のコードが大規模なコードベースに含まれる場合、該当のコードのアセスメントとモダナイゼーション計画のために、個別の対応が必要になります。このようなケースが本記事の対象です。

本記事のサンプルシナリオでは、アセンブラコードを解読します。アセンブラは、共通ライブラリ関数や共通サブルーチンの実装に多く使われて来ました。アプリケーションから IBM z/OS 固有の機能を利用するにはアセンブラによるシステムプログラミングが必要でしたが、同等機能が Linux や Windows 上で必要とされなければ、移行対象に含める必要がありません。アセンブラコードの処理内容の理解が、モダナイズ要否の判定の前提になる場合や、移行先の環境に最適化したテクノロジーで開発者が実装し直す場合に、本記事に示す方法が利用できます。
 

前提事項

本記事の方法を試す場合は、以下が前提になります。
  • Amazon Quick で解析するソースコードのリバースエンジニアリングが許可されていることが前提です。ソースコードの著作権が他社に帰属している場合は、リバースエンジニアリングが許可されない可能性があります。
  • 対象のプログラミング言語のマニュアルが、PDF 等 machine-readable な電子ファイルの形式でアクセス可能な状態にあることが前提です。生成 AI はインターネット上の情報を学習しますが、インターネット上に技術情報が出回っていないレガシー言語は LLM が学習していないため、ハルシネーションが発生し易くなります。プログラミング言語のマニュアルで構築した「スペース」を活用することで、ハルシネーションの抑制を図ります。

準備

ナレッジベースにアップロードするマニュアルをダウンロードしておきます。

プログラミング言語の場合は、少なくとも製品のマニュアルがあると良いです。各 URL は、2026 年 7 月現在の各 IBM 製品のマニュアルの最新版ですが、実際にご利用されている製品バージョンのマニュアルを利用すると良いでしょう。

これら以外にも、アセンブラコードから利用する機能に応じて、必要なマニュアルを追加ダウンロードしておきます。 

プログラミング言語のマニュアルをスペースに追加

チャットエージェントが確かな技術情報に基づいて処理を行うよう、その基礎になる情報を [スペース] に格納します。今回は、上でダウンロードしたマニュアル PDF ファイルを [スペース] にアップロードします。

スペースを作成

Amazon Quick 画面左側のナビゲーションペインで [スペース] を選びます。続いて [スペースを作成する] をクリックします。

Missing alt text value

タイトルと説明を入力

これから作成するタイトルと説明の入力を求められます。今回は図のように入力します。

Missing alt text value
Missing alt text value

マニュアル PDF ファイルをアップロード

[ナレッジを追加] ボタンを押下し、[ファイルのアップロード] を選びます。「準備」でダウンロードしておいたマニュアル PDF ファイルを全てアップロードします。

Missing alt text value

Missing alt text value

アップロードしながら、チャットエージェント作成

アップロードしたファイルを処理するのに少々時間が掛かるため、完了を待たずにチャットエージェントの作成に進みます。

Missing alt text value

Missing alt text value

プログラミング言語に特化したチャットエージェントを作成

Amazon Quick には、デフォルトでそのまま利用できるチャットエージェントがあります。今回は、上で作成した [スペース] を活用するアセンブラ専用のカスタムチャットエージェントを作成します。

チャットエージェントを作成

Amazon Quick 画面左側のナビゲーションペインで [チャットエージェント] を選びます。
続いて[チャットエージェントを作成] ボタンを押下します。
Missing alt text value

作成したいチャットエージェントの記述

Missing alt text value

チャットエージェントを開く

どういうチャットエージェントを作りたいのか記述するよう求められます。

Missing alt text value

指示を入力

今回は以下のように入力しますが、実際には目的に応じて自由に入力してください。

メインフレームのレガシーアプリケーション開発者向けに、ブラックボックス化したアセンブラコードの理解を補助するチャットエージェントを希望します。HLASMのマニュアルをナレッジとして活用します。大まかな説明を求める初心者には平易でわかり易い記述で答えますが、マニアックで高度な質問をする専門家には技術的に正確で詳細な回答を返します。可能な場合は出典を示します。

以下の機能を提供します。

・アセンブラに関する一般的な Q&A
・特定のアセンブラコードの機能概要の説明
・特定のアセンブラコードについての個別 Q&A
・特定のアセンブラコードの実装に使われている技法やシステムライブラリーの用法の解説
・特定のアセンブラコードのプログラム説明書の生成: 機能概要、処理フロー、入出力一覧(データセット、VSAM、Db2 テーブル、IMS/DB)、レジスター割り当て、データ領域(CSECT, DSECT)、主な変数と定数の一覧、マクロの一覧(名称、機能、種別: ユーザーマクロ、DCB、等)、外部プログラム呼び出し(プログラム名、パラメータ、戻り値、機能)、エラー処理、特記事項

作成したスペースのリンクを確認

[ナレッジソース] セクションを展開し、先ほど作成したスペースがリンクされていることを確認します。これで、アップロードした製品マニュアルが紐づいていることがわかります。

Missing alt text value

スペースがリンクされていない場合

ンクされていない場合は、[スペースをリンクする] ボタンを押下して、スペースを関連付けます。

Missing alt text value

Missing alt text value

チャットエージェントの動作を確認する

作成したチャットエージェントをリリースする前に、チャットエージェントと実際に対話してみて、テストします。完成したチャットエージェントを「起動」すると、それ以後のチャットは履歴に記録されますが、以下の操作でテスト中の対話は履歴にも残らず、このセッション限りのものです。

アセンブラ専用カスタムエージェントをテストするため、アセンブラコードを用意します。今回は、AWS が GitHub 上に公開しているサンプルアプリケーション CardDemo に含まれるアセンブラプログラム COBDATFT と、左記から参照されるアセンブラマクロ COCDATFT を使います。それぞれダウンロードし、Amazon Quick のチャット欄に添付できるよう、ファイル拡張子を “.txt” に変更しておきます。

チャットエージェントのテスト

作成中のチャットエージェントの右側に表示されているチャットペインは、作成中のチャットエージェントのテスト用に使えます。

では、早速テストしてみましょう。チャット欄の「+」をクリックし、「ファイルのアップロード」を選びます。

Missing alt text value

アセンブラコードをアップロード

ダウンロードしておいたアセンブラコードをアップロードします。

Missing alt text value

添付結果の確認

アップロードしたアセンブラコードがチャットに添付されました。

Missing alt text value

プロンプトを入力

チャット欄にプロンプトを入力し、送信ボタンを押下します。

プロンプト例:
アセンブラプログラム COBDATFT の説明書を生成して下さい。

Missing alt text value

プログラム説明書の生成

プログラム説明書が生成されます。生成結果の右上の「さらに表示」をクリックすると拡大表示されます。

Missing alt text value

拡大表示の例

Missing alt text value

Markdown をダウンロード

Markdown 表示エリア上部のダウンロードアイコンをクリックし、[Markdown をダウンロード] を選ぶと、生成された内容をファイルにダウンロードできます。

参考のため、今回生成したプログラム説明書のサンプルを添付します。

COBDATFT(1).md

Missing alt text value

チャットエージェントの日本語化とカスタマイズ

Amazon Quck に簡単な指示を与えて生成させたカスタムエージェントの基本的な動作は確認できました。さらに使い易くするため、簡単な修正を行います。チャットエージェントの編集とテストは、期待した動作になるまで、何度でも繰り返すことが可能です。

ペルソナ欄の日本語化

プレビュー中のチャットエージェントのペルソナ欄が英語表記になっています。そこで、ペルソナ欄右下の [精緻化] ボタンを押下し、日本語化するよう指示します。

Missing alt text value

プロンプト例

プロンプト例:
手順を日本語化して下さい

Missing alt text value

日本語化された手順をレビュー

日本語化されると、「手順が修正されました」と表示されます。
日本語化された手順をレビューし、意図した通りの動作をするようになっているか確認します。

Missing alt text value

ウェルカムメッセージと推奨プロンプトの変更

[カスタマイズ] セクションを展開すると、チャット欄に初期表示されるウェルカムメッセージと推奨プロンプトが表示されます。

  • ウェルカムメッセージは、チャットを開始するとチャット欄の上に表示されるメッセージです。
  • 推奨プロンプトは、チャット欄の下にボタンとして表示されます。推奨プロンプトの押下により、手軽にチャットすることもできます。

必要に応じてこれらの記述を変更します。

Missing alt text value

チャットの説明の言語変更

チャットエージェントのタイトルの下方にチャットの説明が英語で記述されています。カスタムエージェントを社内で同僚と共有するとき、説明文が日本語になっている方がわかり易いと思われる場合は、日本語に変更しておきます。
ペン型のアイコンをクリックし、この説明を編集します。

Missing alt text value

説明文の変更を保存

説明文を日本語に変更し、チェックマークをクリックして保存します。

(サンプル)

メインフレームアセンブラ開発者がレガシー HLASM コードを理解して分析するのに役立つ専用チャットエージェントです。初心者向けの概要から専門家レベルの技術的詳細まで、適応性のある説明を提供します。可能な場合は出典の引用も提供します。

 

Missing alt text value

チャットエージェントを起動

チャットエージェントの作成を完了したら、起動することで、繰り返し日常的に使えるようになります。

[チャットエージェントを起動] ボタンを押下し、作成したチャットエージェントを起動します。

Missing alt text value

チャットエージェントの詳細を表示

「チャットエージェントが正常に起動しました」というメッセージが表示されたら、[チャットエージェントの詳細を表示する] をクリックします。

Missing alt text value

チャットを開始

チャットエージェントの説明と機能、リンクしているスペースが表示されます。[チャット] ボタンを押下すると、チャットを始めることができます。

Missing alt text value

チャット欄の拡大表示

チャット欄上部の [展開する] をクリックすると、右側のチャット欄を広く拡大表示することができます。

Missing alt text value

Missing alt text value

(オプション) 起動済のチャットエージェントの洗練

一度起動したチャットエージェントを編集し、更に処理内容を洗練することができます。作成した時には気付かなかった点が、実際に使ってみてわかる場合も多くあります。その都度変更を加えて、より使い易いチャットエージェントに育てていくことができます。

チャットエージェントの編集

一覧表示されるチャットエージェントのうち、編集対象をクリックします。チャットエージェントの詳細が表示されたら、[編集] ボタンを押下します。

Missing alt text value
Missing alt text value

ペルソナの精緻化

チャットエージェントのペルソナ欄の手順は、直接編集して変更することができます。特定の処理を具体的に指示したい場合は、直接編集すると良いでしょう。

ここでは、チャットエージェントのペルソナ欄右下の [精緻化] ボタンを押下し、洗練するための指示を与えてみます。

プロンプト例:
プログラム説明書を説明する時の処理フローは Mermaid 形式で出力するようにして下さい

精緻化のイメージ

Missing alt text value
Missing alt text value

手順が英語で生成された場合

手順が英語で生成された場合は、再び [精緻化] ボタンを押下し、日本語化するよう指示します。

Missing alt text value
Missing alt text value

プレビューを更新

日本語化されたら、改めて手順をレビューし、意図した通りの動作をするよう記述されているか確認します。一連の操作により、意図せぬ内容になっている個所が見つかったら、直接手順を編集して適宜修正します。

チャットエージェントの変更後の動作を確認します。そのためには、変更内容をプレビューに反映する必要があるので、[プレビューを更新] ボタンを押下します。

 

Missing alt text value

動作テスト

プレビューでチャットと対話し、期待通り動作するかどうかテストして確認します。

手順の編集や精緻化は何度でも実施できますので、この時点で更に変更を加えることができます。

Missing alt text value

更新した内容を反映

テストが完了したら、[チャットエージェントを起動] ボタンを押下し、更新した内容をチャットエージェントに反映します。

参考のため、洗練したチャットエージェントで生成したプログラム説明書のサンプルを添付します。

COBDATFT(2).md

Missing alt text value

プレビュー

生成した Markdown ファイルをダウンロードした後、VSCode 等のツールでプレビューできます。

(※) 2026/05/20 付けでリリースされた Visual Studio Code 1.121 以後のバージョンで Mermaid プレビュー機能が利用可能になっており、Markdown 内の Mermaid 記法による図をそのままプレビューできます。

参考: Visual Studio Code 1.121

Missing alt text value

追加した処理フロー

今回追加した処理フローの部分は右図の通りです。

Amazon Quick のプラン

Amazon Quick には、ユースケースと利用規模に応じて 4 つのプランが用意されています(参照: Amazon Quick の料金)。
お手軽に体験して頂ける無料プランもありますが、今回ご紹介したスペースの作成やカスタムエージェントの作成は、「プラス」以上のプランでサポートされている機能です。

まとめ

AWS Transform for mainframe がサポートしていないレガシー言語で実装されたプログラムが少量の場合は、本記事に示した方法で、処理内容を効率的に理解できることがおわかり頂けたと思います。本記事では、アセンブラを取り上げましたが、冒頭に示した前提事項を満たせば、他のプログラミング言語でも同様の操作でお試し頂けます。

インターネット上に技術情報が出回っていないレガシー言語は LLM が学習していないため、ハルシネーションが発生し易いと考えられます。今回は、プログラミング言語のマニュアル PDF ファイルを Web サイトからダウンロードして「スペース」に格納しました。メーカー提供の媒体でのみ入手可能なドキュメントの方が、より効果を実感できるはずです。

より実践的かつ的確に処理されるよう、必要に応じてプロジェクト標準の規定や規約等も追加すると良いケースがあります。カスタムエージェントを自由にカスタマイズし、「スペース」を活用して補強できる点も今回ご紹介した方法の利点一つです。

メインフレームアプリケーションは、その時々のテクノロジーを取り入れたという歴史的な経緯により、多様なプログラミング言語で構成されている場合があります。これまでは個々の言語に熟練した専門家に頼るしか無かったようなモダナイゼーション作業も、エージェンティック AI の応用が有効な領域の一つと考えられます。

ハルシネーションを抑止するよう工夫しつつ、様々なアイディアが試され、モダナイゼーションの可能性が広がることを期待します。

9/17 (木) AWS Mainframe Modernization Day Tokyo 2026 開催のお知らせ

メインフレーム基幹系システムの AWS 移行を真剣に検討中のお客様向けの対面イベントを 2026 年 9 月 17 日 (木) に麻布台ヒルズで開催します。参加費は無料です。

詳細・お申し込みはブログをご覧ください。

筆者プロフィール

皆川 元
アマゾン ウェブ サービス ジャパン合同会社
メインフレームモダナイゼーション スペシャリスト ソリューションアーキテクト

新卒で入社した会社で七年半アセンブラープログラミングしていました。AWS サービスを活用したメインフレームモダナイゼーションを検討中のお客様や AWS パートナー様をご支援しています。好きなサービスは AWS Nitro System です。

Missing alt text value