OpenClaw本地部署 + AWS Bedrock Claude 4.5 模型

最近跟着公司的试验项目,搭上了本地OpenClaw环境,不得不说搭环境真的是最头疼的事情,常常陷入坑里出不来。而对于模型的选择,想着能尽量用公司的就不要用自己的付费。选择了用公司给的AWS账号,通过AWS Bedrock 连模型。结果又选上了Claude Sonnet这种区域敏感的模型,可以说是一套配置直接难度拉满。

加上OpenClaw这种糙东西,文档也是不断更新,AI这边能进行的帮助有限,所以摸索了一天半才搭好。这篇算是记录,也是整理一下思路,以后少掉点坑。如果有想参考的,我的建议是,不要选这种给自己找麻烦的配置。

步骤

OpenClaw本地安装

OpenClaw 最近刷屏了,不用多说,我的理解就是一个Agent。对于一个Agent 来说它的基本组成就是,与用户对话的能力(IO),自己搭载一个推理模型(脑子)处理用户的意图,同时配装工具(手脚),完成用户下达的任务,积累用户的喜好(记忆)。这一套东西不算新颖,但是它比较好的接入了SKILL这个东西,可以根据意图制定一套实现某些功能的流程,然后安装到OpenClaw作为一个本地工具,这样OpenClaw这个助手就可以按照你的SKILL执行某项任务。

我举一个比较抽象 的例子,就是SKILL是一个菜谱-锅包肉的制作方法,里面什么步骤做什么事,放多少调料是你自己定义好的。然后你可以像MCP一样开源到云上。所有想吃这个菜,或者就觉得你的菜谱好吃的,都可以下载安装到本地的OpenClaw,然后和OpenClaw说我想吃锅包肉。然后OpenClaw就在后台给你用这个菜谱炒上菜了。好了会给你端上来,哈哈。

另外一个OpenClaw的特点是可以和WhatsApp, iMessage, Teams集成,直接作为一个bot使用。这里乍看有点抽象,就是说它可以作为一个账号给你通过聊天对话框联系。可以给OpenClaw定义一个身份名称,然后直接对话给它下达任务就可以了。

官网一键安装

官网:https://openclaw.ai/

我使用了一键安装。这里其实有坑的,我开始直接去了MacOS的tab,发现安装的是APP,可以说非常难用的一个东西。后来我把那个app卸载了,把文件路径清空了,重新进行的一键安装。大家不要像我一样灵机一动......

具体的setup步骤网上有很多视频,我就不细说了,因为我感觉根据每个人对模型的使用情况不同,你很难一次set up成功所有东西。差不多把这个onboard流程走完就行。还有就是whatsapp什么的,可以跳过,因为安装OpenClaw,把本地+模型链路打通就行,前端交互的这种integration不是优先级。

架构解析

如果跟着安装提示会发现它的基本架构是openclaw gateway,我愿称之为服务端

客户端的话一般有三个:

  1. TUI就是terminal tui,在gateway 启动之后,单开一个终端窗口执行tui作为交互。
  2. Webchat,就是网页UI,像deepseek那种UI聊天页面,gateway启动的时候应该可以看到一个本地的端口,打开这个页面就是【下图】
  3. IOS App,就是上面截图里macOS tab里下载的东西,是一个像Mac 里其他APP一样的软件,它把前后端整合在一个app里,难用至极

我的体验是,作为一个开发,需要不断调试环境,直接选择一键安装,然后用webchat,完全把terminal留给debug/gateway作用。webchat作为用户接口测试最终是不是work了。我个人不用TUI是因为我感觉terminal开多了,很容易乱套。

另外,非常建议大家留意一下这个UI页面,左下角有docs,这里很重要,因为目前OpenClaw版本更新不稳定,一定是需要看文档解决指令问题的,这些不能全指望AI,要合理利用官方文档。

文件目录

这个是一个我在安装和使用过程中总结的东西,明白openclaw 的目录环境,对它的工作方式,和进行服务端问题查找都很有作用。

openclaw的东西安装在.openclaw这个隐藏文件夹下。一般在用户根目录 ls -a就能看到它。然后进入这个文件夹查看内容,随着你的使用,这里会有很多新的东西。

  • openclaw.json 这个是配置文件,包括你选择的模型,交互等等
  • logs 日志目录,里面有gateway.err.log gateway.log,服务端的启动日志和错误日志,一般看启动日志就可以,有错误里面会报
  • workspace 工作目录,openclaw后面产生的工作数据应该是在这里的,比如心跳检测,长期记忆等等,还有一个很重要的是,你安装的skills会在这个目录下。无论是你手动安装,还是通过openclaw 安装,都会在这个workspace目录下创建一个skills文件夹,里面是你具体安装的各种skills。每个skill也是以文件形式安装好的,里面可能有各自的workspace,当然这就取决于你下载的skill是如何工作的了。

