mirror of
https://github.com/microsoft/autogen.git
synced 2025-07-03 23:19:33 +00:00

* Initial prototype of .NET gRPC worker client + service --------- Co-authored-by: Jack Gerrits <jack@jackgerrits.com>
43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
from agnext.worker.worker_runtime import WorkerAgentRuntime
|
|
from agnext.components import TypeRoutedAgent, message_handler
|
|
from agnext.core import CancellationToken, AgentId
|
|
import logging
|
|
import asyncio
|
|
#import os
|
|
|
|
from dataclasses import dataclass
|
|
|
|
@dataclass
|
|
class ExampleMessagePayload:
|
|
content: str
|
|
|
|
|
|
class ExampleAgent(TypeRoutedAgent):
|
|
def __init__(self) -> None:
|
|
super().__init__("Example Agent")
|
|
|
|
@message_handler
|
|
async def on_example_payload(self, message: ExampleMessagePayload, cancellation_token: CancellationToken) -> None:
|
|
upper_case = message.content.upper()
|
|
await self.publish_message(ExampleMessagePayload(content=upper_case))
|
|
|
|
|
|
async def main() -> None:
|
|
logger = logging.getLogger("main")
|
|
runtime = WorkerAgentRuntime()
|
|
await runtime.setup_channel("localhost:5438") #os.environ["AGENT_HOST"])
|
|
|
|
runtime.register("ExampleAgent", lambda: ExampleAgent())
|
|
while True:
|
|
try:
|
|
res = await runtime.send_message("testing!", recipient=AgentId(name="greeter", namespace="testing"), sender=AgentId(name="ExampleAgent", namespace="testing"))
|
|
logger.info("Response: %s", res)
|
|
except Exception as e:
|
|
logger.warning("Error: %s", e)
|
|
await asyncio.sleep(5)
|
|
|
|
if __name__ == "__main__":
|
|
logging.basicConfig(level=logging.DEBUG)
|
|
asyncio.run(main())
|
|
|