Bob Shell で /init と AGENTS.md を使ってプロジェクトを開始する

Bob Shell の /init コマンドを実行して、Bob が毎回の会話で読み込むプロジェクトコンテキストファイル AGENTS.md を生成し、そのコンテキストを最新に保つ方法を学びます。

/init コマンドはプロジェクトをスキャンし、Bob がすべての会話で永続的なコンテキストとして使用する AGENTS.md という構造化された要約ファイルを生成します。/init コマンドは、Bob が対話の開始時にすべてのファイルを再読み込みすることなく、プロジェクトの構造、規約、コードベースに関する知識を Bob に提供する方法です。

大規模言語モデルはステートレスです。新しい会話はすべて、過去の対話の記憶がない状態で始まります。明示的なプロジェクトコンテキストがない場合、Bob は対話のたびにコードベースを探索する必要があり、これは非効率で、規模が大きくなると実用的ではなくなります。

このチュートリアルでは、デモアプリケーションのルートディレクトリで Bob Shell を初期化し、Bob がアプリケーションについて把握するコンテキストを確認し、Bob Shell が AGENTS.md ファイルを読み込む仕組みを学びます。

前提条件

このチュートリアルを完了するには、以下が必要です:

  • まだお持ちでない場合は、Galaxium Travels デモコードをクローンします。クローンコマンドは、チュートリアルで使用するコードを含む bob-learning-path-branch もチェックアウトします。
    git clone -b bob-learning-path-branch https://github.com/IBM/galaxium-travels
  • 必須ではありませんが、Bob Shell のインターフェースと機能に慣れるために対話型セッションの開始を一通り読むことを検討してください。

プロジェクトで Bob Shell を開始する

Galaxium Travels のルートディレクトリに移動します:

cd galaxium-travels

対話型セッションを開始します:

bob chat --mode agent

--mode agent フラグを指定すると Agent モードでセッションが開始され、Bob がファイルを読み取って AGENTS.md を書き込むために必要なツールが使用可能になります。

Bob Shell からフォルダを信頼するかどうか尋ねられたら、Bob がプロジェクトで作業できるように信頼してください。詳細については、信頼できるフォルダを参照してください。

/init で AGENTS.md を生成する

プロンプトで /init コマンドを入力します:

/init

Bob はプロジェクト内の関連ファイルを読み取ります。

Bob がファイルの読み取りや AGENTS.md の書き込みなどのツールの使用を要求すると、承認ダイアログが表示されます。各リクエストに対して Approve を選択してください。

Bob は Galaxium Travels のルートディレクトリにメインの AGENTS.md ファイルを生成します。また、.bob/rules-agent/AGENTS.md、.bob/rules-ask/AGENTS.md、.bob/rules-plan/AGENTS.md にモード固有のコンテキストファイルも生成します。

AGENTS.md ファイルを確認する

AGENTS.md ファイルは Bob のためのオンボーディングドキュメントです。Bob がプロジェクトの構造や規約を理解するために必要なすべてを提供する、簡潔で実用的な要約です。

Bob にファイルを表示するよう依頼します:

Show me the contents of @AGENTS.md

@ 記号はプロジェクト内のファイルを参照するため、Bob は応答する前にそのファイルを読み取ります。別のターミナルを開いて直接ファイルを表示することもできます:

cat AGENTS.md

AGENTS.md ファイルには通常、以下の要素が含まれています:

  • プロジェクトの概要と目的
  • ディレクトリ構造と主要なファイルの場所
  • 技術スタックと依存関係
  • アーキテクチャパターンと規約
  • 開発ワークフロー

/init が作成したすべてのファイルを確認するには、Galaxium Travels ディレクトリで git status を実行します:

git status

Bob Shell が AGENTS.md ファイルを読み込む仕組み

Bob Shell は各タスクの開始時に AGENTS.md などのコンテキストファイルを自動的に読み込みます。

  1. グローバルコンテキスト: ~/.bob/AGENTS.md はすべてのプロジェクトに適用されます。
  2. プロジェクトコンテキスト: プロジェクトルートおよび親ディレクトリの AGENTS.md はプロジェクトに適用されます。
  3. ローカルコンテキスト: サブディレクトリの AGENTS.md はそのサブディレクトリに適用され、コンポーネント固有の指示として機能します。

特定のモードのみに対する指示を Bob に与えるには、Plan モード用の .bob/rules-plan/ のように、.bob/rules-<mode>/ ディレクトリ内にモード固有のルールを追加します。

AGENTS.md ファイルをメンテナンスする

以下の変更を行った後に /init を再実行してください:

  • 新しいモジュールやサービスの追加
  • ディレクトリ構造の変更
  • 新しいテクノロジーやフレームワークの採用
  • Bob を使用する新しいチームメンバーのオンボーディング

また、AGENTS.md を手動で編集して、ビジネスルール、デプロイ規約、チーム固有のプラクティスなど、Bob の自動スキャンでは取得できない可能性のあるコンテキストを追加することもできます。チーム全体で同じコンテキストを共有できるように、AGENTS.md をバージョン管理にコミットしてください。

次のステップ

このチュートリアルでは、以下について学びました:

  • 大規模言語モデルはステートレスです。/init コマンドを実行して、Bob が毎回の会話の開始時に読み込む永続的なコンテキストファイル AGENTS.md を生成することで、この問題を解決できます。
  • プロジェクトに大きな変更があった場合は /init を再実行して、コンテキストを最新の状態に保ちます。

Bob Shell 向けの効果的なプロンプトを書く に進み、望むアウトプットを確実に生成するプロンプトの作成方法を学びましょう。

このトピックはいかがですか?