目录

接口 IAgentRuntime

命名空间
Microsoft.AutoGen.Contracts
程序集
Microsoft.AutoGen.Contracts.dll

定义代理的运行时环境,管理消息发送、订阅、代理解析和状态持久化。

public interface IAgentRuntime : ISaveState
继承的成员

方法

AddSubscriptionAsync(ISubscriptionDefinition)

添加一个新的订阅,供运行时在处理已发布的消息时使用。

ValueTask AddSubscriptionAsync(ISubscriptionDefinition subscription)

参数

subscription ISubscriptionDefinition

要添加的订阅。

返回值

ValueTask

表示异步操作的任务。

GetAgentAsync(AgentId, bool)

通过其唯一标识符检索代理。

ValueTask<AgentId> GetAgentAsync(AgentId agentId, bool lazy = true)

参数

agentId AgentId

代理的唯一标识符。

lazy bool

如果为true,则延迟获取代理。

返回值

ValueTask<AgentId>

表示异步操作的任务,返回代理的 ID。

GetAgentAsync(AgentType, string, bool)

通过其类型检索代理。

ValueTask<AgentId> GetAgentAsync(AgentType agentType, string key = "default", bool lazy = true)

参数

agentType AgentType

代理的类型。

key string

一个可选的键,用于指定代理的变体。默认为“default”。

lazy bool

如果为true,则延迟获取代理。

返回值

ValueTask<AgentId>

表示异步操作的任务,返回代理的 ID。

GetAgentAsync(string, string, bool)

通过其字符串表示形式检索代理。

ValueTask<AgentId> GetAgentAsync(string agent, string key = "default", bool lazy = true)

参数

agent string

代理的字符串表示形式。

key string

一个可选的键,用于指定代理的变体。默认为“default”。

lazy bool

如果为true,则延迟获取代理。

返回值

ValueTask<AgentId>

表示异步操作的任务,返回代理的 ID。

GetAgentMetadataAsync(AgentId)

检索代理的元数据。

ValueTask<AgentMetadata> GetAgentMetadataAsync(AgentId agentId)

参数

agentId AgentId

代理的 ID。

返回值

ValueTask<AgentMetadata>

表示异步操作的任务,返回代理的元数据。

LoadAgentStateAsync(AgentId, JsonElement)

将保存的状态加载到代理中。

ValueTask LoadAgentStateAsync(AgentId agentId, JsonElement state)

参数

agentId AgentId

正在还原其状态的代理的 ID。

state JsonElement

要恢复的状态字典。

返回值

ValueTask

表示异步操作的任务。

PublishMessageAsync(object, TopicId, AgentId?, string?, CancellationToken)

将消息发布到所有订阅了给定主题的代理。不期望发布产生任何响应。

ValueTask PublishMessageAsync(object message, TopicId topic, AgentId? sender = null, string? messageId = null, CancellationToken cancellationToken = default)

参数

message object

要发布的消息。

topic TopicId

要将消息发布到的主题。

sender AgentId?

发送消息的代理。默认为null

messageId string

唯一的消息 ID。如果为null,将生成一个新的 ID。

cancellationToken CancellationToken

如果需要,用于取消操作的令牌。

返回值

ValueTask

表示异步操作的任务。

异常

UndeliverableException

如果无法传递消息,则引发此异常。

RegisterAgentFactoryAsync(AgentType, Func<AgentId, IAgentRuntime, ValueTask<IHostableAgent>>)

向运行时注册代理工厂,将其与特定的代理类型关联。该类型必须是唯一的。

ValueTask<AgentType> RegisterAgentFactoryAsync(AgentType type, Func<AgentId, IAgentRuntime, ValueTask<IHostableAgent>> factoryFunc)

参数

type AgentType

要与工厂关联的代理类型。

factoryFunc Func<AgentId, IAgentRuntime, ValueTask<IHostableAgent>>

异步创建代理实例的函数。

返回值

ValueTask<AgentType>

表示异步操作的任务,返回已注册的AgentType

RemoveSubscriptionAsync(string)

从运行时删除订阅。

ValueTask RemoveSubscriptionAsync(string subscriptionId)

参数

subscriptionId string

要删除的订阅的唯一标识符。

返回值

ValueTask

表示异步操作的任务。

异常

KeyNotFoundException

如果订阅不存在,则引发此异常。

SaveAgentStateAsync(AgentId)

保存代理的状态。结果必须是 JSON 可序列化的。

ValueTask<JsonElement> SaveAgentStateAsync(AgentId agentId)

参数

agentId AgentId

正在保存其状态的代理的 ID。

返回值

ValueTask<JsonElement>

表示异步操作的任务,返回保存状态的字典。

SendMessageAsync(object, AgentId, AgentId?, string?, CancellationToken)

向代理发送消息并获取响应。此方法应用于直接与代理通信。

ValueTask<object?> SendMessageAsync(object message, AgentId recepient, AgentId? sender = null, string? messageId = null, CancellationToken cancellationToken = default)

参数

message object

要发送的消息。

recepient AgentId

要将消息发送到的代理。

sender AgentId?

发送消息的代理。如果从外部源发送,则应为null

messageId string

消息的唯一标识符。如果为null,将生成一个新的 ID。

cancellationToken CancellationToken

如果需要,用于取消操作的令牌。

返回值

ValueTask<object>

表示异步操作的任务,返回来自代理的响应。

异常

CantHandleException

如果接收者无法处理消息,则引发此异常。

UndeliverableException

如果无法传递消息,则引发此异常。

TryGetAgentProxyAsync(AgentId)

尝试检索指定代理的 AgentProxy

ValueTask<AgentProxy> TryGetAgentProxyAsync(AgentId agentId)

参数

agentId AgentId

代理的 ID。

返回值

ValueTask<AgentProxy>

表示异步操作的任务,如果成功,则返回一个 AgentProxy