Skip to main content
Qoder CLI の拡張

ナレッジベース

Qoder CLIにチームおよびプロジェクトの知識を連携し、エージェントがタスク実行時に既存の経験を再利用できるようにします。

ナレッジベースとは、Qoder CLI がタスクを完了する際に検索および再利用できる、プロジェクトとチームに関する長期知識のことです。これは会話内の一時的なコンテキストではなく、セッションやタスクを超えて継続的に蓄積されるコンテンツです。例えば、プロジェクトの規約、アーキテクチャの説明、モジュールの責務、コード規約、一般的な問題の解決策などが含まれます。 ナレッジベースを活用することで、エージェントは毎回ゼロからプロジェクトを理解する必要がなくなり、以下のことが可能になります。
  • 毎回説明し直すことなく、チームで定められた規約と規範に従う。
  • 関連するモジュールを素早く特定し、モジュールの境界と依存関係を理解する。
  • 過去の失敗や検証済みの解決策を再利用し、同じ間違いを繰り返すのを減らす。
Qoder CLI の知識ソースは主に3つのレイヤーで構成されています。プロジェクト指示とルール長期メモリ構造化ナレッジモジュールです。本ページでは、これらの違い、導入方法、および日常業務での活用方法について説明します。

知識の3つのレイヤー

プロジェクト指示とルール

プロジェクト指示ファイル(AGENTS.md)とルールファイルは、「このプロジェクトでどのように作業すべきか」を記述したものです。例えば、使用するパッケージマネージャー、ディレクトリ命名規約、テストコマンド、コードスタイルの環境設定などが含まれます。これらはプロジェクトと共にリポジトリにコミットされ、チームメンバー間で共有され、エージェントはセッション開始時に自動的にロードします。 これは最も基本的かつ最もよく使用される知識レイヤーであり、すべてのコントリビューターが遵守すべきプロジェクト規約を配置するのに適しています。詳細なファイルの場所とロードロジックについては、メモリ を参照してください。

長期メモリ

長期メモリは、セッションを超えた環境設定、事実、習慣を保存し、ユーザーレベル(すべてのプロジェクトに適用)とプロジェクトレベル(現在のプロジェクトのみに適用)に分かれます。プロジェクト指示とは異なり、メモリは「蓄積された経験と環境設定」に重点を置いており、使用過程で継続的に蓄積および整理することができます。 Qoder CLI は、これらのコンテンツを維持するためのメモリ管理機能を提供しています。
  • 組み込みのメモリ管理サブエージェントが、メモリエントリの追加、重複排除、整理を担当し、適切な保存場所にルーティングします。
  • /remember は自動的に蓄積されたメモリをレビューし、プロジェクト指示ファイルまたはローカル指示ファイルへの昇格を提案するとともに、期限切れ、競合、重複しているエントリを特定します。
メモリの階層、ルーティングルール、管理方法については、メモリ を参照してください。

構造化ナレッジモジュール

大規模なコードベースの場合、サブシステムの知識を構造化ナレッジモジュール(例えば、モジュールごとに分割された指示ページ)として整理し、そのモジュールのアーキテクチャ設計、重要なファイル、責務の境界、使用方法を記述することができます。この種の知識はドキュメント形式でプロジェクト内に保存され、エージェントは関連するタスクを処理する際に必要に応じて検索できるため、すべての内容を一度にコンテキストに詰め込む必要がありません。 構造化ナレッジモジュールは、「解明に多大な労力が必要かつ繰り返し使用される」ドメイン知識を蓄積するのに適しており、チームの新メンバーとエージェントの両方がすばやくクイックスタートできるようにします。

ナレッジベースの導入方法

/init を使用して起点を構築する

プロジェクトルートディレクトリで /init を実行すると、Qoder CLI がプロジェクトを分析し、初期のプロジェクト指示ファイルを生成します。これはナレッジベースを導入する最もシンプルな起点です。まず基本的なプロジェクト指示を作成し、徐々に補充していきます。

プロジェクト規約の記録

すべてのコントリビューターが遵守すべき規約をプロジェクト指示ファイル(AGENTS.md)に記述します。例えば以下の通りです。
# プロジェクトの規約

- 依存関係の管理には npm ではなく bun を使用する
- API ルートは kebab-case で命名する
- コミット前に `bun test` を実行する
- 関数型スタイルを優先する

メモリの蓄積と整理

日常の使用において、Qoder CLI に繰り返し現れる環境設定や事実を記憶させることができます。その後、/remember を使用してこれらの自動メモリを定期的にレビューし、長期的に保持する価値のあるコンテンツをプロジェクト指示ファイルまたはローカル指示ファイルに昇格させ、期限切れおよび重複エントリをクリーンアップします。

構造化知識の蓄積

複雑なサブシステムについては、明確にしたアーキテクチャと規約を構造化ナレッジモジュールとして整理し、プロジェクトにコミットします。これにより、その後チームメンバーもエージェントも、再探索することなくこの知識を再利用できます。

エージェントによるナレッジベースの使用方法

タスクを完了する際、Qoder CLI はナレッジベースを背景情報の一部として使用します。
  • 自動ロード:セッション開始時に、プロジェクト指示とルール、および関連する長期メモリがコンテキストにロードされます。
  • オンデマンド検索:具体的なタスクに直面した際、エージェントはコンテキストスペースを節約するために、すべての内容を一度にロードするのではなく、現在のタスクに関連する知識(特定のモジュールの指示など)を検索します。
  • 制約としての機能:検索された規約と規範は行動制約として機能し、エージェントの計画とコード生成に影響を与え、成果物をチームの既存のプラクティスと一致させます。
  • 継続的な更新:タスク完了後、知識とコードの現状に不一致が見つかった場合、それに基づいて対応する知識コンテンツを更新し、ナレッジベースの正確性を維持できます。

ベストプラクティス

  • 再利用される知識のみを記述する:ナレッジベースの価値は再利用にあります。一回限りの一時的な情報ではなく、後続のタスクをより良く、より速く、またはチームの規約に適合させるのに役立つコンテンツを配置します。
  • 簡潔かつ正確に保つ:プロジェクト指示ファイルは各セッションでロードされるため、長すぎるとコンテキストを占有します。詳細な内容は構造化ナレッジモジュールに分割し、指示ファイルには概要とインデックスのみを残します。
  • レイヤーを明確にする:すべてのコントリビューターが共有する規約はプロジェクト指示に配置します。個人の環境設定はローカルまたはユーザーレベルメモリに配置します。複雑なサブシステムの深い知識は構造化ナレッジモジュールに配置します。
  • 定期的にメンテナンスする:コードの進化後、/remember を使用して適時にメモリを整理し、指示ファイルを更新して、知識の期限切れによるエージェントの誤誘導を防ぎます。
  • 競合と重複を避ける:同じ規約を複数のレイヤーで重複させないでください。競合が見つかった場合は、最新かつ最も正確なものを保持します。

次のステップ

  • メモリの完全なメカニズムを理解する:メモリ
  • コンテキストがどのように連携するかを理解する:コンテキスト
  • スキルを使用してチームのワークフローを再利用する:スキル
Qoder CLI を使用する