类 InProcessRuntime
public sealed class InProcessRuntime : IAgentRuntime, ISaveState, IHostedService
- 继承
-
InProcessRuntime
- 实现
- 继承的成员
- 扩展方法
构造函数
InProcessRuntime()
public InProcessRuntime()
属性
DeliverToSelf
public bool DeliverToSelf { get; set; }
属性值
方法
AddSubscriptionAsync(ISubscriptionDefinition)
添加一个新的订阅,以便运行时在处理已发布的消息时进行处理。
public ValueTask AddSubscriptionAsync(ISubscriptionDefinition subscription)
参数
subscriptionISubscriptionDefinition要添加的订阅。
返回值
- ValueTask
表示异步操作的任务。
GetAgentAsync(AgentId, bool)
通过其唯一标识符检索代理。
public ValueTask<AgentId> GetAgentAsync(AgentId agentId, bool lazy = true)
参数
返回值
GetAgentAsync(AgentType, string, bool)
通过其类型检索代理。
public ValueTask<AgentId> GetAgentAsync(AgentType agentType, string key = "default", bool lazy = true)
参数
返回值
GetAgentAsync(string, string, bool)
通过其字符串表示形式检索代理。
public ValueTask<AgentId> GetAgentAsync(string agent, string key = "default", bool lazy = true)
参数
返回值
GetAgentMetadataAsync(AgentId)
检索代理的元数据。
public ValueTask<AgentMetadata> GetAgentMetadataAsync(AgentId agentId)
参数
agentIdAgentId代理的 ID。
返回值
- ValueTask<AgentMetadata>
表示异步操作的任务,返回代理的元数据。
LoadAgentStateAsync(AgentId, JsonElement)
将保存的状态加载到代理中。
public ValueTask LoadAgentStateAsync(AgentId agentId, JsonElement state)
参数
agentIdAgentId正在恢复状态的代理的 ID。
stateJsonElement要恢复的状态字典。
返回值
- ValueTask
表示异步操作的任务。
LoadStateAsync(JsonElement)
将先前保存的状态加载到对象中。
public ValueTask LoadStateAsync(JsonElement state)
参数
stateJsonElement表示已保存状态的字典。状态的结构是实现定义的,但必须是 JSON 可序列化的。
返回值
- ValueTask
表示异步操作的任务。
ProcessNextMessageAsync(CancellationToken)
public ValueTask ProcessNextMessageAsync(CancellationToken cancellation = default)
参数
cancellationCancellationToken
返回值
PublishMessageAsync(object, TopicId, AgentId?, string?, CancellationToken)
将消息发布到所有订阅了给定主题的代理。不期望从发布中获得任何响应。
public ValueTask PublishMessageAsync(object message, TopicId topic, AgentId? sender = null, string? messageId = null, CancellationToken cancellation = default)
参数
messageobject要发布的消息。
topicTopicId要将消息发布到的主题。
senderAgentId?发送消息的代理。默认为
null。messageIdstring一个唯一的消息 ID。如果为
null,则将生成一个新的 ID。cancellationCancellationToken
返回值
- ValueTask
表示异步操作的任务。
异常
- UndeliverableException
如果消息无法传递,则抛出此异常。
RegisterAgentFactoryAsync(AgentType, Func<AgentId, IAgentRuntime, ValueTask<IHostableAgent>>)
向运行时注册代理工厂,将其与特定的代理类型关联。该类型必须是唯一的。
public ValueTask<AgentType> RegisterAgentFactoryAsync(AgentType type, Func<AgentId, IAgentRuntime, ValueTask<IHostableAgent>> factoryFunc)
参数
typeAgentType要与工厂关联的代理类型。
factoryFuncFunc<AgentId, IAgentRuntime, ValueTask<IHostableAgent>>一个异步创建代理实例的函数。
返回值
RegisterAgentFactoryAsync<TAgent>(AgentType, Func<AgentId, IAgentRuntime, ValueTask<TAgent>>)
public ValueTask<AgentType> RegisterAgentFactoryAsync<TAgent>(AgentType type, Func<AgentId, IAgentRuntime, ValueTask<TAgent>> factoryFunc) where TAgent : IHostableAgent
参数
typeAgentTypefactoryFuncFunc<AgentId, IAgentRuntime, ValueTask<TAgent>>
返回值
类型参数
TAgent
RemoveSubscriptionAsync(string)
从运行时中删除订阅。
public ValueTask RemoveSubscriptionAsync(string subscriptionId)
参数
subscriptionIdstring要删除的订阅的唯一标识符。
返回值
- ValueTask
表示异步操作的任务。
异常
- KeyNotFoundException
如果订阅不存在,则抛出此异常。
RunUntilIdleAsync()
public Task RunUntilIdleAsync()
返回值
SaveAgentStateAsync(AgentId)
保存代理的状态。结果必须是 JSON 可序列化的。
public ValueTask<JsonElement> SaveAgentStateAsync(AgentId agentId)
参数
agentIdAgentId正在保存状态的代理的 ID。
返回值
- ValueTask<JsonElement>
表示异步操作的任务,返回已保存状态的字典。
SaveStateAsync()
保存对象的当前状态。
public ValueTask<JsonElement> SaveStateAsync()
返回值
- ValueTask<JsonElement>
表示异步操作的任务,返回包含已保存状态的字典。状态的结构是实现定义的,但必须是 JSON 可序列化的。
SendMessageAsync(object, AgentId, AgentId?, string?, CancellationToken)
向代理发送消息并获取响应。此方法应用于直接与代理通信。
public ValueTask<object?> SendMessageAsync(object message, AgentId recepient, AgentId? sender = null, string? messageId = null, CancellationToken cancellationToken = default)
参数
messageobject要发送的消息。
recepientAgentId要将消息发送到的代理。
senderAgentId?发送消息的代理。如果从外部源发送,则应为
null。messageIdstring消息的唯一标识符。如果为
null,则将生成一个新的 ID。cancellationTokenCancellationToken如果需要,用于取消操作的令牌。
返回值
异常
- CantHandleException
如果接收者无法处理消息,则抛出此异常。
- UndeliverableException
如果消息无法传递,则抛出此异常。
StartAsync(CancellationToken)
public ValueTask StartAsync(CancellationToken token = default)
参数
tokenCancellationToken
返回值
StopAsync(CancellationToken)
public ValueTask StopAsync(CancellationToken token = default)
参数
tokenCancellationToken
返回值
TryGetAgentProxyAsync(AgentId)
尝试检索指定代理的 AgentProxy。
public ValueTask<AgentProxy> TryGetAgentProxyAsync(AgentId agentId)
参数
agentIdAgentId代理的 ID。
返回值
- ValueTask<AgentProxy>
表示异步操作的任务,如果成功,则返回 AgentProxy。