Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】How Kiro Changed the Way I Build (for real)

2025年09月15日に「Dev.to」が公開したITニュース「How Kiro Changed the Way I Build (for real)」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

KiroはLLM開発で、場当たり的なプロンプト作成から計画的なエンジニアリングへ手法を変革した。事前に目標やポリシーを定義し、仕様からコードを自動生成。エラー処理も改善し、ポリシー適用の一貫性ある開発を実現。品質向上と効率化を両立させ、より落ち着いた開発を可能にする。

出典: How Kiro Changed the Way I Build (for real) | Dev.to公開日:

ITニュース解説

システム開発において、特に初めて本格的なプロジェクトに取り組む際、何から手をつけて良いか迷うことは多い。とりあえずコードを書き始めて試行錯誤する「何が起こるかわからない」という開発スタイルは、一見するとスピーディーに見えるかもしれないが、実際には予期せぬ問題や手戻りが多く発生し、結果として非効率になることがある。今回紹介するKiroというツールは、まさにそうした無計画な開発から、より計画的で堅牢なシステム構築へと導いてくれるものだ。

Kiroを導入する前、筆者はコードエディタを開いて、その場の思いつきで開発を進めていた。しかし、Kiroを使うことで、開発のプロセスが良い意味で「遅くなった」と感じるようになったという。この「遅くなった」というのは、決して開発スピードが落ちたという意味ではない。むしろ、開発を始める前の準備と計画に時間をかけるようになった、という意味だ。

Kiroを使った開発では、まずプロジェクトの開始時に「ワンページブループリント」を作成する。これは、まるで建物を建てる前の設計図のようなものだ。このブループリントには、大きく分けて以下の要素が含まれる。

まず、プロジェクトの最終目標が明確に定義される。例えば、「企業向けの調達コパイロット(副操縦士)を作成する」といった具体的な目標だ。これは、システムが何を実現するべきかを明確にする羅針盤となる。

次に、「エージェント」の定義とスコープを決める。エージェントとは、システム内で特定の役割を果たす独立した機能単位のことだ。例えば、調達コパイロットであれば、「交渉」エージェント、「コンプライアンス(法令順守)」エージェント、「予測」エージェントといった具体的な役割が定義される。それぞれのエージェントが担当する範囲や役割を明確にすることで、機能間の重複や漏れを防ぎ、システムの全体像を把握しやすくなる。

そして、最も重要なのが「高度なコンテキストエンジニアリングルール」の設定だ。これは、システムが動く上でのルールや制約を定める部分で、特にAI(人工知能)を活用したシステムで重要となる。具体的には、以下の三つのルールが挙げられる。

一つ目は、「グローバルポリシーコンテキスト(GPC)」を設定し、それが削除されないように固定すること。GPCは、システム全体に適用される最も基本的なルールや方針、例えば「コストを常に最優先する」や「特定の法的要件を絶対に順守する」といったものだ。これはシステムの根幹に関わる部分なので、開発の途中で誤って変更されたり削除されたりしないように保護する必要がある。

二つ目は、GPC以外の「コンテキスト」に対して予算を設定すること。コンテキストとは、AIが判断を下す際に参照する情報のことだ。このコンテキストが多すぎると、AIへの指示(プロンプト)が肥大化し、処理が重くなったり、意図しない結果を招いたりする可能性がある。そこで、各コンテキストに適切な「予算」(例えば、参照する情報の量や範囲)を設定し、プロンプトが不必要に長くなるのを防ぐ。これにより、AIの応答品質を維持しつつ、効率的な処理が可能になる。

三つ目は、システムが出力するすべてのドラフトを、最終的にユーザーに提示する前に「グローバルポリシー批評(Global Policy Critic)」にかけること。これは、出力された内容がGPCやその他の設定されたポリシーに準拠しているかを自動的にチェックする仕組みだ。例えば、調達コパイロットが契約書案を作成した場合、この批評家が「特定の法的リスクを含む条項がないか」「予算を超過していないか」といった点を自動的に確認し、問題があれば修正を促したり、警告を出したりする。これにより、システムが常に期待される品質と安全性を保つことができる。

このようなブループリントが完成したら、Kiroはそれを元に「仕様からコードへ」とスムーズに移行するプロセスを支援する。各機能は、Kiroが理解できる短い「作業指示」として定義される。この指示には、その機能がどのような経路(URL)でアクセスされるか、どのようなデータ(リクエスト)を受け取り、どのようなデータ(レスポンス)を返すか、どのような制約(例えば、特定のAIモデルを使う、CPUリソースの制限内で動かす、トークンの使用量の上限)があるか、そして「完了」とは具体的にどういう状態を指すのか、といった詳細が含まれる。

Kiroはこれらの詳細な仕様を受け取り、そこから「FastAPI」というウェブフレームワークを使ったクリーンなコードの骨格(スケルトン)を自動生成する。このスケルトンには、すべてのエージェントに対して一貫した「レール」が設けられている。具体的には、AIへの指示を組み立てる前に必要な情報を準備する「プレフック(事前処理)」と、AIからの応答をユーザーに返す前にポリシーチェックを行う「ポストフック(事後処理)」が共通の仕組みとして組み込まれているのだ。この一貫性があることで、開発者が勝手に独自の最適化を行ってシステム全体に不整合が生じるのを防ぎ、プロジェクトの「ずれ」を大幅に削減できる。

Kiroの導入は、ランタイム(システム実行時)の問題に対する考え方も変えた。以前は、AIへの指示である「プロンプト」のせいにしてしまいがちだった問題も、今はより構造的な視点から解決策を探るようになった。例えば、CPU上で大規模なAIモデル(20Bは200億パラメータを意味する)が遅延を引き起こすような場合、Kiroに「防御的エンジニアリング」を依頼できる。これは、システムが問題なく動作し続けるための保護策を組み込むことだ。具体的には、HTTPリクエストのタイムアウト時間を長くしたり、AIに与える情報の量を制限してトークン予算を小さくしたり、さらには複数のAIモデルを段階的に利用する「トリプルフォールバックLLMクライアント」を導入したりする。このフォールバック機能とは、例えば一番性能の良いAIモデルが応答しない場合、次に別のモデルを試す、それもダメならさらに別のモデルを試す、といった形で、常に何らかの応答が得られるようにする仕組みだ。これにより、「なぜか応答がない」という謎のエラーではなく、テキストが返ってくるか、あるいは問題がどこにあるかを示す明確なエラーメッセージが得られるようになった。

開発における「イテレーション(反復)」、つまり試行錯誤を繰り返すプロセスも大きく改善された。Kiroで作成した「仕様」は、そのまま「生きているテスト」として機能する。例えば、/agent/negotiation/agent/compliance/agent/forecastといった各エージェントのURLにアクセスすると、グローバルポリシー批評家が即座に、その応答が正しい保証を含んでいるか、リスクの高い条項を削除しているか、予算の差異を適切に反映しているかなどを評価し、結果を表示してくれる。これにより、機能が期待通りに動作しているかをすぐに確認できるのだ。もしビジネスのポリシーに変更があった場合でも、修正が必要なのはグローバルポリシーコンテキストやコンテキストの予算設定だけで済み、何十ものプロンプトを手作業で修正する必要はなくなる。

Kiroは単に開発を高速化しただけでなく、開発者のマインドセットそのものを変えた。「うまくいくまでプロンプトをいじり続ける」という非効率なアプローチから、「契約によるエンジニアリング」という、より計画的で堅実な手法へと移行できたのだ。これは、小さな単位で仕様を明確にし、再利用可能な共通の仕組み(フック)を使い、システムが企業の方針にどれだけ整合しているかを測定できるようにする開発スタイルだ。結果として、より落ち着いて、意図的に開発を進められるようになり、最初から企業利用を前提とした品質の高いシステムを構築することが可能になった。

関連コンテンツ