Spaces:
Build error
Build error
| from __future__ import annotations | |
| import asyncio | |
| from colorama import Fore | |
| from typing import TYPE_CHECKING, List | |
| from . import decision_maker_registry | |
| from .base import BaseDecisionMaker | |
| from agentverse.logging import typewriter_log, logger | |
| from agentverse.message import Message | |
| if TYPE_CHECKING: | |
| from agentverse.agents import BaseAgent, SolverAgent, CriticAgent | |
| from agentverse.message import SolverMessage | |
| class CentralDecisionMaker(BaseDecisionMaker): | |
| """ | |
| Discuss in a central manner. | |
| """ | |
| name: str = "central" | |
| async def astep( | |
| self, | |
| agents: List[BaseAgent], | |
| task_description: str, | |
| previous_plan: str = "No solution yet.", | |
| advice: str = "No advice yet.", | |
| *args, | |
| **kwargs, | |
| ) -> List[SolverMessage]: | |
| if advice != "No advice yet.": | |
| agents[1].add_message_to_memory( | |
| [Message(content=advice, sender="Evaluator")] | |
| ) | |
| result = await agents[1].astep( | |
| previous_plan, | |
| advice, | |
| task_description, | |
| roles=", ".join( | |
| [ | |
| agent.role_description[0].lower() + agent.role_description[1:] | |
| for agent in agents | |
| ] | |
| ), | |
| ) | |
| agents[1].add_message_to_memory([result]) | |
| result = agents[0].step( | |
| previous_plan, advice, task_description, chat_record=result.content | |
| ) | |
| return [result] | |
| def reset(self): | |
| pass | |