OpenClaw AI Agent自动化部署:10分钟在VPS搭建Telegram智能助手
1. 项目概述一键部署你的AI智能体如果你对AI Agent智能体感兴趣想拥有一个7x24小时在线、能通过Telegram和你对话、帮你处理各种任务的私人AI助手那么你很可能已经听说过OpenClaw。它是一个功能强大的开源AI Agent框架但它的部署过程——尤其是在一台远程的VPS虚拟专用服务器上——对于很多开发者来说依然是个不小的门槛。你需要配置服务器、安装依赖、设置Telegram Bot、处理身份验证还要确保服务能稳定运行。这个过程繁琐且容易出错任何一个环节卡住都可能让你前功尽弃。我最近在GitHub上发现了一个名为openclaw-vps-deploy的项目它正是为了解决这个痛点而生。这个项目本质上是一个自动化部署脚本目标是在一台全新的Ubuntu 24.04 VPS上用大约10分钟的时间帮你完成从零到一的OpenClaw完整部署。它提供了两种模式一种是“全配置部署”直接帮你把OpenClaw、Telegram Bot和身份验证全部配好部署完就能直接用另一种是“仅安装模式”只装好基础环境后续再通过交互式向导来配置。这篇文章我将以一个实际操盘手的角度为你深度拆解这个部署脚本的里里外外。我不会仅仅复述README里的命令而是会结合我多年部署各类服务的经验告诉你每一步背后的逻辑、可能遇到的坑以及如何根据你的实际情况进行调整和优化。无论你是想快速搭建一个可用的AI助手还是想学习自动化部署的实践这篇文章都能给你提供一份详实的“作战地图”。2. 核心思路与方案选型解析在深入命令行之前我们先来理解一下openclaw-vps-deploy这个项目的设计哲学。它不是一个全新的工具而是一个“胶水脚本”其核心价值在于将多个手动步骤串联并自动化。2.1 为什么选择自动化脚本而非手动部署手动部署OpenClaw你需要依次完成以下动作服务器初始化登录VPS更新系统安装基础工具curl, git等。安装OpenClaw CLI通过官方安装脚本下载并安装命令行工具。身份验证获取Anthropic API Key或Claude订阅的setup-token并配置到OpenClaw中。配置通信通道创建Telegram Bot获取Token并在OpenClaw中完成绑定和用户授权。配置后台服务将OpenClaw Gateway设置为systemd服务确保其开机自启和异常重启。配置网络安全设置防火墙UFW只开放必要的端口SSH和OpenClaw Gateway端口。这个过程涉及多个交互环节比如openclaw onboard向导容易因输入错误或网络问题中断。而这个部署脚本的价值就在于一致性确保每次部署的环境和步骤完全一致避免“我上次怎么成功的来着”这种问题。效率将大约30-60分钟的手动工作压缩到10分钟且大部分时间在等待脚本运行。降低门槛对不熟悉Linux系统管理或OpenClaw配置细节的用户非常友好。2.2 脚本的两种模式全自动 vs 半自动项目提供了两种部署模式这其实是对不同用户场景和需求的精准把握。2.2.1 全配置部署模式这是脚本的主打功能。你需要在运行脚本时通过命令行参数一次性提供所有必要的凭证VPS的IP地址和SSH用户名Telegram Bot Token授权用户的Telegram IDAnthropic API Key 或 Claude setup-token脚本会在远端服务器上以非交互模式--non-interactive运行openclaw onboard自动完成所有配置。部署完成后你指定的Telegram用户就可以直接给Bot发消息无需再进行任何配对操作。适用场景适合追求极致效率、需要快速搭建生产环境或为他人部署的场景。例如你想为你的团队快速搭建一个共享的AI助手或者你本人已经很清楚所有凭证的获取方式。2.2.2 仅安装模式这种模式只做最基础的事情连接到VPS安装OpenClaw CLI和系统依赖curl, git, ufw并配置防火墙。它不会配置任何身份验证或Telegram Bot。部署完成后你需要手动SSH到服务器运行openclaw onboard来启动交互式配置向导。适用场景适合想要更细致控制配置过程、或者还不确定最终使用哪种身份验证方式的用户。也适合学习目的你可以一步步看着向导的提示了解OpenClaw的配置项有哪些。2.3 技术栈与依赖分析这个脚本本身是Bash写的这意味着它几乎可以在任何Linux/macOS的本地开发机上运行。它的工作方式是“远程执行”通过SSH连接到目标VPS然后在远端执行一系列命令。核心依赖本地机器需要具备SSH客户端和Git。这是几乎所有开发者的标配。目标VPS必须是Ubuntu 24.04。这是脚本明确声明的前提。为什么是24.04因为OpenClaw的官方安装脚本和系统包依赖如特定版本的libc可能在这个版本上经过了充分测试。使用其他版本如22.04或非Ubuntu系统可能会遇到不可预料的库冲突或安装失败。网络你的本地网络需要能访问目标VPS的IP和22端口SSH。同时VPS本身需要能访问外网以下载安装包和Docker镜像如果OpenClaw后端用到的话。脚本内部主要调用了以下几个关键组件ssh用于远程命令执行和文件传输SCP。curl下载OpenClaw官方安装脚本。ufwUbuntu上简单的防火墙配置工具。systemd用于管理OpenClaw Gateway守护进程。理解了这些设计思路我们再动手操作时就会更加心中有数遇到问题也更容易定位。3. 前期准备凭证获取与服务器配置详解在运行那个神奇的deploy.sh脚本之前我们需要把“弹药”准备好。这一步至关重要很多部署失败都源于前期准备不充分。我会详细拆解每一步并分享一些容易踩坑的细节。3.1 VPS的选择与初始化脚本推荐了Hetzner、OVH、DigitalOcean等供应商。我的经验是对于OpenClaw这类AI Agent选择时主要看三点网络、性价比和可用区。网络如果你和你的主要用户在国内那么选择拥有优化线路如CN2 GIA、AS9929的香港、日本、新加坡等亚洲节点VPSTelegram Bot的响应延迟会低很多。直接选欧美节点消息延迟可能高达1-2秒体验大打折扣。配置脚本要求4GB RAM和40GB存储。这是底线。如果你的Agent需要处理复杂的、多步骤的任务或者你打算长期运行并积累大量会话历史我建议选择8GB内存、80GB SSD的配置这会从容很多。CPU核心数倒不是最关键2核通常足够。系统创建实例时务必选择Ubuntu 24.04。有些服务商的镜像列表里可能叫“Ubuntu 24.04 LTS”或“Jammy Jellyfish 24.04”。确认好版本再下一步。服务器创建好后你会得到一个IP地址比如203.0.113.10和一个初始用户名通常是ubuntu或root。请立刻、马上记录下这两条信息。3.2 SSH密钥认证部署流畅的关键脚本默认使用你本地已有的SSH密钥对去连接VPS。如果VPS只支持密码登录脚本会在需要sudo权限时卡住因为无法自动输入密码。因此配置SSH密钥认证不是可选项而是必选项。操作流程如下检查本地是否有SSH密钥ls -al ~/.ssh/id_*.pub如果看到id_rsa.pub或id_ed25519.pub等文件说明已有。如果没有生成一个ssh-keygen -t ed25519 -C your_emailexample.com # 一路回车使用默认路径和空密码即可。将公钥上传到VPS 使用ssh-copy-id是最简单的方法ssh-copy-id ubuntu203.0.113.10它会提示你输入一次VPS的登录密码。输入正确后你的公钥就被添加到VPS用户的~/.ssh/authorized_keys文件中了。验证免密登录ssh ubuntu203.0.113.10如果不需要输入密码就能直接进入服务器命令行那么恭喜这一步成功了。实操心得很多云服务商如AWS、GCP在创建实例时提供了“注入SSH公钥”的选项那样连ssh-copy-id都省了。此外确保你的本地私钥~/.ssh/id_xxx没有过于严格的权限如chmod 600是好的但被其他用户可读就不好了这有时也会导致SSH连接失败。3.3 获取Telegram Bot Token这是让你的AI助手拥有“肉身”的步骤。整个过程在Telegram应用内完成。在Telegram中搜索并打开BotFather。向它发送命令/newbot。按照提示操作为你的Bot起一个显示名称如My AI Assistant。为你的Bot设置一个唯一的用户名必须以bot结尾如my_awesome_ai_bot。创建成功后BotFather 会给你发来一串重要的消息其中包含HTTP API token格式类似1234567890:ABCdefGHIjklMnOpQrStUvWxYz。重要提示立即保存这个Token它只显示一次。如果丢失你只能去 BotFather 那里/revoke并重新生成。这个Token是Bot的“最高权限密码”绝对不能泄露或提交到公开的代码仓库。脚本通过命令行参数传递它在历史记录中可能会留下痕迹。一种更安全的方式是将其设置为环境变量但该脚本目前不支持这是一个可以改进的安全点。3.4 获取授权用户的Telegram IDOpenClaw需要知道哪个Telegram用户有权限与Bot对话。这里获取的是用户的数字ID而不是用户名username。让未来要使用这个Bot的用户在Telegram中搜索并打开userinfobot。向这个Bot发送任意消息比如/start。它会回复一条信息其中包含Id: 987654321这样的字段。这个数字就是用户的Telegram ID。为什么是数字ID而不是用户名因为用户名是可以更改的而数字ID是永久且唯一的。用ID做授权更稳定。3.5 获取Anthropic API Key 或 Claude Setup-Token这是为AI助手注入“灵魂”的一步决定了它背后使用的是哪个AI模型Claude。你有两种选择3.5.1 Anthropic API Key推荐给开发者访问 Anthropic Console 。注册或登录账号。在侧边栏或顶部导航中找到“API Keys”或“Developers”部分。点击“Create Key”。给你的Key起个名字例如 “OpenClaw VPS Bot”然后创建。复制生成的Key格式以sk-ant-api03-开头。注意事项API Key是按使用量付费的Tokens。你需要为Anthropic账户绑定支付方式。请密切关注你的使用量和费用可以在后台设置用量提醒。3.5.2 Claude Subscription Setup-Token适合Claude订阅用户如果你订阅了Claude网页版或App你可以使用一个特殊的“setup-token”来授权。这个Token通常可以在你的Claude账户设置或订阅管理页面找到。它的格式可能就是一个长字符串没有固定前缀。使用setup-token的好处是它通常关联着你已付费的Claude订阅计划可能有一定的免费额度且不需要单独处理Anthropic的API计费。但它的获取方式不如API Key那么标准化和明确可能需要你在Claude的官方帮助文档里搜索一下具体位置。至此所有“弹药”已备齐VPS IP、SSH用户、Bot Token、用户ID、API Key/Token。我们可以进入核心的部署环节了。4. 全配置部署模式实操全记录现在让我们进入最激动人心的环节一行命令部署整个世界。我会以使用Anthropic API Key为例带你走完全程并解释每个参数和可能的状态。4.1 获取并运行部署脚本首先在你的本地电脑比如Mac的终端或Windows的WSL/Git Bash上操作。# 1. 克隆部署脚本仓库 git clone https://github.com/ortegarod/openclaw-vps-deploy.git cd openclaw-vps-deploy # 2. 给部署脚本添加执行权限通常克隆下来就有但检查一下更安全 chmod x deploy.sh4.2 执行部署命令这是最关键的一步。请将下面命令中的占位符替换成你之前准备好的真实信息。./deploy.sh \ --host 203.0.113.10 \ --user ubuntu \ --telegram-token 1234567890:ABCdefGHIjklMnOpQrStUvWxYz \ --telegram-user-id 987654321 \ --api-key sk-ant-api03-...参数逐行解析--host你的VPS公网IP地址。务必使用IP除非你为VPS配置了域名并做好了DNS解析。--userSSH用户名就是你之前配置免密登录时用的那个例如ubuntu,root,debian。--telegram-token从BotFather那里获取的Token注意用双引号包裹因为Token里可能包含特殊字符。--telegram-user-id从userinfobot那里获取的数字ID。--api-key从Anthropic Console获取的API Key同样用双引号包裹。如果你使用的是Claude setup-token则将--api-key参数替换为--token./deploy.sh \ --host 203.0.113.10 \ --user ubuntu \ --telegram-token 1234567890:ABCdefGHIjklMnOpQrStUvWxYz \ --telegram-user-id 987654321 \ --token your_claude_setup_token_here4.3 脚本运行过程与幕后解读当你按下回车后脚本会开始执行。屏幕上会滚动输出一系列信息。我们来解读一下它背后在做什么SSH连接与基础检查脚本首先尝试用你提供的用户名和密钥连接到VPS检查系统是否为Ubuntu并更新包列表。如果这里失败通常是SSH连接问题密钥不对、防火墙阻断、用户名错误。安装系统依赖通过apt-get install安装curl,git,ufw这三个必备工具。配置防火墙启用UFW并设置规则允许22端口SSH和允许18789端口OpenClaw Gateway默认端口然后拒绝所有其他入站连接。这是一个很好的安全基线。安装OpenClaw CLI通过curl -fsSL https://openclaw.ai/install.sh | bash下载并执行官方安装脚本。这会将openclaw命令行工具安装到~/.openclaw/bin/目录下并可能将其加入用户的PATH环境变量。非交互式配置这是核心步骤。脚本会在VPS上执行类似以下的命令实际更复杂openclaw onboard --non-interactive \ --api-key YOUR_API_KEY \ --telegram-token YOUR_BOT_TOKEN \ --telegram-user-id YOUR_USER_ID这个命令会跳过所有交互式提问直接使用你提供的参数创建配置文件 (~/.openclaw/openclaw.json)、初始化工作空间并配置Telegram通道。配置系统服务脚本会创建一个systemd服务单元文件例如openclaw-gateway.service将OpenClaw Gateway设置为守护进程并设置为开机自启。然后启动这个服务。验证与完成脚本最后会检查服务状态并输出部署完成的提示信息。整个过程大约需要5-10分钟主要耗时在网络下载和安装步骤。如果一切顺利你会在最后看到“Deployment completed successfully!”之类的消息。4.4 部署完成后的验证脚本跑完后不要急着关掉终端。我们应该做一次快速验证检查服务状态ssh ubuntu203.0.113.10 systemctl status openclaw-gateway你应该看到状态是active (running)。给Bot发消息 立刻打开Telegram找到你创建的Bot用户名是my_awesome_ai_bot那个。向它发送一条消息比如“Hello”。 如果配置正确你应该在几秒内收到Claude风格的问候回复。如果Bot没有反应怎么办别慌我们后面有专门的故障排查章节。最常见的原因是API Key无效、Token错误或者防火墙/安全组挡住了18789端口的出站连接Bot需要连接Telegram服务器。5. 安装后管理、定制与维护指南部署成功只是开始。要让你的AI助手真正好用、稳定还需要进行一些管理和定制工作。5.1 理解OpenClaw的目录结构登录到你的VPS看看~/.openclaw/目录下有什么ssh ubuntu203.0.113.10 ls -la ~/.openclaw/你会看到类似这样的结构.openclaw/ ├── bin/openclaw # 可执行命令行工具 ├── openclaw.json # 主配置文件包含API Key、通道设置等 ├── workspace/ # 智能体的“工作空间”和“记忆” │ ├── IDENTITY.md # 定义智能体的身份、性格、能力 │ ├── SOUL.md # 定义智能体的核心目标、原则、行为准则 │ ├── AGENTS.md # 可能定义的其他子智能体或工具 │ └── ... # 会话历史、缓存等文件 ├── agents/main/sessions/ # 与用户的对话会话记录 └── credentials/ # 安全存储的通道凭证如Telegram Token这是你可以大做文章的地方。OpenClaw的强大之处在于其可定制的“身份”和“灵魂”。5.2 定制你的AI助手身份默认的IDENTITY.md和SOUL.md可能比较通用。你可以修改它们让你的助手更有“个性”和“专长”。例如编辑IDENTITY.mdnano ~/.openclaw/workspace/IDENTITY.md你可以修改其中的内容比如名称和角色从“AI助手”改为“你的专属技术顾问小蓝”。能力和知识领域明确它擅长Python编程、DevOps、技术写作但对娱乐八卦不了解。沟通风格是严谨专业还是幽默风趣SOUL.md则定义了更深层的目标和约束核心目标“帮助用户高效解决技术问题并主动学习用户偏好。”行为准则“永远保持友好和耐心。如果不知道答案就诚实告知并尝试引导用户找到解决方案。绝不生成有害代码或内容。”修改完这些文件后必须重启Gateway服务才能生效openclaw gateway restart # 或者 sudo systemctl restart openclaw-gateway5.3 日常管理命令掌握以下几个命令你就能轻松管理你的AI助手服务查看状态openclaw status。这会显示Gateway服务是否在运行以及基本的配置信息。查看实时日志openclaw logs --follow。这在排查问题时非常有用可以看到Bot接收消息、调用API、返回响应的全过程。按CtrlC退出。停止/启动/重启服务openclaw gateway stop openclaw gateway start openclaw gateway restart对应的systemd命令是sudo systemctl stop/start/restart openclaw-gateway。检查通道配置openclaw channels list。确认Telegram通道是否正确配置和连接。5.4 更新OpenClaw版本AI领域迭代很快OpenClaw本身也会更新。更新CLI工具通常很简单# 在VPS上执行 curl -fsSL https://openclaw.ai/install.sh | bash这会重新运行安装脚本更新~/.openclaw/bin/openclaw二进制文件。更新后记得重启服务openclaw gateway restart注意事项大版本更新有时会伴随配置文件的格式变更。在更新前建议备份你的~/.openclaw/openclaw.json和~/.openclaw/workspace/目录。虽然官方安装脚本通常考虑到了向后兼容但备份总是个好习惯。5.5 安全加固建议部署脚本已经做了一些基础安全设置防火墙但你还可以做得更多禁用SSH密码登录编辑VPS上的/etc/ssh/sshd_config找到PasswordAuthentication选项将其改为no。然后重启SSH服务sudo systemctl restart sshd。确保你的SSH密钥登录已经100%可用再做这一步更改SSH端口将默认的22端口改为一个非标准端口可以减少自动化攻击脚本的扫描。同样在sshd_config中修改Port选项并记得在UFW中开放新端口。定期系统更新定期运行sudo apt update sudo apt upgrade来安装安全补丁。监控API使用量定期登录Anthropic Console查看API使用情况和费用避免意外超支。隔离环境对于更高安全要求的场景可以考虑使用Docker容器来运行OpenClaw实现更好的进程隔离。不过这需要更复杂的配置超出了当前脚本的范围。6. 深度故障排查与常见问题实录即使按照指南操作也难免会遇到问题。下面是我在多次部署和帮助他人部署过程中总结出的最常见问题及其解决方案。6.1 部署脚本执行失败问题现象运行./deploy.sh后脚本很快报错退出或在某个步骤卡住。排查思路SSH连接问题错误信息Permission denied (publickey)。原因脚本使用的SSH密钥对无法认证。解决先用ssh -v ubuntuyour_ip手动连接查看详细的认证过程。确认--user参数是否正确。确认你的本地私钥是否已添加到ssh-agentssh-add -l查看。如果没有用ssh-add ~/.ssh/id_ed25519添加。确认VPS上对应用户的~/.ssh/authorized_keys文件里是否有你的公钥。系统版本不匹配错误信息脚本开头检查系统版本失败。原因VPS不是Ubuntu 24.04。解决重新创建一台Ubuntu 24.04的VPS。虽然理论上22.04也可能行但依赖库版本不同可能引发难以预料的问题。apt-get安装失败错误信息Unable to locate package curl或E: Could not get lock /var/lib/dpkg/lock-frontend。原因系统包列表太旧或其他进程如自动更新正在占用包管理器。解决可以尝试手动登录VPS运行sudo apt update并等待完成然后再重新运行部署脚本。6.2 Bot部署成功但不响应消息这是最常见的问题。部署脚本显示成功但Telegram里发消息给Bot它毫无反应。排查步骤在VPS上执行检查服务状态systemctl status openclaw-gateway如果状态是inactive或failed用sudo journalctl -u openclaw-gateway -n 50查看详细错误日志。常见原因API Key或Token无效。检查日志中是否有认证错误。检查实时日志openclaw logs --follow然后在Telegram里给Bot发一条消息。观察日志输出。如果完全没有新日志说明消息根本没到达你的OpenClaw服务。问题可能出在Telegram Bot配置或网络。如果有日志显示收到消息但调用API失败通常是Anthropic API Key问题。错误信息会很明显如Invalid API Key或Rate limit exceeded。验证Telegram Bot配置openclaw channels list查看Telegram通道的状态是否为connected。如果状态是disconnected可能是Token错误或者Bot没有成功设置WebhookOpenClaw会自动设置。可以尝试重启服务openclaw gateway restart。检查网络连通性 OpenClaw Gateway需要能访问api.anthropic.com和api.telegram.org。curl -v https://api.anthropic.com/v1/messages # 这会返回401错误因为没带API Key但至少证明网络是通的。 curl -v https://api.telegram.org如果连不通可能是VPS供应商的网络策略问题或者你所在地区的网络限制。尝试更换VPS位置或供应商。6.3 如何重新部署或清理旧配置如果你想在同一台VPS上重新部署比如换了API Key或Bot Token直接运行脚本可能会因为配置文件已存在而失败。解决方案使用--clean参数。./deploy.sh \ --host 203.0.113.10 \ --user ubuntu \ --telegram-token NEW_TOKEN \ --telegram-user-id 987654321 \ --api-key NEW_API_KEY \ --clean这个参数会指示脚本在部署前删除~/.openclaw/目录如果存在从而得到一个全新的安装环境。重要警告使用--clean会永久删除之前的所有配置、工作空间和会话历史请确保你已经备份了任何重要的数据。6.4 防火墙或安全组导致连接问题部署脚本配置了UFW开放18789端口但一些云服务商如AWS、GCP、阿里云、腾讯云在VPS外部还有一层安全组或网络ACL规则。现象VPS内部的UFW状态显示18789端口是开放的但外部依然无法连接虽然OpenClaw Gateway是内部服务不直接对外但Bot需要出站连接此问题更多影响SSH。解决登录到云服务商的控制台找到你的VPS实例的安全组设置添加入站规则协议TCP端口范围22 (SSH) 和 18789 (如果需要从外部管理)源0.0.0.0/0 或你的特定IP地址段以增加安全性6.5 性能问题与优化现象Bot响应速度慢。可能原因及优化VPS性能不足4GB内存是底线。如果同时运行其他服务或会话历史很大可能导致内存交换拖慢速度。升级到8GB内存会有显著改善。网络延迟高如果你的VPS在欧美而你在亚洲访问Anthropic API的延迟会很高。考虑选择亚洲区域的VPS或者使用网络优化更好的供应商。Claude模型选择OpenClaw默认使用的Claude模型版本也会影响速度和成本。你可以在~/.openclaw/openclaw.json中查看或修改model配置项如果支持。更强大的模型如claude-3-opus可能更慢但更聪明更轻量的模型如claude-3-haiku则更快更经济。会话历史积累长时间的对话会产生巨大的上下文每次请求都会发送整个历史导致延迟增加和API费用上升。可以定期清理~/.openclaw/agents/main/sessions/目录下的旧会话文件或者在OpenClaw配置中设置上下文长度限制。通过以上这些步骤你应该能够解决绝大多数在部署和使用OpenClaw过程中遇到的问题。记住日志 (openclaw logs --follow) 是你最好的朋友绝大多数错误信息都会在那里找到线索。