open manus实战:生成一个贪吃蛇游戏
本文主要介绍如何使用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系统为例,搭建流程如下:
从https://github.com/FoundationAgents/OpenManus下载相应git分支
安装conda虚拟环境,这样的话后续所有涉及到的包都会保存在该环境下
conda create -n open_manus python=3.12
conda activate open_manus
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,如下图所示: