Modifier Checker feedback Loop

This example demonstrates a simple multi-agent example designed to show how two agents interact in a feedback loop.

  1. Modifier — modifies the message value (decrements by 1).

  2. 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: ignore

Done!

This loop demonstrates a simple distributed message feedback loop between two agents.

Last updated