openmanus是在之前manus大热时候有meta团队开发的开源工具。核心使用的ReAct框架,工作流程是:输入信息 → 推理阶段 → 行动阶段 → 观察阶段 → 循环迭代不断优化。它通过将复杂任务拆分,利用思维链引导智能体一步步推理和执行行动。这次用混元模型接入,创建自己的manus工具。
使用的模型是具有推理功能和图像识别功能的模型hunyuan-vision,工具配置文件:

另外需要对工具代码稍作修改:
文件app/llm.py,添加对应的模型名称到REASONING_MODELS、MULTIMODAL_MODELS,让工具在推理时知道这是有推理能力、多模态能力的模型:

请求的对话内容需要修改适配模型,因为模型不支持连续user 内容:
修改文件app/agent/toolcall.py:

使用场景
1. 创建本地文本:
输入提示词,用来本地创建文本,并添加内容。适合生成指定内容的文章,并把文章直接保留到本地磁盘。亦可通过本地文章传给模型再调用工具修改本地文件。

从混元模型获得返回的信息,理解应该做什么工作:

进一步确认工作将调用本地的工具

操作本地工具创建文件与写内容:

本地文件查看

展示控制台的部分输出

控制台的模型回复,充分展示了对用户要求的合理推理与可用工具的使用,在最后还做了操作结果的复核。
2. 联网检索问题
当前openmanus做不到在网页上面操作,仅对问题搜索与获取网页内容,根据内容总结回复。
prompt内容:给出最近热门的前十部电影,最好是国内电影。
给大家看下openmanus组装完的请求参数内容:

里面对用户的提示词添加了额外规则类的提示词。没有改动代码的情况下,这个提示词应该在另一个user提示词中,但是混元模型并不允许连续的角色对话。应该是考虑连续的角色对话可能出现前后内容冲突、矛盾情况,避免指令模糊。
模型返回的信息表示对用户问题的理解和对合理工具的使用说明:

工具的调用对于openmanus就是一次action执行。使用浏览器执行搜索

调用chrome浏览器通过网页搜索,可以看到网络页面展示的内容:

正如前面说的openmanus不能直接操作浏览器,受限无法准确完成页面操作:

但也不用过于失望,多轮对话也会给出部分电影推荐:

3. 代码执行
模型给出代码,本地运行。适合快速验证一些模型给出的功能代码:
prompt: python 代码,必须调用本地工具执行。给出代码斐波那契示例,并在本地计算结果

代码检查基本正确
```python
def fibonacci(n):
"""计算斐波那契数列的第n项"""
if n <= 0:
return "输入必须是正整数"
elif n == 1:
return 0
elif n == 2:
return 1
else:
a, b = 0, 1
for _ in range(3, n + 1):
a, b = b, a + b
return b
# 本地计算斐波那契数列的前10项
print("斐波那契数列前10项:")
for i in range(1, 11):
result = fibonacci(i)
print(f"第{i}项: {result}")
# 计算第20项作为示例
n = 20
fib_20 = fibonacci(n)
print(f"\n斐波那契数列第{n}项是: {fib_20}")
```
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。