本文主要介绍如何使用open manus调用一个大模型,输入相应的prompt,然后进行推理,并将结果保存于本地。

open manus简介

**OpenManus** 是一个开源的 AI 代理框架和智能助手平台,专注于给出强大的自动化和智能任务处理能力。

openmanus简要介绍如下:

1. 智能代理系统
- **模块化代理架构** - 可扩展的代理基础框架
- **多代理协作** - 支持多个 AI 代理协同工作
- **任务分解** - 复杂任务的自动分解和执行

2. 多模型支持
- **统一 LLM 接口** - 支持多种大语言模型
- **模型抽象层** - 方便切换不同的 AI 提供商
- **智能路由** - 根据任务类型选择合适模型

3. 企业级功能
- **配置管理系统** - 集中化的配置管理
- **服务集成** - 支持 Daytona 等外部服务
- **环境管理** - 完善的创建和生产环境支持

4. 技术架构

```
OpenManus
├── 代理层 (Agent Layer)
│ ├── Manus - 主代理
│ ├── BaseAgent - 基础代理类
│ └── 专用代理
├── LLM 抽象层
│ └── 统一模型接口
├── 配置管理
│ └── 多环境配置
└── 服务集成
└── 外部 API 集成
```

它的主要应用场景:

  • 开发助手

- 代码生成和优化
- 科技问题解答
- 编写工作流自动化

  • 业务流程自动化

- 文档处理和分析
- 数据提取和转换
- 工作流任务执行

  • 智能对话系统

- 自然语言交互
- 多轮对话管理
- 上下文感知

  • 集成平台

- 多服务 API 整合
- 自定义器具扩展
- 第三方系统连接

环境搭建

以mac os架构为例,搭建流程如下:

  1. 从https://github.com/FoundationAgents/OpenManus下载相应git分支

  2. 安装conda虚拟环境,这样的话后续所有涉及到的包都会保存在该环境下

    conda create -n open_manus python=3.12

    conda activate open_manus

  3. conda环境相关包(可参考deepseek直接导入)

    按git里原始的requirenment直接下载包不会成功,里面的包A与包B同时依赖包C的时候,他们对包C的版本要不不太一样,解决该常常可以通过deepseek与GPT上各种查询,结合拆半查找的方式,部分不兼容的包调整为较高或者较低的版本号,终于成功安装所有包并且全部兼容

相关包配置

所有配置文件位于config/config.toml,里面会涉及到要调用的大模型,以及具体的配置项。

open_manus会引用大量的包以及相关调整,比如Daytona,可以参考app/Daytona下的README,先申请apikey,随后再修改相应的配置文件

运行大模型推理

在上述资料中配置一个准备调用的大模型(比如,通义千问的qwen模型,https://bailian.console.aliyun.com/?tab=doc#/doc/?type=model&url=2840914)

conda环境下运行 Python main.py。程序运行起来后,会提示用户输入一个prompt:

,我输入了:“write a snake game using python for me, which can run during 5 minutes”

然后,大模型开始推理,并生成相应的代码,并且保存到workspace/snake_game.py。

运行成功后,会将代码保存为一个文件:

运行大模型自动生成的代码

Pyton workspace/snake_game.py,如下图所示: