You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

example_reflexagents.py 1.9 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. """This example demonstrates three mock agents taking turn to reflect recieved message
  2. by publishing it verbatim. The agents are orchestrated by a round-robin orchestrator agent."""
  3. import asyncio
  4. import logging
  5. from autogen_core.application import SingleThreadedAgentRuntime
  6. from autogen_core.application.logging import EVENT_LOGGER_NAME
  7. from autogen_core.base import AgentId, AgentProxy
  8. from autogen_core.components import DefaultSubscription, DefaultTopicId
  9. from autogen_core.components.models import UserMessage
  10. from team_one.agents.orchestrator import RoundRobinOrchestrator
  11. from team_one.agents.reflex_agents import ReflexAgent
  12. from team_one.messages import BroadcastMessage
  13. from team_one.utils import LogHandler
  14. async def main() -> None:
  15. runtime = SingleThreadedAgentRuntime()
  16. await runtime.register("fake_agent_1", lambda: ReflexAgent("First reflect agent"), lambda: [DefaultSubscription()])
  17. fake1 = AgentProxy(AgentId("fake_agent_1", "default"), runtime)
  18. await runtime.register("fake_agent_2", lambda: ReflexAgent("Second reflect agent"), lambda: [DefaultSubscription()])
  19. fake2 = AgentProxy(AgentId("fake_agent_2", "default"), runtime)
  20. await runtime.register("fake_agent_3", lambda: ReflexAgent("Third reflect agent"), lambda: [DefaultSubscription()])
  21. fake3 = AgentProxy(AgentId("fake_agent_3", "default"), runtime)
  22. await runtime.register(
  23. "orchestrator", lambda: RoundRobinOrchestrator([fake1, fake2, fake3]), lambda: [DefaultSubscription()]
  24. )
  25. task_message = UserMessage(content="Test Message", source="User")
  26. runtime.start()
  27. await runtime.publish_message(BroadcastMessage(content=task_message), topic_id=DefaultTopicId())
  28. await runtime.stop_when_idle()
  29. if __name__ == "__main__":
  30. logger = logging.getLogger(EVENT_LOGGER_NAME)
  31. logger.setLevel(logging.INFO)
  32. log_handler = LogHandler()
  33. logger.handlers = [log_handler]
  34. asyncio.run(main())