Modifier Checker feedback Loop
This example demonstrates a simple multi-agent example designed to show how two agents interact in a feedback loop.
Modifier — modifies the message value (decrements by 1).
Checker — checks if the value meets the stopping condition. If not, it sends it back.
This creates a loop until the check condition is satisfied.
import asyncio
from dataclasses import dataclass
from typing import Callable
from agentopera.engine import DefaultMessageChannel, MessageContext, RoutedAgent, default_subscription, message_handler
@dataclass
class Message:
content: int@default_subscription
class Modifier(RoutedAgent):
def __init__(self, modify_val: Callable[[int], int]) -> None:
super().__init__("A modifier agent.")
self._modify_val = modify_val
@message_handler
async def handle_message(self, message: Message, ctx: MessageContext) -> None:
val = self._modify_val(message.content)
print(f"{'-'*80}\nModifier:\nModified {message.content} to {val}")
await self.publish_message(Message(content=val), DefaultMessageChannel()) # type: ignoreDone!
This loop demonstrates a simple distributed message feedback loop between two agents.
Last updated