mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-06-08 15:05:17 +02:00
feat: Support more versatile parameter formats.
This commit is contained in:
parent
c496b6b5f6
commit
a045f73fec
2 changed files with 18 additions and 1 deletions
|
|
@ -138,7 +138,11 @@ class Message(BaseModel):
|
|||
self.set_cause_by(v)
|
||||
continue
|
||||
if k == MESSAGE_ROUTE_TO:
|
||||
self.add_to(any_to_str(v))
|
||||
if isinstance(v, tuple) or isinstance(v, list) or isinstance(v, set):
|
||||
for i in v:
|
||||
self.add_to(any_to_str(i))
|
||||
else:
|
||||
self.add_to(any_to_str(v))
|
||||
continue
|
||||
self.meta_info[k] = v
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ from metagpt.actions import Action, ActionOutput
|
|||
from metagpt.environment import Environment
|
||||
from metagpt.roles import Role
|
||||
from metagpt.schema import Message
|
||||
from metagpt.utils.common import get_class_name
|
||||
|
||||
|
||||
class MockAction(Action):
|
||||
|
|
@ -84,5 +85,17 @@ async def test_react():
|
|||
assert env.get_subscribed_tags(role) == {seed.subscription, tag}
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_msg_to():
|
||||
m = Message(content="a", msg_to=["a", MockRole, Message])
|
||||
assert m.msg_to == {"a", get_class_name(MockRole), get_class_name(Message)}
|
||||
|
||||
m = Message(content="a", cause_by=MockAction, msg_to={"a", MockRole, Message})
|
||||
assert m.msg_to == {"a", get_class_name(MockRole), get_class_name(Message), get_class_name(MockAction)}
|
||||
|
||||
m = Message(content="a", msg_to=("a", MockRole, Message))
|
||||
assert m.msg_to == {"a", get_class_name(MockRole), get_class_name(Message)}
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pytest.main([__file__, "-s"])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue