📌 项目地址FoundationAgents/OpenManus | ⭐ 56,404 颗星 | 🔧 Python | 📜 MIT

项目背景

OpenManus 由 MetaGPT 团队(@Xinbin Liang、@Jinyu Xiang 等五人)在3小时内写出原型,发布后快速获得56404个star。它直接对标闭源项目 Manus(需要邀请码才能用),而 OpenManus 不需要任何邀请码,所有人都可以在本地运行、修改代码。项目代码量很小,抽象层只有 BaseAgentTool 两个核心类,想加一个新工具,写一个继承 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/ 目录,代码结构确实简单:BaseAgentagent/base.pyTooltool/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 跑通流程再换模型。

这篇文章对你有帮助吗?

发表回复