14
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kiro-cli 設計の肝 ― agent / knowledge / context を混同すると、なぜ破綻するのか ―

Last updated at Posted at 2026-01-07

このシリーズ記事一覧

  1. kiro-cli 実務活用入門  ― agent / context&compact / save&load / todoをどう使い分けるか ―
  2. agentとcontextの違いと設計思想(今回)
  3. kiro-cliのはじめ方(近日公開)
  4. チーム運用ルール設計
     ※第1回を先に読むとより理解が深まります。

要点サマリー

  • kiro-cli は「コマンド補助」ではなく 思考と作業の前提を構造化・外部化するためのCLI
  • kiro-cli には agent / knowledge / context という役割の異なる3つの仕組みがある
  • この3つは似ているが、設計思想と役割は明確に異なる
  • 混同すると、再現性が失われ、作業が積み上がらなくなる
  • 正しく使い分けることで、kiro-cli を 実務で破綻しない作業基盤として使える

※ 混同したまま使うと「便利だけど、あとで自分が一番困るツール」になります。

対象読者

  • kiro-cli を使い始めたばかりの方
  • agent /knowledge / context を何となく使っている方
  • kiro-cli を実務で再利用可能な形にしたい方

はじめに

こんにちは!Dirbatoの社内技術横断支援組織Backbeatに所属している柴田です!
さて、みなさんが大好き(なはず!)のkiro-cliを触っていて、こんな違和感はありませんか?

(※「好き」と言いつつ、たまに「きみ(kiro-cli)さぁ…前回も言ったけど覚えてる?」と、AI相手に謎の説教をしてしまう瞬間、ありますよね、きっと)

  • agent に何を書けばいいのか毎回迷う
  • knowledge に入れた情報が、なんだかコンビニレシートまで混ざって検索結果に出てくる
  • context に情報を入れすぎて会話が重量級になり、レスが筋トレレベル
  • いろんな設定を試せば試すほど「正解」が霧のように消える
    編集イメージ.png
     ※弊社生成AIに作成させた「kiro-cliとケンカしている私」のイメージ図です。

多くの場合、その原因は
agent・knowledge・context を「なんとなく」で使っていることにあります。

この3つは似ているようで、設計思想はまったく別です。
混同したまま使うと、kiro-cli は次第に

  • 再現性がなくなり
  • 作業が積み上がらず
  • 属人化した便利ツール

になっていきます。

本記事では、kiro-cli を 実務で破綻させないために最も重要なポイントである「agent・knowledge・context の違い」について、設計視点で整理します。


1. 一言で整理すると何が違うのか

まず結論です。

  • agent:規律に厳しいプロジェクトマネージャー(手順とルールの番人)
  • knowledge:物知りな司書(引き出しは多いが、整理しないとカオス化)
  • context:現場を走り回る情報屋(その日の噂や最新のバグ情報を持ってくるが、翌日には忘れる)
観点 agent knowledge context
時間軸 永続(セッションを跨ぐ) 永続(蓄積型) 一時(会話中のみ)
変更頻度 低い 中程度 高い
スコープ プロジェクト/チーム プロジェクト/ドメイン タスク/会話
目的 再現性の担保 知識の蓄積・検索 柔軟な対話
検索性 なし あり(セマンティック検索) なし

👉 agent は土台、ナレッジベースは図書館、context は載せ替える荷物
※ 土台(agent)がグラグラで、図書館(ナレッジベース)が散らかったまま荷物(context)を積むと、だいたい途中で崩れます。


2. agent の本質:能力・権限・動作ルール

agent は「プロジェクトマネージャー」的存在です。
常に守るべき前提条件を定義し、それを崩さないことに価値があります。

agent に入れるもの

  • プロジェクト共通の動作ルール
  • セキュリティ・権限に関わる設定
  • 使用可能なツールの制限
  • 基本的なリソース(変更頻度が低いもの)
    (もしプロジェクトマネージャーが毎朝にプロジェクトルールを変えたら、現場は大混乱しますよね?)
{
  "description": "設計レビュー専用エージェント",
  "resources": [
    "file://docs/review-guidelines.md"
  ],
  "allowedTools": ["fs_read", "knowledge"],
  "toolsSettings": {
    "fs_read": {
      "allowedPaths": ["./docs/**", "./src/**"]
    }
  }
}

👉 agent は「頻繁に変えない」こと自体が価値


3. knowledgeの本質:蓄積・検索可能な知識

knowledgeは「図書館の司書」です。何でも覚えてくれますが、棚の整理を怠ると本探しに半日かかります。

ナレッジベースに入れるもの

  • プロジェクトドキュメント(仕様書、設計書)
  • コードベース(実装パターン、ライブラリ使用例)
  • 過去のトラブルシューティング記録
  • チーム内のナレッジ・ベストプラクティス
    ※ ゴミ箱化したknowledgeは、技術書の間にスーパーのチラシやレシートが紛れて出てくる状態です。

以下はサンプルコマンドです。本番環境に適用する前に必ずテスト環境で動作確認してください。

