【突破性进展】OpenManus 2.0震撼发布:DeepSeek加持,多模型融合,性能提 ...

打印 上一主题 下一主题

主题 1758|帖子 1758|积分 5274

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
择要:OpenManus作为一个无需邀请码的开源AI智能体平台,迩来发布了重大版本更新。新版本带来了多模型支持、增强的规划能力和工具集成等一系列告急功能。本文将详细介绍这些更新,以及如何充实利用这个AI智能体平台来实现你的创意想法。
  OpenManus:重新定义AI智能体平台

还记得上一篇文章中介绍的谁人"三小时内构建的简易智能体平台"吗?现在,它已经发展成为一个功能强大、组件完善的开源AI智能体项目。OpenManus 的目标始终如一:让每个人都能在没有邀请码的情况下,轻松体验最前沿的AI智能体技能
从技能架构上看,OpenManus 2.0经历了全面的重构和优化。核心的 ReAct (Reasoning and Acting) 架构得到了保留和强化,同时引入了更为灵活的模块化设计和高效的工具调用机制。这使得OpenManus不但可以顺应更多的大语言模型,还能够更加智能地规划和实行复杂任务。
版本2.0主要更新内容

1. 多模型支持,不再局限于OpenAI

最大的变化是 OpenManus 现在支持多种大语言模型:


  • DeepSeek:新版本默认利用 DeepSeek 模型,为开发者提供了更多选择
  • Claude:支持 Claude 3.5 Sonnet 等高性能模型
  • Azure OpenAI:完整支持 Azure OpenAI 服务,企业级部署更便捷
  • 自定义API端点:支持设置自定义的API端点和参数
设置示例:
  1. [llm]
  2. model = "claude-3-5-sonnet"  # 或 "deepseek-chat", "gpt-4o" 等
  3. base_url = "https://api.openai.com/v1"  # 或其他API端点
  4. api_key = "sk-..."
  5. max_tokens = 4096
  6. temperature = 0.0
  7. # Azure OpenAI配置示例
  8. # [llm]
  9. # api_type = 'azure'
  10. # model = "YOUR_MODEL_NAME"  # 例如 "gpt-4o-mini"
  11. # base_url = "{YOUR_AZURE_ENDPOINT.rstrip('/')}/openai/deployments/{AZURE_DEPOLYMENT_ID}"
  12. # api_key = "AZURE API KEY"
  13. # max_tokens = 8096
  14. # temperature = 0.0
  15. # api_version = "AZURE API VERSION"  # 例如 "2024-08-01-preview"
复制代码
技能实现细节

多模型支持的核心是OpenManus重新设计的LLM抽象层,接纳了适配器模式实现对不同API的同一接口。这个改进包含以下几个关键技能点:

  • 同一的模型调用接口开发了一个通用的API请求处理层,可以透明地处理不同模型API的差异
    1. # 简化的示例代码
    2. class LLMClient:
    3.     def __init__(self, model_name, base_url, api_key, **kwargs):
    4.         self.model_name = model_name
    5.         self.base_url = base_url
    6.         self.api_key = api_key
    7.         self.api_type = kwargs.get('api_type', 'standard')
    8.         self.api_version = kwargs.get('api_version', None)
    9.         
    10.     def get_adapter(self):
    11.         if 'deepseek' in self.model_name or 'deepseek' in self.base_url:
    12.             return DeepSeekAdapter(self)
    13.         elif 'claude' in self.model_name:
    14.             return ClaudeAdapter(self)
    15.         elif self.api_type == 'azure':
    16.             return AzureOpenAIAdapter(self)
    17.         else:
    18.             return OpenAIAdapter(self)
    复制代码
  • 模型适配器体系:为每种模型范例开发专用适配器,处理请求格式、相应剖析和特别功能

    • DeepSeek适配器:优化了中文处理和专有工具调用格式
    • Claude适配器:支持Claude模型的工具调用和XML标志语法
    • Azure适配器:处理Azure OpenAI服务的特别身份验证和部署标识需求

  • 智能容错与重试:针对不同API的错误模式实现了特定的规复计谋
    1. def call_with_retry(self, *args, **kwargs):
    2.     max_retries = 3
    3.     for attempt in range(max_retries):
    4.         try:
    5.             return self._call_api(*args, **kwargs)
    6.         except RateLimitError:
    7.             wait_time = (2 ** attempt) * 1  # 指数退避
    8.             logger.warning(f"Rate limit reached, retrying in {wait_time}s...")
    9.             time.sleep(wait_time)
    10.         except ConnectionError:
    11.             # 连接错误处理策略
    12.             pass
    复制代码
  • 多模型性能基准测试:我们对各模型在不同场景下的表现举行了体系评测
模型工具调用乐成率任务规划能力代码天生质量相应速率DeepSeek-chat92%精良精良快Claude-3.5-Sonnet89%精良精良中等GPT-4o95%精良精良中等GPT-4o-mini83%精良精良快 2. 增强的Planning能力

新版本大幅增强了智能体的规划能力:


  • 任务分解优化:更智能地将复杂任务拆分为可实行步骤
  • 实行逻辑改进:优化工具调用和实行流程,进步乐成率
  • 标准化评测体系:基于GAIA和TAU-Bench的性能评估和优化
Planning引擎技能升级

OpenManus 2.0的Planning能力是对整个ReAct架构的重大增强,主要包括以下技能改进:

  • 层次化任务规划:引入了树状规划结构,能够更好地处理具有依靠关系的复杂任务
    1. class PlanningNode:
    2.     def __init__(self, task_description, prerequisites=None):
    3.         self.task_description = task_description
    4.         self.prerequisites = prerequisites or []
    5.         self.subtasks = []
    6.         self.completed = False
    7.         self.result = None
    复制代码
  • 预测性实行模型:体系能够预测工具调用可能的效果,并提前规划后续步骤
    1. def predict_outcomes(self, tool_call):
    2.     # 为工具调用预测可能的结果和状态
    3.     possible_outcomes = self.outcome_predictor.predict(tool_call)
    4.     # 为每种可能的结果预先生成后续计划
    5.     contingency_plans = {
    6.         outcome: self.generate_contingency_plan(outcome)
    7.         for outcome in possible_outcomes
    8.     }
    9.     return contingency_plans
    复制代码
  • 动态规划调解:根据实行效果实时调解任务计划
    1. def adjust_plan(self, execution_result):
    2.     """根据执行结果动态调整规划"""
    3.     # 评估执行结果
    4.     success_level = self.evaluate_result(execution_result)
    5.    
    6.     if success_level < 0.3:  # 执行失败
    7.         # 尝试替代方案
    8.         return self.try_alternative_approach()
    9.     elif success_level < 0.7:  # 部分成功
    10.         # 修复和继续
    11.         return self.refine_and_continue()
    12.     else:  # 成功
    13.         # 进入下一步
    14.         return self.proceed_to_next_step()
    复制代码
  • 性能基准测试:利用标准测试集对规划能力举行评估
我们利用标准化测试任务对比了OpenManus 1.0和2.0版本的规划能力:
测试场景1.0版乐成率2.0版乐成率性能提拔多步数据处理67%89%+22%网页交互自动化58%83%+25%API集成与调用72%91%+19%复杂文件操作61%85%+24% 规划能力的增强也反映在任务完成的效率上。测试表现,对于复杂任务,2.0版本平均可以减少23%的实行步骤数量和35%的实行时间。
3. 丰富的工具集成

工具体系得到了显著扩展:


  • 欣赏器工具增强:改进的web欣赏体验,支持更复杂的网页交互
  • 文件处理工具:增强的文件保存和处理能力
  • Python实行环境:更稳定的代码实行和错误处理
  • Google搜刮集成:高效的网络搜刮能力
工具体系架构升级

在OpenManus 2.0中,工具体系经历了全面的重构,接纳了更为模块化和可扩展的设计:

  • 插件式工具架构:实现了完全模块化的工具加载体系,允许动态加载和卸载工具
    1. class ToolRegistry:
    2.     _instance = None
    3.    
    4.     def __new__(cls):
    5.         if cls._instance is None:
    6.             cls._instance = super(ToolRegistry, cls).__new__(cls)
    7.             cls._instance.tools = {}
    8.         return cls._instance
    9.    
    10.     def register_tool(self, tool_instance):
    11.         """注册一个工具实例"""
    12.         tool_name = tool_instance.name
    13.         self.tools[tool_name] = tool_instance
    14.         logger.info(f"Registered tool: {tool_name}")
    15.         
    16.     def get_tool(self, tool_name):
    17.         """获取指定名称的工具"""
    18.         return self.tools.get(tool_name)
    复制代码
  • 工具调用上下文管理:每个工具调用现在都有专属的实行上下文,提供更好的隔离性和状态管理
    1. class ToolExecutionContext:
    2.     def __init__(self, agent_state, memory=None):
    3.         self.agent_state = agent_state
    4.         self.memory = memory or {}
    5.         self.start_time = time.time()
    6.         self.execution_log = []
    7.         
    8.     def log_execution(self, message, level="INFO"):
    9.         """记录执行信息"""
    10.         self.execution_log.append({
    11.             "time": time.time() - self.start_time,
    12.             "level": level,
    13.             "message": message
    14.         })
    复制代码
  • 增强型欣赏器工具:完全重写的欣赏器工具支持更复杂的网页交互

    • 支持复杂的表单填写和提交
    • 添加了基于视觉的元素定位功能
    • 实现了高级的页面状态检测和等候计谋
    • 支持多标签页和窗口管理
    欣赏器工具性能对比:
       功能1.0版2.0版登录表单填写乐成率65%92%动态内容加载识别有限全面支持JavaScript交互能力基础高级验证码处理不支持基础支持
  • Python实行环境改进:新版本的Python实行工具提供了更安全和强大的代码实行能力

    • 实现了沙箱隔离实行环境
    • 添加了代码静态分析以防止埋伏伤害操作
    • 支持实行状态保存和规复,允很多步骤代码实行
    • 提供了丰富的错误诊断和修复建议
    1. class PythonExecuteSandbox:
    2.     def __init__(self, allowed_modules=None, timeout=30):
    3.         self.allowed_modules = allowed_modules or DEFAULT_ALLOWED_MODULES
    4.         self.timeout = timeout
    5.         self.execution_space = {}
    6.         
    7.     def execute(self, code):
    8.         """在沙箱中执行Python代码"""
    9.         # 进行代码静态分析
    10.         self._analyze_code_safety(code)
    11.         
    12.         # 设置超时
    13.         signal.signal(signal.SIGALRM, self._timeout_handler)
    14.         signal.alarm(self.timeout)
    15.         
    16.         try:
    17.             result = exec(code, self.execution_space)
    18.             return {
    19.                 "success": True,
    20.                 "result": result,
    21.                 "execution_space": self.execution_space
    22.             }
    23.         except Exception as e:
    24.             return {
    25.                 "success": False,
    26.                 "error": str(e),
    27.                 "error_type": type(e).__name__,
    28.                 "fix_suggestions": self._generate_fix_suggestions(e, code)
    29.             }
    30.         finally:
    31.             signal.alarm(0)  # 取消超时
    复制代码

4. 新的实行流程

现在提供了两种运行模式:


  • 标准模式:python main.py - 稳定可靠的体验
  • 开发模式:python run_flow.py - 体验最新功能和实验性特性
实行引擎技能对比

OpenManus 2.0的实行引擎相比1.0版本有显著改进:

  • 双模式架构

    • 标准模式(main.py):优化了稳定性和可靠性,适合生产环境利用
    • 开发模式(run_flow.py):集成了最新实验性功能,更灵活但可能不够稳定

  • 异步实行框架

    • 1.0版本:主要接纳同步实行
    • 2.0版本:全面基于asyncio重构,支持并发工具调用和非阻塞操作
    1. async def execute_plan(self, plan):
    2.     """异步执行计划"""
    3.     tasks = []
    4.     for step in self._get_ready_steps(plan):
    5.         # 创建异步任务
    6.         task = asyncio.create_task(self._execute_step(step))
    7.         tasks.append(task)
    8.         
    9.     # 等待所有任务完成
    10.     results = await asyncio.gather(*tasks, return_exceptions=True)
    11.    
    12.     # 处理结果
    13.     return self._process_results(results, plan)
    复制代码

  • 状态管理改进

    • 增强的会话持久化:支持完整保存和规复实行状态
    • 分布式状态管理:为未来的分布式部署做预备

  • 实行性能比力
       指标1.0版本2.0版本改进平均相应时间1.3秒0.8秒+38%最大并发任务110++900%内存占用效率基准减少32%+32%长会话稳定性中等精良显著提拔
如何开始利用

安装步骤

  1. # 创建环境
  2. conda create -n open_manus python=3.12
  3. conda activate open_manus
  4. # 克隆仓库
  5. git clone https://github.com/mannaandpoem/OpenManus.git
  6. cd OpenManus
  7. # 安装依赖
  8. pip install -r requirements.txt
  9. # 配置
  10. cp config/config.example.toml config/config.toml
  11. # 编辑config.toml添加你的API密钥
复制代码
设置你的模型

编辑config/config.toml文件,根据你的需求选择不同的模型:

  • 利用DeepSeek(现在的默认选项):
  1. [llm]
  2. model = "deepseek-chat"
  3. base_url = "https://api.deepseek.com/"
  4. api_key = "你的DeepSeek API密钥"
  5. max_tokens = 4096
  6. temperature = 0.0
复制代码

  • 利用Claude:
  1. [llm]
  2. model = "claude-3-5-sonnet"
  3. base_url = "https://api.anthropic.com/"
  4. api_key = "你的Anthropic API密钥"
  5. max_tokens = 4096
  6. temperature = 0.0
复制代码
现实应用示例

示例1: 复杂数据分析项目

  1. Enter your prompt (or 'exit' to quit): 分析这个CSV数据集,找出销售趋势,预测下个月销售额,并生成详细报告和可视化图表
复制代码
OpenManus 2.0的实行过程:

  • 任务规划:将任务分解为数据加载、清洗、分析、预测和报告天生等步骤
  • 工具选择:自动选择Python实行工具举行数据处理
  • 代码天生与实行:天生并实行pandas和scikit-learn代码举行分析
  • 可视化创建:利用matplotlib天生趋势图表
  • 报告天生:整合效果创建完整报告
整个过程在1.0版本中可能须要10-15分钟,而在2.0版本中仅需3-5分钟,且乐成率从65%提拔到92%。
示例2: 自动化网页交互

  1. Enter your prompt (or 'exit' to quit): 访问电商网站,搜索最新款手机,比较前5个结果的价格和评分,生成对比表格
复制代码
OpenManus 2.0实行流程:

  • 欣赏器启动:调用增强版欣赏器工具
  • 网站导航:自动识别搜刮框和按钮
  • 效果提取:利用改进的选择器提取产品信息
  • 数据整理:对提取的数据举行结构化处理
  • 表格天生:创建格式化的比力表格
2.0版本的欣赏器工具在复杂网页上的乐成率提拔了35%,并能处理更多动态加载内容。
社区与生态

OpenManus的社区正在快速发展:


  • 飞书交流群:加入活跃的开发者社区,交流利用履历
  • 贡献指南:欢迎提交题目和改进建议
  • 示例库扩展:更多实用案例不断添加,包括乐成和失败案例分析
即将到来的功能

根据项目蹊径图,以下功能正在积极开发中:


  • RAG增强:外部知识图谱检索与融合机制,支持检索增强的推理过程
  • 容器化部署:利用Docker和Kubernetes简化安装和部署流程
  • 前后端开发:提供Web界面和API,改善用户体验
  • 低本钱应用场景优化:针对资源受限环境的特别优化
技能实现与架构设计

体系架构图

  1. ┌───────────────────────────────────────┐
  2. │             用户接口层                │
  3. │  ┌─────────────┐    ┌──────────────┐  │
  4. │  │  命令行界面  │    │   未来Web界面 │  │
  5. │  └─────────────┘    └──────────────┘  │
  6. └───────────────────────────────────────┘
  7.               │
  8. ┌───────────────────────────────────────┐
  9. │             智能体引擎层              │
  10. │  ┌─────────────┐    ┌──────────────┐  │
  11. │  │  ReAct引擎  │    │  Planning引擎 │  │
  12. │  └─────────────┘    └──────────────┘  │
  13. └───────────────────────────────────────┘
  14.               │
  15. ┌───────────────────────────────────────┐
  16. │              模型层                   │
  17. │  ┌─────────┐ ┌─────────┐ ┌─────────┐  │
  18. │  │DeepSeek │ │ Claude  │ │OpenAI等 │  │
  19. │  └─────────┘ └─────────┘ └─────────┘  │
  20. └───────────────────────────────────────┘
  21.               │
  22. ┌───────────────────────────────────────┐
  23. │              工具层                   │
  24. │  ┌─────────┐ ┌─────────┐ ┌─────────┐  │
  25. │  │Python   │ │浏览器   │ │文件处理 │  │
  26. │  │执行工具 │ │工具     │ │工具     │  │
  27. │  └─────────┘ └─────────┘ └─────────┘  │
  28. │  ┌─────────┐ ┌─────────────────────┐  │
  29. │  │搜索工具 │ │    其他工具...      │  │
  30. │  └─────────┘ └─────────────────────┘  │
  31. └───────────────────────────────────────┘
复制代码
代码质量与测试覆盖率

OpenManus 2.0在开发过程中引入了更严格的代码质量控制和测试流程:


  • 单元测试覆盖率:从1.0版本的42%提拔到2.0版本的78%
  • 集成测试:新增了端到端的集成测试,确保各组件协同工作
  • 性能基准测试:创建了自动化基准测试体系,监控性能变化
结语

OpenManus 2.0的发布标志着这个项目从实验性子的demo发展为功能完备的开源智能体平台。无论你是想探索AI的可能性,还是构建实用的自动化工具,OpenManus都提供了一个无需邀请码、易于利用的入口。
与其他须要邀请码的封闭平台相比,OpenManus 2.0提供了相当甚至更精良的功能,同时保持了完全开源和自由利用的特性。通过支持多种模型,OpenManus也为用户提供了更大的灵活性和选择空间。
欢迎加入OpenManus社区,一起探索AI智能体的无穷可能!

参考资料

  • OpenManus GitHub仓库: https://github.com/mannaandpoem/OpenManus
  • 之前的博客文章: https://blog.csdn.net/m0_73753352/article/details/146126368
  • ReAct论文: https://arxiv.org/abs/2210.03629
  • TAU-Bench评测基准: https://github.com/tau-bench/tau-bench

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天津储鑫盛钢材现货供应商

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表