我平常專注於 AI 代理技術的啟蒙,因此在探索使用 AI 代理的技巧方面並沒有那麼投入。
即便如此,作為 Claude Code 的輕量用戶,我仍然想介紹一些至少放進去會方便的設定。
👆也在 GitHub 上公開。
在主目錄下,有用戶範圍(全專案共通)的設定檔。
/Users/username
├── .claude
│ ├── agents
│ ├── CLAUDE.md
│ └── settings.json
└── .claude.json
編輯(如果不存在則創建)這些檔案就可以了。
此外,最近內建了一個名為 claude-code-guide 的子代理,可以透過自然語言輕鬆詢問 Claude Code,來進行正確的設定。
這是著名的 CLAUDE.md(正式名稱為用戶記憶)。
每當開始一個新專案時,可以將那些每次都要在提示中輸入的共同指示統一寫在一起。
.claude/CLAUDE.md
# 基本方針
- 請務必使用中文回應。
- 用戶名為「みのるん」,是一位開發初學者。請用易懂的方式進行解釋並教育他的技術技能。
- みのるん 主要從事使用 AWS 和 LLM 應用程式的最新技術進行網頁應用開發,因此請隨時參考網頁搜尋和 MCP 伺服器上的最新文檔等信息。
# AWS 相關
- 常用的 AWS 區域為維吉尼亞北部(us-east-1)或俄勒岡(us-west-2)。
- 在本地環境中進行 AWS 認證請使用 `aws login` 命令。當 Claude Code 執行代碼時,みのるん 會在瀏覽器中進行認證操作。
- 常用的 Bedrock Claude 模型 ID 為 `us.anthropic.claude-sonnet-4-5-20250929-v1:0` 和 `us.anthropic.claude-haiku-4-5-20251001-v1:0`。
# Claude Code 相關
- 當與みのるん的 Claude Code 交談持續過久時,會導致對話歷史壓縮總結而造成記憶喪失,因此請在自動壓縮尚未觸發前,定期將重要內容以 Markdown 格式保存和更新在專案目錄內。
- 在開發過程中可以將 API 密鑰等機密信息寫入生成的文檔,但一定要記得將其加入 .gitignore。
- 提交消息要用一行簡潔的中文描述。
有些設定作用不大,尤其是在對話壓縮前的數據導出等,這方面使用 Hooks 可能更好。
在等待 Claude 思考的同時開始做其他事情,結果卻發現它停留在早期階段,好浪費時間啊!
在回答時發出聲音提示會非常方便。我們將使用一種名為 Hook 的機制,類似陷阱卡的方式。
可以從 macOS 的預設聲音效果中選擇您喜歡的聲音。
.claude/settings.json
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "afplay /System/Library/Sounds/Glass.aiff"
}
]
}
]
}
}
LLM 具有一次性可輸入的代幣上限(內容窗口)。
同一線程內的對話歷史會在下一次發言時作為上下文添加,因此如果對話過長,會啟動自動壓縮(auto-compact)。
在此之後,會變得不聰明,因此如果請求「請把我到目前為止學到的內容以 Markdown 輸出」等會有效。
Claude Code 提供了一個狀態顯示(Statusline)功能,可以顯示內容窗口的使用率。我們來設置一下。
.claude/settings.json
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh"
}
}
可以製作以下的腳本。
.claude/statusline.sh
#!/bin/bash
input=$(cat)
CONTEXT_SIZE=$(echo "$input" | jq -r '.context_window.context_window_size')
USAGE=$(echo "$input" | jq '.context_window.current_usage')
if [ "$USAGE" != "null" ] && [ "$CONTEXT_SIZE" != "null" ] && [ "$CONTEXT_SIZE" != "0" ]; then
CURRENT=$(echo "$USAGE" | jq '.input_tokens + .cache_creation_input_tokens + .cache_read_input_tokens')
PERCENT=$((CURRENT * 100 / CONTEXT_SIZE))
echo "Context: ${PERCENT}%"
else
echo "Context: -"
fi
這個也可以請 Claude 幫忙,自動生成適合的狀態顯示腳本。
結果會像這樣👇
我常用的有以下幾個。
MCP 設定只需寫在主目錄下的 .claude.json 中,因為篇幅較長,參見以下內容。
使用 Claude Code 標準的網頁搜尋功能以及各種 MCP 伺服器時,可能會產生大量的文檔或日誌信息,填滿上下文,影響推理精度或加速達到上限。
為了防止這種情況,將易消耗上下文的任務分離到「子代理」,僅返回經挑選的結果到 Claude Code 的主會話中,是一個有效的方法。
只需在 .claude/agents 下放置 Markdown 檔,即可創建子代理。
使用 /agents 命令,可以輕鬆用自然語言創建自己想要的子代理。
我對 Claude Code 的代碼編輯或命令執行是全部經過我審核批准的,但對於搜尋等參考操作,我希望能進行自動批准。
可以這樣設置權限。
.claude/settings.json
{
"permissions": {
"allow": [
"WebFetch",
"WebSearch",
"mcp__aws-knowledge__*",
"mcp__context7__*",
"mcp__strands__*",
"mcp__cdk-mcp-server__*",
"mcp__github__get_*",
"mcp__github__list_*",
"mcp__github__search_*",
"mcp__chrome-devtools__list_*",
"mcp__chrome-devtools__take_snapshot",
"mcp__playwright__browser_snapshot",
"mcp__playwright__browser_console_messages"
]
}
}
結束。
如果有任何錯誤的設定,期待您的評論!
對於即將入門的朋友,請從這裡開始!
不僅僅使用 AI 代理,創造它會更有趣!!
原文出處:https://qiita.com/minorun365/items/3711c0de2e2558adb7c8