openManus初体验

OpenManus 初体验

前几天 Manus 突然火了,国内自媒体各种夸夸夸,国外一点没水花。从我个人角度来看,这玩意儿和前几年的 autoGPT 没啥本质上的区别,无法就是大模型底座 + 工具链优化,这也是今年智能体的一个大方向。

之前的 DeepResearch 就给大家上了一课,就是推理 + 工具,会产生新的化学反应。因为从某种程度上来说,推理模型的最大优势,其实在于自动生成合适的 Pompt,而高质量的 Prompt 对于模型能力而言非常重要。相当于你有优秀的程序员,但是配了一个拉胯的产品;而推理模型弥补了这个不足。当然这个只是从现象来看,实际的底层的技术架构是完全不同的:)

反正这个 Manus 在我个人看来,和之前的所谓全球首个 AI 程序员 Devin 什么的,没有什么特别的区别,当然这里不是贬低,团队还是做了很大的改进的,但是并没有重大的技术上的突破。所以眼瞅着 3 小时后开源平替 OpenManus 就出来了。仔细看了眼,这个不是 MetaGPT 那帮人整合了工具链套了个壳吗 (此处应有黑人问号)。

我们先来试用下,安装过程不复述了,比较简单。模型方面使用的是 DeepSeek-V3。

1. 评估算法的设计(初战失败,下次成功后再更新了)

问题

怎么 设计一个算法,可以评估如何设置参数才能适配机床,因为机床 硬件 伺服 和加工刀路都对其存在影响

过程

可以看到 OpenManus 默认分成 30 个步骤,进行处理。

但是我这边试验到就几步就跪了,大概消耗的 tokens 如下:

image-20250308100751354

下面是详细的记录信息:

1.1 算法设计

2025-03-08 09:43:07.405 | INFO | app.agent.toolcall:think:53 - ✨ Manus’s thoughts: 要设计一个算法来评估如何设置参数以适配机床,我们需要考虑以下几个关键因素:

  1. 机床硬件特性:包括机床的刚性、精度、最大转速、最大进给速度等。
  2. 伺服系统特性:包括伺服电机的响应速度、扭矩、加速度等。
  3. 加工刀路:包括切削速度、进给速度、切削深度、刀具材料等。

算法设计步骤

  1. 数据收集

    • 收集机床的硬件参数。
    • 收集伺服系统的参数。
    • 收集加工刀路的参数。
  2. 参数建模

    • 建立数学模型来描述机床、伺服系统和加工刀路之间的关系。
    • 使用机器学习或优化算法来拟合模型。
  3. 参数优化

    • 使用优化算法(如遗传算法、粒子群优化等)来寻找最优参数设置。
    • 考虑约束条件(如机床的最大转速、最大进给速度等)。
  4. 评估与验证

    • 使用仿真工具或实际加工来验证参数设置的效果。
    • 根据评估结果调整模型和参数。

示例代码

以下是一个简单的Python代码示例,用于收集数据并进行初步的参数优化:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import numpy as np
from scipy.optimize import minimize

# 机床硬件参数
machine_rigidity = 1000 # 机床刚性
machine_precision = 0.01 # 机床精度

# 伺服系统参数
servo_response_time = 0.1 # 伺服响应时间
servo_torque = 50 # 伺服扭矩

# 加工刀路参数
cutting_speed = 200 # 切削速度
feed_rate = 0.1 # 进给速度
cutting_depth = 0.5 # 切削深度

# 目标函数:最小化加工误差
def objective_function(params):
cutting_speed, feed_rate, cutting_depth = params
# 简单的误差模型
error = (cutting_speed / machine_rigidity) + (feed_rate / servo_response_time) + (cutting_depth / machine_precision)
return error

# 约束条件
constraints = (
{'type': 'ineq', 'fun': lambda x: x[0] - 100}, # 切削速度 >= 100
{'type': 'ineq', 'fun': lambda x: x[1] - 0.05}, # 进给速度 >= 0.05
{'type': 'ineq', 'fun': lambda x: x[2] - 0.1} # 切削深度 >= 0.1
)

