AutoGen 服务#
概述#
每个 AutoGen 代理系统都有一个或多个代理工作器和一组用于管理/支持代理的服务。这些服务和工作器可以全部托管在同一进程中,也可以在分布式系统中运行。当在同一进程中时,通信和事件传递是在内存中进行的。当分布式部署时,工作器通过 gRPC 与服务通信。在所有情况下,事件都被打包为 CloudEvents。后端服务有多个选项:
内存模式:代理工作器和服务都托管在同一进程中,通过内存通道进行通信。适用于 Python 和 .NET。
仅 Python:代理工作器与 Python 托管的服务通信,该服务实现了内存消息总线和代理注册表。
Microsoft Orleans:一个分布式 actor 系统,可以托管服务和工作器,支持持久存储的分布式状态,可以利用多种事件总线类型,以及跨语言代理通信。
路线图:支持其他语言的分布式系统,如 dapr 或 Akka。
系统中的服务包括:
工作器:托管代理并作为网关的客户端
网关: -- 其他服务 API 的 RPC 网关 -- 为工作器和事件总线之间提供 RPC 桥接 -- 消息会话状态(跟踪消息队列/传递)
注册表:跟踪系统中的 {代理:代理类型}:{订阅/主题} 以及它们可以处理的事件 -- 路线图:在网关中添加查找 API
代理状态:代理的持久状态
路由:基于代理的订阅+主题传递事件 -- 路线图:添加订阅管理 API
路线图:代理系统的管理 API
路线图:调度:管理代理的放置
路线图:发现:允许发现代理和服务