はじめに
前回、Kiro の spec と steering と hook の話を書きました。あれは「作る前の段取り」、つまり手を動かす前にどう整えるか、という話でした。
今回はその続きで、もうひとつの武器 Powers の話です。いま作っている社内ツールの開発で、現在進行形でどう使っているかを書きます。
私が作っているのは、2025年に正式リリースされた Amazon Bedrock AgentCore をベースにした AI ツールです。比較的新しいサービスということは、裏を返すと 情報がまだ少ない。ブログ記事も少ないし、AI に聞いても学習データが追いついていない。けっこう手探りで進む領域でした。
そういうときに効果的だったのが Powers です。一言で言うと、Kiro の Powers は「AI が AWS の”今”の状態や公式ドキュメントを、自分で調べに行ける」拡張。情報が少ないサービスを実装するときほど、これが効きます。
ここで一つ、やってみて分かった逆説があります。AI に任せれば任せるほど、「調べてから書く」という地味な規律のほうが効いてくる、ということ。一見、先に調べるのは”遠回り”に見えます。でも実際にやってみると、その遠回りが一番の近道でした。私はこの「書く前に、まず裏を取らせる」習慣を 裏取りファースト と呼んでいます。AI に推測で書かせない。書く前に、まず裏を取らせる。
正直に言うと、この裏取りファーストを徹底してから「推測で実装して、あとで事故る」が目に見えて減りました。今日はその話を、つまずいた場面も含めて書いていきます。
ざっくり言うと
長くなりそうなので、先に結論を3つ。
- Powers を入れると、AI が 公式ドキュメントや CloudWatch ログを自分で見に行ってくれる
- でも本当に効くのは Power そのものより、「どんなときに裏取りするか」の判断基準を steering に書いたこと
- それで AI が 「推測」と「確認済み事実」を分けて動くようになる。私はこの習慣を 裏取りファースト と呼んでいて、これでデプロイ後の事故がぐっと減りました
特に2つ目が肝です。順に書いていきます。
Powers って何?
Powers が何かというと、MCP ツール(AI が外部サービスに接続する口)と、そのツールの使い方を定義した steering(POWER.md)がセットになった、拡張パッケージです。ツールだけをポンと渡すのではなく、「どういうときに使うか」「どの順番で調べるか」という ワークフローごと AI に渡せる。ここが、ただの MCP 接続と違うところです。
私が主に使っているのは、この2つです。
aws-devops-agent(AWS DevOps Agent Power) — CloudWatch Logs や Lambda の状態を、リアルタイムに調べるaws-agentcore(AWS AgentCore Power) — AgentCore まわりのドキュメント検索と状態確認
ほかにも用途に応じていくつか入れていますが、よく使うのはこの3つです。

たとえば AWS DevOps Agent Power を入れると、AI は CloudWatch Logs を直接読めるようになるのに加えて、「まずログを見て、根本原因を特定して、最後に修正案を出す」という 調査の段取りまでセットで入ってきます。「ツール」だけじゃなく「ツール+使い方のルール」がワンセットになっているわけです。しかもどれも “調べる” ための拡張で、勝手にリソースを消したり作ったりするものではありません。
これを知ったとき、1本目で書いた steering(AI への申し送り書)と同じ思想だな、と思いました。前回の steering が「自分で書く申し送り書」だったのに対して、Power は「その道のプロが書いた申し送り書+それに合った道具が、最初から一式そろっている状態」。自分で全部書かなくても、インストールするだけで AI の動き方がグレードアップするんです。
最初は「便利な検索ツールが増えたな」くらいに思っていました。でも、本当の価値はこの “使い方ごと渡せる” ところにありました。
ここが本題:「推測で実装しない」を AI のルールにした
開発していて一番こわいのは、「たぶんこういう仕様だろう」で書いて、デプロイしてから事故ることです。特に情報の少ない新サービスだと、この「たぶん」が頻発します。
そこで私は、steering(前回書いた “AI への申し送り書” です)に「Power を使うべき判断基準」を書きました。次のどれかに当てはまったら、実装に進む前に必ず Power で確認する、というルールです。
- 環境変数・設定値(自動で入るのか、手で設定するのか)
- API の振る舞い(リクエスト / レスポンスの形式、認証、エラー)
- SDK の使い方(ライフサイクル管理、async 対応など)
- IAM 権限(どのアクションが、どのリソースに必要か)
- サービス間の連携(Runtime → Gateway → Lambda のような経路)
- 課金や制約(タイムアウト上限、サイズ上限、レート制限)
そして、一番効いている一文がこれです。
「推測」と「確認済み事実」を明確に区別する。推測で実装した箇所は、デプロイ後に必ず問題になる。