这里多说一句,SKILL这里看其实有点像plugin,只不过plugin是机器语言代码逻辑,但是SKILL是偏自然语言的模型处理逻辑。但是SKILL常常是机器语言+自然语言,保证灵活度的同时用机器语言保证准确性和稳定性。

Bedrock/Claude Sonnet模型配置

OpenClaw作为一个agent,你在配置它的model的时候有多种方式,比如直接从模型供应商接API。最开始我试了Google Gemini, 去Google AI Studio 生成一个Gemini API Key 配置进去就可以。但是这时我才意识到我买的是Gemini网页版的订阅。API KEY我是没有的,因为OpenClaw出了名的烧token,决定从公司的AWS账号走Bedrock了。反正也是给公司的试验项目用,就不自己花钱了。

AWS Bedrock 扫盲

我是AWS新手,最近对于AWS的认识就是它的云服务分类型会有自己的名字,有对应的权限去访问。比如EC2其实就是虚拟机,但是如果不了解,直接叫EC2我是意识不到它就是一个云服务器的。那么Bedrock就是AWS的模型产品,许多模型厂商会和AWS集成,这样用户就通过AWS去连接模型,而不是从模型厂商自己的服务器连。比如上面提到的Gemini, Anthropic的Claude系列,包括AWS自己的亲儿子模型们都在Bedrock上可以找到。

AWS还有一个很重要的地方就是"REGION"区域,权限会细化到区域,例如你只有us-east-1的权限,且同时你要有us-east-1的Bedrock权限,去找对应的us模型,例如amazon-bedrock/us.anthropic.claude-sonnet-4-5-20250929-v1:0 这一套才是顺的。

因此在选择模型之前,要确认自己所在的区域,AWS的profile是否有访问Bedrock对应区域的权限。即使profile是合法的,但该身份没有 bedrock:InvokeModel 权限,或者没有在当前 Region 激活该模型。这一块如果不是自己弄的,去找公司的AWS账号负责人比较好,自己一般搞不清楚。

IP 限制解决

众所周知,Claude Sonnet 4.5是区域敏感模型,动不动就会报:

bash 复制代码
Access to Anthropic models is not allowed from unsupported countries, regions, or territories. Please refer to https://www.anthropic.com/supported-countries for more information on the countries and regions Anthropic currently supports.

【...具体步骤折叠...】

做完了之后可以测一下: curl -v "https://bedrock-runtime.us-east-1.amazonaws.com", 测试成功,并且200成功。这里同样要注意区域,我这里测的是us-east-1。

bash 复制代码
* Uses proxy env variable https_proxy == 'http://127.0.0.1:7897'
*   Trying 127.0.0.1:7897...
* Connected to 127.0.0.1 (127.0.0.1) port 7897
* CONNECT tunnel: HTTP/1.1 negotiated
* allocate connect buffer
* Establish HTTP proxy tunnel to bedrock-runtime.us-east-1.amazonaws.com:443
> CONNECT bedrock-runtime.us-east-1.amazonaws.com:443 HTTP/1.1
> Host: bedrock-runtime.us-east-1.amazonaws.com:443
> User-Agent: curl/8.7.1
> Proxy-Connection: Keep-Alive
> 
< HTTP/1.1 200 Connection established

认证注入

想要访问云服务,必行是需要认证的。那么要对AWS的认证注入到你即将运行OpenClaw gateway的环境中。也就是我们一直操作的终端。

