【突破性进展】OpenManus 2.0震撼发布:DeepSeek加持,多模型融合,性能提拔35%的开源智能体平台
择要: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端点和参数
设置示例:
model = "claude-3-5-sonnet"# 或 "deepseek-chat", "gpt-4o" 等
base_url = "https://api.openai.com/v1"# 或其他API端点
api_key = "sk-..."
max_tokens = 4096
temperature = 0.0
# Azure OpenAI配置示例
#
# api_type = 'azure'
# model = "YOUR_MODEL_NAME"# 例如 "gpt-4o-mini"
# base_url = "{YOUR_AZURE_ENDPOINT.rstrip('/')}/openai/deployments/{AZURE_DEPOLYMENT_ID}"
# api_key = "AZURE API KEY"
# max_tokens = 8096
# temperature = 0.0
# api_version = "AZURE API VERSION"# 例如 "2024-08-01-preview"
技能实现细节
多模型支持的核心是OpenManus重新设计的LLM抽象层,接纳了适配器模式实现对不同API的同一接口。这个改进包含以下几个关键技能点:
[*] 同一的模型调用接口:开发了一个通用的API请求处理层,可以透明地处理不同模型API的差异
# 简化的示例代码
class LLMClient:
def __init__(self, model_name, base_url, api_key, **kwargs):
self.model_name = model_name
self.base_url = base_url
self.api_key = api_key
self.api_type = kwargs.get('api_type', 'standard')
self.api_version = kwargs.get('api_version', None)
def get_adapter(self):
if 'deepseek' in self.model_name or 'deepseek' in self.base_url:
return DeepSeekAdapter(self)
elif 'claude' in self.model_name:
return ClaudeAdapter(self)
elif self.api_type == 'azure':
return AzureOpenAIAdapter(self)
else:
return OpenAIAdapter(self)
[*] 模型适配器体系:为每种模型范例开发专用适配器,处理请求格式、相应剖析和特别功能
[*]DeepSeek适配器:优化了中文处理和专有工具调用格式
[*]Claude适配器:支持Claude模型的工具调用和XML标志语法
[*]Azure适配器:处理Azure OpenAI服务的特别身份验证和部署标识需求
[*] 智能容错与重试:针对不同API的错误模式实现了特定的规复计谋
def call_with_retry(self, *args, **kwargs):
max_retries = 3
for attempt in range(max_retries):
try:
return self._call_api(*args, **kwargs)
except RateLimitError:
wait_time = (2 ** attempt) * 1# 指数退避
logger.warning(f"Rate limit reached, retrying in {wait_time}s...")
time.sleep(wait_time)
except ConnectionError:
# 连接错误处理策略
pass
[*] 多模型性能基准测试:我们对各模型在不同场景下的表现举行了体系评测
模型工具调用乐成率任务规划能力代码天生质量相应速率DeepSeek-chat92%精良精良快Claude-3.5-Sonnet89%精良精良中等GPT-4o95%精良精良中等GPT-4o-mini83%精良精良快 2. 增强的Planning能力
新版本大幅增强了智能体的规划能力:
[*]任务分解优化:更智能地将复杂任务拆分为可实行步骤
[*]实行逻辑改进:优化工具调用和实行流程,进步乐成率
[*]标准化评测体系:基于GAIA和TAU-Bench的性能评估和优化
Planning引擎技能升级
OpenManus 2.0的Planning能力是对整个ReAct架构的重大增强,主要包括以下技能改进:
[*] 层次化任务规划:引入了树状规划结构,能够更好地处理具有依靠关系的复杂任务
class PlanningNode:
def __init__(self, task_description, prerequisites=None):
self.task_description = task_description
self.prerequisites = prerequisites or []
self.subtasks = []
self.completed = False
self.result = None
[*] 预测性实行模型:体系能够预测工具调用可能的效果,并提前规划后续步骤
def predict_outcomes(self, tool_call):
# 为工具调用预测可能的结果和状态
possible_outcomes = self.outcome_predictor.predict(tool_call)
# 为每种可能的结果预先生成后续计划
contingency_plans = {
outcome: self.generate_contingency_plan(outcome)
for outcome in possible_outcomes
}
return contingency_plans
[*] 动态规划调解:根据实行效果实时调解任务计划
def adjust_plan(self, execution_result):
"""根据执行结果动态调整规划"""
# 评估执行结果
success_level = self.evaluate_result(execution_result)
if success_level < 0.3:# 执行失败
# 尝试替代方案
return self.try_alternative_approach()
elif success_level < 0.7:# 部分成功
# 修复和继续
return self.refine_and_continue()
else:# 成功
# 进入下一步
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中,工具体系经历了全面的重构,接纳了更为模块化和可扩展的设计:
[*] 插件式工具架构:实现了完全模块化的工具加载体系,允许动态加载和卸载工具
class ToolRegistry:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super(ToolRegistry, cls).__new__(cls)
cls._instance.tools = {}
return cls._instance
def register_tool(self, tool_instance):
"""注册一个工具实例"""
tool_name = tool_instance.name
self.tools = tool_instance
logger.info(f"Registered tool: {tool_name}")
def get_tool(self, tool_name):
"""获取指定名称的工具"""
return self.tools.get(tool_name)
[*] 工具调用上下文管理:每个工具调用现在都有专属的实行上下文,提供更好的隔离性和状态管理
class ToolExecutionContext:
def __init__(self, agent_state, memory=None):
self.agent_state = agent_state
self.memory = memory or {}
self.start_time = time.time()
self.execution_log = []
def log_execution(self, message, level="INFO"):
"""记录执行信息"""
self.execution_log.append({
"time": time.time() - self.start_time,
"level": level,
"message": message
})
[*] 增强型欣赏器工具:完全重写的欣赏器工具支持更复杂的网页交互
[*]支持复杂的表单填写和提交
[*]添加了基于视觉的元素定位功能
[*]实现了高级的页面状态检测和等候计谋
[*]支持多标签页和窗口管理
欣赏器工具性能对比:
功能1.0版2.0版登录表单填写乐成率65%92%动态内容加载识别有限全面支持JavaScript交互能力基础高级验证码处理不支持基础支持
[*] Python实行环境改进:新版本的Python实行工具提供了更安全和强大的代码实行能力
[*]实现了沙箱隔离实行环境
[*]添加了代码静态分析以防止埋伏伤害操作
[*]支持实行状态保存和规复,允很多步骤代码实行
[*]提供了丰富的错误诊断和修复建议
class PythonExecuteSandbox:
def __init__(self, allowed_modules=None, timeout=30):
self.allowed_modules = allowed_modules or DEFAULT_ALLOWED_MODULES
self.timeout = timeout
self.execution_space = {}
def execute(self, code):
"""在沙箱中执行Python代码"""
# 进行代码静态分析
self._analyze_code_safety(code)
# 设置超时
signal.signal(signal.SIGALRM, self._timeout_handler)
signal.alarm(self.timeout)
try:
result = exec(code, self.execution_space)
return {
"success": True,
"result": result,
"execution_space": self.execution_space
}
except Exception as e:
return {
"success": False,
"error": str(e),
"error_type": type(e).__name__,
"fix_suggestions": self._generate_fix_suggestions(e, code)
}
finally:
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重构,支持并发工具调用和非阻塞操作
async def execute_plan(self, plan):
"""异步执行计划"""
tasks = []
for step in self._get_ready_steps(plan):
# 创建异步任务
task = asyncio.create_task(self._execute_step(step))
tasks.append(task)
# 等待所有任务完成
results = await asyncio.gather(*tasks, return_exceptions=True)
# 处理结果
return self._process_results(results, plan)
[*] 状态管理改进:
[*]增强的会话持久化:支持完整保存和规复实行状态
[*]分布式状态管理:为未来的分布式部署做预备
[*] 实行性能比力:
指标1.0版本2.0版本改进平均相应时间1.3秒0.8秒+38%最大并发任务110++900%内存占用效率基准减少32%+32%长会话稳定性中等精良显著提拔
如何开始利用
安装步骤
# 创建环境
conda create -n open_manus python=3.12
conda activate open_manus
# 克隆仓库
git clone https://github.com/mannaandpoem/OpenManus.git
cd OpenManus
# 安装依赖
pip install -r requirements.txt
# 配置
cp config/config.example.toml config/config.toml
# 编辑config.toml添加你的API密钥
设置你的模型
编辑config/config.toml文件,根据你的需求选择不同的模型:
[*]利用DeepSeek(现在的默认选项):
model = "deepseek-chat"
base_url = "https://api.deepseek.com/"
api_key = "你的DeepSeek API密钥"
max_tokens = 4096
temperature = 0.0
[*]利用Claude:
model = "claude-3-5-sonnet"
base_url = "https://api.anthropic.com/"
api_key = "你的Anthropic API密钥"
max_tokens = 4096
temperature = 0.0
现实应用示例
示例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: 自动化网页交互
Enter your prompt (or 'exit' to quit): 访问电商网站,搜索最新款手机,比较前5个结果的价格和评分,生成对比表格
OpenManus 2.0实行流程:
[*]欣赏器启动:调用增强版欣赏器工具
[*]网站导航:自动识别搜刮框和按钮
[*]效果提取:利用改进的选择器提取产品信息
[*]数据整理:对提取的数据举行结构化处理
[*]表格天生:创建格式化的比力表格
2.0版本的欣赏器工具在复杂网页上的乐成率提拔了35%,并能处理更多动态加载内容。
社区与生态
OpenManus的社区正在快速发展:
[*]飞书交流群:加入活跃的开发者社区,交流利用履历
[*]贡献指南:欢迎提交题目和改进建议
[*]示例库扩展:更多实用案例不断添加,包括乐成和失败案例分析
即将到来的功能
根据项目蹊径图,以下功能正在积极开发中:
[*]RAG增强:外部知识图谱检索与融合机制,支持检索增强的推理过程
[*]容器化部署:利用Docker和Kubernetes简化安装和部署流程
[*]前后端开发:提供Web界面和API,改善用户体验
[*]低本钱应用场景优化:针对资源受限环境的特别优化
技能实现与架构设计
体系架构图
┌───────────────────────────────────────┐
│ 用户接口层 │
│┌─────────────┐ ┌──────────────┐│
││命令行界面│ │ 未来Web界面 ││
│└─────────────┘ └──────────────┘│
└───────────────────────────────────────┘
│
┌───────────────────────────────────────┐
│ 智能体引擎层 │
│┌─────────────┐ ┌──────────────┐│
││ReAct引擎│ │Planning引擎 ││
│└─────────────┘ └──────────────┘│
└───────────────────────────────────────┘
│
┌───────────────────────────────────────┐
│ 模型层 │
│┌─────────┐ ┌─────────┐ ┌─────────┐│
││DeepSeek │ │ Claude│ │OpenAI等 ││
│└─────────┘ └─────────┘ └─────────┘│
└───────────────────────────────────────┘
│
┌───────────────────────────────────────┐
│ 工具层 │
│┌─────────┐ ┌─────────┐ ┌─────────┐│
││Python │ │浏览器 │ │文件处理 ││
││执行工具 │ │工具 │ │工具 ││
│└─────────┘ └─────────┘ └─────────┘│
│┌─────────┐ ┌─────────────────────┐│
││搜索工具 │ │ 其他工具... ││
│└─────────┘ └─────────────────────┘│
└───────────────────────────────────────┘
代码质量与测试覆盖率
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企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]