mirror of
https://github.com/FoundationAgents/MetaGPT.git
synced 2026-06-17 15:35:21 +02:00
update code and rm useless role
This commit is contained in:
parent
074e28ff17
commit
6e25cb53d1
4 changed files with 4 additions and 74 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -164,3 +164,4 @@ tmp
|
|||
output.wav
|
||||
metagpt/roles/idea_agent.py
|
||||
.aider*
|
||||
/config/*.yaml
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ from metagpt.roles.minecraft.minecraft_base import Minecraft
|
|||
from metagpt.environment import Environment
|
||||
|
||||
|
||||
class GameMemory(BaseModel):
|
||||
class GameEnvironment(BaseModel):
|
||||
"""
|
||||
游戏环境的记忆,用于多个agent进行信息的共享和缓存,而不需要重复在自己的角色内维护缓存
|
||||
"""
|
||||
|
|
@ -78,7 +78,7 @@ class MinecraftPlayer(SoftwareCompany):
|
|||
dedicated to writing executable code.
|
||||
"""
|
||||
environment: Environment = Field(default_factory=Environment)
|
||||
game_memory: GameMemory = Field(default_factory=GameMemory)
|
||||
game_memory: GameEnvironment = Field(default_factory=GameEnvironment)
|
||||
investment: float = Field(default=50.0)
|
||||
task: str = Field(default="")
|
||||
game_info: dict = Field(default={})
|
||||
|
|
|
|||
|
|
@ -1,68 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# @Date : 2023/9/23 14:29
|
||||
# @Author : stellahong (stellahong@fuzhi.ai)
|
||||
# @Desc :
|
||||
import json
|
||||
|
||||
from metagpt.logs import logger
|
||||
|
||||
from metagpt.roles.minecraft.minecraft_base import Minecraft as Base
|
||||
from metagpt.schema import Message
|
||||
from metagpt.actions.minecraft.player_action import PlayerActions
|
||||
from metagpt.actions.minecraft.generate_actions import GenerateActionCode
|
||||
from metagpt.actions.minecraft.process_event import HandleEvents
|
||||
|
||||
|
||||
class EventHandler(Base):
|
||||
def __init__(
|
||||
self,
|
||||
name: str = "Thompson",
|
||||
profile: str = "Minecraft Event Handler",
|
||||
goal: str = "To efficiently manage and respond to in-game events, providing information about the player.",
|
||||
constraints: str = "Resource availability, server performance, adherence to server rules and regulations.",
|
||||
) -> None:
|
||||
super().__init__(name, profile, goal, constraints)
|
||||
# Initialize actions specific to the EventHandler role
|
||||
self._init_actions([HandleEvents])
|
||||
|
||||
# Set events or actions the EventHandler should watch or be aware of
|
||||
self._watch([PlayerActions, GenerateActionCode])
|
||||
self.last_events = {"env_events": {},
|
||||
"execute_results": {}}
|
||||
|
||||
|
||||
async def _act(self) -> Message:
|
||||
# 获取最新的消息
|
||||
|
||||
msg = self._rc.memory.get(k=1)[0]
|
||||
query = msg.content if self._rc.state == 0 else msg.instruct_content
|
||||
"""
|
||||
todo: parse query info from message, e.g. test_round and action code
|
||||
"""
|
||||
test_round = 1
|
||||
logger.info(msg.cause_by)
|
||||
|
||||
if msg.cause_by == GenerateActionCode: # 进行生成的代码执行, 获取的结果用于进行AI评估
|
||||
events = await HandleEvents().run(query)
|
||||
result_msg = Message(
|
||||
content=f"Round {test_round} of rollout done",
|
||||
role=self.profile,
|
||||
cause_by=HandleEvents,
|
||||
sent_from=self.profile,
|
||||
send_to="Task Reviewer",
|
||||
)
|
||||
|
||||
self.perform_game_info_callback(events, self.game_memory.update_event)
|
||||
|
||||
else:
|
||||
events = await HandleEvents().run(query)
|
||||
result_msg = Message(
|
||||
content=events,
|
||||
role=self.profile,
|
||||
cause_by=HandleEvents,
|
||||
sent_from=self.profile,
|
||||
send_to="",
|
||||
)
|
||||
|
||||
self.perform_game_info_callback(events, self.game_memory.update_event)
|
||||
return result_msg
|
||||
|
|
@ -49,8 +49,6 @@ class Minecraft(Role):
|
|||
self.game_memory = None
|
||||
self.event = {}
|
||||
|
||||
|
||||
#
|
||||
async def _think(self) -> None:
|
||||
if len(self._actions) == 1:
|
||||
# If there is only one action, then only this one can be performed
|
||||
|
|
@ -75,7 +73,7 @@ class Minecraft(Role):
|
|||
async def _obtain_events(self):
|
||||
return await self.game_memory.on_event()
|
||||
|
||||
def set_memory(self, shared_memory: 'GameMemory'):
|
||||
def set_memory(self, shared_memory: 'GameEnviroment'):
|
||||
self.game_memory = shared_memory
|
||||
|
||||
def render_human_message(self, msg, *args, **kwargs):
|
||||
|
|
@ -102,4 +100,3 @@ if __name__ == "__main__":
|
|||
result = "Async operation result"
|
||||
# 调用回调函数,并传递结果
|
||||
# mc.perform_memory_callback(mc.my_callback)
|
||||
print(mc.game_memory.current_task)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue