2024-06-18 14:53:18 -04:00
|
|
|
from dataclasses import dataclass
|
2024-06-22 14:50:32 -04:00
|
|
|
from typing import Any
|
2024-06-18 14:53:18 -04:00
|
|
|
|
|
|
|
from agnext.components import TypeRoutedAgent, message_handler
|
2024-06-22 14:50:32 -04:00
|
|
|
from agnext.core import CancellationToken, BaseAgent
|
2024-06-18 14:53:18 -04:00
|
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
class MessageType:
|
|
|
|
...
|
|
|
|
|
|
|
|
class LoopbackAgent(TypeRoutedAgent):
|
|
|
|
def __init__(self) -> None:
|
|
|
|
super().__init__("A loop back agent.")
|
|
|
|
self.num_calls = 0
|
|
|
|
|
|
|
|
|
|
|
|
@message_handler
|
|
|
|
async def on_new_message(self, message: MessageType, cancellation_token: CancellationToken) -> MessageType:
|
|
|
|
self.num_calls += 1
|
2024-06-22 14:50:32 -04:00
|
|
|
return message
|
|
|
|
|
|
|
|
class NoopAgent(BaseAgent):
|
|
|
|
def __init__(self) -> None:
|
|
|
|
super().__init__("A no op agent", [])
|
|
|
|
|
|
|
|
async def on_message(self, message: Any, cancellation_token: CancellationToken) -> Any:
|
|
|
|
raise NotImplementedError
|