これを steering に書いておくと、AI が自分で「ここは確認が要るな」と判断して、Power を選んで裏取りしてから実装を進めてくれます。
新しく入ったメンバーに「ここは自分で調べてから書いてね」と口で言う代わりに、ルールとして書いておく。そうすると AI が勝手にやってくれる。これは地味に気持ちのいい体験でした。
調べる順番も決めておいた
判断基準と一緒に、「調査の優先順序」も steering に書いています。
- まずログを見る(CloudWatch などで、実際に何が起きたか)
- 公式ドキュメントで裏を取る(サービスの制約を確認)
- Power で横断的に調べる(DevOps Agent や AgentCore)
- コードを読む
- 選択肢とトレードオフを出して、最後は人(私)に確認する
これも、前回の hook(権限委譲)と同じ考え方です。いきなり手を動かさせず、段取りで縛る。順番を決めておくと、AI の調査が脱線せず、最後は必ず私に判断が返ってきます。
…と、ここまでは「ルールを決めた」話。じゃあ、このルールが無かったらどうなるのか。次は、それを地で行ってしまった、わりと痛い失敗の話です。
急がば回れ — 修正提案にすぐ飛びついて、5連敗した話
正直に、いちばん遠回りした話から書きます。
AgentCore Gateway を CDK でデプロイしようとしたときのことです。最初のデプロイで、いきなりエラーが出ました。「ToolSchema のキーが許可されていない」という内容です。
Kiro が「スキーマの構造を直しましょう」と提案してくれたので、私はそのまま適用しました。そうしたら次は「AllowedAudiences のパターンが合わない」という別のエラー。
「じゃあ認証まわりを直そう」と適用すると、今度は「LambdaTargetConfiguration が invalid」。直すと「InlinePayload が camelCase になっている(PascalCase じゃないとダメ)」。直すと、また別のエラー。
…という感じで、エラーが出る → 直す → 別のエラー、を5回くり返しました。提案が出るたびにすぐ飛びついて、その場しのぎで直して、また別のところが崩れる。完全に負のループです。
いま思えば、本来は2回目あたりで一度手を止めて、ドキュメントを読みに行くべきでした。ただ、エラーがどれも “スキーマの細かい書き方” に見えたので、つい「次こそ直る」と進めてしまったんですよね。
結局どうなったかというと、5回直しても安定しなくて、最後は「CDK で Gateway を管理するのをやめる」という判断にたどり着きました。Gateway の登録は CDK から外して、CLI で個別管理する形にしたんです。
あとから分かったのは、AgentCore Gateway は新しいサービスで、API の仕様が頻繁に変わっていて、CDK の L1 Construct では追従が難しいということでした。これ、最初に公式ドキュメントを Power で1回確認していれば、たぶん見えていた話なんですよね。「ここは CDK で頑張る場所じゃない」と、最初に判断できたはずでした。
5回直す道より、1回調べる道のほうが、ぜんぜん速かった。まさに 急がば回れ です。

この一件で学んだのは、AI の提案を鵜呑みにしない、でも自分で全部調べるのも無理、という現実でした。だから今は「AI に調べさせてから、AI の提案を検証する」という二段構えにしています。これが、はじめに書いた 裏取りファースト の正体です。具体的には、修正提案が出ても、すぐ適用せず——
- まず Power で公式ドキュメントを確認する(本当にその仕様?)
- 「提案された修正」と「実際の仕様」に乖離がないか照合する
- 乖離があれば、修正方針そのものを変える
この「裏取り1手」を挟むだけで、不要な修正の連鎖がほとんど無くなりました。地味だけど、効きます。
ちなみに、新規で実装するときはもう少し順番を厚くしていて、さっき書いた「調べる順番」(ログ → ドキュメント → Power → コード → 人に確認)に沿っています。修正提案の検証は、そのうちの「ドキュメントで裏取り」にあたる部分、という整理です。
もう一つの回り道 — IAM 権限の正体は、名前のひと文字違いだった話
もうひとつ、似たような遠回りをした話を。ただしこれは、あとで steering のルールに化けた、ちょっとだけ報われた失敗です。
E2E の接続確認をしていたとき、Lambda から AgentCore Runtime を呼ぶところで、403(権限エラー) にぶつかりました。
IAM ポリシーには bedrock-agentcore:InvokeRuntime を付けています。名前からして、これで合っているはず。Kiro も「ポリシーは正しいはずなんですけどね…」と言うけれど、何度見直しても 403 が消えません。
ここで本当は、Power で公式の IAM リファレンスを引けばよかった。でも私は先に、ワイルドカード(bedrock-agentcore:*)で全部許可して切り分ける、という手っ取り早い道を選んでしまいました。結果は——あっさり動きました。(念のため:このワイルドカードは原因を切り分けるための dev 環境限定の一時措置で、本番に向けては最小権限に絞る前提です。)
動いたということは、ポリシーの書き方ではなく、アクション名そのものが間違っていたということです。あとから公式リファレンスで確認したら、正しくは bedrock-agentcore:InvokeRuntime ではなく bedrock-agentcore:InvokeAgentRuntime でした。Agent がひとつ入る。

