当前位置: 首页 > wzjs >正文

网上购物正品网站楚雄网站建设rewlkj

网上购物正品网站,楚雄网站建设rewlkj,设计公司愿景,wordpress如何添加注册登录界面先给上个文章使用MetaGPT 创建智能体(1)入门打个补丁: 补丁1: MeteGTP中Role和Action的关联和区别?这是这两天再使用MetaGPT时候心中的疑问,这里做个记录 Role(角色)和 Action&…

在这里插入图片描述

先给上个文章使用MetaGPT 创建智能体(1)入门打个补丁:

补丁1: MeteGTP中Role和Action的关联和区别?这是这两天再使用MetaGPT时候心中的疑问,这里做个记录

Role(角色)和 Action(动作)是MetaGPT中的两个重要概念和对象,Role顾名思义也就是角色,这Role子类中表示一个独立的功能模块,一个Role里面调用多个Action;Action(动作)具体任务中的最小操作单元。

举个例子的话就是,一个讲师(Role),如果要讲课的话就需要备课(Action),开始讲课(Action),上课期间还有提问(Action),最后由多个讲师(Role)来完成整个学生上课的这个功能。


补丁2: 安装volcengine-python-sdk[ark]~=1.0.94报错

Could not build wheels for volcengine-python-sdk, which is required to install pyproject.toml-based projects

由于 Windows 系统有最长路径限制,导致安装失败,按照以下方式设置:


  1. 按下 Win+R ,输入 regedit 打开注册表编辑器。

  2. 设置 \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 路径下的变量 LongPathsEnabled 为 1



再蹭个热度:

deepseek前段时间爆火,这里写个怎么在MetaGPT中使用deepseek(本地启动版),使用的话也很方便,第一启动ollama里面的deepseek模型,打开控制台,输入

ollama run deepseek-r1

等待模型下载运行就好,修改config2.yaml配置文件

llm:api_type: "ollama"  # or azure / ollama / groq etc.model: "deepseek-r1"  # or gpt-3.5-turbobase_url: "http://localhost:11434/api"  # or forward url / other llm urlapi_key: "ollama"

然后就可以使用了,有一说一确实不错。



正文


多智能体指的就是创建多个智能体去进行执行任务,这也是实际业务中的常用处理。

多个智能体的使用大致3步,

1、定义多个Role,Action

2、Role中定义_watch监听相关Action

3、使用Team对象加入多个Role启动


MetaGPT 多智能体框架中,Team 对象是协调和管理多个智能体(Agent)协作的核心组件。它的作用类似于一个“虚拟团队”,负责组织智能体之间的交互、任务分配、通信协调,以及整体协作流程的控制。

Team 的核心作用

  1. 多智能体协作的容器
    Team 作为多个智能体的容器,集中管理智能体的生命周期(创建、销毁)、状态监控和资源分配。
  2. 任务分配与调度
    将复杂任务拆解为子任务,并根据智能体的角色(Role)和能力(Skill)动态分配任务,确保高效协作。
  3. 通信与协调
    管理智能体之间的通信(如消息传递、事件触发),避免冲突并确保信息同步。例如,在自动化客服系统中,协调“用户意图识别”和“工单生成”两个智能体的协作。
  4. 环境管理
    提供共享的上下文环境(如全局数据、知识库),使智能体可以访问统一的信息源,避免重复计算或数据不一致。
  5. 容错与恢复
    监控智能体运行状态,处理异常(如任务超时、逻辑错误),并触发恢复机制(如重试任务、切换备用智能体)。

代码

创建Role1和对应的Action1,第一个Role需要接收用户传来的指令,所以_watch监听用户UserRequirement消息,因为需要具体操作所以也不用重写_act函数(全部代码在最下面)

def parse_code(rsp):# r 定义原始字符串,忽略其中的所有转义字符pattern = r"```python(.*)```"match = re.search(pattern, rsp, re.DOTALL)code_text = match.group(1) if match else rspreturn code_textclass Action1(Action):name:str = "Action1"PROMPT_TEMPLATE:str = """ 编写一个python函数,可以 {instruction} """async def run(self, instruction: str):prompt = self.PROMPT_TEMPLATE.format(instruction=instruction)# 令 LLM 赋予这个动作能力rsp = await self._aask(prompt)# 解析返回内容code_text = parse_code(rsp)return code_text# 角色
class Role1(Role):name:str = "Role1"profile:str = "Role1"def __init__(self, **kwargs):super().__init__(**kwargs)self._watch([UserRequirement])  # 监听来自用户或其他智能体的重要上游消息self.set_actions([Action1])