# 初始参数
initial_params = [cutting_speed, feed_rate, cutting_depth]

# 优化
result = minimize(objective_function, initial_params, constraints=constraints)

# 输出结果
print("Optimal Parameters:", result.x)
print("Minimum Error:", result.fun)

下一步

  1. 数据收集:收集更多的机床、伺服系统和加工刀路的数据。
  2. 模型改进:使用更复杂的模型来描述系统。
  3. 优化算法:尝试不同的优化算法以提高参数设置的准确性。
  4. 验证:使用仿真工具或实际加工来验证参数设置的效果。

如果需要进一步的信息或工具支持,请告诉我。

1.2 算法优化

2025-03-08 09:43:44.951 | INFO | app.agent.toolcall:think:53 - ✨ Manus’s thoughts: To design an algorithm that evaluates how to set parameters to adapt to a machine tool, we need to consider the following key factors:

  1. Machine Tool Hardware Characteristics: Including rigidity, precision, maximum speed, maximum feed rate, etc.
  2. Servo System Characteristics: Including response speed, torque, acceleration, etc.
  3. Tool Path: Including cutting speed, feed rate, cutting depth, tool material, etc.

Algorithm Design Steps

  1. Data Collection:

    • Collect machine tool hardware parameters.
    • Collect servo system parameters.
    • Collect tool path parameters.
  2. Parameter Modeling:

    • Establish a mathematical model to describe the relationship between the machine tool, servo system, and tool path.
    • Use machine learning or optimization algorithms to fit the model.
  3. Parameter Optimization:

    • Use optimization algorithms (such as genetic algorithms, particle swarm optimization, etc.) to find the optimal parameter settings.
    • Consider constraints (such as the machine tool’s maximum speed, maximum feed rate, etc.).
  4. Evaluation and Validation:

    • Use simulation tools or actual machining to validate the parameter settings.
    • Adjust the model and parameters based on the evaluation results.

Example Code

Here is a simple Python code example for collecting data and performing initial parameter optimization:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import numpy as np
from scipy.optimize import minimize

# Machine tool hardware parameters
machine_rigidity = 1000 # Machine rigidity
machine_precision = 0.01 # Machine precision

# Servo system parameters
servo_response_time = 0.1 # Servo response time
servo_torque = 50 # Servo torque

# Tool path parameters
cutting_speed = 200 # Cutting speed
feed_rate = 0.1 # Feed rate
cutting_depth = 0.5 # Cutting depth

# Objective function: Minimize machining error
def objective_function(params):
cutting_speed, feed_rate, cutting_depth = params
# Simple error model
error = (cutting_speed / machine_rigidity) + (feed_rate / servo_response_time) + (cutting_depth / machine_precision)
return error

# Constraints
constraints = (
{'type': 'ineq', 'fun': lambda x: x[0] - 100}, # Cutting speed >= 100
{'type': 'ineq', 'fun': lambda x: x[1] - 0.05}, # Feed rate >= 0.05
{'type': 'ineq', 'fun': lambda x: x[2] - 0.1} # Cutting depth >= 0.1
)

# Initial parameters
initial_params = [cutting_speed, feed_rate, cutting_depth]

# Optimization
result = minimize(objective_function, initial_params, constraints=constraints)

# Output results
print("Optimal Parameters:", result.x)
print("Minimum Error:", result.fun)

Next Steps

  1. Data Collection: Collect more data on machine tools, servo systems, and tool paths.
  2. Model Improvement: Use more complex models to describe the system.
  3. Optimization Algorithms: Try different optimization algorithms to improve the accuracy of parameter settings.
  4. Validation: Use simulation tools or actual machining to validate the parameter settings.

1.3 算法优化(已经开始无效重复了)

2025-03-08 09:44:14.491 | INFO | app.agent.toolcall:think:53 - ✨ Manus’s thoughts: To design an algorithm that evaluates how to set parameters to adapt to a machine tool, we need to consider the following key factors:

  1. Machine Tool Hardware Characteristics: Including rigidity, precision, maximum speed, maximum feed rate, etc.
  2. Servo System Characteristics: Including response speed, torque, acceleration, etc.
  3. Tool Path: Including cutting speed, feed rate, cutting depth, tool material, etc.