因为我是配了SSO登录,所以这里有点麻烦。(无语,走了最麻烦的一条路。

首先在终端进行SSO登录,aws sso login --profile your_profile_name 会跳出一个浏览器页面,告知登录成功。这里就建立了一个SSO Session,在过期时间内是不需要重复登录的。但是根据重要的参考文档:https://docs.openclaw.ai/providers/bedrock

可以看到OpenClaw使用ACCESS_KEY认证的,要从你上面的SSO Session中直接把上面需要的这些KEY导出并注入到当前的环境中。需要执行以下命令:

bash 复制代码
eval $(aws configure export-credentials --profile your-sso-profile-name --format env)

可以用echo指令验证是否成功注入。

设置模型

到这里相当于AWS 身份已经设置好了,接下来告诉 OpenClaw 开启 Bedrock模型。重要参考:https://docs.openclaw.ai/concepts/models

一定要根据文档里的指令给OpenClaw设置模型,当前版本里我用到的指令是:

bash 复制代码
openclaw models set "amazon-bedrock/us.anthropic.claude-sonnet-4-5-20250929-v1:0"

然后可以用 openclaw models status 查询模型状态。其中绿色的那个应该是你刚刚设置好的Claude 模型,我把我的实际使用码掉了。

启动服务器

到这里,应该是配置完成了,在一直工作的这个环境启动服务端:

bash 复制代码
openclaw gateway

注意观察启动日志,如果有报错,一般是比较明确的,可以对应着去解决。另外也有可能有启动失败,或者端口占用的情况,这种老生常谈,就是清空端口占用,再重启。可以用--force强制gateway的启动。

到这里服务器启动成功了,就可以去webchat里Say Hi了。

踩坑总结

因为我来来回回试了好几个版本,中间也有鬼打墙的时候,感觉Gemini都问爆了。后来通了的时候,其实自己也有点懵到底是哪一步通了。所以我这里的总结是自己对于部署期间的一个回顾,可能不是严格的一步一步地那种操作。但我认为尽量知道每一步在干什么,每一个坑掉到哪里了更重要。所以记录下来。下一次启动如果有问题,可以回顾一下,自己也好厘清思路。我遇到的几个坑总结起来就是:

  1. OpenClaw如果你和它Say Hi没有回复,大概率是模型没有调通,根本就没有推理的过程,所以也无法给你任何提示。原因可能是API KEY有问题
  2. 排查的时候可以按最小粒度,例如先CURL模型,看能不能直接通过API KEY调用模型,如果这里调通了,再考虑OpenClaw调用模型的问题
  3. Gateway的启动日志会给出很多信息,注意观察,或者openclaw logs --tail 20,另外open claw提供openclaw doctor 诊断指令
  4. 启动gateway的环境一定要走代理,随时echo检查环境变量
  5. 对于Anthropic这种非常严格的区域限制模型,它有一个其它模型没有的问题,就是AccessDenied,有的时候会把具体的区域问题报出来,有的时候的表现就是在4s 之内对模型的请求被断开,但是此时你的请求仍会返回200成功。
  6. 一定要看官方文档!可以吧文档copy出来喂给AI,但是最新的文档会包含最新的指令,这些指令AI不会知道
  7. 如果嫌麻烦,跑通了之后可以写个一键脚本以后就不用每一步都重新走一遍了。这里可以交给AI
bash 复制代码
表现为:任务已完成:run_completed 和 durationMs=3710 说明请求发出了,并且在 3.7 秒后结束了

这个是最有迷惑性的,这个也是Agent 很难识别出来的,请求成功,但突然断开,流式返回空相应。它会认为是服务端有问题,AI很难意识到是区域限制。遇到类似的表现,如果在国内,首先考虑代理问题,是本地运行环境没有走代理?AWS Bedrock的流量没有走代理?还是走了代理,但是走的那个代理依然是IP限制的?这些要细心排查。

每次搭环境都是扒层皮啊,服了。敏感内容审核不通过,我直接折叠了很多。。。如果对你有所帮助,给主包一个关注/评论/收藏/赞吧,哈哈,今天赶紧敲出来这一篇,明天过年了。希望新的一年,自己可以更好有AI的mindset,风口浪尖中,永远越战越勇。

相关推荐
树獭叔叔2 小时前
深度解析 GRPO:DeepSeek R1 背后“悟道”的逻辑引擎
后端·aigc·openai
是店小二呀2 小时前
MySQL 深度实践:表的约束及其在数据完整性中的作用
后端
树獭叔叔2 小时前
Transformer 的稳健基石:残差连接与 Pre-LN 深度解析
后端·aigc·openai
Honmaple2 小时前
OpenClaw 集成 SearXNG、DuckDuckGo 与 Tavily 搜索功能全指南
后端
MX_93592 小时前
Spring组件扫描原理解析
java·后端·spring
程序员良许2 小时前
防火墙和入侵测试
后端
明月_清风2 小时前
从 JS 到 C++/Rust:利用 N-API 构建 Node.js 高性能扩展的底层闭环
后端
明月_清风3 小时前
从“搬运工”到“指挥官”:通过 IoC 容器重塑你的后端思维
后端·nestjs