import unittest import pytest import pprint from mcpuniverse.mcp.manager import MCPManager from mcpuniverse.llm.manager import ModelManager from mcpuniverse.agent.basic import BasicAgent from mcpuniverse.agent.function_call import FunctionCall from mcpuniverse.workflows.parallelization import Parallelization from mcpuniverse.tracer import Tracer class TestParallelization(unittest.IsolatedAsyncioTestCase): @pytest.mark.skip async def test(self): tracer = Tracer() mcp_manager = MCPManager() llm = ModelManager().build_model(name="openai") agent = Parallelization( agents=[ BasicAgent( mcp_manager=mcp_manager, llm=llm, config={ "instruction": "Describe the place at the given latitude and the longitude" } ), FunctionCall( mcp_manager=mcp_manager, llm=llm, config={ "instruction": "You are an agent for weather forecast. " "Please return the weather today at the given latitude and longitude", "servers": [{"name": "weather"}] } ) ], aggregator=BasicAgent( mcp_manager=mcp_manager, llm=llm, config={ "instruction": "Merge the results from the agents and return a summary" } ) ) await agent.initialize() output_format = {"summary": ""} response = await agent.execute( message="34.05° N latitude and 118.25° W longitude", output_format=output_format, tracer=tracer) print(response) await agent.cleanup() pprint.pprint(tracer.get_trace()) if __name__ == "__main__": unittest.main()