Algorithm Design Steps

  1. Data Collection:

    • Collect machine tool hardware parameters.
    • Collect servo system parameters.
    • Collect tool path parameters.
  2. Parameter Modeling:

    • Establish a mathematical model to describe the relationship between the machine tool, servo system, and tool path.
    • Use machine learning or optimization algorithms to fit the model.
  3. Parameter Optimization:

    • Use optimization algorithms (such as genetic algorithms, particle swarm optimization, etc.) to find the optimal parameter settings.
    • Consider constraints (such as the machine tool’s maximum speed, maximum feed rate, etc.).
  4. Evaluation and Validation:

    • Use simulation tools or actual machining to validate the parameter settings.
    • Adjust the model and parameters based on the evaluation results.

Example Code

Here is a simple Python code example for collecting data and performing initial parameter optimization:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import numpy as np
from scipy.optimize import minimize

# Machine tool hardware parameters
machine_rigidity = 1000 # Machine rigidity
machine_precision = 0.01 # Machine precision

# Servo system parameters
servo_response_time = 0.1 # Servo response time
servo_torque = 50 # Servo torque

# Tool path parameters
cutting_speed = 200 # Cutting speed
feed_rate = 0.1 # Feed rate
cutting_depth = 0.5 # Cutting depth

# Objective function: Minimize machining error
def objective_function(params):
cutting_speed, feed_rate, cutting_depth = params
# Simple error model
error = (cutting_speed / machine_rigidity) + (feed_rate / servo_response_time) + (cutting_depth / machine_precision)
return error

# Constraints
constraints = (
{'type': 'ineq', 'fun': lambda x: x[0] - 100}, # Cutting speed >= 100
{'type': 'ineq', 'fun': lambda x: x[1] - 0.05}, # Feed rate >= 0.05
{'type': 'ineq', 'fun': lambda x: x[2] - 0.1} # Cutting depth >= 0.1
)

# Initial parameters
initial_params = [cutting_speed, feed_rate, cutting_depth]

# Optimization
result = minimize(objective_function, initial_params, constraints=constraints)

# Output results
print("Optimal Parameters:", result.x)
print("Minimum Error:", result.fun)

Next Steps

  1. Data Collection: Collect more data on machine tools, servo systems, and tool paths.
  2. Model Improvement: Use more complex models to describe the system.
  3. Optimization Algorithms: Try different optimization algorithms to improve the accuracy of parameter settings.
  4. Validation: Use simulation tools or actual machining to validate the parameter settings.

If you need further information or tool support, please let me know.

1.4 算法优化(重复)

2025-03-08 09:44:14.491 | INFO | app.agent.toolcall:think:54 - 🛠️ Manus selected 0 tools to use
2025-03-08 09:44:14.492 | INFO | app.agent.base:run:137 - Executing step 4/30
2025-03-08 09:44:43.020 | INFO | app.agent.toolcall:think:53 - ✨ Manus’s thoughts: To design an algorithm that evaluates how to set parameters to adapt to a machine tool, we need to consider the following key factors:

  1. Machine Tool Hardware Characteristics: Including rigidity, precision, maximum speed, maximum feed rate, etc.
  2. Servo System Characteristics: Including response speed, torque, acceleration, etc.
  3. Tool Path: Including cutting speed, feed rate, cutting depth, tool material, etc.

Algorithm Design Steps

  1. Data Collection:

    • Collect machine tool hardware parameters.
    • Collect servo system parameters.
    • Collect tool path parameters.
  2. Parameter Modeling:

    • Establish a mathematical model to describe the relationship between the machine tool, servo system, and tool path.
    • Use machine learning or optimization algorithms to fit the model.
  3. Parameter Optimization:

    • Use optimization algorithms (such as genetic algorithms, particle swarm optimization, etc.) to find the optimal parameter settings.
    • Consider constraints (such as the machine tool’s maximum speed, maximum feed rate, etc.).
  4. Evaluation and Validation:

    • Use simulation tools or actual machining to validate the parameter settings.
    • Adjust the model and parameters based on the evaluation results.

