![]()
Anthropic推出Claude sonnet 4.5時正式發布了Claude Agent SDK
Claude Agent SDK旨在幫助開發者在Claude上構建功能強大的自主智能體Agent
實際上,Claude Agent SDK的前身是為支持內部開發效率而生的Claude Code SDK。但在過去數月,它的應用早已超越了編碼范疇,在Anthropic內部被廣泛用于深度研究、視頻創作、筆記整理等各種非編程任務,并已成為幾乎所有主要智能體循環(agent loops)的動力核心
為了體現其更廣泛的應用前景,Anthropic決定將其正式更名為Claude Agent SDK
這篇文章將深入解讀Anthropic構建該SDK的初衷、如何使用它來打造自己的智能體,以及團隊在實際部署中總結出的最佳實踐
核心設計:給Claude一臺電腦
Claude Agent SDK背后的核心設計原則非常直接:Claude需要和程序員一樣,擁有相同的日常工具
這意味著,智能體需要能夠在代碼庫中查找文件、編寫和編輯文件、進行代碼檢查(lint)、運行、調試,并在此過程中不斷迭代直至成功
Anthropic團隊發現,通過終端給予Claude訪問用戶計算機的權限,它就獲得了像程序員一樣編寫代碼所需的一切
更重要的是,這也使得Claude在處理非編碼任務時同樣高效。通過運行bash命令、編輯、創建和搜索文件,Claude能夠讀取CSV文件、搜索網頁、構建可視化圖表、解讀指標等,勝任各類數字工作——簡而言之,成為一個擁有計算機的通用智能體
讓智能體像人類一樣使用計算機工作,這正是Claude Agent SDK的關鍵設計理念
創建新型智能體
Anthropic相信,為Claude配備一臺“電腦”,能夠解鎖過去難以有效實現的智能體能力。利用該SDK,開發者可以構建:
金融智能體:理解投資組合和目標,通過訪問外部API、存儲數據和運行代碼來幫助評估投資
個人助理智能體:連接內部數據源,跨應用追蹤上下文,幫助預訂差旅、管理日歷、安排會議、整理簡報等
客戶支持智能體:處理高模糊性的用戶請求(如客服工單),通過收集和審查用戶數據、連接外部API、回復用戶,并在必要時將問題升級給人類
深度研究智能體:在大型文檔集合中進行全面研究,通過搜索文件系統、分析和綜合多源信息、交叉引用數據,并生成詳細報告
其核心是,該SDK提供了構建智能體所需的基礎模塊,以自動化你想要的任何工作流
構建Agent循環
在實踐中,Claude通常遵循一個特定的反饋循環進行操作:收集上下文 -> 采取行動 -> 驗證工作 -> 重復
![]()
這個循環為思考如何構建其他類型的智能體以及應賦予它們何種能力,提供了一個有效的框架。下面,我們將以構建一個郵件智能體為例,逐步拆解這個過程
第一步:收集上下文
開發智能體時,不能只給它一個提示,而是要讓它能夠獲取并更新自己的上下文
智能體搜索與文件系統
文件系統代表了可以被模型調用的潛在信息。當遇到日志等大文件時,Claude會自行決定使用grep、tail等bash腳本來加載最相關的部分。本質上,智能體的文件夾和文件結構本身,就成為了一種上下文工程。例如,郵件智能體可以將過去的對話存儲在名為'Conversations'的文件夾中,以便在需要時進行搜索
子智能體 (Subagents)
SDK默認支持子智能體。其優勢有二:一是并行化,可以同時啟動多個子智能體處理不同任務;二是上下文管理,子智能體在隔離的上下文中工作,只將相關信息返回給主控者,非常適合處理需要從海量信息中篩選少量有用數據的任務。例如,郵件智能體可以并行啟動多個“搜索子智能體”,分別查詢郵件歷史,并只返回相關的郵件摘要
壓縮 (Compaction)
當智能體長時間運行時,上下文維護至關重要。當接近上下文窗口限制時,SDK的compact功能會自動總結之前的消息,確保智能體不會耗盡上下文空間。
語義搜索
語義搜索雖然速度通常比智能體搜索快,但準確性較低,且維護更困難、透明度更差。Anthropic建議從智能體搜索開始,僅在需要更快速度或更多樣化結果時才引入語義搜索
第二步:采取行動
收集完上下文后,你需要為智能體提供靈活的行動方式。
工具 (Tools)
工具是智能體執行任務的主要構建模塊。它們在Claude的上下文窗口中非常突出,是模型決定如何完成任務時優先考慮的選項。因此,你需要精心設計工具以最大化上下文效率。例如,為郵件智能體定義"fetchInbox"或"searchEmails"等核心工具
Bash與腳本
Bash作為一個通用工具,能讓智能體靈活地使用計算機。例如,郵件智能體可以編寫代碼來下載郵件附件(如PDF),將其轉換為文本,然后搜索其中的關鍵詞(如“invoice”)
pdftotext document.pdf - | grep -n "invoice" | tail -10代碼生成
Claude Agent SDK擅長代碼生成。代碼具有精確、可組合和可復用的特性,是執行復雜操作的理想選擇。例如,Claude.ai中創建Excel、PPT和Word文檔的功能,完全依賴于生成Python腳本來實現。對于郵件智能體,我們可以讓它生成代碼,為收到的郵件創建自動化規則:
async function onEmailReceived(email) { const isFromCustomer = email.from.includes('@customer.com') || /* ... */; if (!isFromCustomer) return; const isEmailUrgent = await askLLM(`Does this email seem urgent: ${renderEmail(email)}, return TRUE OR FALSE`); if (isEmailUrgent === "TRUE" && isFromCustomer) { forwardEmail(email, { to: 'teamlead@company.com' }); createTask({ title: `Urgent: Respond to ${email.from}` }); } }MCPs (模型上下文協議)
Model Context Protocol (MCP) 提供了與外部服務的標準化集成,能自動處理身份驗證和API調用。這意味著你可以輕松將智能體連接到Slack、GitHub、Google Drive或Asana等工具,無需編寫自定義集成代碼或管理OAuth流程
第三步:驗證工作
智能體循環的最后一步是評估其工作。能夠檢查并改進自身輸出的智能體更加可靠。關鍵在于給予Claude評估工作的具體方法。
定義規則
最有效的反饋形式是提供明確的輸出規則,并在規則未被滿足時解釋原因。代碼檢查(Code linting) 就是一個典型的基于規則的反饋。例如,生成TypeScript并對其進行檢查,通常比直接生成純JavaScript更好,因為它提供了更多層次的反饋
視覺反饋
在處理UI生成或測試等視覺任務時,截圖或渲染圖形式的視覺反饋非常有幫助。例如,在生成HTML格式的郵件后,可以將其截圖并返回給模型進行視覺驗證,檢查布局、樣式、內容層級、響應性等是否符合要求。使用像Playwright這樣的MCP服務器,可以自動化整個視覺反饋循環
LLM作為評判者
你也可以讓另一個語言模型根據模糊的規則來“評判”智能體的輸出。這種方法通常不夠穩健,且會帶來延遲,但對于追求極致性能的應用場景可能有所幫助。例如,讓一個子智能體來判斷郵件草稿的語氣是否與用戶之前的溝通風格一致。
測試與改進你的智能體
在多次迭代智能體循環后,你需要對其進行測試,確保它能勝任任務。最好的改進方法是仔細檢查其輸出,尤其是在失敗的案例中,并設身處地思考:它是否擁有完成這項工作的合適工具?
以下是一些評估時可以自問的問題:
如果智能體誤解了任務,是否缺少關鍵信息?能否調整搜索API的結構,讓它更容易找到所需內容?
如果智能體在某個任務上反復失敗,能否在工具調用中添加一個正式規則來識別和修復該失敗?
如果智能體無法修復自己的錯誤,能否提供更有用或更有創意的工具來解決問題?
如果智能體的性能隨著功能增加而波動,是否應根據客戶使用情況構建一個代表性的測試集,進行程序化評估?
具體操作請看doc:
https://docs.claude.com/en/docs/claude-code/sdk/migration-guide
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.