2023-11-30 08:43:03 -08:00
|
|
|
import os
|
|
|
|
import json
|
|
|
|
import autogen
|
|
|
|
import testbed_utils
|
|
|
|
|
|
|
|
testbed_utils.init()
|
|
|
|
##############################
|
|
|
|
|
2024-01-25 16:46:58 -08:00
|
|
|
config_list = autogen.config_list_from_json("OAI_CONFIG_LIST")
|
2023-11-30 08:43:03 -08:00
|
|
|
|
|
|
|
assistant = autogen.AssistantAgent(
|
|
|
|
"assistant",
|
|
|
|
is_termination_msg=lambda x: x.get("content", "").find("TERMINATE") >= 0,
|
|
|
|
llm_config=testbed_utils.default_llm_config(config_list, timeout=180),
|
|
|
|
)
|
|
|
|
|
|
|
|
user_proxy = autogen.UserProxyAgent(
|
|
|
|
"user_proxy",
|
|
|
|
human_input_mode="NEVER",
|
|
|
|
system_message="A human who can run code at a terminal and report back the results.",
|
|
|
|
is_termination_msg=lambda x: x.get("content", "").find("TERMINATE") >= 0,
|
|
|
|
code_execution_config={
|
|
|
|
"work_dir": "coding",
|
|
|
|
"use_docker": False,
|
|
|
|
},
|
|
|
|
max_consecutive_auto_reply=10,
|
|
|
|
default_auto_reply="",
|
|
|
|
)
|
|
|
|
|
|
|
|
third_agent = autogen.AssistantAgent(
|
|
|
|
"__3RD_AGENT_NAME__",
|
|
|
|
system_message="""
|
|
|
|
__3RD_AGENT_PROMPT__
|
|
|
|
""".strip(),
|
|
|
|
is_termination_msg=lambda x: x.get("content", "").find("TERMINATE") >= 0,
|
|
|
|
llm_config=testbed_utils.default_llm_config(config_list, timeout=180),
|
|
|
|
)
|
|
|
|
|
|
|
|
groupchat = autogen.GroupChat(
|
|
|
|
agents=[user_proxy, assistant, third_agent],
|
|
|
|
messages=[],
|
|
|
|
speaker_selection_method="__SELECTION_METHOD__",
|
|
|
|
allow_repeat_speaker=False,
|
|
|
|
max_round=12,
|
|
|
|
)
|
|
|
|
|
|
|
|
manager = autogen.GroupChatManager(
|
|
|
|
groupchat=groupchat,
|
|
|
|
is_termination_msg=lambda x: x.get("content", "").find("TERMINATE") >= 0,
|
|
|
|
llm_config=testbed_utils.default_llm_config(config_list, timeout=180),
|
|
|
|
)
|
|
|
|
|
|
|
|
user_proxy.initiate_chat(
|
|
|
|
manager,
|
|
|
|
message="""
|
|
|
|
__PROMPT__
|
|
|
|
""".strip(),
|
|
|
|
)
|
|
|
|
|
|
|
|
##############################
|
|
|
|
testbed_utils.finalize(agents=[assistant, user_proxy, third_agent, manager])
|