Skip to content

Commit f41b33a

Browse files
authored
additional research result (#38)
Signed-off-by: SamYuan1990 <yy19902439@126.com>
1 parent 73535d1 commit f41b33a

20 files changed

Lines changed: 1670 additions & 404 deletions

doc/blog/A way to auto scaling capabilities for Agent.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,89 @@ It seems nothing changes as BFCL_v4_live_irrelevance.json 67.6% with correction
217217
| BFCL_v4_live_parallel_multiple.json | 83.3% | 83.3% | 83.3% | 83.3% | 83.3% | 83.3% | 83.3% | 83.3% | 83.3% |
218218
| BFCL_v4_live_parallel.json | 93.8% | 93.8% | 93.8% | 93.8% | 93.8% | 93.8% | 93.8% | 93.8% | 93.8% |
219219

220+
#### Analysis Error
221+
222+
We further checked about the error case.
223+
For example:`live_multiple_135-51-1`, the original query is `What is the temperature in London, UK?` with given tool `weather.get,stock_price.get`. Expect LLM picked up `weather.get` for our top 5 search, we get `fahrenheit_to_celsius;celsius_to_fahrenheit;weather.get_weather_data;get_current_weather;weather.get_weather`. Further searched keyword `Weather` among tool description, we found:
224+
```
225+
"name": "Weather_1_GetWeather", "description": "Retrieves the current or historical weather data for a specified city on a given date."
226+
"name": "api.weather", "description": "Retrieve current weather information for a specified location."
227+
"name": "OpenWeatherMap.get_current_weather", "description": "Fetches the current weather information for a specified location using the OpenWeatherMap API."
228+
"name": "weather.get", "description": "Get the current weather details such as temperature, wind speed, and precipitation for a specified city and country."
229+
"name": "weather.get_weather", "description": "Get the current weather conditions, including temperature, wind speed, and precipitation, for a specified city within a country."
230+
"name": "get_current_weather", "description": "Retrieves the current weather information for a specified location."
231+
```
232+
if we just run single bench as BFCL_v4_live_multiple.json, it can reach out to 90.3% as top 5 result.
233+
==============================================================================================================
234+
Method Alpha Total RelTotal Irr Top1 Top3 Top5
235+
==============================================================================================================
236+
default - 1053 0 0.637 0.817 0.889
237+
minmax 0.1 1053 0 0.638 0.841 0.903
238+
==============================================================================================================
239+
240+
#### Further flitting tool description during registration
241+
242+
Considering a function call, MCP, skill management case. `Weather_1_GetWeather` and `weather.get_weather` seems a duplicate on meaning. In this case, we prefer to update `weather.get_weather` with features in `Weather_1_GetWeather`, unfortunately in BFCL, there seems no implements for those functions. Focus on auto injection of function call, MCP, skill for any specific prompt, we can add embedding based deduplicate filter, and the correction rate for BFCL_v4_live_multiple bench up to 95.2% and for test set, it upto 91.6%.
243+
244+
==============================================================================================================
245+
Method Alpha Total RelTotal Irr Top1 Top3 Top5
246+
==============================================================================================================
247+
default - 1053 0 0.714 0.893 0.941
248+
minmax 0.1 1053 0 0.723 0.903 0.952
249+
==============================================================================================================
250+
251+
==============================================================================================================
252+
Method Alpha Total RelTotal Irr Top1 Top3 Top5 Misjudge
253+
==============================================================================================================
254+
default - 1093 1140 0.626 0.833 0.898 0.354
255+
minmax 0.1 1093 1140 0.655 0.864 0.916 0.366
256+
==============================================================================================================
257+
258+
### Performane on other bench
259+
260+
We further tested our approach on other benches.
261+
262+
#### MCP-Tools
263+
264+
From MCPToolBench++,GitHub: https://github.com/mcp-tool-bench/MCPToolBenchPP,HuggingFace: https://huggingface.co/datasets/MCPToolBench/MCPToolBenchPP.
265+
For it's single bench as filesystem_0723_single, as 241 query with 10 function call.
266+
==============================================================================================================
267+
Method Alpha Total RelTotal Irr Top1 Top3 Top5
268+
==============================================================================================================
269+
embedding - 241 0 0.967 0.992 0.996
270+
minmax 0.1 241 0 0.942 1.000 1.000
271+
==============================================================================================================
272+
273+
For all benches
274+
==============================================================================================================
275+
Method Alpha Total RelTotal Irr Top1 Top3 Top5
276+
==============================================================================================================
277+
embedding - 1509 0 0.675 0.836 0.893
278+
minmax 0.1 1509 0 0.698 0.847 0.891
279+
==============================================================================================================
280+
281+
#### ToolE
282+
283+
From MetaTool(MetaTool Benchmark for Large Language Models: Deciding Whether to Use Tools and Which to Use, GitHub: https://github.com/HowieHwong/MetaTool) as 20614 query with 197 function call.
284+
==============================================================================================================
285+
Method Alpha Total RelTotal Irr Top1 Top3 Top5
286+
==============================================================================================================
287+
none - 20614 0 0.478 0.643 0.713
288+
minmax 0.1 20614 0 0.468 0.626 0.694
289+
==============================================================================================================
290+
291+
the bge-m3 embedding got score as 71.3% for Top 5. if we switch to Qwen3-Embedding-0.6B, as 20614 query with 132 function call, the correction up to 83.7%.
292+
293+
==============================================================================================================
294+
Method Alpha Total RelTotal Irr Top1 Top3 Top5
295+
==============================================================================================================
296+
none - 20614 0 0.628 0.785 0.837
297+
minmax 0.1 20614 0 0.572 0.730 0.791
298+
==============================================================================================================
299+
300+
![details on ToolE](./detailsOnToolE.png "details on ToolE")
301+
302+
Go through details on ToolE bench error case, for example, with query `Can you pull up the top-rated restaurants in New York City?`, the answer seesms `web_requests` and our suggestion as `Broadway;recipe_retrieval;TripTool;Man_of_Many;total_query_meta_search_engine`, which seems limitation from original bench, as only one result is given, and which too general.
220303

221304
## Discussion
222305

doc/blog/detailsOnToolE.png

114 KB
Loading

0 commit comments

Comments
 (0)