mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-05-10 16:22:37 +02:00
feat: add default subscriptions to all Role
This commit is contained in:
parent
c6f97f7487
commit
c496b6b5f6
3 changed files with 8 additions and 0 deletions
|
|
@ -48,3 +48,4 @@ MESSAGE_ROUTE_FROM = "msg_from"
|
|||
MESSAGE_ROUTE_TO = "msg_to"
|
||||
MESSAGE_ROUTE_CAUSE_BY = "cause_by"
|
||||
MESSAGE_META_ROLE = "role"
|
||||
MESSAGE_ROUTE_TO_ALL = "<all>"
|
||||
|
|
|
|||
|
|
@ -135,6 +135,10 @@ class Role:
|
|||
def _watch(self, actions: Iterable[Type[Action]]):
|
||||
"""Listen to the corresponding behaviors"""
|
||||
tags = {get_class_name(t) for t in actions}
|
||||
# Add default subscription tags for developers' direct use.
|
||||
if self.name:
|
||||
tags.add(self.name)
|
||||
tags.add(get_object_name(self))
|
||||
self.subscribe(tags)
|
||||
|
||||
def subscribe(self, tags: Set[str]):
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ from metagpt.const import (
|
|||
MESSAGE_ROUTE_CAUSE_BY,
|
||||
MESSAGE_ROUTE_FROM,
|
||||
MESSAGE_ROUTE_TO,
|
||||
MESSAGE_ROUTE_TO_ALL,
|
||||
)
|
||||
from metagpt.logs import logger
|
||||
from metagpt.utils.common import any_to_str
|
||||
|
|
@ -71,6 +72,8 @@ class Routes(BaseModel):
|
|||
if not to_tags:
|
||||
return True
|
||||
|
||||
if MESSAGE_ROUTE_TO_ALL in to_tags:
|
||||
return True
|
||||
for k in tags:
|
||||
if k in to_tags:
|
||||
return True
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue