本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
內容管理
選擇正確的內容方法
Amazon Q 提供三種提供內容的方式,每種都針對不同的使用案例進行最佳化:
| 方法 | 內容視窗影響 | Persistence | 最適合 |
|---|---|---|---|
| 客服人員資源 | 一律作用中 (使用字符) | 跨工作階段的持久性 | 基本專案檔案、標準、組態 |
| 工作階段內容 | 一律作用中 (使用字符) | 僅限目前工作階段 | 暫存檔案、快速實驗 |
| 知識庫 | 只有在搜尋時 | 跨工作階段的持久性 | 大型程式碼庫、廣泛的文件 |
決策流程圖
使用此決策樹來選擇適當的內容方法:
-
您的內容是否大於 10MB 或包含數千個檔案?
-
是 → 使用知識庫
-
否 → 繼續步驟 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 欄位,使其持續存在:
-
記下您經常使用
/context add新增的檔案 -
使用
/agent edit或直接修改 檔案來編輯您的代理程式組態檔案 -
將具有
file://字首的檔案路徑新增至resources陣列 -
儲存代理程式組態
移轉範例:
# 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防止意外遞交敏感內容 -
定期檢閱內容檔案,以確保檔案不包含過時的資訊
-
在對話中使用內容時,請注意要共用哪些資訊