
ワークショップから見える、組み込み領域でのKiro活用の可能性
「組込領域でもKiroを活用したAI駆動開発が実践されるようになってきたのか…」
先日参加したre:Invent 2025で実施されていた以下のワークショップ。
Accelerating Smart Products SDLC with Amazon Q Developer (IND303)
金曜日にはすでに帰路についていたため残念ながら参加できなかったのですが、そのワークショップの内容がパブリックに公開されたと聞き、実際に触ってみた様子をお届けします。
通常のWebシステムのAI駆動開発とは一味違う、組込領域ならではの体験ができる貴重なワークショップとなっています!
ワークショップの内容

(ワークショップTOP画像から引用)
このワークショップでは、AI エージェントを活用してスマートプロダクト開発のソフトウェア開発ライフサイクル(SDLC)全体を加速する実践的な方法を学習します。HVACコントロールシステムを題材とした5つの実習ラボを通じて、研究・プロトタイピングから運用・保守まで、開発の各段階でAIがどのように貢献できるかを体験します。
以下、自分が実際にワークショップを進めながら感動した点を中心に、流れを記載しています。細かい手順は全てワークショップに記載されているので、このブログは、全体の流れをざっくり把握するのにご利用下さい。
Lab1:Research - AIエージェントによるプロトタイピング加速

このディレクトリには、既存の HVAC アプリケーションのソースコードが含まれています:
- C++11で実装されたQtベースのGUIアプリケーション (センサーインターフェース、コントローラー、HMIコンポーネント)
- ビルド設定(Makefile)
- ドキュメント(README.md、requirements.md)
- Kiroの設定ディレクトリ (.kiro)
既存コードとしてこれらが含まれています。自分、全くC++11とか触ったこと無いので、このワークショップの想定ユースケース通り**「レガシーコードの理解に時間がかかる」**状態になってます。正直わからなさすぎて怖い。
というわけで、ここから既存コードの理解をKiroをベースにやってしまうというわけです。ワークショップでは特に触れられていないですが、このディレクトリの.kiroディレクトリの中には、以下のファイルが含まれていました。
## Language Usage
Respond in the same language as the user's prompt.
If asked in Japanese, respond in Japanese. If asked in English, respond in English.
プロンプトに対してその言語で返してくれるということですね。たしかにコレがあると助かります。たまにLLMって日本語で問い合わせても英語で返ってくることあるので。
kiro-cliからKiroを起動して、以下のプロンプトを入力します。
#README.md と #requirements.md を読んで、このHVACアプリケーションについて教えてください。
アプリケーションの主な機能、使用している技術スタック、ディレクトリ構造、アーキテクチャの概要を説明してください。
ここは時間はあんまりかからないです。元々、個々にきっちりしたREADME.mdとrequirements.mdが用意されているので。
ソースコードを元に中身をどれぐらい把握してもらえるか聞いてみます。自分、C++のソースコードはほとんど読めないので、ここは本当にKiro頼り。
src/ ディレクトリのコードを見て、GUIの実装方法とセンサーデータの表示ロジックを説明してください。
主要なファイルを読み取ってくれます。

GUIを読み込んで

実装の特徴を教えてくれます。

既存コードの読込は、AI使ったソフトウェア開発の中でも非常によく出てくるシチュエーションですが、Kiroもきっちりこのレガシーコードを読み込んでくれるのは心強い。GUIのテキスト表現を依頼してみます。
このGUIを簡易的なもので良いので、テキストでここに表現してください。
結構しんどい依頼だと思うのですが、きちんと表現してくれました。ありがたい限り。

ここからUIのモダナイズを指示してみます。作成されたファイルとPreviewがこちら。このあたりの意図は、HTMLでデザインを検討することで、素早いイテレーションを可能にすることです。

もちろん自然言語指示によるデザイン変更もできます。
全体的なテーマをダークテーマにして、数値をもう少しカラフルにして視認性をあげてください。

HTMLで作ったからといって、元のアプリケーションに反映できないと意味ないのでは?と思うかも(自分は一瞬思いました)ですが、プロンプトの指示でHTMLモック内容を元に、Qtアプリケーションに変換してもらいます。
output_example/modern_hvac_hmi.html のデザインやレイアウトを正確に理解した上で、src/ 以下のQtアプリケーションに厳密に再現してください。
要件:
- レイアウト構造、カード配置、フォントサイズ、色、余白など、すべての視覚要素を一致させること
- コードをインプレースで編集したのち、ビルド成功までを実行してください
ここではビルド環境が無いので次につながります。
Lab2: Plan - 仕様策定のためのAI協働

Lab1は主に、AI導入の触りの部分という感じでしたが、ここからが本番ですね。以下の内容が含まれています。
- AI支援によるリバースエンジニアリング
- 人間とAIの協働による要件改善
- GitLab統合とチケット管理
流れとしては、GitLab上にリバースエンジニアリングのIssueを作成し、Kiro-agentをアサイン。その後、kiro-cliから、Issueを指定し、その内容を実行させます。既にアクセストークンの設定が完了しているので、kiro-cliはIssueを参照しさらに実施内容をIssueのコメント欄に書き込みながら作業を進めていきます。
kiroのターミナルだけではなく、Issueのコメントがリアルタイムに更新されていくのはなかなか味わい深い。
GitLabのIssueのActivityの様子。

このように別のチケット管理システムに作業内容が記載されていれば、メッセージやコンテキストの紛失で困ることも無さそうですね。もし、チャットメッセージログを紛失してもIssueを見れば作業が再開できそうです。
ここでは関連して、イニシャルプロンプトの解説もあります。Kiroのイニシャルプロンプトは.kiro/steering/に格納されていて、振る舞いの基本、チーム開発におけるプロセスガイダンス、関連ツールの使い方などが記載されています。このあたりのプロンプトの考え方はどの案件でも参考になるんじゃないでしょうか。
私の環境で出来上がったIssue。

出来上がったIssueには、プロダクトオーナーに追加の判断を求める内容が含まれているので、その内容をIssueのコメントに更新します。ここも、直接Kiroに指示を与えずにIssueのコメントに内容を残すことで、チームメンバーとのコミュニケーションや過去履歴を参照しやすくしています。このあたり、Kiroを使った開発の要点として参考になりますね。
このLab2の最後から引用。このLab2の要旨が全てここに集約されています。
今回のように、Kiro CLI へ「作業対象の範囲」や「今やるべきか、将来の予定か」などのスコープを正しく伝えることで、Kiro CLI は人間の意図通りに動きやすくなります。この指示を伝えるには、 チケットを用いて管理することで、私たちは適切なスコーピングと優先度制御を行うことができます。
AIを利用して作業を進める場合、その指示内容を明確にすることが求められますが、そのベースをIssueとすることで、人間とAIの協働作業をスムーズに進める勘所が非常にわかりやすく作られています。是非実際に手を動かして試してみることをオススメします。
Lab3: Development - AI駆動のテスト&デバッグ

Lab2ではいわゆる要件定義をやったわけですが、Lab3では、AI駆動のテストとデバッグを体験できます。
ここのAI自動化具合も素晴らしいです。既存のソースコードにエラーとなる内容が含まれているのですが、その内容の解消に向けたIssueをきちんと制御することで、TDDで言う以下のステップをKiroが完全に自律的に実施してくれます。Issueでテストで使うライブラリを指定しておけば、自動的に関連ライブラリをインストールしてテストしてくれます。
- Redフェーズ - 失敗するテストの作成
- Redフェーズ - テスト実行環境整備
- Redフェーズ - 失敗確認
- Greenフェーズ - 実装修正
- Greenフェーズ - 成功確認
このあたりのテストを実行するためのMakefileと関連ソースも自動的に作成してくれます。ありがたい。

GUI不具合調査では、実際に仮想デバイスをデプロイしてGUIの動作確認ができます。こんな感じで。


ここでは、GUIが定期更新されないという不具合を、これまたIssueドリブンで解決していきます。ここも、Issueをきちんと定義することで、人間がハンドリングしやすく、AIがどこで詰まっているのか、何を考えているのかを対話的に確認して慎重に作業を進めることができます。

組み込みアプリケーションのブラウザ確認のための構成が確認できます。
- ARM64ファミリの仮想マシン
- 仮想ディスプレイ(実機の7インチ 800×480ピクセルのHMIディスプレイを想定)
- VNCで仮想ディスプレイをブラウザ経由で配信
組み込みシステムでは最終的に物理デバイスでの動作確認は必須ですが、開発を高速化するための仮想デバイスの具体的な構成もワークショップドキュメントで紹介されていて、参考になります。
目玉となるLab3の起動中のアプリの調査
ここは恐らく一番の推しポイントかなと思うのですが、仮想マシンからのMQTT送信が停止していることのデバッグのため、Expectスクリプトを活用して自動的に接続し動作確認を行います。このあたりを全自動でやってくれるのは、未来感がありますね。
- Kiro CLI(旧Amazon Q Developer CLI)がExpectスクリプトを自動生成
- SSHで仮想デバイスに接続
- デバイス内でコマンドを実行
- アプリケーションログを取得
このあたりの自律的な動きは非常に心強いです。
その他参考資料
今回のワークショップの作者の一人、AWSの吉川さんによるre:Invent 2025のトレンド解説記事。この資料の後半に、今回のワークショップの概説も含まれているので、是非こちらも参照ください。
改めてKiroを利用したソフトウェア開発の勘所が体験できる素晴らしいワークショップ
このワークショップ内容、準備するのめちゃくちゃ大変だったろうな…
AWSのワークショップ、イベントなどで参加して体験する場合は、AWS提供のテンポラリのワークショップ環境が既にあり、その中で動く前提の手順になっていることが多いです。
これは非常にお手軽で良いんですが、AWS提供の環境ということもあり、数日、早い場合は数時間で環境毎閉じてしまうことが多いのです。
今回のこのワークショップは、自分のAWS環境にセルフホストできそのための手順がしっかり作り込まれているので、いつでも試すことができるのが本当にありがたい。実際に手を動かして構築してみましたが、全ての手順がきちんと揃えられておりほとんど迷うことはありませんでした。
また、組み込み開発を題材にして、そのUIのモダナイゼーション、HTMLモックでのプロトタイプ開発、そのプロトタイプの元ソースコードへの反映、仮想環境へのデプロイなど、一般的なWeb開発とはまた異なった視点での技術要素が散りばめられていて、その点も非常に新鮮でした。
Kiroを使ったAIエージェントによるソフトウェア開発を組み込み領域にも適用するためのヒントが満載の貴重なワークショップ、是非みなさんも体験して、SDLC(ソフトウェア開発ライフサイクル)をAIエージェントと共に進めていくための勘所を掴んでもらえればと思います。
それでは今日はこのへんで。濱田孝治(ハマコー)でした。







