
简介这份源码包是面向在Mac上安装配置OpenClaw的开发者的实操指南帮助解决环境准备、CLI安装、本地模型接入与网关设置等完整流程中的常见问题。包内共3个文件包含inscode环境配置、html说明页面以及gitignore规则文件体积仅5KB轻量且便于对照阅读。目前已有682人学习下载。文件虽少但直接覆盖了从Homebrew、Node.js、Git等前置依赖的确认到通过brew install openclaw-cli完成安装再到配置ollama等本地大模型、指定网关端口与模型ID并自动打开Web控制界面的关键节点同时附带安全审计提醒与相关文档指引适合初次接触OpenClaw、想快速上手的macOS开发者参考可有效减少探索成本也适合作为后续配置的备份与模板。 Mac上跑开源AI代理框架这两年我折腾过不少OpenClaw算是其中让我印象比较深的一个。它本质上是把大模型能力封装成可编程的代理服务支持本地模型、可以接入微信做自动化回复、还能通过skill机制扩展功能适合想自己掌控全链路、不想被云平台绑定的开发者。这篇指南就围绕Mac端的源码安装展开把我踩过的坑、验证过的步骤、以及那些官方文档里没写透的细节都整理出来给准备入坑的朋友一份可以直接抄作业的参考。在动手之前先明确一件事源码安装明显比一键脚本要繁琐但换来的是对项目的完全掌控二次开发、自定义配置都方便得多。如果你只是临时体验脚本方式也能跑但研究OpenClaw的架构逻辑源码安装是更有价值的一条路。1. 安装方式选型为什么我坚持走源码1.1 三种安装方式的横向对比OpenClaw的部署方式目前主流的无非有三种官方/第三方的一键安装脚本、Docker容器化部署、源码手动安装。我在不同机器上都试过做一个直观的对比方式上手难度可控性二次开发适合场景一键脚本低低困难快速体验、生产环境省事Docker中中较困难隔离环境、多实例部署源码手动安装较高高灵活学习研究、深度定制很多朋友上来就选一键脚本省事是省事但你根本不知道它往系统里塞了什么。我在测试机上跑过一次第三方宣称的“终身会员特惠”全自动部署工具装完发现它除了项目依赖还改了全局的PATH变量、拉了一堆不明Python包。后面想清理花的时间比手动安装还要多几倍。所以如果是自己的主力开发机我强烈建议走源码安装至少每一步做了什么心里有数。1.2 源码安装的真正收益从源码安装不只是“能跑”这么简单。OpenClaw作为比较新的项目迭代速度非常快很多配置项和API可能隔几天就变了。直接克隆源码你能通过git log看到最近的提交记录了解项目最新动态改代码后重启服务就能生效不需要重新构建镜像而且调试的时候可以直接在源码里打日志定位问题比黑盒方式高效得多。还有一点OpenClaw的skill机制依赖项目目录内的固定结构只有源码安装才能最大限度保留这些目录关系。Docker虽然也能挂载卷但遇到路径映射问题排查起来比源码方式麻烦得多。综合下来源码方式在Mac上的体验最符合开发者的直觉。2. Mac环境准备这些依赖一个都不能少2.1 基础工具链安装在拉取源码之前先把环境收拾利索。MacOS虽然自带了一些开发工具但OpenClaw的依赖基本都需要补齐。我的环境是macOS Sonoma芯片是Apple Silicon以下是完整准备步骤# 1. 安装Homebrew如果还没装 /bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) # 2. 安装Git brew install git # 3. 安装Node.js建议装20 LTS版本 brew install node20 # 4. 添加环境变量并生效 echo export PATH/opt/homebrew/opt/node20/bin:$PATH ~/.zshrc source ~/.zshrc # 5. 验证版本 node -v npm -v注意Apple Silicon的Homebrew路径是/opt/homebrewIntel芯片则是/usr/local环境变量别抄错了。这里重点说下Node.js版本我最初直接用brew install node装的是当时最新的22.x版本结果OpenClaw的某些前端构建脚本在Node 22下会报一些原生模块编译错误。后来锁定到20 LTS版本整个过程就顺畅了。所以建议别追求最新按项目官方要求走。2.2 Python 与编译工具链OpenClaw的agent执行引擎部分依赖Python尤其是你要用本地模型比如OpenClaw Companion的时候Python环境必不可少。另外一些npm原生模块在安装时需要编译所以Xcode Command Line Tools也得就位。# 安装Python 3.11稳定性最好 brew install python3.11 # 安装编译工具链 xcode-select --install # 验证 python3 --version clang --version这里有个容易被忽略的坑如果你之前装过Anaconda或pyenv系统里可能存在多个Python版本。OpenClaw的构建脚本在查找Python解释器时可能会因为版本混乱而出错。我的经验是用which python3确认当前指向的路径如果指向的是conda环境建议在构建前临时切换到系统Python或者直接在项目里用虚拟环境隔离避免互相污染。2.3 Java可选但建议装如果你计划对OpenClaw做二次开发或者需要编译某些依赖Java的工具链提前装一个JDK会省事不少。很多Mac用户卡在这一步是因为装了但没配好JAVA_HOME。brew install openjdk17 # 添加到环境变量 echo export PATH/opt/homebrew/opt/openjdk17/bin:$PATH ~/.zshrc echo export JAVA_HOME/opt/homebrew/opt/openjdk17 ~/.zshrc source ~/.zshrc # 验证 java -version3. 源码获取与构建一步步跑通3.1 拉取源码与目录结构解析环境就绪后开始拉取源码。OpenClaw的源码托管在GitHub上仓库名就叫openclaw。这里建议直接克隆主分支因为项目活跃度很高release版本反而可能滞后git clone https://github.com/openclaw/openclaw.git cd openclaw进去之后别急着装依赖先花两分钟看一下目录结构我实测下来核心的无非这几个openclaw/ ├── apps/ # 各端应用入口compaions、control等 ├── packages/ # 核心包模型网关、代理引擎、工具链 ├── skills/ # skill扩展目录 ├── docs/ # 官方文档 ├── package.json # 项目配置文件 └── .env.example # 环境变量模板理解目录结构有助于后面排错。比如启动时报错说找不到模块你至少知道去packages下面找对应包看看依赖有没有装全。我在这一步就走了弯路一开始直接npm install然后启动报了一堆模块缺失的错误后来才意识到要先检查目录结构是否完整、子模块是否都拉下来了。3.2 安装依赖不止npm install这么简单OpenClaw是一个monorepo结构使用了npm workspaces。所以依赖安装不是简单地在根目录敲一下npm install就完事而是需要安装所有workspace的依赖# 安装全部workspace依赖根目录执行 npm install # 如果涉及原生模块编译失败先清理再重装 npm rebuild这一步耗时取决于网络状况我这边大概花了5到8分钟。安装过程中遇到最多的问题就是网络超时毕竟依赖源在国外。解决办法是给npm配置镜像源但注意不要全量替换只对安装失败的包单独走镜像就行# 临时使用镜像源安装 npm install --registryhttps://registry.npmmirror.com还有一个容易被忽视的问题macOS的文件大小写不敏感而某些npm包在发布时依赖大小写正确的路径。如果npm install报一些看起来莫名其妙的错误先检查一下项目路径里有没有大小写冲突的目录有就重命名成小写。3.3 首次构建与启动依赖装完后先执行一次构建生成必要的产物npm run build构建过程会生成dist或build目录具体取决于各package的配置。看到生成目录后再复制环境变量模板cp .env.example .env vim .env配置文件里需要改的核心是模型提供商信息。如果你有OpenAI的API Key可以直接填OPENCLAW_MODEL_PROVIDERopenai OPENCLAW_MODEL_NAMEgpt-4o-mini OPENCLAW_API_KEYsk-你的key填好后启动npm start看到终端输出类似OpenClaw agent is running on port 3000的日志说明第一关已经闯过了。但我还要提醒一句首次启动通常不会一次成功大概率会在配置或依赖上出幺蛾子这些我在第5节统一放排查思路。4. 核心配置与扩展能力实战4.1 本地模型接入OpenClaw Companion如果你不想把数据发给云端API可以接入本地模型。OpenClaw官方提供Companion本地模型方案在Mac上跑通后所有推理都在本地完成数据隐私有保障也不会有API调用延迟。接入方式很简单先在本地把Companion模型服务跑起来然后在.env里把提供商切换过去OPENCLAW_MODEL_PROVIDERcompanion OPENCLAW_MODEL_NAMEqwen2.5-coder:7b OPENCLAW_COMPANION_URLhttp://127.0.0.1:11434这里用到了类似Ollama的本地推理服务端口默认是11434。实际测试下来7B参数量的模型在M系列芯片上跑得还算流畅生成速度能满足日常对话但复杂工具调用的推理延迟会比较明显需要有点耐心。4.2 接入微信让代理真正“走进生活”OpenClaw接入微信是我觉得最实用的功能之一。配置好之后微信消息会转发给agentagent处理后自动回复等于给你的微信号配了一个24小时在线的AI助理。接入方式在项目文档里有写核心是在.env里开启对应渠道OPENCLAW_WECHAT_ENABLEDtrue OPENCLAW_WECHAT_BOT_NAME你的机器人名字开启后重启服务首次需要扫码登录之后会保持会话。注意OpenClaw接微信走的是个人号协议存在一定风险。建议用小号测试不要拿工作微信号直接试。另外自动回复一定要设置合规的过滤逻辑避免触发平台风控。4.3 skill机制给代理装上工具包OpenClaw比较有特色的就是skill扩展机制。所谓skill就是给agent预置的“技能模块”相当于给AI配了几把顺手工具。比如股票查询、天气查询、定时任务、网页抓取等都能通过skill扩展。创建skill的步骤如下# 创建skill目录 mkdir -p skills/my-custom-skill # 在skill目录下创建index.js cat skills/my-custom-skill/index.js EOF export default { name: my-custom-skill, description: 自定义技能示例, async call(params) { return 收到参数${JSON.stringify(params)}; } } EOF完成后重启服务在对话中调用即可。我看了一下热词里有很多关于“源码指标”之类的搜索推测不少人是奔着写这类自动化脚本来的。在OpenClaw里如果你恰好在做行情相关的自动化分析写一个拉取数据并计算指标的skill完全可行——把指标计算逻辑封装成skill注册给agent每天定时触发即可。这比在微信里人肉盯盘要省心得多。5. 高频报错与排查技巧实录5.1 我遇到过的典型问题下面是这段时间实测下来遇到的几个高频问题整理成表格方便对照排查现象可能原因解决办法npm install报网络超时默认源在国外访问慢指定镜像源重装或单独设registry启动后报Unknown model: xxx.env里模型名拼写错误或没配核对模型provider的名称规范查看docs里支持的模型清单Control UI did not start前端资源未构建成功重新执行npm run build确认dist目录存在扫码登录微信后掉线会话凭证过期或网络不稳定删除会话缓存文件重新登录本地模型加载慢模型量化等级高或内存不足换小尺寸模型关闭其他大型应用5.2 排查套路从日志入手很多朋友遇到问题第一反应是去群里问但OpenClaw的文档更新很快群友的经验未必跟得上。我自己的排查顺序是先看终端日志 → 再定位到具体package → 看对应模块源码 → 最后才去Issue区搜。举个例子Control UI did not start这个问题表面上是前端起不来但实际是构建时某个静态资源路径写错了。终端日志会显示具体的资源请求失败路径你顺着路径去apps/control目录下找对应的构建配置一眼就能发现问题。如果没有日志排查的习惯这类问题靠猜可能要折腾一晚上。5.3 独家避坑技巧第一修改.env后一定要重启服务而且要注意重启不仅仅是CtrlC再npm start有些子进程没被杀干净导致新配置没生效。建议这样重启pkill -f openclaw npm start第二Mac上如果遇到端口被占用别急着换端口先查清是什么进程占用的很多时候是之前没杀干净的服务lsof -i :3000第三如果你是在公司网络环境可能遇到Git克隆失败或npm安装失败可以尝试配置代理环境变量但注意别把代理配置提交到git仓库里避免泄露。6. 写在最后的几点体会这套环境我前前后后重装了三次才彻底跑顺前两次都栽在依赖版本和网络问题上。如果让我总结最关键的经验就是三条先把Node.js锁到LTS版本每个依赖装完立刻验证改动配置后彻底重启进程。Mac上源码安装OpenClaw本身并不复杂难的是熟悉这套“边构建、边验证、边排错”的节奏。把这套流程跑顺了后面做二次开发、自定义skill都会顺畅很多。安装过程中如果遇到文档里没写的新问题多看看源码有时答案就在里面。本文还有配套的精品资源点击获取