Spaces:
Sleeping
Sleeping
# coding: utf-8 | |
# Copyright (c) 2025 inclusionAI. | |
import logging | |
from aworld.tools import get_function_tools, list_function_tools | |
from examples.sandbox.inner_tools import aworldsearch_function_tools, another_function_tools | |
aworldsearch_server = get_function_tools("aworldsearch_server") | |
print(aworldsearch_server.list_tools()) | |
res = aworldsearch_server.call_tool("search", {"query_list": ["Tencent financial report", "Baidu financial report", "Alibaba financial report"],}) | |
print(res) | |
another_server = get_function_tools("another-server") | |
print(another_server.list_tools()) | |
# Configure logging | |
logging.basicConfig( | |
level=logging.INFO, | |
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' | |
) | |
# Step 1: Import different modules, which will automatically register their respective FunctionTools instances | |
print("=== Step 1: Import modules, automatically register FunctionTools instances ===") | |
# Import aworldsearch_function_tools module, which registers "aworldsearch-server" | |
print("Imported aworldsearch_function_tools module") | |
# Import another_function_tools module, which registers "another-server" | |
print("Imported another_function_tools module") | |
# Step 2: Get FunctionTools instances by name | |
print("\n=== Step 2: Get FunctionTools instances by name ===") | |
from aworld.tools import get_function_tools, list_function_tools | |
# List all registered FunctionTools servers | |
print(f"All registered servers: {list_function_tools()}") | |
# Get server instance by specific name | |
aworldsearch_server = get_function_tools("aworldsearch-server") | |
print(f"Retrieved server: {aworldsearch_server.name}") | |
print(f"Server description: {aworldsearch_server.description}") | |
another_server = get_function_tools("another-server") | |
print(f"Retrieved server: {another_server.name}") | |
print(f"Server description: {another_server.description}") | |
# Step 3: Use the retrieved instances to call methods | |
print("\n=== Step 3: Use the retrieved instances to call methods ===") | |
# List all tools of aworldsearch server | |
print("aworldsearch-server tool list:") | |
for tool in aworldsearch_server.list_tools(): | |
print(f" - {tool.name}: {tool.description}") | |
# List all tools of another server | |
print("\nanother-server tool list:") | |
for tool in another_server.list_tools(): | |
print(f" - {tool.name}: {tool.description}") | |
# Step 4: Call tools | |
print("\n=== Step 4: Call tool examples ===") | |
# Call aworldsearch server's tool | |
if "demo_search" in [tool.name for tool in aworldsearch_server.list_tools()]: | |
print("Calling demo_search tool:") | |
result = aworldsearch_server.call_tool("demo_search", {"query_list": ["Test query"]}) | |
print(result) | |
# Call another server's tool | |
if "get_weather" in [tool.name for tool in another_server.list_tools()]: | |
print("\nCalling get_weather tool:") | |
result = another_server.call_tool("get_weather", {"city": "Beijing"}) | |
print(result) | |
if __name__ == "__main__": | |
pass # Main logic has already been executed at the module level |