核心概念

處理大型專案

在 Bob IDE 中管理大型程式碼庫。了解上下文視窗優化、檔案處理和企業級專案的最佳實踐。

了解大型專案中的上下文限制

Bob 使用具有有限上下文視窗的大型語言模型。這是 Bob 一次可以處理的最大文字量(以 tokens 衡量)。如果上下文太大,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. 對獨立工作使用 subagent 或 subtask:對於大型、獨立的工作,請考慮使用 subagent 或 subtask。兩者都在自己獨立的上下文視窗中執行,保持主對話簡潔。有關 spawn_subagentstart_subtask 的詳細資訊,請參閱 Tools
  9. 使用符號工具而非完整檔案提及:與其使用 @ 提及整個檔案,Bob 可以使用 GetSymbolsOverviewFindSymbol 等工具直接導航到相關的類別或函式。這只檢索所需內容,避免將完整檔案載入上下文中。

範例:重構大型檔案

如果您需要重構大型 TypeScript 檔案(src/components/MyComponent.tsx),以下是一種有效的方法:

  1. 獲取初始概覽
    @/src/components/MyComponent.tsx 列出此檔案中的函式和類別。
  2. 定位特定函式
    @/src/components/MyComponent.tsx 將 `processData` 函式重構為使用 `async/await` 而不是 Promises。
  3. 進行迭代變更:進行小型、增量變更,審查和批准每個步驟。

透過分解任務並提供特定的上下文,您可以在上下文視窗限制內有效地處理大型檔案。

這個主題如何?