AI创想

标题: 使用MetaGPT 创建智能体(2)多智能体 [打印本页]

作者: AI小编    时间: 8 小时前
标题: 使用MetaGPT 创建智能体(2)多智能体
作者:CSDN博客
(, 下载次数: 0)


先给上个文章使用MetaGPT 创建智能体(1)入门打个补丁:
补丁1: MeteGTP中Role和Action的关联和区别?这是这两天再使用MetaGPT时候心中的疑问,这里做个记录
Role(角色)和 Action(动作)是MetaGPT中的两个重要概念和对象,Role顾名思义也就是角色,这Role子类中表示一个独立的功能模块,一个Role里面调用多个Action;Action(动作)具体任务中的最小操作单元。
举个例子的话就是,一个讲师(Role),如果要讲课的话就需要备课(Action),开始讲课(Action),上课期间还有提问(Action),最后由多个讲师(Role)来完成整个学生上课的这个功能。
<hr>补丁2: 安装volcengine-python-sdk[ark]~=1.0.94报错
  1. Could not build wheels for volcengine-python-sdk, which is required to install pyproject.toml-based projects
复制代码
由于 Windows 系统有最长路径限制,导致安装失败,按照以下方式设置:
<hr><hr><hr>再蹭个热度:
deepseek前段时间爆火,这里写个怎么在MetaGPT中使用deepseek(本地启动版),使用的话也很方便,第一启动ollama里面的deepseek模型,打开控制台,输入
  1. ollama run deepseek-r1
复制代码
等待模型下载运行就好,修改config2.yaml配置文件
  1. llm:
  2.   api_type: "ollama"  # or azure / ollama / groq etc.
  3.   model: "deepseek-r1"  # or gpt-3.5-turbo
  4.   base_url: "http://localhost:11434/api"  # or forward url / other llm url
  5.   api_key: "ollama"
复制代码
然后就可以使用了,有一说一确实不错。
<hr><hr>正文

<hr>多智能体指的就是创建多个智能体去进行执行任务,这也是实际业务中的常用处理。
多个智能体的使用大致3步,
1、定义多个Role,Action
2、Role中定义_watch监听相关Action
3、使用Team对象加入多个Role启动
<hr>在 MetaGPT 多智能体框架中,Team 对象是协调和管理多个智能体(Agent)协作的核心组件。它的作用类似于一个“虚拟团队”,负责组织智能体之间的交互、任务分配、通信协调,以及整体协作流程的控制。
Team 的核心作用
代码

创建Role1和对应的Action1,第一个Role需要接收用户传来的指令,所以_watch监听用户UserRequirement消息,因为需要具体操作所以也不用重写_act函数(全部代码在最下面)
  1. defparse_code(rsp):# r 定义原始字符串,忽略其中的所有转义字符
  2.     pattern =r"```python(.*)```"
  3.     match = re.search(pattern, rsp, re.DOTALL)
  4.     code_text = match.group(1)if match else rsp
  5.     return code_text
  6. classAction1(Action):
  7.     name:str="Action1"
  8.     PROMPT_TEMPLATE:str=""" 编写一个python函数,可以 {instruction} """asyncdefrun(self, instruction:str):
  9.         prompt = self.PROMPT_TEMPLATE.format(instruction=instruction)# 令 LLM 赋予这个动作能力
  10.         rsp =await self._aask(prompt)# 解析返回内容
  11.         code_text = parse_code(rsp)return code_text
  12. # 角色classRole1(Role):
  13.     name:str="Role1"
  14.     profile:str="Role1"def__init__(self,**kwargs):super().__init__(**kwargs)
  15.         self._watch([UserRequirement])# 监听来自用户或其他智能体的重要上游消息
  16.         self.set_actions([Action1]
复制代码
原文地址:https://blog.csdn.net/lihao1107156171/article/details/147337437




欢迎光临 AI创想 (http://llms-ai.com/) Powered by Discuz! X3.4