コアコンセプト

大規模プロジェクトでの作業

Bob IDEで大規模なコードベースを管理します。コンテキスト・ウィンドウの最適化、ファイル処理、エンタープライズ規模のプロジェクトのベスト・プラクティスを理解します。

大規模プロジェクトにおけるコンテキスト制限を理解する

Bobは限られたコンテキスト・ウィンドウを持つ大規模言語モデルを使用します。これは、Bobが一度に処理できるテキストの最大量(トークンで測定)です。コンテキストが大きすぎると、Bobはリクエストを理解できなかったり、正確な応答を生成できなかったりする可能性があります。

コンテキスト・ウィンドウには以下が含まれます:

  • システム・プロンプト(Bobへの指示)
  • 会話履歴
  • @でメンションしたすべてのファイルの内容
  • Cmd + L(Mac)またはCtrl + L(Windows/Linux)を使用してチャットに送信された選択テキスト
  • Bobが使用したすべてのコマンドまたはツールの出力

コンテキスト管理の戦略

  1. 具体的に指定する: ファイルやコードを参照する際は、特定のファイル・パスと関数名を使用します。「メイン・ファイル」のような曖昧な参照は避けてください。
  2. コンテキスト・メンションを効果的に使用: @/path/to/file.tsを使用して特定のファイルを含めます。@problemsを使用して現在のエラーと警告を含めます。@の後にコミット・ハッシュを続けて特定のGitコミットを参照します。エディターでテキストをハイライトし、Cmd + L(Mac)またはCtrl + L(Windows/Linux)を使用してチャットに直接送信することもできます。
  3. タスクを分割: 大きなタスクを小さく管理しやすいサブタスクに分割します。これにより、コンテキストを集中させることができます。
  4. 必要に応じて要約: 大量のコードを参照する必要がある場合は、コード全体を含める代わりに、プロンプトで関連部分を要約することを検討してください。
  5. 現在の履歴を優先: Bobは会話履歴の古いメッセージを自動的に圧縮して、コンテキスト・ウィンドウ内に収まるようにします。これを認識し、必要に応じて重要なコンテキストを再度追加してください。
  6. 大きなファイルの処理を構成: 大きなファイルの処理設定を調整して、特定のサイズしきい値を超えるファイルをBobがどのように処理するかを制御します。これにより、大きなファイルを操作する際のコンテキスト使用量を管理できます。
  7. MCPツールの使用を管理: MCPサービスで特定のツールを無効化および有効化して、必要なものだけを使用できるようにし、未使用のツール定義によるコンテキスト消費を削減できます。
  8. 独立した作業にはサブエージェントまたはサブタスクを使用: 大規模で自己完結型の作業には、サブエージェントまたはサブタスクの使用を検討してください。どちらも独自の個別のコンテキスト・ウィンドウで実行され、メインの会話を軽量に保ちます。spawn_subagentstart_subtaskの詳細については、Toolsを参照してください。
  9. ファイル全体のメンションの代わりにシンボル・ツールを使用: @でファイル全体をメンションする代わりに、BobはGetSymbolsOverviewFindSymbolなどのツールを使用して、関連するクラスや関数に直接ナビゲートできます。これにより、必要なものだけを取得し、ファイル全体をコンテキストにロードすることを回避できます。

例:大きなファイルのリファクタリング

大きなTypeScriptファイル(src/components/MyComponent.tsx)をリファクタリングする必要がある場合、効果的なアプローチは次のとおりです:

  1. 最初の概要を取得:
    @/src/components/MyComponent.tsx このファイルの関数とクラスをリストして。
  2. 特定の関数をターゲットにする:
    @/src/components/MyComponent.tsx `processData`関数をPromiseの代わりに`async/await`を使用するようにリファクタリングして。
  3. 反復的な変更を行う: 小さく段階的な変更を行い、各ステップをレビューして承認します。

タスクを分割し、特定のコンテキストを提供することで、コンテキスト・ウィンドウの制限内で大きなファイルを効果的に操作できます。

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