**プロジェクトドキュメントを追加**
/knowledge add -n "project-docs" -p ./docs --include "**/*.md"

**コードベースを追加(ビルド成果物は除外)**
/knowledge add -n "source-code" -p ./src --exclude "**/target/**" --exclude "**/node_modules/**"

【メリット】

  • セマンティック検索:自然言語で関連情報を発見
  • エージェント間共有:各エージェントが独立したナレッジベースを持つ
  • 永続化:セッションを跨いで知識が蓄積

【デメリット】

  • インデックス時間:大量ファイルの初回処理に時間がかかる
  • リソース消費:検索処理でCPU・メモリを使用
  • 更新管理:ファイル変更時の手動更新が必要

👉 「後で検索したい情報」はknowledge(ナレッジベース)へ


4. context の本質:一時的・動的な前提情報

contextは「現場情報屋」。その場限りの情報を持ってきますが、翌日は忘れるタイプ。

context に入れるもの

  • 今回のタスク内容
  • その場限りの制約
  • ログ・エラー・検討メモ
今回レビューするのは認証基盤で、
OAuth2.0 + Cognito を採用予定です。

👉 次のセッションでは不要になる情報


5. 混同すると起きる典型的な破綻パターン

パターン①:agentに一時情報を詰め込む

→ 「ルールは金曜のみ昼休み2時間」に設定され、永遠に変わらず現場が飢える。

パターン②:knowledgeをcontext代わりに使う**

→ 図書館に昨日の昼食メニューが残り続け、技術書検索で「カレーライス」がヒットする惨状。

パターン③:contextに永続情報を毎回入れる**

→ 毎朝「これはプロジェクト共通のルールです」と伝え続ける、ひたすら丁寧すぎる情報屋。

👉 3回以上使う情報は agent またはknowledgeへ


6. 実務フェーズ別の正しい使い分け

要件定義フェーズ

  • agent:要件テンプレート、権限設定
  • knowledge:過去案件の要件書、業界知識
  • context:今回の案件概要、期間、制約条件

設計レビューフェーズ

  • agent:レビュー手順、使用ツール制限
  • knowledge:設計ガイドライン、過去レビュー結果
  • context:今回レビュー対象、論点

実装支援フェーズ

  • agent:コーディング規約、セキュリティ設定
  • knowledge:実装パターン、ライブラリドキュメント
  • context:発生中のエラー、該当コード

トラブルシューティングフェーズ

  • agent:調査手順、アクセス権限
  • knowledge:過去障害事例、解決方法
  • context:現在の症状、ログ、環境情報

7. 図解で理解する agent / knowledge / context / save / todo

kiro-cli 全体構成図解v2.png

👉 agent(土台) を固定し、knowledge(図書館)を充実させると、下流(作業)が安定する!


8. 迷ったときの判断基準まとめ

agent に入れる判断基準

  • 何度も使う動作ルール? → agent
  • プロジェクト共通の権限設定? → agent
  • 変更頻度が低い基本リソース? → agent

knowledge に入れる判断基準

  • 後で検索したい情報? → knowledge
  • プロジェクトで蓄積すべき知識? → knowledge
  • 大量のドキュメント・コード? → knowledge

context に入れる判断基準

  • 今回だけの情報? → context
  • 頻繁に変わる情報? → context
  • 会話の流れで生まれた情報? → context

9. 実装例:3つを組み合わせた設計レビューエージェント

{
  "description": "設計レビュー専用エージェント",
  "allowedTools": ["fs_read", "knowledge"],
  "resources": [
    {
      "type": "knowledgeBase",
      "source": "file://./docs",
      "name": "プロジェクトドキュメント",
      "include": ["**/*.md", "**/*.pdf"]
    },
    {
      "type": "knowledgeBase",
      "source": "file://./past-reviews",
      "name": "過去レビュー事例"
    }
  ],
  "toolsSettings": {
    "fs_read": {
      "allowedPaths": ["./current-design/**"]
    }
  }
}

使用時の流れ:

  1. agent:レビュー手順と権限を定義
  2. knowledge:過去事例とガイドラインを自動検索
  3. context:今回の設計書とレビュー観点を追加

まとめ

  • agent = 厳格なPM
  • knowledge = 物知り司書
  • context = 現場情報屋

この3人を適切に配置すると、プロジェクトは安定します。逆に役割を混同すると、PMがスーパーのレシートを抱えて会議に現れ、昨日のお昼のカレーの指摘をするようなカオスな状況がうまれます。

特にknowledgeは、チームの知識を資産化する強力な機能です。
正しく活用することで、属人化を防ぎ、チーム全体の生産性向上につながります。


今回の内容は「agent・knowledge・context」の役割と設計運用に特化した解説でした。
kiro-cliそのものの基本思想や他機能の概要は、第1回にまとめています。
👉 第1回: kiro-cli 実務活用入門 ― agent / context&compact / save&load / todoをどう使い分けるか ―


次回予告

  • kiro-cliのはじめ方
     ※劣後してしまいましたが、インストール方法などを解説したいと思います!
14
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?