📌 项目地址:FoundationAgents/OpenManus | ⭐ 56,404 颗星 | 🔧 Python | 📜 MIT
项目背景
OpenManus 由 MetaGPT 团队(@Xinbin Liang、@Jinyu Xiang 等五人)在3小时内写出原型,发布后快速获得56404个star。它直接对标闭源项目 Manus(需要邀请码才能用),而 OpenManus 不需要任何邀请码,所有人都可以在本地运行、修改代码。项目代码量很小,抽象层只有 BaseAgent 和 Tool 两个核心类,想加一个新工具,写一个继承 Tool 的类就行,不需要理解复杂的编排逻辑。这点比 LangChain 轻得多。
另外还有一个衍生项目 OpenManus-RL(UIUC 和 OpenManus 合作),专门用 GRPO 等强化学习方法微调 LLM Agent。如果你对 RL 调 Agent 感兴趣,可以一并看看。
安装:conda 和 uv,推荐 uv
README 给了两种方式,我都试了。依赖多的时候 uv 明显快。
conda 方式
conda create -n open_manus python=3.12
conda activate open_manus
git clone https://github.com/FoundationAgents/OpenManus.git
cd OpenManus
pip install -r requirements.txt
uv 方式(推荐)
先安装 uv(Python 快速包安装器和解析器):
curl -LsSf https://astral.sh/uv/install.sh | sh
然后:
git clone https://github.com/FoundationAgents/OpenManus.git
cd OpenManus
uv venv --python 3.12
source .venv/bin/activate # Windows 用 .venvScriptsactivate
uv pip install -r requirements.txt
如果需要智能体操作浏览器(自动填表、截图等),再装 Playwright:
playwright install
我试了 uv 方式,从克隆到安装完成不到30秒。conda 加上依赖解析通常要两分钟以上。
配置:唯一必须做的事是填 API key
OpenManus 不内置任何模型,必须自己提供 LLM 接口。复制配置模板:
cp config/config.example.toml config/config.toml
编辑 config/config.toml,填入 API key。典型配置(来自 README):
[llm]
model = "gpt-4o"
base_url = "https://api.openai.com/v1"
api_key = "sk-..." # 替换
max_tokens = 4096
temperature = 0.0
[llm.vision]
model = "gpt-4o"
base_url = "https://api.openai.com/v1"
api_key = "sk-..."
如果你用其他兼容 OpenAI 接口的模型(比如本地 vLLM、国产模型),改 base_url 就行。不做视觉任务可以删掉 [llm.vision]。
temperature 设成 0.0 能降低幻觉,让工具调用更稳定。如果模型指令遵循能力差,可以适当提高,但可能会有更多乱调用工具的情况。
实际使用:还没有运行命令,需要自己探索
坦白说,README 目前只给出了安装和配置,没有给出明确的启动命令。我一开始在终端敲 python main.py 没反应(项目里没有这个文件)。后来去 HuggingFace 在线 Demo 试了一下效果。本地部署后,我翻了 agent/ 和 tool/ 目录,代码结构确实简单:BaseAgent 在 agent/base.py,Tool 在 tool/base.py。你可以自己写一个入口脚本,实例化 Agent 并运行循环。项目迭代很快,想二次开发的话建议固定一个 commit,或者关注 Discord 社区 获取最新启动方式。
架构亮点:两个抽象类,扩展极简单
OpenManus 的核心抽象只有两个:
BaseAgent:定义 Agent 的循环逻辑——调用 LLM,解析响应,执行工具调用,更新状态。Tool:定义工具的执行逻辑。你只需要重写execute方法,注册到 Agent 即可。
相比 LangChain 的 Chain、Tool、AgentExecutor 等多层抽象,OpenManus 几乎透明。如果你想快速集成内部 API 或私有服务,写一个 Tool 子类就够了。
RL 扩展:OpenManus-RL
如果你对用强化学习(GRPO 等)微调 Agent 感兴趣,可以看 OpenManus-RL。这是与 UIUC 合作的项目,专门研究如何通过 RL 提升 LLM Agent 的决策能力。目前还在早期阶段,但方向值得关注。
几点实用建议
- 模型选择:gpt-4o 最稳。如果换成其他模型,先测试它的指令遵循和格式化输出能力。工具调用依赖 LLM 输出结构化的 JSON,这一点做不好的模型效果会很差。我试过几个开源模型,输出经常跑偏。
- 扩展性:加工具只需写一个
Tool子类,重写execute方法。适合快速集成私有 API 或公司内部服务。 - 温度设置:0.0 最稳定,但如果模型太保守导致拒绝执行任务,可以提高到 0.1-0.2,不要超过 0.5。
- 浏览器自动化:如果用到 Playwright,记得在运行前
playwright install,否则会报错。
我的评价
OpenManus 的价值是提供了一个干净、可运行、可扩展的 Agent 脚手架。代码量小,抽象清晰,比 LangChain 轻得多。如果你只想控制自己 Agent 的工具集合,不想被框架绑架,这个项目值得 fork。需要注意:文档还在完善,没有明确的启动命令,需要你自己读代码或社区获取;LLM 的输出质量直接决定了 Agent 的可用性,建议先用 gpt-4o 跑通流程再换模型。