一个代理怎么能package/start另一个代理呢?

How can an agent package/start another agent?

如果我安装了代理 A 并且 运行 在平台上,我可以从代理 A 中启动代理 B 吗? (类似于从终端运行 volttron-ctl 命令的方式)

上下文:我想这样做是因为我需要代理 B 对代理 A 进行 RPC,但代理 B 需要知道代理 A 的对等名称才能进行此调用(因此我可以将其传递到配置中如果我是从代理 B 内部创建的,则代理 A)。每次我想使用代理 B 对代理 A 进行 RPC 时,我只需要一个硬编码对等名称的替代方法,我希望这样做。

请看一下voltron中央代理和volttron中央平台代理

https://github.com/VOLTTRON/volttron/blob/develop/services/core/VolttronCentralPlatform/vcplatform/agent.py#L821

基本上所有的实例(平台实例)都有一个vip身份控制的服务。您将使用它来启动停止安装修改等该实例上的代理。我建议为此使用 volttron 中央平台代理,但是如果需要,您可以重复它。

如果您确实选择使用 volttron 中央平台代理,那么您将需要为您的代理授予管理器授权,因为只有那些具有该权限的代理才能调用这些 rpc 方法(在开发分支中)。