Numerous fixes for agbench (#170)

* Shift to new runtime API

* Add pretty printing

* Reformat

* Fix linting errors
This commit is contained in:
gagb
2024-07-02 16:18:48 -07:00
committed by GitHub
parent ca42b560e9
commit bcec0502d7
5 changed files with 177 additions and 50 deletions

View File

@@ -1,9 +1,15 @@
import logging
from datetime import datetime
from typing import List
from agnext.application.logging import EVENT_LOGGER_NAME
from agnext.components import TypeRoutedAgent, message_handler
from agnext.components.models import AssistantMessage, UserMessage
from agnext.core import AgentProxy, CancellationToken
from ..messages import BroadcastMessage, RequestReplyMessage
from ..messages import BroadcastMessage, OrchestrationEvent, RequestReplyMessage
logger = logging.getLogger(EVENT_LOGGER_NAME + ".orchestrator")
class RoundRobinOrchestrator(TypeRoutedAgent):
@@ -19,12 +25,39 @@ class RoundRobinOrchestrator(TypeRoutedAgent):
@message_handler
async def handle_incoming_message(self, message: BroadcastMessage, cancellation_token: CancellationToken) -> None:
"""Handle an incoming message."""
source = "Unknown"
if isinstance(message.content, UserMessage) or isinstance(message.content, AssistantMessage):
source = message.content.source
assert isinstance(source, str)
current_timestamp = datetime.now().isoformat()
logger.info(
OrchestrationEvent(
current_timestamp,
f"""
-------------------------------------
{source}: {message.content.content}
-------------------------------------
""",
)
)
if self._num_rounds > 20:
return
next_agent = self._select_next_agent()
request_reply_message = RequestReplyMessage()
# emit an event
current_timestamp = datetime.now().isoformat()
logger.info(
OrchestrationEvent(
current_timestamp,
f"Orchestrator (thought): Next speaker {next_agent.metadata['name']}",
)
)
await self.send_message(request_reply_message, next_agent.id)
self._num_rounds += 1

View File

@@ -11,3 +11,9 @@ class BroadcastMessage:
@dataclass
class RequestReplyMessage:
pass
@dataclass
class OrchestrationEvent:
timestamp: str
message: str