Anthropic 實(shí)用發(fā)布:《如何為 Agent 構(gòu)建工具》
隨著 AI Agent 的能力不斷增強(qiáng),工具的設(shè)計(jì)也必須從“為人而寫”轉(zhuǎn)向“為智能體而構(gòu)建”。本文基于 Anthropic 的最新發(fā)布,系統(tǒng)梳理了 Agent 工具的構(gòu)建原則與評(píng)估方法,揭示如何通過高質(zhì)量工具擴(kuò)展 Agent 的任務(wù)邊界,是一份面向未來軟件開發(fā)范式的實(shí)用指南。
Anthropic 上周發(fā)布了一篇很值得閱讀的文章《如何為 Agent 構(gòu)建工具》,包括:如何編寫高質(zhì)量的工具和評(píng)估,以及如何利用 Claude 來為自己優(yōu)化工具,從而提升性能。
本文是對(duì)內(nèi)容重點(diǎn)的介紹,更多詳細(xì)信息,可閱讀原文
https://www.anthropic.com/engineering/writing-tools-for-agents
什么是工具?
傳統(tǒng)軟件是確定性系統(tǒng),而像 Agent 這樣的系統(tǒng)是非確定性的。工具是一種新型軟件,它反映了確定性系統(tǒng)與非確定性 Agent 之間的契約。我們編寫工具時(shí),需要為 Agent 而不是為其他開發(fā)者或系統(tǒng)來設(shè)計(jì)。我們的目標(biāo)是通過工具,讓 Agent 能夠采用多種成功策略,擴(kuò)大其解決各類任務(wù)的有效范圍。
如何編寫工具
本文描述了一個(gè)與 Agent 協(xié)作編寫和改進(jìn)工具的迭代流程:首先構(gòu)建一個(gè)快速原型并進(jìn)行本地測(cè)試,然后通過全面的評(píng)估來衡量后續(xù)的改動(dòng),并與 Agent 一起重復(fù)評(píng)估和改進(jìn)的過程。
1. 構(gòu)建原型
快速構(gòu)建工具原型,親身體驗(yàn)。
使用 Claude Code 編寫工具時(shí),提供相關(guān)軟件庫、API 的文檔會(huì)有幫助。
將工具包裝在本地 MCP 服務(wù)器或 DXT 中,以便在 Claude Code 或 Claude 桌面應(yīng)用中連接和測(cè)試。
2. 運(yùn)行評(píng)估
通過運(yùn)行評(píng)估來衡量 Claude 使用工具的效果。
評(píng)估任務(wù)應(yīng)基于真實(shí)世界用例,并具有足夠的復(fù)雜性。
強(qiáng)大的評(píng)估任務(wù)可能需要多次(甚至數(shù)十次)工具調(diào)用。
在評(píng)估中,我們建議收集準(zhǔn)確率、運(yùn)行時(shí)間、工具調(diào)用次數(shù)、Token 消耗和錯(cuò)誤等指標(biāo)。
我們內(nèi)部 Slack 工具在留出測(cè)試集上的性能表現(xiàn): ? ? ? ? ? ? ? ? ? ? ?
我們內(nèi)部 Asana 工具在留出測(cè)試集上的性能表現(xiàn): ? ? ? ? ? ? ? ? ? ? ? ?
3. 與 Agent 協(xié)作
Agent 是你發(fā)現(xiàn)問題和提供反饋的得力伙伴。你可以讓 Agent 分析評(píng)估結(jié)果并為你改進(jìn)工具。將評(píng)估 Agent 的對(duì)話記錄粘貼到 Claude Code 中,Claude 擅長分析這些記錄并一次性重構(gòu)大量工具。
編寫高效工具的原則
原則一:選擇合適的工具
更多的工具并不總是帶來更好的結(jié)果。Agent 的“上下文”有限,應(yīng)避免返回大量無關(guān)信息。應(yīng)構(gòu)建少量、有思想、針對(duì)特定高影響力工作流的工具。例如,實(shí)現(xiàn)一個(gè) search_contacts 而不是 list_contacts 工具。工具可以整合功能,將多步操作合并為一次調(diào)用。
原則二:為工具命名空間
當(dāng)工具功能重疊或目的模糊時(shí),Agent 可能會(huì)混淆。使用命名空間(例如 asana_search, jira_search)可以幫助在大量工具之間劃定界限,幫助 Agent 在正確的時(shí)間選擇正確的工具。
原則三:從工具返回有意義的上下文
工具應(yīng)只返回高信號(hào)信息,優(yōu)先考慮上下文相關(guān)性而非靈活性。避免使用 UUID 等底層技術(shù)標(biāo)識(shí)符,多使用自然語言名稱??梢酝ㄟ^ response_format 枚舉參數(shù)讓 Agent 控制返回“簡潔”還是“詳細(xì)”的響應(yīng)。
詳細(xì)響應(yīng)示例 (206 tokens):
簡潔響應(yīng)示例 (72 tokens):
原則四:優(yōu)化工具響應(yīng)的 Token 效率
優(yōu)化上下文的數(shù)量和質(zhì)量同樣重要。為可能消耗大量上下文的工具響應(yīng)實(shí)現(xiàn)分頁、過濾和截?cái)嗟葯C(jī)制。如果截?cái)囗憫?yīng)或出現(xiàn)錯(cuò)誤,應(yīng)提供清晰、可操作的改進(jìn)建議來引導(dǎo) Agent。
截?cái)囗憫?yīng)并提供指導(dǎo):
無幫助的錯(cuò)誤 vs 有幫助的錯(cuò)誤:
原則五:對(duì)工具描述進(jìn)行提示工程
這是最有效的方法之一。
編寫工具描述時(shí),要像向新同事解釋一樣,將隱含的背景信息明確化。避免模糊性,對(duì)預(yù)期輸入和輸出進(jìn)行清晰描述和嚴(yán)格定義。
例如,使用 user_id 而不是 user 作為參數(shù)名。
對(duì)工具描述的微小改進(jìn)都能帶來顯著的性能提升。
展望未來
為 Agent 構(gòu)建有效的工具,需要我們將軟件開發(fā)實(shí)踐從確定性模式轉(zhuǎn)向非確定性模式。
有效的工具是有意圖且清晰定義的,能明智地使用 Agent 上下文,并能直觀地幫助 Agent 解決真實(shí)世界的任務(wù)。
通過系統(tǒng)性、評(píng)估驅(qū)動(dòng)的方法,我們可以確保隨著 Agent 能力的增強(qiáng),它們使用的工具也能同步發(fā)展。
本文由人人都是產(chǎn)品經(jīng)理作者【賽博禪心】,微信公眾號(hào):【賽博禪心】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于 CC0 協(xié)議。
- 目前還沒評(píng)論,等你發(fā)揮!