以下是 OpenManus 的详细使用教程,涵盖基础配置、核心功能及高级开发技巧:
一、基础配置
1. 环境验证
# 激活虚拟环境(uv安装方式)
source .venv/bin/activate
# 验证Python版本(需3.12+)
python --version
# 输出应为:Python 3.12.x
2. API密钥配置
在 config/config.toml
中配置多平台密钥:
[llm]
model = "gpt-4o" # 可选模型:gpt-4-turbo, claude-3-opus 等
base_url = "https://api.openai.com/v1"
api_key = "sk-xxx" # OpenAI官方API密钥
[llm.local] # 本地模型配置(如Ollama)
model = "llama3"
base_url = "http://localhost:11434/v1"
api_key = "none"
二、核心功能模块
1. 交互式命令行(CLI)
# 启动基础交互
python main.py
# 示例对话:
输入 > 我需要开发一个天气查询机器人
输出 > 已创建智能体框架,请描述您需要的功能细节...
2. 工作流引擎(Flow Engine)
# 在run_flow.py中自定义流程
from openmanus.core.flow import TaskFlow
flow = TaskFlow()
flow.add_step("数据清洗", llm_model="gpt-4o")
flow.add_step("情感分析", temperature=0.7)
flow.execute("用户评论数据集.csv")
3. 多模态处理
# 图像分析示例(需配置vision模型)
输入 > 分析这张图片中的物体: @/path/to/image.jpg
输出 > 检测到笔记本电脑、咖啡杯和智能手机,环境疑似办公室...
三、高级开发指南
1. 自定义插件开发
创建 plugins/weather.py
:
from openmanus.lib.plugin import BasePlugin
class WeatherPlugin(BasePlugin):
name = "天气查询"
def execute(self, location: str):
# 调用天气API并返回结构化数据
return {
"location": location,
"temperature": "25℃",
"condition": "晴"
}
在 config.toml
中启用插件:
[plugins]
active = ["weather"]
2. 智能体性能优化
# 使用RL优化(需安装OpenManus-RL)
git clone https://github.com/OpenManus/OpenManus-RL.git
python -m openmanus_rl.train --agent_type=chatbot
3. 调试模式
# 启动调试控制台
python -m pdb main.py
# 常用调试命令:
b 32 # 在第32行设断点
c # 继续执行
n # 单步执行
ll # 查看当前代码上下文
四、典型应用场景
1. 智能客服开发
输入 > 创建能处理退货申请的客服机器人
输出 > 已生成对话树结构,需要补充:退货政策文档、物流接口配置...
2. 数据分析自动化
# 批量处理CSV文件
from openmanus.batch import DataProcessor
processor = DataProcessor("sales_data/*.csv")
processor.add_pipeline("异常值检测 -> 趋势预测")
processor.run()
3. 知识库问答系统
# 加载知识库(支持Markdown/PDF)
python -m openmanus.knowledge import --dir ./docs --format=pdf
输入 > 根据用户手册,如何重置设备?
输出 > 请长按电源键10秒直至指示灯闪烁...
五、故障排查
问题现象 | 解决方案 |
---|---|
ModuleNotFoundError | 执行 uv pip install --force-reinstall -r requirements.txt |
API响应超时 | 检查 base_url 是否匹配服务商区域(如azure需特殊端点) |
中文输出乱码 | 在 config.toml 添加 encoding = "utf-8" |
GPU未启用 | 安装 nvidia-cublas-cu12 并设置 device = "cuda:0" |