有没有办法让faust代理在其他代理完成时运行?例如
Agent1
+
|
|
|
Agent2 +------------->Agent_final
|
|
|
+
Agent3Agent_final应在所有Agent1,Agent2,Agent3完成后启动。并且Agent_final应该可以访问所有3个代理的输出。在文档中找不到这种常见的方法。
发布于 2020-01-11 00:53:48
你可以做几件事。你可以让它变得更线性:
A1 -> A2 -> A3 -> AF或者你可以让AF做个连接。我这样做的方式是:
(A1,A2,A3)将全部写入agent_final's_topic。agent_final保留了一个看起来像{id: {A1: x, A2: y, A3: z}}的表。x、y和z要么为None,要么是父代理produce.agent_final读取消息的任何内容,它将检查表中的id,将值添加到正确的字段(对应于消息来自的代理)None,则所有三个贡献代理都已完成,因此您现在可以执行final_agent计划执行的任何操作。无耻的插头:
我做了一个库来做这种处理(github,pypi)。将所有依赖项消息汇聚到一个主题中,编写一个键、合并和充分性函数,并遵循自述文件中的说明使用它来阻止处理,直到多个上游代理完成它们的事情。
https://stackoverflow.com/questions/59680310
复制相似问题