feat: rm AISelfMessage

This commit is contained in:
莘权 马 2024-05-11 11:57:05 +08:00
parent e01d4b3125
commit 7616d8c6d3
3 changed files with 12 additions and 26 deletions

View file

@ -39,6 +39,7 @@ from metagpt.actions.write_code_plan_and_change_an import WriteCodePlanAndChange
from metagpt.const import (
BUGFIX_FILENAME,
CODE_PLAN_AND_CHANGE_FILE_REPO,
MESSAGE_ROUTE_TO_SELF,
REQUIREMENT_FILENAME,
SYSTEM_DESIGN_FILE_REPO,
TASK_FILE_REPO,
@ -47,7 +48,6 @@ from metagpt.logs import logger
from metagpt.roles import Role
from metagpt.schema import (
AIMessage,
AISelfMessage,
CodePlanAndChangeContext,
CodeSummarizeContext,
CodingContext,
@ -173,7 +173,9 @@ class Engineer(Role):
async def _act_write_code(self):
await self._act_sp_with_cr(review=self.use_code_review)
return AISelfMessage(content="", cause_by=WriteCodeReview if self.use_code_review else WriteCode)
return AIMessage(
content="", cause_by=WriteCodeReview if self.use_code_review else WriteCode, send_to=MESSAGE_ROUTE_TO_SELF
)
async def _act_summarize(self):
tasks = []
@ -217,7 +219,7 @@ class Engineer(Role):
# The maximum number of times the 'SummarizeCode' action is automatically invoked, with -1 indicating unlimited.
# This parameter is used for debugging the workflow.
self.n_summarize += 1 if self.config.max_auto_summarize_code > self.n_summarize else 0
return AISelfMessage(content="", cause_by=SummarizeCode)
return AIMessage(content="", cause_by=SummarizeCode, send_to=MESSAGE_ROUTE_TO_SELF)
async def _act_code_plan_and_change(self):
"""Write code plan and change that guides subsequent WriteCode and WriteCodeReview"""
@ -239,7 +241,7 @@ class Engineer(Role):
dependencies=dependencies,
)
return AISelfMessage(content="", cause_by=WriteCodePlanAndChange)
return AIMessage(content="", cause_by=WriteCodePlanAndChange, send_to=MESSAGE_ROUTE_TO_SELF)
async def _is_pass(self, summary) -> (str, str):
rsp = await self.llm.aask(msg=IS_PASS_PROMPT.format(context=summary), stream=False)

View file

@ -18,17 +18,10 @@
from metagpt.actions import DebugError, RunCode, UserRequirement, WriteTest
from metagpt.actions.prepare_documents import PrepareDocuments
from metagpt.actions.summarize_code import SummarizeCode
from metagpt.const import MESSAGE_ROUTE_TO_NONE
from metagpt.const import MESSAGE_ROUTE_TO_NONE, MESSAGE_ROUTE_TO_SELF
from metagpt.logs import logger
from metagpt.roles import Role
from metagpt.schema import (
AIMessage,
AISelfMessage,
Document,
Message,
RunCodeContext,
TestingContext,
)
from metagpt.schema import AIMessage, Document, Message, RunCodeContext, TestingContext
from metagpt.utils.common import (
any_to_str,
any_to_str_set,
@ -102,10 +95,7 @@ class QaEngineer(Role):
additional_python_paths=[str(self.context.src_workspace)],
)
self.publish_message(
AISelfMessage(
content=run_code_context.model_dump_json(),
cause_by=WriteTest,
)
AIMessage(content=run_code_context.model_dump_json(), cause_by=WriteTest, send_to=MESSAGE_ROUTE_TO_SELF)
)
logger.info(f"Done {str(self.project_repo.tests.workdir)} generating.")
@ -147,7 +137,9 @@ class QaEngineer(Role):
code = await DebugError(i_context=run_code_context, context=self.context, llm=self.llm).run()
await self.project_repo.tests.save(filename=run_code_context.test_filename, content=code)
run_code_context.output = None
self.publish_message(AISelfMessage(content=run_code_context.model_dump_json(), cause_by=DebugError))
self.publish_message(
AIMessage(content=run_code_context.model_dump_json(), cause_by=DebugError, send_to=MESSAGE_ROUTE_TO_SELF)
)
async def _act(self) -> Message:
if self.project_path:

View file

@ -43,7 +43,6 @@ from metagpt.const import (
MESSAGE_ROUTE_FROM,
MESSAGE_ROUTE_TO,
MESSAGE_ROUTE_TO_ALL,
MESSAGE_ROUTE_TO_SELF,
PRDS_FILE_REPO,
SYSTEM_DESIGN_FILE_REPO,
TASK_FILE_REPO,
@ -400,13 +399,6 @@ class AIMessage(Message):
return self.metadata.get(AGENT, "")
class AISelfMessage(AIMessage):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.sent_from = MESSAGE_ROUTE_TO_SELF
self.send_to = MESSAGE_ROUTE_TO_SELF
class Task(BaseModel):
task_id: str = ""
dependent_task_ids: list[str] = [] # Tasks prerequisite to this Task