Reputation: 226
I have a group chat that seems to work quite well but i am strugglying to stop it gracefully. In particular, with this groupchat:
groupchat = GroupChat(
agents=[user_proxy, engineer_agent, writer_agent, code_executor_agent, planner_agent],
messages=[],
max_round=30,
allowed_or_disallowed_speaker_transitions={
user_proxy: [engineer_agent, writer_agent, code_executor_agent, planner_agent],
engineer_agent: [code_executor_agent],
writer_agent: [planner_agent],
code_executor_agent: [engineer_agent, planner_agent],
planner_agent: [engineer_agent, writer_agent],
},
speaker_transitions_type="allowed",
)
I gave to the planner_agent the possibility, at least in my understanding, to stop the chat. I did so in the following way:
def istantiate_planner_agent(llm_config) -> ConversableAgent:
planner_agent = ConversableAgent(
name="planner_agent",
system_message=(
[... REDACTED PROMPT SINCE IT HAS INFO I CANNOT SHARE ...]
"After each step is done by others, check the progress and instruct the remaining steps.\n"
"When the final taks has been completed, output TERMINATE_CHAT to stop the conversation."
"If a step fails, try to find a workaround. Remember, you must dispatch only one single tasak at a time."
),
description="Planner. Given a task, determine what "
"information is needed to complete the task. "
"After each step is done by others, check the progress and "
"instruct the remaining steps",
is_termination_msg=lambda msg: "TERMINATE_CHAT" in msg["content"],
human_input_mode="NEVER",
llm_config=llm_config,
)
return planner_agent
The planner understand it is time to stop quite well, as you can see in the following message from it:
Next speaker: planner_agent
planner_agent (to chat_manager):
The executive summary looks comprehensive and well-structured. It covers the market situation, competitors, and their differentiations effectively.
Since the task is now complete, I will proceed to terminate the conversation.
TERMINATE_CHAT
Unfortunately, when it fires this message the conversation continue as this:
Next speaker: writer_agent
writer_agent (to chat_manager):
I'm glad you found the executive summary comprehensive and well-structured. If you have any further questions or need additional refinements in the future, feel free to reach out. Have a great day!
TERMINATE_CHAT
Next speaker: planner_agent
Provide feedback to chat_manager. Press enter to skip and use auto-reply, or type 'exit' to end the conversation: exit
As you see for some reason the writer picks it up and i have to give my feedback to tell the convo to stop.
Am i doing somethibg wrong?
Upvotes: 0
Views: 45