资讯详情

macOS 上安装 OpenManus 的详细步骤:从环境准备到 TaoToken 接入

📅 2026/10/8 17:40:26 | 华诺云谱 👁 阅读
macOS 上安装 OpenManus 的详细步骤:从环境准备到 TaoToken 接入
1. macOS 上跑 OpenManus 到底卡在哪环境准备与依赖检查OpenManus 是一个开源的通用智能体Agent框架能在本地把大模型的推理能力接到终端里让它自己规划任务、调用工具、读写文件。适合想在 macOS 上折腾本地 Agent、又不想被某个闭源客户端绑死的开发者。我第一次在 Mac 上装它的时候卡了整整一个下午问题不在 OpenManus 本身而在环境系统自带的 Python 版本太老、uv 装完没重载 shell、虚拟环境激活后 pip 和 uv 混用导致依赖装串了。所以这篇不讲虚的从依赖检查一路写到 TaoToken 统一 Key 接入每一步都给可复制的命令和验证动作。先说清楚 macOS 上装 OpenManus 的完整链路检查 Git 和 Python 版本 → 装 uv 包管理器 → 克隆仓库 → 建虚拟环境 → 装依赖 → 配置模型 Key → 首次运行验证。这条链路里最容易翻车的是 Python 版本和虚拟环境因为 OpenManus 对 Python 版本有硬性要求低于 3.12 会在装依赖时报语法或类型相关的错而且报错信息往往指向某个第三方库让你误以为是库的问题。先做依赖体检。打开终端逐条执行git --version python3 --version which python3git --version正常会输出类似git version 2.39.3 (Apple Git-145)。如果提示 command not found说明没装 GitmacOS 上最省事的办法是装 Homebrew 再装 Git/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) brew install gitpython3 --version这一步是关键。如果输出是 3.9 或 3.11别急着往下走OpenManus 需要 3.12。macOS 系统自带的 Python 通常是 3.9直接用它装依赖大概率失败。我建议用 pyenv 管理多版本这样不会污染系统 Pythonbrew install pyenv pyenv install 3.12.3 pyenv global 3.12.3装完 pyenv 后要把它写进 shell 配置否则新开终端又回到系统 Python。根据你的 shell 类型选一条echo export PYENV_ROOT$HOME/.pyenv ~/.zshrc echo export PATH$PYENV_ROOT/bin:$PATH ~/.zshrc echo eval $(pyenv init -) ~/.zshrc source ~/.zshrcmacOS 从 Catalina 起默认 shell 是 zsh所以上面用的是~/.zshrc。如果你手动改过 bash就把路径换成~/.bash_profile。执行完再跑一次python3 --version确认输出是 3.12.x。这一步没确认就往下走后面依赖报错你会怀疑人生。还有一个容易被忽略的点Xcode Command Line Tools。某些 Python 包在编译 C 扩展时需要它没装会报xcrun: error: invalid active developer path。检查命令xcode-select -p如果报错执行xcode-select --install弹窗点安装即可。这个装一次就行后面不用管。依赖检查做完你应该确认三件事Git 可用、Python 是 3.12、Command Line Tools 已装。这三样齐了后面的安装流程会顺很多。很多人跳过检查直接 clone结果在uv pip install阶段报一堆编译错误回头排查成本更高。我实测下来把版本检查前置整个安装时间能从反复试错的一小时压缩到十分钟以内。2. TaoToken 前置准备统一 Key 与 Base URL 怎么拿OpenManus 本身不带模型它需要你提供一个兼容 OpenAI 接口的模型服务。你可以直接填某家的官方 Key但如果你同时用多个模型、或者想在 Claude Code、Cline、Codex 这些工具之间共用一套配置用 TaoToken 做统一接入会省事很多。它的作用是给你一个统一的 API 入口和 Key模型 ID 按需切换不用每个工具单独配一遍。先拿 Key。打开浏览器访问官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content注册登录后进控制台路径是 console 页面https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite在控制台里找到 API Keys 管理页新建一个 Key。建议给这个 Key 起个能认出来的名字比如openmanus-mac方便以后在多个工具间区分。创建后立刻复制保存页面刷新后完整 Key 就不再显示了。https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite拿到 Key 之后你需要记下两个东西Base URL 和 Model ID。Base URL 是统一的接口地址https://taotoken.net/api注意这个地址后面不加 UTM 参数它是给程序调用的不是给人点的。Model ID 则取决于你想用哪个模型在控制台的模型列表或文档里能查到对应的字符串比如claude-sonnet-4-20250514这类。文档页在这里https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite如果你打算长期跑编码类 Agent 任务可以顺手看一下 Coding Plan它针对高频调用做了额度设计https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite想先在网页里验证模型通不通可以用模型对话页发一条测试消息https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite这里有个概念要理清TaoToken 提供的是兼容 OpenAI 协议的接口所以 OpenManus 里凡是让你填api_key、base_url、model的地方都按这套填。Base URL 填https://taotoken.net/apiKey 填你刚创建的Model ID 填你要用的模型字符串。三件套对齐请求才能通。我踩过的坑是一开始把 Base URL 填成了带/v1的地址结果 OpenManus 内部又拼了一次路径变成/v1/v1/chat/completions直接 404。后来确认统一入口就是https://taotoken.net/api不要自己加后缀。另外 Key 别写进会提交到 Git 的文件里后面配置那节我会讲怎么放。3. 可复制配置uv 建环境 config.toml 接入 TaoToken这一节是全文的核心所有命令和配置片段都能直接复制。先装 uv它是 Rust 写的 Python 包管理器装依赖比 pip 快很多而且能自动处理虚拟环境。curl -LsSf https://astral.sh/uv/install.sh | sh装完必须重载 shell否则uv命令找不到source ~/.zshrc如果你用的是 bash换成source ~/.bash_profile。验证 uv 是否可用uv --version正常输出类似uv 0.4.x。接着克隆 OpenManus 仓库并进入目录git clone https://github.com/mannaandpoem/OpenManus.git cd OpenManus创建虚拟环境并激活uv venv source .venv/bin/activate激活成功后终端提示符前面会出现(OpenManus)或类似标识。这一步很重要它保证后面装的依赖只进这个项目不污染全局 Python。然后装依赖uv pip install -r requirements.txt如果这一步报错先别慌大概率是 Python 版本不对或缓存问题。清理缓存重试uv clean uv pip install --refresh -r requirements.txt依赖装完开始配模型。先复制配置模板cp config/config.example.toml config/config.toml然后用编辑器打开config/config.toml。这里给出接入 TaoToken 的关键片段你按自己的 Model ID 替换[llm] model claude-sonnet-4-20250514 base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 max_tokens 4096 temperature 0.0 [llm.vision] model claude-sonnet-4-20250514 base_url https://taotoken.net/api api_key sk-你的TaoToken密钥三个字段对齐关系再强调一遍base_url填https://taotoken.net/apiapi_key填控制台创建的 Keymodel填你要用的模型 ID。如果你用的是其他模型只改model这一行即可Base URL 和 Key 不用动这就是统一接入的好处。关于 Key 的安全存放别直接硬编码在会提交的文件里。更稳妥的做法是用环境变量在~/.zshrc里加一行export TAOTOKEN_API_KEYsk-你的TaoToken密钥然后配置里引用api_key ${TAOTOKEN_API_KEY}不过 OpenManus 的配置解析是否支持环境变量插值取决于版本最稳的还是先直接填在config/config.toml同时把config/config.toml加进.gitignore避免误提交。检查一下grep -n config.toml .gitignore如果没有输出手动加一行config/config.toml。配置写完保存退出。到这里环境、依赖、模型三件套都齐了。下一节做首次运行验证。4. 验证请求首次运行 OpenManus 与成功结果判断配置就绪后启动基础版python main.py如果一切正常终端会进入交互式命令行界面出现类似Enter your request:的提示。这时候输入一个简单任务测试比如帮我创建一个名为 hello.txt 的文件内容写 OpenManus works观察它的行为它会先规划步骤然后调用工具执行最后返回结果。如果模型接入正确你会看到它真的在当前目录生成了hello.txt。验证一下cat hello.txt输出OpenManus works就说明整条链路通了OpenManus → TaoToken 接口 → 模型 → 工具执行。如果你想试实验性版本可以跑python run_flow.py这个版本的任务流编排更复杂适合测试多步骤 Agent 场景。首次验证建议先用main.py它的路径更短出问题好定位。成功运行的几个标志终端出现交互提示符、输入任务后模型有响应、工具调用有日志输出、文件系统有实际变化。只要这四点里前三点满足基本就是通了。如果模型有响应但工具没执行可能是权限或路径问题检查当前目录是否可写。验证模型接口是否真的走通还有一个更直接的办法在 OpenManus 里发一条纯对话请求比如你好请回复你的模型名称。如果它能正常回复说明 Base URL 和 Key 没问题问题就缩小到工具调用层了。这种分层排查比一上来就怀疑配置要高效。我实测下来首次运行最常见的成功结果是模型回复一段规划文字然后调用create_file之类的工具最后告诉你任务完成。整个过程在终端里是流式的你能看到每一步。如果卡在某一步不动多半是网络请求超时或模型 ID 写错下一节专门讲报错排查。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth这一节按真实报错来对每条都给定位思路和修法。401 Unauthorized。这是 Key 问题。先确认config/config.toml里的api_key是不是完整的、有没有多余空格或换行。然后确认 Key 没有过期或在控制台被删除。还有一个隐蔽原因Base URL 写错导致请求打到了别的服务对方返回 401。确认base_url https://taotoken.net/api不要带/v1。修完重启python main.py。local proxy failed / connection error。这类报错通常是本地网络环境或代理设置导致的。检查终端里有没有残留的http_proxy、https_proxy环境变量env | grep -i proxy如果有输出且不是你主动设的用unset http_proxy https_proxy清掉再试。另外确认你的网络能正常访问https://taotoken.net/api可以用 curl 测一下连通性curl -I https://taotoken.net/api能返回 HTTP 状态码就说明网络通。Error reading choices / KeyError choices。这个报错说明请求发出去了但返回的 JSON 结构里没有choices字段。常见原因是模型 ID 写错服务端返回了一个错误对象而不是正常的补全结果。检查model字段是否和控制台里列出的模型 ID 完全一致大小写和连字符都不能差。另一个原因是 Base URL 拼错请求打到了不兼容的端点。把base_url和model两个字段对照文档再核一遍。OAuth 相关报错。如果你在配置里混用了需要 OAuth 的客户端配置或者从别的工具复制了带 OAuth 字段的配置OpenManus 解析时会报错。OpenManus 用的是 API Key 模式不需要 OAuth。检查config/config.toml里有没有多余的oauth、auth_type之类字段删掉。如果你同时用 Claude Code 或 Codex它们的配置文件是独立的别把auth.json的内容混进 OpenManus 的 toml。依赖装不上 / 编译错误。回到第 1 节确认 Python 是 3.12Command Line Tools 已装。然后uv clean重试。如果某个包死活装不上看它的报错里有没有提到 Python 版本要求多半是版本不匹配。虚拟环境没激活。症状是python main.py报模块找不到。检查提示符前面有没有(OpenManus)没有就source .venv/bin/activate。这个错误很基础但很常见尤其是新开终端窗口后忘了激活。排查顺序建议先看报错关键词 → 对照上面四条 → 确认三件套Base URL、Key、Model ID→ 确认虚拟环境激活 → 确认 Python 版本。按这个顺序走九成问题能定位。6. 长期使用建议与接入入口跑通之后如果你打算把 OpenManus 当日常 Agent 工具用有几个习惯能省事。第一把config/config.toml排除在版本控制外Key 不进 Git。第二模型 ID 单独抽出来换模型时只改一行。第三如果同时用 Claude Code、Cline 这类工具统一用同一套 TaoToken Key 和 Base URL配置心智负担小很多。Claude Code 的接入配置可以在这里找到对应说明https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite需要新建或管理 Key 时回控制台https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite接口细节和模型列表看文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite高频跑编码任务的话Coding Plan 的额度设计比按次调用更划算https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite最后留一个实操建议每次换模型或改配置后先用一条纯对话请求验证接口通不通再跑复杂任务。这样出问题时你能立刻判断是配置层还是工具层排查时间能砍掉一大半。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