理論:
模型決策是否調用工具:“工具使用的一個重要特性是條件性調用。 模型并非對所有問題都盲目調用工具,而是能智能判斷”:哪些問題要調用工具,哪些不需要就能解決答復。
工具即函數(shù),工具類型:1.網(wǎng)絡搜索——》獲取實時數(shù)據(jù) 2.函數(shù)計算——》執(zhí)行計算 3.數(shù)據(jù)庫執(zhí)行動作——》訪問數(shù)據(jù)庫。
工具使用的意義和核心價值:見最后總結。
如今的主流語言模型都經(jīng)過直接訓練去使用工具,沒有訓練的語言模型就必須得寫提示詞來告訴模型如何使用工具。
使用工具步驟:
1.實現(xiàn)工具:開發(fā)者編寫功能函數(shù):例如 get_current_time()。
2.設計系統(tǒng)提示告知模型:開發(fā)者編寫系統(tǒng)提示詞 (System Prompt),告訴模型可以訪問哪些工具,并規(guī)定調用它的精確格式(即如何請求調用)。
3.1用戶提問
3.2 LLM決策,分析問題后,意識到調用工具
3.3 LLM模型根據(jù)提示詞輸出特定格式的文本:這個文本不是最終答案,而是一個“請求”,例如 FUNCTION: get_current_time()。
4.1解析輸出:開發(fā)者編寫代碼解析,監(jiān)聽讀取模型的輸出;
4.2意圖識別,識別輸出中是否包含“FUNCTION”關鍵字的“請求”,
4.3 提取這個“請求”的參數(shù), 然后真正地調用對應的函數(shù),獲得返回值。?
5.構建對話歷史:將函數(shù)結果連同之前的對話歷史(用戶問題和llm的函數(shù)請求)作為新的上下文輸入給模型。【LLM(大語言模型)本身不會直接調用工具。LLM 會“請求”開發(fā)者去調用某個工具,開發(fā)者負責執(zhí)行該工具并將其結果返回給 LLM?!?/a>
5.2反饋結果:讓LLM模型生成最終的自然語言回復。
AISuite 倉庫
AISuite?負責 schema 暴露、參數(shù)綁定、執(zhí)行與步驟間結果傳遞——你可以專注于智能體做成了什么,而不是如何調用 API。
疑問點:
1)docstring 是什么?
“你已經(jīng)看到工具的 docstring 可以幫助?aisuite?自動把函數(shù)變成 LLM 可用的工具”清晰且文檔完備的函數(shù)(精確的 docstring)有助于模型判斷何時、如何使用工具。
2)schema 是什么?
關鍵收獲:
讓系統(tǒng)自己編寫并執(zhí)行代碼來解決問題:
1.設計系統(tǒng)提示詞 (System Prompt)2.模型輸出3.提取與執(zhí)行4.反饋與格式化? ? ? 沙盒環(huán)境
MCP (Model Context Protocol)-模型上下文協(xié)議
MPC核心組件:
1. 客戶端 (Clients)
角色:希望訪問外部工具或數(shù)據(jù)的應用程序。示例:Cursor, Claude Desktop, Windsurf。功能:向 MCP 服務器發(fā)送請求,獲取數(shù)據(jù)或執(zhí)行操作。
2. 服務器 (Servers)
角色:提供工具和數(shù)據(jù)源的軟件服務。示例:Slack, Google Drive, GitHub, PostgreSQL。功能:作為“包裝器”,接收來自客戶端的請求,并將其轉換為對原始工具 API 的調用,然后將結果返回給客戶端。來源:部分服務器由服務提供商開發(fā),但也有大量第三方開發(fā)者貢獻。