mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-06-02 14:45:17 +02:00
fixbug: #1422
This commit is contained in:
parent
c036574507
commit
2637bb9198
3 changed files with 13 additions and 5 deletions
|
|
@ -170,7 +170,8 @@ class Role(SerializationMixin, ContextMixin, BaseModel):
|
|||
self._check_actions()
|
||||
self.llm.system_prompt = self._get_prefix()
|
||||
self.llm.cost_manager = self.context.cost_manager
|
||||
self._watch(kwargs.pop("watch", [UserRequirement]))
|
||||
if not self.rc.watch:
|
||||
self._watch(kwargs.pop("watch", [UserRequirement]))
|
||||
|
||||
if self.latest_observed_msg:
|
||||
self.recovered = True
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Desc :
|
||||
|
||||
import pytest
|
||||
|
||||
from metagpt.actions.action_node import ActionNode
|
||||
from metagpt.actions.add_requirement import UserRequirement
|
||||
|
|
@ -55,6 +55,7 @@ def test_environment_serdeser(context):
|
|||
assert isinstance(list(environment.roles.values())[0].actions[0], ActionOK)
|
||||
assert type(list(new_env.roles.values())[0].actions[0]) == ActionOK
|
||||
assert type(list(new_env.roles.values())[0].actions[1]) == ActionRaise
|
||||
assert list(new_env.roles.values())[0].rc.watch == role_c.rc.watch
|
||||
|
||||
|
||||
def test_environment_serdeser_v2(context):
|
||||
|
|
@ -69,6 +70,7 @@ def test_environment_serdeser_v2(context):
|
|||
assert isinstance(role, ProjectManager)
|
||||
assert isinstance(role.actions[0], WriteTasks)
|
||||
assert isinstance(list(new_env.roles.values())[0].actions[0], WriteTasks)
|
||||
assert list(new_env.roles.values())[0].rc.watch == pm.rc.watch
|
||||
|
||||
|
||||
def test_environment_serdeser_save(context):
|
||||
|
|
@ -85,3 +87,8 @@ def test_environment_serdeser_save(context):
|
|||
new_env: Environment = Environment(**env_dict, context=context)
|
||||
assert len(new_env.roles) == 1
|
||||
assert type(list(new_env.roles.values())[0].actions[0]) == ActionOK
|
||||
assert list(new_env.roles.values())[0].rc.watch == role_c.rc.watch
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pytest.main([__file__, "-s"])
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ from pydantic import BaseModel, Field
|
|||
|
||||
from metagpt.actions import Action, ActionOutput
|
||||
from metagpt.actions.action_node import ActionNode
|
||||
from metagpt.actions.add_requirement import UserRequirement
|
||||
from metagpt.actions.fix_bug import FixBug
|
||||
from metagpt.roles.role import Role, RoleReactMode
|
||||
|
||||
serdeser_path = Path(__file__).absolute().parent.joinpath("..", "..", "data", "serdeser_storage")
|
||||
|
|
@ -68,7 +68,7 @@ class RoleA(Role):
|
|||
def __init__(self, **kwargs):
|
||||
super(RoleA, self).__init__(**kwargs)
|
||||
self.set_actions([ActionPass])
|
||||
self._watch([UserRequirement])
|
||||
self._watch([FixBug])
|
||||
|
||||
|
||||
class RoleB(Role):
|
||||
|
|
@ -93,7 +93,7 @@ class RoleC(Role):
|
|||
def __init__(self, **kwargs):
|
||||
super(RoleC, self).__init__(**kwargs)
|
||||
self.set_actions([ActionOK, ActionRaise])
|
||||
self._watch([UserRequirement])
|
||||
self._watch([FixBug])
|
||||
self.rc.react_mode = RoleReactMode.BY_ORDER
|
||||
self.rc.memory.ignore_id = True
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue