mirror of https://github.com/microsoft/autogen.git
1.8 KiB
1.8 KiB
AutoGen Services
Overview
Each AutoGen agent system has one or more Agent Workers and a set of services for managing/supporting the agents. The services and workers can all be hosted in the same process or in a distributed system. When in the same process communication and event delivery is in-memory. When distributed, workers communicate with the service over gRPC. In all cases, events are packaged as CloudEvents. There are multiple options for the backend services:
- In-Memory: the Agent Workers and Services are all hosted in the same process and communicate over in-memory channels. Available for python and .NET.
- Python only: Agent workers communicate with a python hosted service that implements an in-memory message bus and agent registry.
- Micrososft Orleans: a distributed actor system that can host the services and workers, enables distributed state with persistent storage, can leverage multiple event bus types, and cross-language agent communication.
- Roadmap: support for other languages distributed systems such as dapr or Akka.
The Services in the system include:
- Worker: Hosts the Agents and is a client to the Gateway
- Gateway: -- RPC gateway for the other services APIs -- Provides an RPC bridge between the workers and the Event Bus -- Message Session state (track message queues/delivery)
- Registry: keeps track of the {agents:agent types}:{Subscription/Topics} in the system and which events they can handle -- Roadmap: add lookup api in gateway
- AgentState: persistent state for agents
- Routing: delivers events to agents based on their subscriptions+topics -- Roadmap: add subscription management APIs
- Roadmap: Management APIs for the Agent System
- Roadmap: Scheduling: manages placement of agents
- Roadmap: Discovery: allows discovery of agents and services