tooluniverse 1.0.11.2__py3-none-any.whl → 1.0.12__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of tooluniverse might be problematic. Click here for more details.

Files changed (58) hide show
  1. tooluniverse/build_optimizer.py +115 -22
  2. tooluniverse/data/encode_tools.json +139 -0
  3. tooluniverse/data/gbif_tools.json +152 -0
  4. tooluniverse/data/gdc_tools.json +116 -0
  5. tooluniverse/data/gtex_tools.json +116 -0
  6. tooluniverse/data/icgc_tools.json +0 -0
  7. tooluniverse/data/mgnify_tools.json +121 -0
  8. tooluniverse/data/obis_tools.json +122 -0
  9. tooluniverse/data/optimizer_tools.json +275 -0
  10. tooluniverse/data/rnacentral_tools.json +99 -0
  11. tooluniverse/data/smolagent_tools.json +206 -0
  12. tooluniverse/data/wikipathways_tools.json +106 -0
  13. tooluniverse/default_config.py +12 -0
  14. tooluniverse/encode_tool.py +245 -0
  15. tooluniverse/execute_function.py +46 -8
  16. tooluniverse/gbif_tool.py +166 -0
  17. tooluniverse/gdc_tool.py +175 -0
  18. tooluniverse/generate_tools.py +121 -9
  19. tooluniverse/gtex_tool.py +168 -0
  20. tooluniverse/mgnify_tool.py +181 -0
  21. tooluniverse/obis_tool.py +185 -0
  22. tooluniverse/pypi_package_inspector_tool.py +3 -2
  23. tooluniverse/rnacentral_tool.py +124 -0
  24. tooluniverse/smcp_server.py +1 -1
  25. tooluniverse/smolagent_tool.py +555 -0
  26. tooluniverse/tools/ArgumentDescriptionOptimizer.py +55 -0
  27. tooluniverse/tools/ENCODE_list_files.py +59 -0
  28. tooluniverse/tools/ENCODE_search_experiments.py +67 -0
  29. tooluniverse/tools/GBIF_search_occurrences.py +67 -0
  30. tooluniverse/tools/GBIF_search_species.py +55 -0
  31. tooluniverse/tools/GDC_list_files.py +55 -0
  32. tooluniverse/tools/GDC_search_cases.py +55 -0
  33. tooluniverse/tools/GTEx_get_expression_summary.py +49 -0
  34. tooluniverse/tools/GTEx_query_eqtl.py +59 -0
  35. tooluniverse/tools/MGnify_list_analyses.py +52 -0
  36. tooluniverse/tools/MGnify_search_studies.py +55 -0
  37. tooluniverse/tools/OBIS_search_occurrences.py +59 -0
  38. tooluniverse/tools/OBIS_search_taxa.py +52 -0
  39. tooluniverse/tools/RNAcentral_get_by_accession.py +46 -0
  40. tooluniverse/tools/RNAcentral_search.py +52 -0
  41. tooluniverse/tools/TestCaseGenerator.py +46 -0
  42. tooluniverse/tools/ToolDescriptionOptimizer.py +67 -0
  43. tooluniverse/tools/ToolDiscover.py +4 -0
  44. tooluniverse/tools/UniProt_search.py +17 -44
  45. tooluniverse/tools/WikiPathways_get_pathway.py +52 -0
  46. tooluniverse/tools/WikiPathways_search.py +52 -0
  47. tooluniverse/tools/__init__.py +43 -1
  48. tooluniverse/tools/advanced_literature_search_agent.py +46 -0
  49. tooluniverse/tools/alphafold_get_annotations.py +4 -10
  50. tooluniverse/tools/download_binary_file.py +3 -6
  51. tooluniverse/tools/open_deep_research_agent.py +46 -0
  52. tooluniverse/wikipathways_tool.py +122 -0
  53. {tooluniverse-1.0.11.2.dist-info → tooluniverse-1.0.12.dist-info}/METADATA +3 -1
  54. {tooluniverse-1.0.11.2.dist-info → tooluniverse-1.0.12.dist-info}/RECORD +58 -17
  55. {tooluniverse-1.0.11.2.dist-info → tooluniverse-1.0.12.dist-info}/WHEEL +0 -0
  56. {tooluniverse-1.0.11.2.dist-info → tooluniverse-1.0.12.dist-info}/entry_points.txt +0 -0
  57. {tooluniverse-1.0.11.2.dist-info → tooluniverse-1.0.12.dist-info}/licenses/LICENSE +0 -0
  58. {tooluniverse-1.0.11.2.dist-info → tooluniverse-1.0.12.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,121 @@
1
+ [
2
+ {
3
+ "name": "MGnify_search_studies",
4
+ "type": "MGnifyStudiesTool",
5
+ "description": "Search MGnify metagenomics/microbiome studies by biome/keyword. Use to discover study accessions and attributes for downstream analyses and downloads.",
6
+ "parameter": {
7
+ "type": "object",
8
+ "properties": {
9
+ "biome": {
10
+ "type": "string",
11
+ "description": "Biome identifier (e.g., 'root:Host-associated')."
12
+ },
13
+ "search": {
14
+ "type": "string",
15
+ "description": "Keyword to search in study titles/descriptions."
16
+ },
17
+ "size": {
18
+ "type": "integer",
19
+ "default": 10,
20
+ "minimum": 1,
21
+ "maximum": 100,
22
+ "description": "Number of records per page (1–100)."
23
+ }
24
+ }
25
+ },
26
+ "fields": {
27
+ "endpoint": "https://www.ebi.ac.uk/metagenomics/api/latest/studies",
28
+ "format": "json"
29
+ },
30
+ "return_schema": {
31
+ "type": "object",
32
+ "description": "MGnify study list response",
33
+ "properties": {
34
+ "status": {"type": "string"},
35
+ "data": {
36
+ "type": "object",
37
+ "properties": {
38
+ "data": {
39
+ "type": "array",
40
+ "items": {
41
+ "type": "object",
42
+ "properties": {
43
+ "id": {"type": "string"},
44
+ "type": {"type": "string"},
45
+ "attributes": {"type": "object"}
46
+ }
47
+ }
48
+ }
49
+ }
50
+ },
51
+ "url": {"type": "string"}
52
+ }
53
+ },
54
+ "test_examples": [
55
+ {"biome": "root:Host-associated", "size": 1}
56
+ ],
57
+ "label": ["MGnify", "Microbiome", "Study"],
58
+ "metadata": {
59
+ "tags": ["microbiome", "metagenomics", "study"],
60
+ "estimated_execution_time": "< 2 seconds"
61
+ }
62
+ },
63
+ {
64
+ "name": "MGnify_list_analyses",
65
+ "type": "MGnifyAnalysesTool",
66
+ "description": "List analyses associated with a study accession (taxonomic/functional outputs). Use to enumerate available processed results for programmatic retrieval.",
67
+ "parameter": {
68
+ "type": "object",
69
+ "properties": {
70
+ "study_accession": {
71
+ "type": "string",
72
+ "description": "MGnify study accession (e.g., 'MGYS00000001')."
73
+ },
74
+ "size": {
75
+ "type": "integer",
76
+ "default": 10,
77
+ "minimum": 1,
78
+ "maximum": 100,
79
+ "description": "Number of records per page (1–100)."
80
+ }
81
+ },
82
+ "required": ["study_accession"]
83
+ },
84
+ "fields": {
85
+ "endpoint": "https://www.ebi.ac.uk/metagenomics/api/latest/analyses",
86
+ "format": "json"
87
+ },
88
+ "return_schema": {
89
+ "type": "object",
90
+ "description": "MGnify analyses list response",
91
+ "properties": {
92
+ "status": {"type": "string"},
93
+ "data": {
94
+ "type": "object",
95
+ "properties": {
96
+ "data": {
97
+ "type": "array",
98
+ "items": {
99
+ "type": "object",
100
+ "properties": {
101
+ "id": {"type": "string"},
102
+ "type": {"type": "string"},
103
+ "attributes": {"type": "object"}
104
+ }
105
+ }
106
+ }
107
+ }
108
+ },
109
+ "url": {"type": "string"}
110
+ }
111
+ },
112
+ "test_examples": [
113
+ {"study_accession": "MGYS00000001", "size": 1}
114
+ ],
115
+ "label": ["MGnify", "Microbiome", "Analysis"],
116
+ "metadata": {
117
+ "tags": ["analysis", "taxonomy", "function"],
118
+ "estimated_execution_time": "< 2 seconds"
119
+ }
120
+ }
121
+ ]
@@ -0,0 +1,122 @@
1
+ [
2
+ {
3
+ "name": "OBIS_search_taxa",
4
+ "type": "OBISTaxaTool",
5
+ "description": "Resolve marine taxa in OBIS by scientific name to obtain standardized identifiers (AphiaID), ranks, and names. Use before querying marine occurrences.",
6
+ "parameter": {
7
+ "type": "object",
8
+ "properties": {
9
+ "scientificname": {
10
+ "type": "string",
11
+ "description": "Scientific name query (e.g., 'Gadus')."
12
+ },
13
+ "size": {
14
+ "type": "integer",
15
+ "default": 10,
16
+ "minimum": 1,
17
+ "maximum": 100,
18
+ "description": "Number of records to return (1–100)."
19
+ }
20
+ },
21
+ "required": ["scientificname"]
22
+ },
23
+ "fields": {
24
+ "endpoint": "https://api.obis.org/v3/taxon",
25
+ "format": "json"
26
+ },
27
+ "return_schema": {
28
+ "type": "object",
29
+ "description": "OBIS taxon search response",
30
+ "properties": {
31
+ "status": {"type": "string"},
32
+ "data": {
33
+ "type": "object",
34
+ "properties": {
35
+ "results": {
36
+ "type": "array",
37
+ "items": {
38
+ "type": "object",
39
+ "properties": {
40
+ "scientificName": {"type": "string"},
41
+ "aphiaID": {"type": "integer"},
42
+ "rank": {"type": "string"}
43
+ }
44
+ }
45
+ }
46
+ }
47
+ },
48
+ "url": {"type": "string"}
49
+ }
50
+ },
51
+ "test_examples": [
52
+ {"scientificname": "Gadus", "size": 1}
53
+ ],
54
+ "label": ["OBIS", "Taxonomy", "Marine"],
55
+ "metadata": {
56
+ "tags": ["marine", "taxonomy", "aphia"],
57
+ "estimated_execution_time": "< 2 seconds"
58
+ }
59
+ },
60
+ {
61
+ "name": "OBIS_search_occurrences",
62
+ "type": "OBISOccurrenceTool",
63
+ "description": "Retrieve marine species occurrence records (with coordinates/time) from OBIS using flexible filters. Use for ocean biodiversity distribution analyses.",
64
+ "parameter": {
65
+ "type": "object",
66
+ "properties": {
67
+ "scientificname": {
68
+ "type": "string",
69
+ "description": "Scientific name filter to restrict occurrences."
70
+ },
71
+ "areaid": {
72
+ "type": "string",
73
+ "description": "Area identifier filter (per OBIS API)."
74
+ },
75
+ "size": {
76
+ "type": "integer",
77
+ "default": 10,
78
+ "minimum": 1,
79
+ "maximum": 100,
80
+ "description": "Number of records to return (1–100)."
81
+ }
82
+ }
83
+ },
84
+ "fields": {
85
+ "endpoint": "https://api.obis.org/v3/occurrence",
86
+ "format": "json"
87
+ },
88
+ "return_schema": {
89
+ "type": "object",
90
+ "description": "OBIS occurrence search response",
91
+ "properties": {
92
+ "status": {"type": "string"},
93
+ "data": {
94
+ "type": "object",
95
+ "properties": {
96
+ "results": {
97
+ "type": "array",
98
+ "items": {
99
+ "type": "object",
100
+ "properties": {
101
+ "scientificName": {"type": "string"},
102
+ "decimalLatitude": {"type": "number"},
103
+ "decimalLongitude": {"type": "number"},
104
+ "eventDate": {"type": "string"}
105
+ }
106
+ }
107
+ }
108
+ }
109
+ },
110
+ "url": {"type": "string"}
111
+ }
112
+ },
113
+ "test_examples": [
114
+ {"size": 1}
115
+ ],
116
+ "label": ["OBIS", "Occurrence", "Marine"],
117
+ "metadata": {
118
+ "tags": ["marine", "occurrence", "geospatial"],
119
+ "estimated_execution_time": "< 3 seconds"
120
+ }
121
+ }
122
+ ]
@@ -0,0 +1,275 @@
1
+ [
2
+ {
3
+ "type": "ComposeTool",
4
+ "name": "ToolDescriptionOptimizer",
5
+ "description": "Optimizes a tool's description and parameter descriptions by generating test cases, executing them, analyzing the results, and suggesting improved descriptions for both the tool and its arguments. Optionally saves a comprehensive optimization report to a file without overwriting the original.",
6
+ "parameter": {
7
+ "type": "object",
8
+ "properties": {
9
+ "tool_config": {
10
+ "type": "object",
11
+ "description": "The full configuration of the tool to optimize."
12
+ },
13
+ "save_to_file": {
14
+ "type": "boolean",
15
+ "description": "If true, save the optimized description to a file (do not overwrite the original).",
16
+ "default": false
17
+ },
18
+ "output_file": {
19
+ "type": "string",
20
+ "description": "Optional file path to save the optimized description. If not provided, use '<tool_name>_optimized_description.txt'."
21
+ },
22
+ "max_iterations": {
23
+ "type": "integer",
24
+ "description": "Maximum number of optimization rounds to perform.",
25
+ "default": 3
26
+ },
27
+ "satisfaction_threshold": {
28
+ "type": "number",
29
+ "description": "Quality score threshold (1-10) to consider optimization satisfactory.",
30
+ "default": 8
31
+ }
32
+ },
33
+ "required": [
34
+ "tool_config",
35
+ "save_to_file",
36
+ "output_file",
37
+ "max_iterations",
38
+ "satisfaction_threshold"
39
+ ]
40
+ },
41
+ "auto_load_dependencies": true,
42
+ "fail_on_missing_tools": false,
43
+ "required_tools": [
44
+ "TestCaseGenerator",
45
+ "DescriptionAnalyzer",
46
+ "ArgumentDescriptionOptimizer",
47
+ "DescriptionQualityEvaluator"
48
+ ],
49
+ "composition_file": "tool_description_optimizer.py",
50
+ "composition_function": "compose",
51
+ "return_schema": {
52
+ "type": "object",
53
+ "properties": {
54
+ "optimized_tool": {
55
+ "type": "object",
56
+ "description": "Tool with optimized descriptions"
57
+ },
58
+ "optimization_report": {
59
+ "type": "object",
60
+ "description": "Detailed optimization report",
61
+ "properties": {
62
+ "iterations_performed": {
63
+ "type": "integer"
64
+ },
65
+ "final_quality_score": {
66
+ "type": "number"
67
+ },
68
+ "improvements_made": {
69
+ "type": "array",
70
+ "items": {
71
+ "type": "string"
72
+ }
73
+ },
74
+ "saved_files": {
75
+ "type": "array",
76
+ "items": {
77
+ "type": "string"
78
+ }
79
+ }
80
+ }
81
+ }
82
+ },
83
+ "required": [
84
+ "optimized_tool",
85
+ "optimization_report"
86
+ ]
87
+ }
88
+ },
89
+ {
90
+ "type": "AgenticTool",
91
+ "name": "TestCaseGenerator",
92
+ "description": "Generates diverse and representative ToolUniverse tool call dictionaries for a given tool based on its parameter schema. Each tool call should be a JSON object with 'name' (the tool's name) and 'arguments' (a dict of input arguments), covering different parameter combinations, edge cases, and typical usage. Can generate targeted test cases based on previous optimization feedback.",
93
+ "prompt": "You are an expert software tester. Generate 3-5 diverse ToolUniverse tool call dictionaries for the given tool configuration. Each tool call must be a JSON object with 'name' (tool name) and 'arguments' (input parameters).\n\nFEEDBACK-DRIVEN GENERATION:\nIf tool_config contains '_optimization_feedback' and '_iteration', generate targeted test cases addressing the specific issues mentioned in the feedback. Focus on edge cases, parameter combinations, or usage patterns that need better coverage.\n\nSTANDARD GENERATION:\nCover typical usage, edge cases, and boundary conditions when possible.\n\nTool configuration: {tool_config}\n\nReturn a JSON object with key 'test_cases' containing an array of test case objects. Example format:\n{\"test_cases\": [{\"name\":\"tool_name_with_underscores\",\"arguments\":{\"param\":\"value\"}},{\"name\":\"tool_name_with_underscores\",\"arguments\":{\"param\":123}}]}",
94
+ "input_arguments": [
95
+ "tool_config"
96
+ ],
97
+ "parameter": {
98
+ "type": "object",
99
+ "properties": {
100
+ "tool_config": {
101
+ "type": "object",
102
+ "description": "The full configuration of the tool to generate test cases for. May include '_optimization_feedback' and '_iteration' fields for feedback-driven test generation."
103
+ }
104
+ },
105
+ "required": [
106
+ "tool_config"
107
+ ]
108
+ },
109
+ "configs": {
110
+ "api_type": "CHATGPT",
111
+ "model_id": "o4-mini-0416",
112
+ "temperature": 1.0,
113
+ "max_new_tokens": 4096,
114
+ "return_json": true,
115
+ "response_format": {
116
+ "type": "json_object"
117
+ }
118
+ },
119
+ "return_schema": {
120
+ "type": "object",
121
+ "properties": {
122
+ "test_cases": {
123
+ "type": "array",
124
+ "description": "Generated test cases for the tool",
125
+ "items": {
126
+ "type": "object",
127
+ "properties": {
128
+ "name": {
129
+ "type": "string",
130
+ "description": "Tool name"
131
+ },
132
+ "arguments": {
133
+ "type": "object",
134
+ "description": "Input arguments"
135
+ }
136
+ },
137
+ "required": [
138
+ "name",
139
+ "arguments"
140
+ ]
141
+ }
142
+ }
143
+ },
144
+ "required": [
145
+ "test_cases"
146
+ ]
147
+ }
148
+ },
149
+ {
150
+ "type": "AgenticTool",
151
+ "name": "ArgumentDescriptionOptimizer",
152
+ "description": "Optimizes the descriptions of tool arguments/parameters based on test case results and actual usage patterns. Provides improved descriptions that are more accurate and user-friendly.",
153
+ "prompt": "You are an expert technical writer specializing in API documentation. Given a tool's parameter schema and test case results, analyze how each parameter is used and optimize their descriptions to be clear, accurate, and concise.\n\nCRITICAL CONSTRAINTS - PARAMETER DESCRIPTION SCOPE:\n1. If the parameter schema contains '_previous_feedback', use that feedback to address specific issues and improve the parameter descriptions accordingly.\n2. Parameter descriptions should be HIGHLY SPECIFIC to each individual parameter.\n3. NEVER repeat or reference the main tool functionality - assume the user already knows what the tool does.\n4. Focus EXCLUSIVELY on parameter-specific details: data types, formats, constraints, valid values, required formats, examples when helpful.\n5. Each description should answer: 'What should I put in this specific parameter?' not 'What does the tool do?'\n6. Avoid generic phrases like 'for this tool', 'used by the tool', 'enables functionality' unless they provide specific technical context.\n7. Be precise about technical requirements (e.g., 'JSON string', 'integer between 1-100', 'URL format', etc.)\n8. Every word must serve a purpose - eliminate filler words and redundant phrases.\n\nOriginal parameter schema:\n{parameter_schema}\n\nTest results showing parameter usage:\n{test_results}\n\nFor each parameter, suggest an improved description that:\n1. Is brief but informative (1-2 sentences max)\n2. Accurately reflects the parameter's specific purpose, data type, and constraints\n3. Uses clear, simple language with precise technical details\n4. Avoids redundancy with the parameter name\n5. Addresses any issues mentioned in previous feedback\n6. Contains only essential information about what value should be provided\n\nReturn a JSON object with keys: 'optimized_parameters' (object with parameter names as keys and optimized descriptions as values) and 'rationale' (explaining the key changes made).",
154
+ "input_arguments": [
155
+ "parameter_schema",
156
+ "test_results"
157
+ ],
158
+ "parameter": {
159
+ "type": "object",
160
+ "properties": {
161
+ "parameter_schema": {
162
+ "type": "string",
163
+ "description": "JSON string of the original parameter schema with properties and descriptions."
164
+ },
165
+ "test_results": {
166
+ "type": "string",
167
+ "description": "A JSON string containing test case input/output pairs showing parameter usage."
168
+ }
169
+ },
170
+ "required": [
171
+ "parameter_schema",
172
+ "test_results"
173
+ ]
174
+ },
175
+ "configs": {
176
+ "api_type": "CHATGPT",
177
+ "model_id": "o4-mini-0416",
178
+ "temperature": 1.0,
179
+ "max_new_tokens": 1536,
180
+ "return_json": true
181
+ },
182
+ "return_schema": {
183
+ "type": "object",
184
+ "properties": {
185
+ "optimized_parameters": {
186
+ "type": "object",
187
+ "description": "Optimized parameter descriptions",
188
+ "additionalProperties": {
189
+ "type": "string"
190
+ }
191
+ },
192
+ "rationale": {
193
+ "type": "string"
194
+ }
195
+ },
196
+ "required": [
197
+ "optimized_parameters"
198
+ ]
199
+ }
200
+ },
201
+ {
202
+ "type": "AgenticTool",
203
+ "name": "DescriptionAnalyzer",
204
+ "description": "Analyzes a tool's original description and the results of multiple test cases, then suggests an improved description that is more accurate, comprehensive, and user-friendly. Optionally provides a rationale for the changes.",
205
+ "prompt": "You are an expert technical writer and tool evaluator. Given the original description of a tool and the results of several test cases (inputs and outputs), analyze whether the description accurately reflects the tool's behavior. Suggest an improved description that is more precise, comprehensive, and user-friendly. Also provide a brief rationale for your changes.\n\nCRITICAL CONSTRAINTS - TOOL DESCRIPTION SCOPE:\n1. If the original description contains 'Previous optimization feedback:', use that feedback to guide your improvements and address the specific issues mentioned.\n2. The tool description should focus EXCLUSIVELY on the OVERALL PURPOSE and HIGH-LEVEL FUNCTIONALITY of the tool.\n3. NEVER include parameter-specific details, formats, or requirements in the tool description.\n4. NEVER mention specific parameter names, data types, or input requirements - these belong in parameter descriptions.\n5. Focus ONLY on: what the tool does, its primary use cases, what kind of output it provides, and its general behavior patterns.\n6. Avoid generic filler phrases like 'enabling workflows', 'supporting analysis', 'facilitating research' unless they add specific meaning.\n7. Every sentence must convey essential information about the tool's core functionality.\n8. Think of the tool description as answering 'What does this tool do?' with concrete, actionable information.\n\nOriginal description:\n{original_description}\n\nTest results:\n{test_results}\n\nReturn a JSON object with keys: 'optimized_description' and 'rationale'.",
206
+ "input_arguments": [
207
+ "original_description",
208
+ "test_results"
209
+ ],
210
+ "parameter": {
211
+ "type": "object",
212
+ "properties": {
213
+ "original_description": {
214
+ "type": "string",
215
+ "description": "The original description of the tool."
216
+ },
217
+ "test_results": {
218
+ "type": "string",
219
+ "description": "A JSON string containing a list of test case input/output pairs."
220
+ }
221
+ },
222
+ "required": [
223
+ "original_description",
224
+ "test_results"
225
+ ]
226
+ },
227
+ "configs": {
228
+ "api_type": "CHATGPT",
229
+ "model_id": "o4-mini-0416",
230
+ "temperature": 0.4,
231
+ "max_new_tokens": 1024,
232
+ "return_json": true
233
+ }
234
+ },
235
+ {
236
+ "type": "AgenticTool",
237
+ "name": "DescriptionQualityEvaluator",
238
+ "description": "Evaluates the quality of tool descriptions and parameter descriptions, providing a score and specific feedback for improvements.",
239
+ "prompt": "You are an expert evaluator of technical documentation. Given a tool description, parameter descriptions, and test results, evaluate the quality and provide a score from 1-10 along with specific feedback.\n\nTool description:\n{tool_description}\n\nParameter descriptions:\n{parameter_descriptions}\n\nTest results:\n{test_results}\n\nEvaluate based on these criteria:\n1. Clarity and understandability (1-10)\n2. Accuracy based on test results (1-10)\n3. Completeness of information (1-10)\n4. Conciseness and meaningfulness - every sentence must serve a purpose (1-10)\n5. User-friendliness (1-10)\n6. Redundancy avoidance - tool description and parameter descriptions must not duplicate information (1-10)\n\nCRITICAL EVALUATION FOCUS:\n- Tool description should ONLY describe overall functionality and purpose, NOT parameter details\n- Parameter descriptions should ONLY describe specific parameter requirements, NOT tool functionality\n- Check for meaningless filler phrases like 'enabling workflows', 'supporting analysis', 'facilitating integration' - DEDUCT POINTS for vague language\n- Check for overlap: Does the tool description mention parameter names, formats, or specific input requirements? (DEDUCT POINTS)\n- Check for overlap: Do parameter descriptions repeat what the tool does overall? (DEDUCT POINTS)\n- Every sentence must convey essential, actionable information\n\nReturn a JSON object with:\n- 'overall_score': Average of all criteria scores (1-10)\n- 'criteria_scores': Object with individual scores for each criterion\n- 'feedback': Specific suggestions for improvement, identifying meaningless phrases and redundancy issues\n- 'is_satisfactory': Boolean indicating if quality is acceptable (score >= 8)\n- 'meaningfulness_analysis': Detailed explanation of any filler language or redundant information found",
240
+ "input_arguments": [
241
+ "tool_description",
242
+ "parameter_descriptions",
243
+ "test_results"
244
+ ],
245
+ "parameter": {
246
+ "type": "object",
247
+ "properties": {
248
+ "tool_description": {
249
+ "type": "string",
250
+ "description": "The tool description to evaluate."
251
+ },
252
+ "parameter_descriptions": {
253
+ "type": "string",
254
+ "description": "JSON string of parameter names and their descriptions."
255
+ },
256
+ "test_results": {
257
+ "type": "string",
258
+ "description": "JSON string containing test case results."
259
+ }
260
+ },
261
+ "required": [
262
+ "tool_description",
263
+ "parameter_descriptions",
264
+ "test_results"
265
+ ]
266
+ },
267
+ "configs": {
268
+ "api_type": "CHATGPT",
269
+ "model_id": "o4-mini-0416",
270
+ "temperature": 1.0,
271
+ "max_new_tokens": 1024,
272
+ "return_json": true
273
+ }
274
+ }
275
+ ]
@@ -0,0 +1,99 @@
1
+ [
2
+ {
3
+ "name": "RNAcentral_search",
4
+ "type": "RNAcentralSearchTool",
5
+ "description": "Search aggregated ncRNA records (miRNA, rRNA, lncRNA, etc.) across sources via RNAcentral. Use to find accessions, types, species, and descriptions for ncRNA analysis.",
6
+ "parameter": {
7
+ "type": "object",
8
+ "properties": {
9
+ "query": {
10
+ "type": "string",
11
+ "description": "Keyword, accession, or sequence-based query (per RNAcentral API)."
12
+ },
13
+ "page_size": {
14
+ "type": "integer",
15
+ "default": 10,
16
+ "minimum": 1,
17
+ "maximum": 100,
18
+ "description": "Number of records per page (1–100)."
19
+ }
20
+ },
21
+ "required": ["query"]
22
+ },
23
+ "fields": {
24
+ "endpoint": "https://rnacentral.org/api/v1/rna/",
25
+ "format": "json"
26
+ },
27
+ "return_schema": {
28
+ "type": "object",
29
+ "description": "RNAcentral rna list response",
30
+ "properties": {
31
+ "status": {"type": "string"},
32
+ "data": {
33
+ "type": "object",
34
+ "properties": {
35
+ "count": {"type": "integer"},
36
+ "results": {
37
+ "type": "array",
38
+ "items": {
39
+ "type": "object",
40
+ "properties": {
41
+ "rnacentral_id": {"type": "string"},
42
+ "description": {"type": "string"},
43
+ "rna_type": {"type": "string"},
44
+ "taxon": {"type": "object", "properties": {"scientific_name": {"type": "string"}, "taxid": {"type": "integer"}}}
45
+ }
46
+ }
47
+ }
48
+ }
49
+ },
50
+ "url": {"type": "string"}
51
+ }
52
+ },
53
+ "test_examples": [
54
+ {"query": "let-7", "page_size": 1},
55
+ {"query": "U6", "page_size": 1}
56
+ ],
57
+ "label": ["RNAcentral", "ncRNA", "Search"],
58
+ "metadata": {
59
+ "tags": ["rna", "mirna", "lncrna", "annotation"],
60
+ "estimated_execution_time": "< 2 seconds"
61
+ }
62
+ },
63
+ {
64
+ "name": "RNAcentral_get_by_accession",
65
+ "type": "RNAcentralGetTool",
66
+ "description": "Retrieve a single RNAcentral entry by accession for detailed annotations and source cross-references. Use for cross-database ID mapping and metadata.",
67
+ "parameter": {
68
+ "type": "object",
69
+ "properties": {
70
+ "accession": {
71
+ "type": "string",
72
+ "description": "RNAcentral accession (e.g., 'URS000075C808')."
73
+ }
74
+ },
75
+ "required": ["accession"]
76
+ },
77
+ "fields": {
78
+ "endpoint": "https://rnacentral.org/api/v1/rna/{accession}",
79
+ "format": "json"
80
+ },
81
+ "return_schema": {
82
+ "type": "object",
83
+ "description": "RNAcentral accession response",
84
+ "properties": {
85
+ "status": {"type": "string"},
86
+ "data": {"type": "object"},
87
+ "url": {"type": "string"}
88
+ }
89
+ },
90
+ "test_examples": [
91
+ {"accession": "URS000075C808"}
92
+ ],
93
+ "label": ["RNAcentral", "ncRNA", "Record"],
94
+ "metadata": {
95
+ "tags": ["rna", "accession", "annotation"],
96
+ "estimated_execution_time": "< 2 seconds"
97
+ }
98
+ }
99
+ ]