Anthropic開源Agentic Coding最佳實踐!
周末的時候,Anthropic發布了Agentic Coding的最佳實踐博客。今天給家人們分享一下具體的內容,先揭秘一個它背后有點“反直覺”的小把戲,看看“高端的AI”是如何用上“樸素的if/else”的,最后再帶給大家一波官方總結的實戰干貨!
“ultrathink”的魔法與樸素的 if/else**
在博客中提到,如果你想讓 Claude 在處理復雜問題時“多想想”,可以在指令里加上 "think" 這個詞。想讓它想得更深?那就用 "think hard" 或者 "think harder"。甚至還有一個終極指令——"ultrathink",據說能給 Claude 分配更多的“思考預算”(token thinking budget),讓它更徹底地評估各種方案。
X上的老哥忍不住去扒了扒 ??Claude Code?
? 的代碼(雖然是混淆過的)。
結果在處理這些“思考指令”的地方,發現了類似下面這樣的邏輯:
let B = W.message.content.toLowerCase();
if (
B.includes("think harder") ||
B.includes("think intensely") ||
B.includes("think longer") ||
B.includes("think really hard") ||
B.includes("think super hard") ||
B.includes("think very hard") ||
B.includes("ultrathink")
)
return (
l1("tengu_thinking", { tokenCount: 31999, messageId: Z, provider: G }),
31999
);
if (
B.includes("think about it") ||
B.includes("think a lot") ||
B.includes("think deeply") ||
B.includes("think hard") ||
B.includes("think more") ||
B.includes("megathink")
)
return (
l1("tengu_thinking", { tokenCount: 1e4, messageId: Z, provider: G }), 1e4
);
if (B.includes("think"))
return (
l1("tengu_thinking", { tokenCount: 4000, messageId: Z, provider: G }),
4000
);
??toLowerCase().includes()?
??,然后就是一連串的 ??if/else if?
?!就是所謂的“ultrathink”魔法,在代碼層面就是通過判斷你的輸入里是否包含這些特定的關鍵詞,然后返回一個預設的數字(31999、10000、4000),然后這些數字應該就直接影響了分配給模型思考的 token 預算。這里可能跟gemini 2.5 flash設置thinking budget一個道理。
為了實現分級資源調用這個功能 claude 工程師們選擇了這種清晰、可控且高效的 ??if/else?
? 方式。用最簡單直接的方法解決特定的問題,這種操作方式也是值得的借鑒的。
官方實戰技巧放送
前面知識開胃菜,光知道 "ultrathink" 還不夠,要想真正把它用好,還得掌握官方總結的最佳實踐。下面就給大家精選幾個特別實用的:
多用記事本!
??Claude Code?
?? 會自動讀取你項目根目錄下的 ??CLAUDE.md?
? 文件。
現在的vibe coding都有類似的文件,可以在里邊記錄上需要的讓模型遵循的指令,注意事項,甚至是項目特有的“坑”或警告,任何想讓 Claude 記住的上下文信息。
同時保持這個文件簡潔明了,Claude 就能更好地理解你的項目,干活也更靠譜。你甚至可以用 ??#?
?? 快捷鍵,讓 Claude 自動幫你把指令或信息添加到 ??CLAUDE.md?
? 里。
cursor beta版本,現在支持了 ??/Generate Cursor Rules?
?,可以自動生成一些Rules文件,作為全局約束。
先“想”后“做”:探索-計劃-編碼
就像我們自己寫代碼一樣,直接上手莽,不如先規劃好。對 ??Claude Code?
? 也是如此。官方推薦一個經典流程:
- 探索 (Explore):先讓 Claude 閱讀相關的代碼文件、文檔,甚至圖片或 URL,但明確告訴它“先別寫代碼”。
- 計劃 (Plan):讓 Claude 針對你要解決的問題,制定一個詳細的計劃。這時候就可以用上咱們前面說的 "think"、"think hard" 了,給它時間思考清楚。
- 編碼 (Code):等你確認計劃沒問題了,再讓 Claude 開始動手實現。
- 提交 (Commit):完成后,讓 Claude 幫你寫好 commit message,甚至創建 PR。
這個流程能顯著提高復雜任務的成功率,避免 Claude 一上來就跑偏。尤其是前2個步驟,Claude經常會跳過直接開始寫代碼了,但是前期深入的思考,可以大幅提高性能。
更清晰的指令,更豐富的上下文
AI 不會讀心術,咱們得把話說清楚。模糊的指令,比如“給 ??foo.py?
?? 加測試”,遠不如“為 ??foo.py?
? 寫個新測試用例”來得有效。官方給出的好壞指令對比,差異非常明顯。
除了說清楚,還要充分給足上下文。現在很多的Agentic Coding軟件,在對話框里:
- 用?
?@?
? 符號提及文件或目錄名(支持 tab 補全),它就能快速定位。 - 直接粘貼 URL,它會去讀取網頁內容。
- 粘貼或拖拽圖片(比如 UI 設計稿或錯誤截圖),它也能理解。
信息給得越足,Claude 的表現就越好。
及時糾偏
AI 干活不可能一步到位,發現它理解錯了或者跑偏了,千萬別干等著。你需要主動引導和糾正:
- 隨時打斷:不滿意,請隨時點擊?
?stop generation?
?之類的按鈕,隨時中斷 Claude 當前的任何操作(思考、調用工具、編輯文件等)。 - 修改歷史:可以隨時回到之前的某條指令,修改后再讓它重新執行,探索不同方向。
- 請求撤銷:如果 Claude 修改了文件但你不滿意,可以直接讓它?
?undo?
? 撤銷更改。 - 保持清爽:感覺聊了太久,上下文有點亂了?開一個新窗口,重新聚焦當前任務。
- 自我糾錯:嘗試讓一個 Claude 編寫代碼;使用另一個 Claude 進行驗證。
目前的vibe coding軟件用起來,就像在和一個(雖然很強但有時也需要引導的)助手協作,所以不要想著給他當成一個機器一樣不管它。
相對通用的技巧就上面這些內容,除此之外,還有一些claude code獨有的特性,感興趣的可以自行查詢官方文檔。https://www.anthropic.com/engineering/claude-code-best-practices
本文轉載自???探索AGI???,作者:獼猴桃
