Warn if GroupChat is underpopulatd. (#170)

This commit is contained in:
afourney 2023-10-09 14:30:20 -07:00 committed by GitHub
parent d8ebf6c8c6
commit 4522900487
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,6 +3,9 @@ import sys
from typing import Dict, List, Optional, Union from typing import Dict, List, Optional, Union
from .agent import Agent from .agent import Agent
from .conversable_agent import ConversableAgent from .conversable_agent import ConversableAgent
import logging
logger = logging.getLogger(__name__)
@dataclass @dataclass
@ -42,6 +45,14 @@ Then select the next role from {self.agent_names} to play. Only return the role.
def select_speaker(self, last_speaker: Agent, selector: ConversableAgent): def select_speaker(self, last_speaker: Agent, selector: ConversableAgent):
"""Select the next speaker.""" """Select the next speaker."""
selector.update_system_message(self.select_speaker_msg()) selector.update_system_message(self.select_speaker_msg())
# Warn if GroupChat is underpopulated, without established changing behavior
n_agents = len(self.agent_names)
if n_agents < 3:
logger.warning(
f"GroupChat is underpopulated with {n_agents} agents. Direct communication would be more efficient."
)
final, name = selector.generate_oai_reply( final, name = selector.generate_oai_reply(
self.messages self.messages
+ [ + [