執行期

工具執行器

按順序或在安全時並行執行模型請求的工具的執行層。

概念專屬圖版工具執行器hx-graph-context-concept-tool-executor正在載入視覺預覽…
以原始尺寸檢視

工具執行器

這是什麼

判斷模型要求的工具應循序或安全並行執行,並依原呼叫順序回傳結果的執行層。

白話解釋

想像一個施工團隊,每個工人都可以同時在不同的牆上敲釘子而不互相干擾,但如果兩個工人同時去拿同一把梯子,其中一個就得等一下。工具執行器就是替模型做出同樣的判斷:獨立的工具請求可以同時執行,而針對同一檔案的兩次編輯則需要排隊依次進行,而不是互相競爭。

為什麼重要

模型一次要求多個工具呼叫時,必須判斷哪些可以並行、哪些必須逐一執行:檔案寫入與網路搜尋可以重疊,但兩次編輯同一檔案就不行。這項判斷能防止多工具對話輪次悄悄破壞狀態或彼此競爭。代理團隊委派也依賴同一執行層,避免並行子代理互相覆蓋變更。

運作方式

執行前,agent/tool_dispatch_helpers.py_should_parallelize_tool_batch 會檢查整批工具呼叫。只要出現固定禁止並行的工具、參數無法解析,或 read_filewrite_filepatch 等路徑型呼叫指向重疊路徑,就會強制循序執行;web_searchvision_analyze 等固定唯讀工具則可並行。run_agent.pyAIAgent._execute_tool_calls 依判定結果呼叫 agent/tool_executor.pyexecute_tool_calls_concurrentexecute_tool_calls_sequential;並行路徑使用最多 8 個工作執行緒的執行緒池。所有並行結果仍會依模型原始呼叫順序收集後才加入訊息清單,因此模型看到的順序不會改變。

具體範例

Hermes 收到模型一次要求的三個工具呼叫:搜尋新聞標題、搜尋股價,以及以 write_file 保存筆記。_should_parallelize_tool_batch 發現兩項搜尋都是唯讀操作,檔案寫入也沒有與其他路徑衝突,便允許三者在不同執行緒並行;結果仍依原呼叫順序回傳。若模型改為要求兩次 write_file 都寫入 notes.txt,同一檢查便會強制循序執行,避免第二次寫入悄悄覆蓋第一次的結果。

如何連結

「工具執行器」屬於「執行期」系列。最直接相關的概念包括:「對話循環」、「對話輪次終結器」、「個人作業系統」。這些連結描述教學關係,不取代來源證據。

來源證據

  • agent/tool_executor.py#<file> — 結構性來源;只確認來源檔關聯,不單獨證明特定呼叫順序。

工作流程

相關文章

相關筆記