Kiro CLIによる非対話形式×コンテキストで実現する安定したAI自動化
この記事は、NTTテクノクロス Advent Calendar 2025シリーズ1の21日目の記事になります。
皆さんこんにちは。NTT テクノクロスの野田です。
2025年7月からAIを使った新規ビジネス開拓を進めるチームに所属となりました。
この記事を読む皆様は、AIツールを使っていてこんな経験はありませんか?
- 同じ指示を出しているのに、毎回結果の精度に大きなばらつきがある
- 定型的な作業なのに、毎回手動でAIに指示を出すのが面倒
- 「この処理、定期実行できたら便利なのに...」と思ったことがある
私が現在技術検証の中で使用しているAWSのKiro CLIは、通常のAIチャット機能だけでなく非対話形式で定型作業を完全自動化でき、コンテキストを活用することでプロジェクト固有のルールに従った安定した結果を得られる非常に便利なツールです。
一度プロンプトを作成すれば同じ処理を何度でも再現でき、cronやシェルスクリプトと組み合わせることで完全自動化も実現できます。
本記事では、そんな便利なKiro CLIの特徴と使い方について紹介させていただきます。
本記事では、このKiro CLIのコンテキストと非対話形式に絞って紹介させていただきます。そのほかのKiro CLIの一般的な使い方などは、Kiro ユーザーガイドなどをご確認ください。
AIの性質として毎回完全に同じ結果になるのは現状難しいです。本記事でのコンテキストの紹介はあくまで改善が目的になりますのでご了承ください。
1. はじめに
Kiro CLIとは
Kiro CLIは、AWSが提供するAI支援ツールで、コマンドラインから対話できるCLIツールです。Kiro CLIは Amazon Q Developer CLI の次期アップデート版となっており、2025年11月17日にリリースされたv1.20.0から正式にKiro CLIにアップデートされました。2025年12月17日時点でv1.22.0までバージョンアップされています。
Kiro CLIは、macOS、Linux (WindowsはWSL経由)でサポートされています。ファイルの読み書き、コマンド実行、AWS CLIとの連携など、開発に必要な操作を自然言語で指示できます。通常のチャット形式での対話だけでなく、非対話形式で実行可能な点が大きな特徴で、コンテキストを活用することでプロジェクト固有のルールに従った安定した結果を得ることもできます。
2. Kiro CLIでできること
Kiro CLIは、対話形式と非対話形式の両方をサポートしており、用途に応じて使い分けられます。
2-1. Kiro CLIの強み
Kiro CLIは単なるAIチャットツールではなく、以下の強みを持つ開発支援ツールです。
-
自然言語での複雑な処理指示: 複数ファイルの横断分析や条件分岐を含む複雑なロジックも自然言語で指示できる
-
コンテキストを活用した賢い処理: 設定ファイルでプロジェクト固有のルールや規約を学習し、一貫性のある処理を実行
-
豊富なツール連携: ファイル操作、コマンド実行、AWS操作を統合し、MCPサーバーで外部ツールとも連携可能
-
非対話形式による完全自動化: シェルスクリプトやcronから呼び出し可能で、CI/CDパイプラインへの組み込みも容易
これらの強みにより、従来は複雑なスクリプトが必要だった処理を、自然言語の指示だけで実現できます。
2-2. 非対話形式の強み
従来のAIチャットツールは対話形式が中心でしたが、Kiro CLIの非対話形式には以下の強みがあります。
- 自動化が可能: シェルスクリプトやcronから呼び出せる
- バッチ処理: 複数のファイルを一括処理できる
- 定期実行: 日次・週次などのスケジュール実行に組み込める
- パイプライン統合: 既存の処理フローに組み込める
- 人手不要: 夜間バッチや定時処理を無人で実行できる
これにより、「毎日同じ作業をAIに依頼する」「定期的なレポート生成」「ログ分析の自動化」といった、これまで手作業で行っていた定型業務を自動化できます。
2-3. コンテキスト機能の強み
Kiro CLIの真価は、コンテキスト(文脈情報)を適切に設定することで発揮されます。コンテキストとは、AIがタスクを実行する際に参照する「動作ルール」や「役割定義」のことです。
Kiro CLI起動時にこれらのコンテキストを読み込ませることで、以下の強みがあります。
- 一貫性のある出力: 同じ指示に対して安定した結果が得られる
- プロジェクト規約の遵守: コーディング規約やドキュメント形式を自動的に適用できる
本記事のコンテキスト例を以下に記載します。
本記事では全体的に共通に使えるグローバル設定のみを紹介します。個別にプロジェクトごとに設定することも可能ですが、その設定方法は本記事では割愛させていただきます。
~/.kiro/steering/default.md
steering配下には、AIの全体的な振る舞いを制御する動作ルールを記載します。steering配下に記載されたルールは、デフォルトでは全エージェントに適用されます。(エージェントごとに除外する設定も可能)
ここでは主要な作業原則を定義しており、Kiro CLIはこの原則に沿って処理を実行します。
## 作業原則
1. 正確性の徹底 - 推測・思い込みで書かない
2. 完全性の追求 - 作業時間は考慮せず、省略・効率化は一切行わない
3. 作業の範囲 - 参照のみ行い、指示内容以外でファイルの追加・修正・削除は絶対に行わない
4. 基本作業ルール - ~/ai-work ディレクトリ内に作業記録ファイルをYYYYMMDDで作成する
~/.kiro/agents/task_rules.md
agents配下には、特定用途に特化したエージェントの役割定義を記載します。agents配下に記載されたルールは、エージェントごとに使用するルールを設定します。(個別のエージェント設定方法は、Kiro ユーザーガイドなどをご確認ください。)
ここでは後述する実践例向けに議事録解析ルールを定義しており、Kiro CLIはこの定義に従って処理を実行します。
## 議事録の保存場所と命名規則
~/meetings/YYYY-MM-DD-evening.md
## タスクの整理ルール
議事録を読み込み、以下の項目を抽出してください。
1. 実施すべきタスク(優先度順)
2. 各タスクの担当者
3. 各タスクの期限
4. 重要な注意事項
タスクは箇条書きで簡潔に記載してください。
3. 基本的なKiro CLIの使い方
コマンド構文
Kiro CLIの基本的なコマンド構文は以下の通りです。
kiro-cli chat [オプション] [メッセージ]
非対話モードの実行方法
非対話モードで実行するには、--non-interactiveオプションを使用します。
# 基本形
kiro-cli chat --non-interactive "指示内容"
# 例:レポート生成
kiro-cli chat --non-interactive "前日の議事録を分析してレポートを作成して"
日次・定期実行との組み合わせ
cronやタスクスケジューラと組み合わせることで、完全自動化が実現できます。
# crontabの例
0 9 * * * kiro-cli chat --non-interactive "前日の議事録を分析してレポートを作成して" > /home/hoge/tools/report_$(date +\%Y\%m\%d).txt
4. 実践例:前日の議事録から当日タスクを抽出してSlack連携
ユースケース
前日の議事録から当日実施すべきタスクを抽出し、毎朝9時にSlackに自動投稿してチームに周知します。
コンテキストを読み込ませて議事録からタスクを抽出する
指定したコンテキストを読み込ませることにより、その役割定義に沿って指示内容を実行します。
kiro-cli chat --non-interactive "「/home/hoge/.kiro/agents/task_rules.md」を参照して、前日の議事録を分析してタスクを整理して"
steering配下のルールは、デフォルトでは全エージェントに適用されるため、明示的な指定は不要です。
agents配下のルールもエージェントごとに個別に適用するルールを設定可能ですが、その設定方法は本記事では割愛させていただきます。
受け取ったメッセージをslackに投稿する
~/tools/task2slack/slack_send.sh:
#!/bin/bash
MESSAGE=$(cat -)
TODAY=$(TZ=Asia/Tokyo date +%Y-%m-%d)
curl -X POST ${SLACK_WEBHOOK_URL} \
-H 'Content-Type: application/json' \
-d "{\"text\": \"📋 本日のタスク (${TODAY})\n${MESSAGE}\"}"
実行方法
Kiro CLIでタスクを抽出し、その結果をslack_send.shに渡してSlackに投稿します。
kiro-cli chat --non-interactive --trust-tools=fs_read "「/home/hoge/.kiro/agents/task_rules.md」を参照して、前日の議事録を分析してタスクを整理して" | /home/hoge/tools/task2slack/slack_send.sh
定期実行設定
ユーザーのcrontabに以下を追加します。
# 毎朝9時に実行
0 9 * * * kiro-cli chat --non-interactive --trust-tools=fs_read "「/home/hoge/.kiro/agents/task_rules.md」を参照して、前日の議事録を分析してタスクを整理して" | /home/hoge/tools/task2slack/slack_send.sh
5. まとめ
本記事では、Kiro CLIの非対話形式とコンテキスト機能を組み合わせた自動化の実践例を紹介しました。
コンテキスト機能で安定した結果を得ながら、非対話形式でcronやシェルスクリプトと連携することで、定型業務を完全自動化できます。
ぜひ、皆さんの業務でも活用して、効率化を実現してください!
私の記事は以上になります。明日のNTTテクノクロス Advent Calendar 2025は、@CorydorasNomuさんの「そろそろOpenAPI (Swagger) で仕様書を書こう」です。お楽しみに!
参考リンク:
- Kiro CLI ヘルプ (
kiro-cli --help-allコマンドで詳細を確認) - Kiro ユーザーガイド
- Amazon Q Developer ユーザーガイド