工具搜尋
外部工具很多時,不必在每次請求放進全部 Schema。tool_search 在已註冊且允許的間接工具清單中查詢,把匹配項加入目前 Session 的活動名稱;搜尋本身不執行遠端操作。
怎樣讓模型使用搜尋
例如提出任務:
先找到这个 Profile 已配置的工单查询工具,查看它的参数,再查询我尚未关闭的工单。
tool_search 預設註冊但不活動。可以在新工作階段選擇,或等已有工作階段空閒、無排隊輸入時附加:
anyy --tools '+tool_search'
anyy --resume SESSION_ID --tools '+codemode,+tool_search'
加減規則以 Profile 預設選擇為起點,不是修改舊工作階段目前啟用清單;不寫設定檔。MCP 的 deferred 暴露也可按規則自動啟用工具搜尋。顯式排除、Session 和父範圍限制仍優先。它與 Codemode 獨立,停用後者不會自動停用前者;Dashboard 沒有單獨工具搜尋設定表單。
參數和結果
模型呼叫格式:
{"query":"issue tracking open tickets","limit":4}
query 必須是非空白字串;limit 可省略,預設 8,提供時必須正整數。匹配依據包含名稱、描述、輸入 Schema 和 namespace 中繼資料。沒有匹配是正常結果,可以換更明確的任務關鍵字或服務名,而不是把它當成工具呼叫失敗。
匹配名稱會追加到活動集合,原有名稱保留,回傳文字和 details.loaded 給出載入項。新宣告只在下一次模型請求準備時出現;已經準備的請求不就地換 Schema。模型收到搜尋結果後,下一請求才能按該宣告組成呼叫,並繼續接受正常認證、輸入校驗與 Scope 檢查。
只搜尋尚未活動的 deferred/Codemode 工具。已活動工具直接使用現有宣告;direct-only、hidden、model-only 不在搜尋範圍。搜尋不能啟用已停用的 Server,不能創造未註冊工具,也不能擴大父工作階段權限。只有設定、尚無可用目錄的服務,可能暫時沒有結果。
與腳本內搜尋的區別
Codemode 的 searchTools 搜尋目前可呼叫快照,describeTool 讀某個宣告;兩者都不啟用下一請求宣告。模型 tool_search 才會改變 Session 活動名稱。這也意味著腳本可以直接呼叫符合條件的 MCP 工具,不必先將每個工具變成模型的直接宣告。
遠端名字會規範化並可能增加衝突字尾,應使用探索結果回傳的識別名稱和 Schema。詳見 Codemode與 MCP 暴露。
找不到時按順序檢查
- 是否使用相同 Profile,Server 是否啟用且已有可用目錄。
- exposure/有序 toolExposure 是否把目標隱藏或改為 direct-only。
- 是否已活動,因此無需再次搜尋。
- Session 是否顯式排除,或父任務不允許該工具。
隱藏項需要明確修改設定;反覆更換關鍵詞不會授予存取。連線故障應在 MCP 狀態頁排查,不能靠搜尋結果推斷遠端健康。