diff --git a/metagpt/environment/base_env.py b/metagpt/environment/base_env.py index 0e583ffb3..9829c5b3a 100644 --- a/metagpt/environment/base_env.py +++ b/metagpt/environment/base_env.py @@ -129,8 +129,8 @@ class Environment(ExtEnv): self.roles[role.profile] = role for role in roles: # setup system message with roles - role.set_env(self) role.context = self.context + role.set_env(self) def publish_message(self, message: Message, peekable: bool = True) -> bool: """ diff --git a/metagpt/roles/role.py b/metagpt/roles/role.py index 19ed048e3..e0f8a7ea6 100644 --- a/metagpt/roles/role.py +++ b/metagpt/roles/role.py @@ -169,6 +169,7 @@ 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 self.latest_observed_msg: @@ -331,6 +332,7 @@ class Role(SerializationMixin, ContextMixin, BaseModel): if env: env.set_addresses(self, self.addresses) self.llm.system_prompt = self._get_prefix() + self.llm.cost_manager = self.context.cost_manager self.set_actions(self.actions) # reset actions to update llm and prefix def _get_prefix(self):