Module 3 Tool Use 2025-11-13

LLM擁有很強(qiáng)的自助能力,可以自主判斷是否使用工具,使用什么工具。一般來說,工具可以是函數(shù),也可以是外部的MCP 服務(wù),根據(jù)最新的資料,也可以是Claude code中的skill。函數(shù)通常是自定義的,使用token量不大,MCP會消耗大量的token,上下文較多,skill是新的技術(shù),比較靈活,只獲取description部分,必要時才進(jìn)一步加載內(nèi)容,消耗降低了很多。

這里的工具,類似之前software時代的開發(fā)插件、報表控件,可以擴(kuò)展LLM的能力。Tool的返回結(jié)果會作為上下文傳遞給LLM,供后續(xù)使用。對于Tool Use來說,一個比較重要的特性是條件使用,LLM需要智能的判斷什么時候使用Tool,什么時候調(diào)用自己的知識庫,甚至使用RAG來獲取更多資料。這個對LLM的要求能區(qū)分什么需求是靜態(tài)的(可內(nèi)化),什么需求是動態(tài)的(需求外)。

對于更復(fù)雜的需求,可以通過多個Tool Use 的串聯(lián),來形成工作流進(jìn)行處理。Tool Use可以超越LLM的知識邊界,實現(xiàn)復(fù)雜邏輯。當(dāng)然,Tool Use 也可以封裝到agent里,再抽象一層,最外層的LLM 只處理agent,具體的工作由各個agent 來調(diào)用Tool Use 或者agent的LLM節(jié)點來處理。

在Tool Use的早期,需要在提示詞中明確:FUNCTION *** 來手動調(diào)用,現(xiàn)在隨著LLM能力的增強(qiáng),已經(jīng)不需要手動明確了。只需在system prompt中對LLM明確告訴模型有哪些工具可用,如果需要調(diào)用某個function,應(yīng)該如何格式化其輸出。function 是可以帶參數(shù)輸入的,提示詞和 LLM 的輸出需要包含參數(shù)信息。函數(shù)執(zhí)行的結(jié)果會作為新的上下文,送回給模型,讓它繼續(xù)推理或生成最終答案。

Andrew Ng團(tuán)隊開源了一個AI Suite 庫,簡化的封裝了各個不同的LLM,提供了一個抽象層,可以自動處理工具描述,極大簡化了開發(fā)流程。?當(dāng) 函數(shù)傳入 tools 參數(shù)后,AI Suite 會在后臺自動為其生成一個 JSON Schema。這個 Schema 是傳遞給 LLM 的真實數(shù)據(jù)結(jié)構(gòu)。需要注意的是,定義function時,要是一個帶有清晰 docstring 的 Python 函數(shù)。

如果說有過多需要自定義的瑣碎代碼,影響節(jié)點的靈活性時,可以讓LLM自己來創(chuàng)建function,在處理時有如下兩個要點:1)指令模型:“編寫代碼來解決用戶的問題”。 2)要求模型將答案以 Python 代碼形式返回,并用?<execute_python>?和?</execute_python>?標(biāo)簽包裹。

LLM 自己創(chuàng)建的代碼,可以通過python的exec()函數(shù)來執(zhí)行,也可以通過沙箱等手段來執(zhí)行。代碼可以通過正則表達(dá)式來進(jìn)行提取,執(zhí)行結(jié)果作為上下文,傳入下一個節(jié)點。如果執(zhí)行失敗,失敗的log 一樣作為上下文進(jìn)行返回,LLM通過Reflection 來對代碼進(jìn)行調(diào)整,重新嘗試一輪迭代。

在沙盒環(huán)境外運行由模型生成的任意代碼是有風(fēng)險的。安全的代碼執(zhí)行很重要,尤其涉及到對唯一數(shù)據(jù)源的刪除、修改等操作。推薦使用Docker、E2B等沙盒環(huán)境,對代碼進(jìn)行有效隔離。

MCP 作為function的一種擴(kuò)展,現(xiàn)在已經(jīng)成為行業(yè)標(biāo)準(zhǔn),以CS的結(jié)構(gòu),不光提供數(shù)據(jù)的獲取,也提供更多的資源操作。使用時需要注意token的消耗,可能比比較大量。

CC的skill 是在此基礎(chǔ)上,將server段遷移到了本地,并很大程度減少上下文token的一種優(yōu)化。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容