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