こんにちは!ひさふるです。
先ほど(2025年7月14日)、AWS製のAIエージェント搭載IDE”KIRO”のプレビュー版が公開されました!
その実力がどれほどのものか、さっそく触ってみました!
KIROとは?
AWSが開発したAIエージェント搭載の統合開発環境です。
VS Codeなどの代替となるもので、デフォルトでAIエージェントが搭載されているという意味ではCursorに近いでしょうか。
現在のVibe Codingが持つ課題
KIROの設計思想を学ぶ前に、ここ最近の”バイブコーディング”の課題について整理しましょう。
AIを使ったコーディングはプロジェクトの立ち上げに対しては非常に強力に作用し、いわゆるPoC(Proof of Concept、概念実証)の段階では今までと比較にならないほど素早い開発が可能となりました。
しかし、AIによるコーディング(バイブコーディング)を続けていくと気が付かない間に段々と技術負債が蓄積し、いつの間にか可読性皆無のスパゲッティコードが完成していた…なんて経験みなさんも一度はあるのでは無いでしょうか?
そうして生成されたアプリケーションはコードのメンテナンス性が最悪なのはもちろん、Vibe(雰囲気)で仕様を決めてしまったため明文化・体系化されたドキュメントなんてものは無いため、商用環境へのリリースにはとても耐えられない代物に仕上がっていることでしょう。
このような、Vibe(その場の雰囲気)による無秩序な仕様の決定と技術負債の蓄積こそが現在のバイブコーディングの持つ課題であると言えます。
要件定義開発・テスト駆動開発への期待
そこで、そのような無秩序な開発を回避するために、ここ最近では最初にしっかりと仕様やタスクを整理しそれに沿って開発を行う、”要件駆動開発”とも呼べるような手法が良いのでは?と巷で囁かれるようになりました。
また、要件の定義と密接な関係にあるテスト駆動開発も、AIコーディングと相性が良いとされています。
実際、様々な”パイオニア”の方々による工夫・開拓のおかげで、AIコーディングを行っている多くのエンジニアが要件駆動開発に挑戦し始め、そのベストプラクティスを模索し始めていたと思います。
KIROの提示する”要件駆動開発”
KIROは上記のような背景のもと本番環境へのデプロイを見据え、ユーザーのプロンプトから明確な仕様書を生成し、そこから実行すべきタスクを書き出す”仕様(Spec)駆動開発”を達成するために開発されました。(まあ言い方の違いで、ほぼ要件駆動開発と同義でしょうか)
KIROの代表的な実装の流れは、以下のようになっているようです。
- ユーザーが入力したプロンプトから要件定義を行う
- 定義された要件を達成できるような技術スタックの選定を行う
- 1と2の情報をもとに、実際に達成すべきタスクを書き出す
- タスクを順に実行し、自律的に実装を行う
これぞまさに、最近(私を含めた)様々な開発者が追い求めていた実装フローそのものでは無いでしょうか!
確かに、この手法の価値自体は既に周知の通りであり、自分でプロンプトを工夫すればGithub CopilotやClaude Codeなどの既存のAIエージェントでも出来ないことはないでしょう。
しかし、KIROはその手法をIDEという形式で提供し、ノウハウに依存せず誰でも簡単に仕様駆動開発をできるようにしたことが、非常にインパクトのある部分ではないでしょうか。
プロダクトの完成度次第では、CursorやClaude Codeに取って代わるような可能性を秘めていると思います。
参考
実際に使って特徴を理解する
事前情報ではとっても凄そうなKIROですが、本当の実力はどれほどのものか、実際に使ってみました。
セットアップ
まずはインストールと最初のセッティングから。公式ページからインストールを行いましょう。
私はMac OSを使っていますが、WindowsとLinuxにも対応しているようですね。
ダウンロードして起動すると最初にログインを求められます。
AWS製なのでAWS Builder IDでログインしたほうが良いかな…と思いつつ、今回はGoogleでログインを行いました。
(ちなみに、Githubでログインしようとしたらエラーが出ました。単に一時的なものだったかもしれませんが…)
その後、
- VS Codeから設定等をインポートするか
- テーマの選択
- シェルの設定
などを経て、セットアップは完了です。
今回は素のKIROを触ってみたかったのでVS Codeからのインポートは行いませんでしたが、KIROはVS Code互換となるように作られているので、プロファイルや拡張機能に互換性があるようです。
普段VS Codeを使っている皆さんならすんなり移行できそうですね。
ログインが終わるとプロジェクトを選択する画面に。適当にフォルダを作って開きます。
今までのCursorのようなタイプのVibe Codingと、KIROの特徴でもあるSpec(仕様駆動開発)の2つが選べるようですね。
プロンプト入力から仕様策定まで
今回はSpecを選択してこんなプロンプトを入れてみます。以前なんとなく思いついたアプリの開発を頼んでみます。
もちろん、具体的な内容は考えていません。
“夢”の実現性を可視化できるWebアプリを作成したいです。以下に実装したい内容を示します。
ユーザーが”夢(目標)”と”達成目標時期”を入力すると、その情報をもとに生成AIが現在のユーザーの状態(夢の達成度や実力など)を聞き返します。
ユーザーが追加で現在の状態を入力すると、それをもとに生成AIが、一般的にその夢を達成するために必要な時間を、今から達成目標時期までの期間で割ることで、1日や1週間あたりに必要な努力量を試算し、夢の達成難易度とアドバイスをユーザーに提示します。
ユーザーはそれをもとに、夢(目標)や達成目標時期を調整することで、実現可能な”夢”をプランニングすることができるようになります。
入力して実行ボタンを押すとAIエージェントが起動しました。requirements.md
というファイルに、要件定義を書き込んでいくようですね。
(DreamComeTrueって名前のアプリにしようと思ってたんですが勝手に名前も決められちゃった…まあいいか…)
少し待つと要件定義が完了し内容を確認するように促されます。今回は、次のような5つの機能をメインに考えてくれたようです。
- 夢と目標時期の入力 – ユーザーが目標を設定する基本機能
- AIによる現状質問 – ユーザーの現在の状態を把握するための対話機能
- 努力量と難易度の分析 – 核となる分析・計算機能
- 計画の調整 – ユーザーが現実的な計画に修正できる機能
- 結果の保存・共有 – 分析結果を活用するための機能
概ね良い感じだったのですが、今回はDB等を持たないシンプルなアプリにしたかったので結果の保存・共有は削除してもらいました。
デザインフェーズ(設計書作成)
要件定義が完了すると、ワンボタンで次のデザインフェーズ(計画書の作成)に進めます。
こちらも、少し待つとdesign.md
という形式で計画書が作成されました。
シンプルな構成にするために素のHTMLによる実装案を出してきたので、私が普段使っているNext.js+shadcnの構成に切り替えるように指示。
1分も経たないうちに、希望通りの設計書が出来上がりました。(mermeidで簡易的な図も出力してくれるのが良いですね!)
実装計画(タスクリスト)の生成
最後に、要件定義書(requirements.md
)と設計書(design.md
)をもとに、実装計画(tasks.md
)が生成されます。
テストやデプロイの準備までタスクに含まれており、テスト駆動開発を前提としているところが、最近のAI駆動開発のトレンドをおさえている感じがしてとても良いですね。
タスクリストをもとに実際に開発!
それでは、タスクリストをもとに実装をお願いしてみます。
(どうでも良いけどアイコンが可愛いですよね)
環境設定中に各種bashコマンドの実行をして良いか聞かれるので、適宜許可を出してあげます。
単にその場で、実行許可を出す方法のほか、TrustedCommands
に追加することで使えるコマンドを明示的に制御することもできるようです。
そういえば本番環境のデプロイまで勝手にされたりしないかな?と心配していたところ以下のようなレスポンスが返ってきました。
次のタスク「2. 型定義とデータモデルの実装」に進む準備が整いました。続けて実装を進めますか?
どうやらタスク1つずつで確認を入れてくれるようですね。安心です。
また、コードやタスクリストの変更はリアルタイムで確認することができるようです。
Claude CodeはCLIツールならではの強みがありましたが、こちらはIDEに統合されたAIエージェントとしての強みを十二分に発揮している様子ですね。
更に、tasks.md
内では各タスクの直上にStart task
ボタンが表示され、ここから直接タスクの実行を指示できそうです。
これは本当にIDEならではの強みですね。
デプロイ準備タスクの直前まで終わり、出来上がったアプリがこちら。良い感じです。
いくつかバグがありうまく動かない部分もありましたが、気が向いたら修正し、こちらのアプリの詳細も追記しようと思います。
実際にデプロイするところまでやってみても良いかもしれないですね。
おわりに
単純にVS Code互換として設計されている上に、要件定義や設計の質も良いように感じたので、今後は一定数のユーザーを獲得できるのでは無いでしょうか。
もしかしたら実装力やカスタム性はClaude Codeの方が勝るところもあるかもしれませんが、単に要件定義ツールとしての運用でも十分に効果を発揮するように感じました。
使ってみた所感としては非常に満足で、今後の使用感次第ではお気に入りツールの1つになってくれそうな可能性を感じました。
最後までお読みいただきありがとうございました!
雑記
今日、ちょうど会社の懇親会でエンジニアの学習や能力判断についての話題が上がっていたところでした。
ほんの数年前までの新卒エンジニア採用の場では、簡単なWebアプリでも十分にポートフォリオとして提出できましたが、昨今はそれだけでは実力の判断が難しくなってしまっていますよね。
KIROの登場により、理路整然とした設計や仕様策定すら誰でもできるようになってしまったので、新卒エンジニア採用の場で何を基準として能力の判断を行うかは、非常に難しい課題となりそうですね。
Views: 0