diff --git a/metagpt/roles/product_manager.py b/metagpt/roles/product_manager.py index fbe139a99..4eb1d249a 100644 --- a/metagpt/roles/product_manager.py +++ b/metagpt/roles/product_manager.py @@ -9,7 +9,7 @@ from metagpt.actions import UserRequirement, WritePRD from metagpt.actions.prepare_documents import PrepareDocuments -from metagpt.roles.role import Role +from metagpt.roles.role import Role, RoleReactMode from metagpt.utils.common import any_to_name @@ -35,7 +35,8 @@ class ProductManager(Role): self.set_actions([PrepareDocuments, WritePRD]) self._watch([UserRequirement, PrepareDocuments]) - self.todo_action = any_to_name(PrepareDocuments) + self.rc.react_mode = RoleReactMode.BY_ORDER + self.todo_action = any_to_name(WritePRD) async def _think(self) -> bool: """Decide what to do""" diff --git a/tests/metagpt/roles/test_product_manager.py b/tests/metagpt/roles/test_product_manager.py index 59b5aa81a..9a28a3296 100644 --- a/tests/metagpt/roles/test_product_manager.py +++ b/tests/metagpt/roles/test_product_manager.py @@ -10,7 +10,6 @@ import json import pytest from metagpt.actions import WritePRD -from metagpt.actions.prepare_documents import PrepareDocuments from metagpt.const import REQUIREMENT_FILENAME from metagpt.context import Context from metagpt.logs import logger @@ -30,12 +29,8 @@ async def test_product_manager(new_filename): rsp = await product_manager.run(MockMessages.req) assert context.git_repo assert context.repo - assert rsp.cause_by == any_to_str(PrepareDocuments) - assert REQUIREMENT_FILENAME in context.repo.docs.changed_files - - # write prd - rsp = await product_manager.run(rsp) assert rsp.cause_by == any_to_str(WritePRD) + assert REQUIREMENT_FILENAME in context.repo.docs.changed_files logger.info(rsp) assert len(rsp.content) > 0 doc = list(rsp.instruct_content.docs.values())[0]