內容管理 - Amazon Q Developer

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

內容管理

選擇正確的內容方法

Amazon Q 提供三種提供內容的方式,每種都針對不同的使用案例進行最佳化:

方法 內容視窗影響 Persistence 最適合
客服人員資源 一律作用中 (使用字符) 跨工作階段的持久性 基本專案檔案、標準、組態
工作階段內容 一律作用中 (使用字符) 僅限目前工作階段 暫存檔案、快速實驗
知識庫 只有在搜尋時 跨工作階段的持久性 大型程式碼庫、廣泛的文件

決策流程圖

使用此決策樹來選擇適當的內容方法:

  1. 您的內容是否大於 10MB 或包含數千個檔案?

    • → 使用知識庫

    • → 繼續步驟 2

  2. 您是否在每次對話中都需要此內容?

    • → 使用客服人員資源

    • → 使用工作階段內容

快速參考:

  • 基本專案檔案 (README、組態、標準) → 客服人員資源

  • 大型程式碼庫或文件集 → 知識庫

  • 目前任務的暫存檔案 → 工作階段內容

了解內容視窗的影響

內容檔案和代理程式資源會在每次請求時從內容視窗取用權杖,無論是否參考。使用 /context show 監控字符用量:

q chat > /context show Total: ~1100 tokens

權杖限制:內容檔案僅限於模型內容視窗的 75%。超過此限制的檔案會自動捨棄。

在搜尋之前,知識庫不會耗用內容視窗空間,因此非常適合大型參考資料。如需詳細資訊,請參閱知識庫內容 (適用於大型資料集)

管理內容

內容檔案包含您希望 Amazon Q 在對話期間考慮的資訊。這些可能包括專案需求、編碼標準、開發規則,或任何其他有助於 Amazon Q 提供更相關回應的資訊。

使用代理程式資源設定持續性內容

設定內容的建議方式,是透過代理程式組態檔案中的 resources 欄位。這樣就會建立您每次使用代理程式時都可以使用的持續性內容。

將檔案路徑或 glob 模式新增至代理程式組態中的 resources 陣列:

{ "name": "my-agent", "description": "My development agent", "resources": [ "file://README.md", "file://.amazonq/rules/**/*.md", "file://docs/**/*.md", "file://src/config.py" ] }

資源必須加上字首 file://,才能作為內容檔案加入。這些檔案會在使用此代理程式的所有聊天工作階段中自動提供。

新增臨時工作階段內容

您可以使用 /context add 命令臨時新增檔案至目前的聊天工作階段。這些新增項目僅適用於目前的工作階段,當您啟動新的聊天工作階段時,將不會持續存在。

q chat > /context add README.md Added 1 path(s) to context. Note: Context modifications via slash command is temporary.

您也可以使用 glob 模式一次新增多個檔案:

q chat > /context add docs/*.md Added 3 path(s) to context. Note: Context modifications via slash command is temporary.

若要永久變更內容,請改為將檔案新增至代理程式的 resources 欄位。如需詳細資訊,請參閱使用代理程式資源設定持續性內容

知識庫內容 (適用於大型資料集)

對於超過內容時段限制的大型程式碼庫、文件集或參考資料,請使用知識庫。知識庫提供語意搜尋功能,在搜尋之前不會耗用內容視窗空間。

啟用知識庫:

q settings chat.enableKnowledge true

將內容新增至知識庫:

q chat > /knowledge add /path/to/large-codebase --include "**/*.py" --exclude "node_modules/**"

需要相關資訊時,Amazon Q 會隨需搜尋知識庫,因此非常適合用於大型參考資料。

檢視內容

若要檢視您目前的內容,請使用 /context show 命令:

q chat > /context show 👤 Agent (my-agent): README.md (1 match) .amazonq/rules/**/*.md (3 matches) docs/**/*.md (5 matches) 💬 Session (temporary): <none> 5 matched files in use: 👤 README.md (~250 tkns) 👤 .amazonq/rules/security.md (~180 tkns) 👤 .amazonq/rules/coding-standards.md (~320 tkns) 👤 docs/architecture.md (~150 tkns) 👤 docs/best-practices.md (~200 tkns) Total: ~1100 tokens

輸出會顯示:

  • 👤 代理程式:代理程式的 resources 欄位中的持續性內容

  • 💬 工作階段:目前工作階段期間新增的臨時內容

移除內容

若要從目前的工作階段內容中移除檔案,請使用 /context rm 命令:

q chat > /context rm src/temp-file.py Removed 1 path(s) from context. Note: Context modifications via slash command is temporary.

若要清除所有工作階段內容,請使用 /context clear 命令:

q chat > /context clear Cleared context Note: Context modifications via slash command is temporary.

注意:您無法使用 /context 命令移除代理程式定義的內容。若要永久移除內容,請編輯代理程式的 resources 欄位。

常用案例

以下是內容管理的一些常見使用案例:

使用專案規則

Amazon Q 支援專案層級的規則,可用來定義安全準則和限制。這些規則是在專案的 .amazonq/rules 目錄中的 Markdown 檔案中定義。

例如,您可以建立規則來指定:

  • Amazon Q 應該避免存取哪些目錄

  • 所產生程式碼的安全需求

  • 編碼標準和最佳實務

建議您透過代理程式組態來包含專案規則:

{ "name": "my-project-agent", "resources": [ "file://.amazonq/rules/**/*.md", "file://README.md", "file://docs/architecture.md" ] }

您也可以臨時新增專案規則至目前的工作階段:

q chat > /context add .amazonq/rules/*.md Added 3 path(s) to context. Note: Context modifications via slash command is temporary.

如需建立和使用專案規則的詳細資訊,請參閱 IDE 文件中的建立專案規則以搭配 Amazon Q Developer 聊天使用

從工作階段內容移轉至代理程式資源

如果您發現自己重複使用 /context add 命令新增相同的內容檔案,請考慮將其移至代理程式的 resources 欄位,使其持續存在:

  1. 記下您經常使用 /context add 新增的檔案

  2. 使用 /agent edit或直接修改 檔案來編輯您的代理程式組態檔案

  3. 將具有 file:// 字首的檔案路徑新增至 resources 陣列

  4. 儲存代理程式組態

移轉範例:

# Instead of running these commands every session: > /context add README.md > /context add docs/*.md > /context add .amazonq/rules/*.md # Add them to your agent config once: { "resources": [ "file://README.md", "file://docs/**/*.md", "file://.amazonq/rules/**/*.md" ] }

何時使用知識庫

在以下情況下考慮知識庫:

  • 您的內容檔案超過權杖限制 (內容視窗的 75%)

  • 您有大型程式碼庫或文件集

  • 您需要跨廣泛材料進行語意搜尋

  • 您想要避免持續使用內容時段

範例:不是將大型程式碼庫新增為內容檔案:

# This would consume too many tokens: > /context add src/**/*.py # Use knowledge base instead: > /knowledge add src/ --include "**/*.py" --exclude "__pycache__/**"

使用內容設定預設代理程式

您可以設定預設代理程式,其中包含您偏好的內容檔案:

q settings chat.defaultAgent my-project-agent

這可確保您的內容在新的聊天工作階段中自動可用,而不需要每次都指定客服人員。

最佳實務

內容檔案組織

  • 保持內容檔案的重點和相關性,以避免字符限制

  • 使用描述性檔案名稱來表示其用途

  • 在邏輯目錄結構中組織規則和文件

  • 考慮檔案大小 - 非常大的檔案可能會耗用大量的字符

效能考量

  • 使用 監控字符用量/context show,以保持在限制內

  • 使用特定的 glob 模式,而不是過於廣泛

  • 從代理程式組態中移除未使用的內容檔案

  • 考慮將大型內容檔案分割成較小的重點檔案

  • 使用大型資料集的知識庫,以避免內容時段消耗

安全考量

  • 避免在內容檔案中包含敏感資訊

  • 使用 .gitignore 防止意外遞交敏感內容

  • 定期檢閱內容檔案,以確保檔案不包含過時的資訊

  • 在對話中使用內容時,請注意要共用哪些資訊