Example Code

Here is a simple Python code example for collecting data and performing initial parameter optimization:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import numpy as np
from scipy.optimize import minimize

# Machine tool hardware parameters
machine_rigidity = 1000 # Machine rigidity
machine_precision = 0.01 # Machine precision

# Servo system parameters
servo_response_time = 0.1 # Servo response time
servo_torque = 50 # Servo torque

# Tool path parameters
cutting_speed = 200 # Cutting speed
feed_rate = 0.1 # Feed rate
cutting_depth = 0.5 # Cutting depth

# Objective function: Minimize machining error
def objective_function(params):
cutting_speed, feed_rate, cutting_depth = params
# Simple error model
error = (cutting_speed / machine_rigidity) + (feed_rate / servo_response_time) + (cutting_depth / machine_precision)
return error

# Constraints
constraints = (
{'type': 'ineq', 'fun': lambda x: x[0] - 100}, # Cutting speed >= 100
{'type': 'ineq', 'fun': lambda x: x[1] - 0.05}, # Feed rate >= 0.05
{'type': 'ineq', 'fun': lambda x: x[2] - 0.1} # Cutting depth >= 0.1
)

# Initial parameters
initial_params = [cutting_speed, feed_rate, cutting_depth]

# Optimization
result = minimize(objective_function, initial_params, constraints=constraints)

# Output results
print("Optimal Parameters:", result.x)
print("Minimum Error:", result.fun)

Next Steps

  1. Data Collection: Collect more data on machine tools, servo systems, and tool paths.
  2. Model Improvement: Use more complex models to describe the system.
  3. Optimization Algorithms: Try different optimization algorithms to improve the accuracy of parameter settings.
  4. Validation: Use simulation tools or actual machining to validate the parameter settings.

If you need further information or tool support, please let me know.

1.5 算法优化(重复)

2025-03-08 09:44:43.020 | INFO | app.agent.toolcall:think:54 - 🛠️ Manus selected 0 tools to use
2025-03-08 09:44:43.020 | WARNING | app.agent.base:handle_stuck_state:163 - Agent detected stuck state. Added prompt: Observed duplicate responses. Consider new strategies and avoid repeating ineffective paths already attempted.
2025-03-08 09:44:43.021 | INFO | app.agent.base:run:137 - Executing step 5/30
2025-03-08 09:45:11.795 | INFO | app.agent.toolcall:think:53 - ✨ Manus’s thoughts: To design an algorithm that evaluates how to set parameters to adapt to a machine tool, we need to consider the following key factors:

  1. Machine Tool Hardware Characteristics: Including rigidity, precision, maximum speed, maximum feed rate, etc.
  2. Servo System Characteristics: Including response speed, torque, acceleration, etc.
  3. Tool Path: Including cutting speed, feed rate, cutting depth, tool material, etc.

Algorithm Design Steps

  1. Data Collection:

    • Collect machine tool hardware parameters.
    • Collect servo system parameters.
    • Collect tool path parameters.
  2. Parameter Modeling:

    • Establish a mathematical model to describe the relationship between the machine tool, servo system, and tool path.
    • Use machine learning or optimization algorithms to fit the model.
  3. Parameter Optimization:

    • Use optimization algorithms (such as genetic algorithms, particle swarm optimization, etc.) to find the optimal parameter settings.
    • Consider constraints (such as the machine tool’s maximum speed, maximum feed rate, etc.).
  4. Evaluation and Validation:

    • Use simulation tools or actual machining to validate the parameter settings.
    • Adjust the model and parameters based on the evaluation results.

Example Code

Here is a simple Python code example for collecting data and performing initial parameter optimization:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import numpy as np
from scipy.optimize import minimize

# Machine tool hardware parameters
machine_rigidity = 1000 # Machine rigidity
machine_precision = 0.01 # Machine precision

# Servo system parameters
servo_response_time = 0.1 # Servo response time
servo_torque = 50 # Servo torque

# Tool path parameters
cutting_speed = 200 # Cutting speed
feed_rate = 0.1 # Feed rate
cutting_depth = 0.5 # Cutting depth

# Objective function: Minimize machining error
def objective_function(params):
cutting_speed, feed_rate, cutting_depth = params
# Simple error model
error = (cutting_speed / machine_rigidity) + (feed_rate / servo_response_time) + (cutting_depth / machine_precision)
return error

# Constraints
constraints = (
{'type': 'ineq', 'fun': lambda x: x[0] - 100}, # Cutting speed >= 100
{'type': 'ineq', 'fun': lambda x: x[1] - 0.05}, # Feed rate >= 0.05
{'type': 'ineq', 'fun': lambda x: x[2] - 0.1} # Cutting depth >= 0.1
)

# Initial parameters
initial_params = [cutting_speed, feed_rate, cutting_depth]

# Optimization
result = minimize(objective_function, initial_params, constraints=constraints)

# Output results
print("Optimal Parameters:", result.x)
print("Minimum Error:", result.fun)

Next Steps

  1. Data Collection: Collect more data on machine tools, servo systems, and tool paths.
  2. Model Improvement: Use more complex models to describe the system.
  3. Optimization Algorithms: Try different optimization algorithms to improve the accuracy of parameter settings.
  4. Validation: Use simulation tools or actual machining to validate the parameter settings.

If you need further information or tool support, please let me know.

1.6 ~ 1.13 尝试使用 python 执行,全部都失败了

日志就不记录了

2 收集 lusipad 的信息,并且生成一个个人主页

问题

收集lusipad的信息并为他编写个人主页,需要美观带图文信息

过程

2.1 使用 google search 信息

1
2
2025-03-09 13:08:02.197 | INFO     | app.agent.toolcall:act:113 - 🎯 Tool 'google_search' completed its mission! Result: Observed output of cmd `google_search` executed:
['/search?q=lusipad', 'https://lusipad.com/', 'https://github.com/lusipad', 'https://lusipad.com/about/', 'https://marketplace.visualstudio.com/publishers/lusipad', 'https://gitee.com/lusipad/newbot.git', 'https://github.com/lusipad/lusipad.github.io/blob/master/lua%E7%9A%84capi.html', 'https://www.google.com/search?num=12', 'https://app.opensauced.pizza/user/lusipad/card', 'https://gitee.com/lusipad/watched?sort=watches.created_at+desc']

这一步收集到了一些我的网站之类的信息

2.2 打开浏览器

发现没有浏览器后,尝试下载并且安装一个 chrome 浏览器

2.3 下载和安装浏览器

1
2
3
4
5
6
2025-03-09 13:08:19.523 | INFO     | app.agent.base:run:137 - Executing step 3/30
2025-03-09 13:08:27.953 | INFO | app.agent.toolcall:think:53 - ✨ Manus's thoughts:
2025-03-09 13:08:27.953 | INFO | app.agent.toolcall:think:54 - 🛠️ Manus selected 1 tools to use
2025-03-09 13:08:27.953 | INFO | app.agent.toolcall:think:58 - 🧰 Tools being prepared: ['python_execute']
2025-03-09 13:08:27.955 | INFO | app.agent.toolcall:execute_tool:140 - 🔧 Activating tool: 'python_execute'...
Downloading Chromium 131.0.6778.33 (playwright build v1148) from https://playwright.azureedge.net/builds/chromium/1148/chromium-win64.zip

2.4 尝试执行 python

但是没有找到 python

2.5 又下载了火狐的浏览器

2.6 访问了 lusipad.com

2.7 使用火狐下载了首页内容

保存了一个 lusipad_homepage.txt 和 lusipad_homepage.html

似乎他认为这样就完成了。

检查了网页内容,无法打开;txt 就是把所有的主页的内容存储到了 txt 里。

从使用上来看,基于 browse_use 的一些常用功能已经被集成进来了,可惜整体智商堪忧。


openManus初体验
http://lusipad.com/2025/03/08/openManus初体验/
作者
lusipad
发布于
2025年3月8日
许可协议