|
from flaml import autogen |
|
|
|
|
|
config_list_gpt4 = autogen.config_list_from_json( |
|
"../OAI_CONFIG_LIST.json", |
|
filter_dict={ |
|
"model": ["gpt-4-0613, gpt-4-32k, gpt-4, gpt-4-0314"], |
|
}, |
|
) |
|
|
|
gpt4_config = { |
|
"seed": 42, |
|
"temperature": 0, |
|
"config_list": config_list_gpt4, |
|
"request_timeout": 1200, |
|
} |
|
|
|
working_directory = "game_files" |
|
|
|
|
|
player = autogen.UserProxyAgent( |
|
name="Player", |
|
system_message="Player: Provide feedback on gameplay. Collaborate with the Game Designer for enhancing the game.", |
|
code_execution_config={ |
|
"work_dir": working_directory, |
|
"use_docker": False, |
|
"timeout": 120, |
|
"last_n_messages": 1, |
|
}, |
|
) |
|
|
|
|
|
game_designer = autogen.AssistantAgent( |
|
name="Game_Designer", |
|
llm_config=gpt4_config, |
|
system_message="Game Designer: Craft the design for the snake game. Document details in 'game_design.txt'. Collaborate for a comprehensive design." |
|
) |
|
|
|
|
|
programmer = autogen.AssistantAgent( |
|
name="Programmer", |
|
llm_config=gpt4_config, |
|
system_message="Programmer: Develop the snake game. Save code in the working directory. Use a venv for dependency management and create/maintain 'requirements.txt'." |
|
) |
|
|
|
|
|
game_tester = autogen.UserProxyAgent( |
|
name="Game_Tester", |
|
system_message="Game Tester: Playtest the game. Share feedback on gameplay, mechanics, and possible bugs.", |
|
code_execution_config={ |
|
"work_dir": working_directory, |
|
"use_docker": False, |
|
"timeout": 120, |
|
"last_n_messages": 3, |
|
}, |
|
human_input_mode="ALWAYS", |
|
) |
|
|
|
|
|
code_executor = autogen.UserProxyAgent( |
|
name="Code_Executor", |
|
system_message="Code Executor: Run the given code in the specified environment. Report outcomes and potential problems.", |
|
code_execution_config={ |
|
"work_dir": working_directory, |
|
"use_docker": False, |
|
"timeout": 120, |
|
"last_n_messages": 3, |
|
}, |
|
human_input_mode="NEVER", |
|
) |
|
|
|
|
|
code_reviewer = autogen.AssistantAgent( |
|
name="Code_Reviewer", |
|
llm_config=gpt4_config, |
|
system_message="Code Reviewer: Inspect the given code. Ensure its quality, efficiency, and adherence to best practices. Recommend enhancements." |
|
) |
|
|
|
|
|
internet_researcher = autogen.AssistantAgent( |
|
name="Internet_Researcher", |
|
llm_config=gpt4_config, |
|
system_message="Internet Researcher: Explore relevant game development trends. Offer insights and references." |
|
) |
|
|
|
|
|
file_manager = autogen.AssistantAgent( |
|
name="File_Manager", |
|
llm_config=gpt4_config, |
|
system_message="File Manager: Create, read, and write local files as needed. Save work and progress of the team." |
|
) |
|
|
|
|
|
groupchat = autogen.GroupChat( |
|
agents=[player, game_tester, game_designer, programmer, |
|
code_executor, code_reviewer, internet_researcher, file_manager], |
|
messages=[], |
|
max_round=150 |
|
) |
|
manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=gpt4_config) |
|
|
|
|
|
player.initiate_chat( |
|
manager, |
|
message="Let's design and implement a snake game. I aim for it to be entertaining and challenging." |
|
) |
|
|