编写Role2和Action2,因为需要等待Action的执行内容,所以_watch监听Action1

class Action2(Action):name:str = "Action2"PROMPT_TEMPLATE:str = """ 上下文:{context} 假设您已导入给定函数,则使用pytest为其编写{k}个单元测试。 """async def run(self, context: str, k:int=3):prompt = self.PROMPT_TEMPLATE.format(context=context, k=k)rsp = await self._aask(prompt)code_text = parse_code(rsp)return code_textclass Role2(Role):name:str = "Role2"profile:str = "Role2"def __init__(self, **kwargs):super().__init__(**kwargs)self.set_actions([Action2])self._watch([Action1])  # 监听来自用户或其他智能体的重要上游消息async def _act(self) -> Message:todo = self.rc.todocontext = self.get_memories() # 查找消息code_text = await todo.run(context, k=5) # 这里开始执行Action2的处理# role 消息角色# cause_by 专门用于追踪消息的触发来源,建立消息与动作(Action)之间的关联msg = Message(content=code_text, role=self.profile, cause_by=type(todo))return msg

最后Role3,Action3,监听Action2,监听是可以监听多个Action的

class Action3(Action):name:str = "Action3"PROMPT_TEMPLATE:str = """ 上下文:{context} 审查测试用例并提供一条关键意见: """async def run(self, context: str):prompt = self.PROMPT_TEMPLATE.format(context=context)rsp = await self._aask(prompt)return rspclass Role3(Role):name:str = "Role3"profile:str = "Role3"def __init__(self, **kwargs):super().__init__(**kwargs)self.set_actions([Action3])self._watch([Action2])

最后是运行,运行时创建Team对象,添加角色,然后运行

# 运行函数
async def main(idea:str,investment:float,n_round:int):# MetaGPT中的团队team = Team()# 添加角色team.hire([Role1(),Role2(),Role3()])# 注入资源 invest 属性用于设定或表示团队对某个任务或目标的资源投入程度team.invest(investment=investment)team.run_project(idea) # 启动团队协作流程await team.run(n_round=n_round)if __name__ == '__main__':asyncio.run(main('计算列表乘积的函数', 3.0, 3))

三个智能体

Role1,执行Action1,监听用户输入;

Role2,监听Action1,执行Action2;

Role3,监听Action2,执行Action3;

这就是多个智能体的合作使用,重点总结的话就是,监听_watch其他人,Team运行。

最后是全部代码

import asyncio
import refrom metagpt.actions import Action, UserRequirement
from metagpt.roles import Role
from metagpt.schema import Message
from metagpt.team import Team# 多个智能体案例
def parse_code(rsp):# r 定义原始字符串,忽略其中的所有转义字符pattern = r"```python(.*)```"match = re.search(pattern, rsp, re.DOTALL)code_text = match.group(1) if match else rspreturn code_textclass Action1(Action):name:str = "Action1"PROMPT_TEMPLATE:str = """ 编写一个python函数,可以 {instruction} """async def run(self, instruction: str):prompt = self.PROMPT_TEMPLATE.format(instruction=instruction)# 令 LLM 赋予这个动作能力rsp = await self._aask(prompt)# 解析返回内容code_text = parse_code(rsp)return code_text# 角色
class Role1(Role):name:str = "Role1"profile:str = "Role1"def __init__(self, **kwargs):super().__init__(**kwargs)self._watch([UserRequirement])  # 监听来自用户或其他智能体的重要上游消息self.set_actions([Action1])class Action2(Action):name:str = "Action2"PROMPT_TEMPLATE:str = """ 上下文:{context} 假设您已导入给定函数,则使用pytest为其编写{k}个单元测试。 """async def run(self, context: str, k:int=3):prompt = self.PROMPT_TEMPLATE.format(context=context, k=k)rsp = await self._aask(prompt)code_text = parse_code(rsp)return code_textclass Role2(Role):name:str = "Role2"profile:str = "Role2"def __init__(self, **kwargs):super().__init__(**kwargs)self.set_actions([Action2])self._watch([Action1])  # 监听来自用户或其他智能体的重要上游消息async def _act(self) -> Message:todo = self.rc.todocontext = self.get_memories() # 查找消息code_text = await todo.run(context, k=5) # 这里开始执行Action2的处理# role 消息角色# cause_by 专门用于追踪消息的触发来源,建立消息与动作(Action)之间的关联msg = Message(content=code_text, role=self.profile, cause_by=type(todo))return msgclass Action3(Action):name:str = "Action3"PROMPT_TEMPLATE:str = """ 上下文:{context} 审查测试用例并提供一条关键意见: """async def run(self, context: str):prompt = self.PROMPT_TEMPLATE.format(context=context)rsp = await self._aask(prompt)return rspclass Role3(Role):name:str = "Role3"profile:str = "Role3"def __init__(self, **kwargs):super().__init__(**kwargs)self.set_actions([Action3])self._watch([Action2])# 运行函数
async def main(idea:str,investment:float,n_round:int):# MetaGPT中的团队team = Team()# 添加角色team.hire([Role1(),Role2(),Role3()])# 注入资源,invest 属性用于设定或表示团队对某个任务或目标的资源投入程度team.invest(investment=investment)team.run_project(idea) # 启动团队协作流程await team.run(n_round=n_round)if __name__ == '__main__':# fire.Fire(main) 快速将 Python 对象(如函数、类、模块)转换为命令行接口(CLI)# main('编写一个计算列表乘积的函数', 3.0, 5)asyncio.run(main('计算列表乘积的函数', 2.0, 3))

文章转载自:

http://pLN6ZrcW.pxdjL.cn
http://1iYQOCkT.pxdjL.cn
http://L9yXe6bU.pxdjL.cn
http://PLMUU7iD.pxdjL.cn
http://Ebpv1lOL.pxdjL.cn
http://g4pThOk2.pxdjL.cn
http://797NGi9x.pxdjL.cn
http://VjC8swxf.pxdjL.cn
http://wuqcRusl.pxdjL.cn
http://J4pZGBCV.pxdjL.cn
http://YxqGnCVF.pxdjL.cn
http://qyhH6wy8.pxdjL.cn
http://g0m5Ac92.pxdjL.cn
http://i0goHu1S.pxdjL.cn
http://OkilO0yg.pxdjL.cn
http://RUl5n68j.pxdjL.cn
http://IxbRWOGG.pxdjL.cn
http://IEo2NNYm.pxdjL.cn
http://Tgh1HaJA.pxdjL.cn
http://99kgA6No.pxdjL.cn
http://xdDkd7vp.pxdjL.cn
http://07eSFsN4.pxdjL.cn
http://j1qJSI4Y.pxdjL.cn
http://oWAEtX7Y.pxdjL.cn
http://vqWfcjQ8.pxdjL.cn
http://7aj2MxqH.pxdjL.cn
http://0MOrE9RG.pxdjL.cn
http://KFdo3XcF.pxdjL.cn
http://tSq7MmXu.pxdjL.cn
http://eqkE2nZO.pxdjL.cn
http://www.dtcms.com/wzjs/603764.html

相关文章:

  • 美术馆网站网页设计方案网站怎么推广和应用
  • 做一名优秀网站设计师计划企业微信管理系统
  • 网站空间的分类阿里云商业网站建设视频
  • 网站备案代码生成个人站长怎么做企业网站
  • 企业定制网站价格表网站建设维护的知识
  • 聚美优品网站建设湖南营销型网站建设案例
  • 备案后的域名改网站名成都最新房价一览表
  • 关键词整站排名优化网站建设调研文档
  • 网站建设中数据库修改wordpress中附件上传大小
  • 成都摄影网站建设诚信网站建设
  • 帮别人设计网站的网站吗行业门户型网站
  • 西宁网站建设方案做坏事网站
  • 什么网站值得做公司建设网站费用做那个科目
  • dede网站打开慢网站建设成本计划书
  • 惠州网络推广费用seo专业优化公司
  • 网站欢迎框代码招聘网站开发时间
  • 手机社交网站模板科技公司办公室设计
  • 张掖专业做网站的公司Wordpress虚拟资源下载类主题
  • 网站建设质量体系审核指导济南网站建设首选传承网络
  • 如何创建个人网站英语作文wordpress app中文版下载
  • 贵阳网站开发zu97上海协会网站建设
  • 检察门户网站 建设意义怎样提交网站地图
  • 做书法网站的目的网站建设哪家好知道万维科技
  • 做网站的优化价格wordpress作品主题
  • 网站建设牜金手指花总十五辽宁营商环境建设网站
  • 河南建设安全监督网站网页版传奇怎么开
  • 连云港网站seo建网站的支付安全
  • 网站的标准网站换域名影响吗
  • 怎么做学校子网站网站需要做实名认证如何做
  • 上海高端建站网站建设与网页制作案例