なぜこうなったのか、正確なところは分かりません。ただ、AgentCore が比較的新しいサービスなこと、似た名前のアクション(別サービスの bedrock:InvokeAgent など)が存在することを考えると、AI が “それっぽい名前” を類推で組み立ててしまったんじゃないかと思います。いずれにせよ、AI が自信満々で間違った名前を出してきた、という事実は変わりません。
ワイルドカードで動かしたこと自体は、切り分けとしては正しい一手です。でも、先に Power でドキュメントを引いていれば、回り道せずに一発で分かった——またしても、です。
この一件があってから、私は steering に 「IAM 権限まわりは、実装する前に必ず Power で確認する」 というルールを足しました。さっきの「Power を使うべき判断基準」に IAM が入っているのは、実はこの失敗が元になっています。失敗が、そのままチームのルール(申し送り書)になった、というわけです。
思ったこと
ここまで2つのつまずきと1つのルールを書いてきて、改めて思うのは、AI と開発するときに本当に効くのは「調べる前に手を動かさない」という規律のほうだ、ということでした。
Power という道具そのものより、「いつ・何を裏取りするか」を決めてルール化したことのほうが、ずっと効きました。道具は、ルールがあって初めて活きるんだなと。
もちろん「実装前にドキュメントを読む」なんて、エンジニアにとっては当たり前の基本です。今回おもしろかったのは、その当たり前を AI 自身の挙動として steering に埋め込めた こと。人間が毎回気をつけ続けるんじゃなく、仕組みで担保できるようになったのが、これまでと違うところでした。
これは前回の「書いていないことは、AI に伝わらない」とも地続きです。作るときのルールだけじゃなく、「どう調べるか」も書いておかないと、AI は平気で推測で進みます。逆に書いておけば、ちゃんとそのとおりに裏を取ってくれる。
新しいサービスを触るときほど、この「推測と事実を分ける」規律が効く——これが今回の一番の学びでした。
これからどうするか
いまは aws-devops-agent / aws-agentcore の2つが中心ですが、observability や cost まわりの Power も、運用フェーズに入ったら本格的に使ってみたいと思っています。「Power を使うべき判断基準」も、使いながらまだまだ育てていく予定です。
もし、AI に推測で書かれて困っている方がいたら——「とりあえず動いたけど、なんか不安」みたいな状態の方がいたら、Power と steering の “裏取りルール” はけっこうおすすめです。AI に調べさせてから、その結果で AI の提案を検証する。この二段構えだけで、だいぶ安心して任せられるようになります。
まとめ
- Powers = AI が AWS の「今」や公式ドキュメントを、自分で調べに行ける拡張
- でも効くのは Power 単体じゃなく、「いつ・どう裏取りするか」を steering に書くこと
- ねらいは 「推測」と「確認済み事実」を分けること=裏取りファースト。情報の少ない新サービスほど、これで効いてくる
先に調べるのは、一見すると遠回りです。でも AI と作るときほど、その遠回りが一番の近道でした。
おまけ:このシリーズについて
この記事は、Kiro で社内ツールを作りながら書いているシリーズの一本です。「Kiro をどう使っているか」を、作業のフェーズごとに分けて書いています。
- 書く — 「コードより”要件整理”が得意な人ほど、Kiro と相性がいいかもしれない」(spec / steering / hook で、作る前の段取りを AI に渡す話)
- 調べる — この記事。Powers と “裏取りファースト” で、作りながら推測せず裏を取る話
- レビューする — 「」(書いた設計書が、AI セキュリティレビューの評価軸になっていた話)
書く → 調べる → レビューする。Kiro と一緒に「作る前・作りながら・作ったあと」をどう回しているか、という流れです。
そして最後の一本は、いま作っているプロダクトが完成したら書くつもりです。たぶん「実際に運用に乗せてみたら」みたいな話になると思います。進捗があったら、また書きます。