模型智能体开发之metagpt-单智能体实践

定义执行规则

async def _act(self) -> Message:
 logger.info(f"{self._setting}: to do {self.rc.todo}({self.rc.todo.name})")
 todo = self.rc.todo  # todo will be SimpleWriteCode()
 msg = self.get_memories(k=1)[0]  # find the most recent messages
 code_text = await todo.run(msg.content)
 msg = Message(content=code_text, role=self.profile, cause_by=type(todo))
 	return msg 
  1. 重写_act,编写智能体具体的行动逻辑
  2. self.rc.todo:待办事项
  3. self.get_memories(k=1)[0]:获取最新的一条memory,即本次case里面的用户下达的指令
    1. 在本次的case里面,当用户输出instruction的时候,role需要把instruction传递给action,这里就涉及到了user如何传递消息给agent的部分,是通过memory来传递的
    2. memory作为agent的记忆合集,当role在进行初始化的时候,role就会初始化一个memory对象来作为self._rc.memory属性,在之后的_observe中存储每一个message,以便后续的检索,所以也可以理解role的memory就是一个含有message的list
    3. 当需要获取memory(llm的对话context)的时候,就可以使用get_memories(self, k=0) -> list[Message] 方法
  4. todo.run(msg.content):使用待办事项来处理最新一条memory
  5. Message:作为metagpt里面统一的消息处理格式
上一篇:【PyTorch与深度学习】5、深入剖析PyTorch DataLoader源码


下一篇:什么是binutils-arm-linux-gnueabi