ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

OpenClaw 命令大全:从安装到排错,一篇搞定 Agent 运维

OpenClaw 命令大全:从安装到排错,一篇搞定 Agent 运维 你有没有过这种经历电脑上同时跑着几个 AI Agent本地一个、服务器一个飞书、Teams、微信上还得各挂一个机器人结果每次想切换环境都要去翻文档命令忘得七七八八好不容易找到了又发现版本对不上。OpenClaw 这个工具我最近的感受就是节点越多越需要一份能随手翻的命令清单。我把它从安装、配置、接 channel 到日常运维、排错完整地捋了一遍整理了这篇命令大全。适合刚接触 OpenClaw、正准备部署第一个 agent 的入门用户也适合已经跑了好几个 agent、需要一个速查手册的老手。下面所有的命令都以当前常见版本的写法为基准不同小版本可能略有差异但整体思路和参数结构是通用的。1. 环境准备先把 OpenClaw 装稳后面才少踩坑1.1 Windows 下安装的三种方式OpenClaw 的安装我不太喜欢直接给一种方案因为不同人的机器环境差太多了。我自己最早是在 Windows 上装的试过三种路子都有成功的可能性。第一种是 npm 全局安装这是跨平台最通用的方式。先确保本机有 Node.js 环境版本建议不低于 18然后执行npm install -g openclaw安装完成后Windows 下如果终端提示命令找不到通常是 npm 全局目录没进 PATH。用npm prefix -g查看全局目录把它手动加到系统环境变量里即可。第二种是 winget 安装。如果你用的 Windows 10/11 版本较新且 OpenClaw 已发布到 winget 源直接一条命令就能搞定winget install openclaw这种方式的优势是自动处理 PATH、快捷方式等细节适合不太想折腾环境变量的朋友。不过要注意winget 源更新有时候比 npm 慢半拍新功能可能要等一等。第三种是官方脚本安装。OpenClaw 官方文档里通常会给一个 PowerShell 或 bash 安装脚本Windows 下我用的是 PowerShell 管理员模式执行irm https://openclaw.example.com/install.ps1 | iex这个方式的优点是一条命令完成安装和初始化缺点是对网络和脚本源信任度有要求。我的建议是懒人用 winget追求最新功能用 npm服务器或自动化环境用脚本。提示安装完成后第一步先跑claw version确认命令能正常输出。如果这里就没过后面对话、接 channel 全都无从谈起排查顺序永远从最底层开始。1.2 Linux 服务端部署跑 Agent 的正确姿势如果只是本机玩一玩Windows 就够用了。但要把 OpenClaw 跑成常驻服务我强烈建议用 Linux 服务器。原因很实在服务器上跑 agent不依赖你的电脑开机状态也不会因为电脑休眠把正在执行的长任务打断。Linux 下最简洁的安装方式还是 npmsudo npm install -g openclaw装完后用claw doctor做环境自检它会检查 Node 版本、配置目录权限、必要的运行时依赖等。我在服务器上装完通常会接着做两件事创建一个专用系统用户以及配置 systemd 服务这样即使 ssh 断开agent 也能持续运行。如果你已经习惯容器化部署Docker 更省心。我用的是这个方式docker run -d \ --name openclaw \ -v /opt/openclaw/data:/root/.openclaw \ -e OPENCLAW_API_KEYyour_key_here \ ghcr.io/openclaw/openclaw:latest这里有个细节要提醒数据目录一定要挂载出来否则容器一删你的 agent 配置、会话历史、Memory 数据全部归零。我第一次玩的时候没挂卷升级容器把配置全弄丢了重新配了一晚上这是实打实踩出来的坑。1.3 初始化和自检命令安装完成后首先要做的是初始化。OpenClaw 把配置和数据都放在~/.openclaw目录下第一次运行会自动生成默认配置也可以手动执行claw init初始化的时候会问你一些基础问题比如默认模型、默认 channel、agent 目录等。如果你不想交互式回答可以全部用参数指定claw init --agent-dir ./agents --config ~/.openclaw/config.yaml初始化之后我习惯用这几条命令确认环境状态claw version claw doctor claw statusclaw doctor是排障第一利器。它和很多工具的 doctor 一样会对每一项做检查然后输出 OK 或者 WARN。我曾经遇到过一次代理配置导致的外部 API 请求失败自己排查了半天最后claw doctor直接提示网络出口异常省了很多时间。做完这些你的 OpenClaw 才算真正能用了。2. 核心配置命令把模型和 Agent 调成你想要的样子2.1 配置大模型怎么接上千问OpenClaw 本身不绑定某个固定大模型模型选择是配置项的一部分。我平时用得最多的是通义千问因为国内直连稳定价格也友好。配置千问的做法并不复杂它走的是 OpenAI 兼容接口所以命令如下claw config set model.provider openai claw config set model.base_url https://dashscope.aliyuncs.com/compatible-mode/v1 claw config set model.api_key sk-xxxxxxxx claw config set model.model_name qwen-max把model.provider设置成openai不是真的让你接 OpenAI而是告诉 OpenClaw这个端点的请求格式遵循 OpenAI 的规范。这样设计是为了兼容市面上绝大多数模型服务因为 OpenAI 兼容格式基本成了行业标准千问、DeepSeek、以及很多本地部署的模型都有兼容端点。如果换了另一个模型服务只需要改base_url、api_key、model_name三项就能切换其他逻辑都不用动。这是我在多模型之间来回切换的真实体会把模型接入做成配置项比在代码里硬编码要省太多事。确认配置是否生效可以执行claw config list输出里会显示所有当前配置。想改回默认值用claw config unset model.model_name即可。2.2 Agent 的创建、管理与删除配置好模型之后接下来就是创建 agent。一个 agent 就是一套独立的角色设定和行为配置你可以把其中一个配成英语翻译助手另一个配成代码审查员它们彼此隔离、互不影响。创建 agent 的命令claw agent create dev-assistant \ --system-prompt 你是一名资深软件架构师回答问题要给出具体代码示例。 \ --model qwen-max \ --temperature 0.3这里dev-assistant是 agent 的名称--system-prompt指定角色指令--temperature控制创造度。写代码类任务我习惯设成 0.3 或更低保证输出稳写文案类的可以拉到 0.7 甚至 0.9让表达更发散。查看已有 agentclaw agent list claw agent inspect dev-assistant临时切换当前会话使用的 agentclaw agent use dev-assistant删除不再需要的 agent 时请想清楚再执行claw agent delete dev-assistant --yes这个操作会连同该 agent 的会话历史、记忆文件一起删除且不可恢复。我在清理测试 agent 时干过一次误删幸好当时只是一天前创建的测试号损失不大。从那以后删除之前我都会先claw agent inspect看一眼。2.3 会话与上下文管理会话管理是日常使用中绕不开的部分。OpenClaw 的会话默认会持久化即使终端关了下次claw session resume还能接上之前的话题。常用命令claw session new claw session list claw session switch session-id claw session archive session-id claw session delete session-id每个会话都会积累上下文模型对上下文长度有上限。如果你的对话很长出现了“越聊越笨”的情况原因不是模型变笨了而是上下文窗口被早期对话塞满了早期的关键信息被挤出注意力范围。这时候有两种处理方式。一是开新会话轻装上阵二是用系统命令清理会话历史但保留 agent 配置claw session clear --keep-config我在跑长时间任务时通常会在任务节点之间主动开新会话再把关键结论用摘要形式写进新会话的第一条消息。这样既控制了上下文长度又保住了对当前任务最重要的信息。上下文管理做得好agent 的工作质量会有明显提升。3. Channel 接入命令把 Agent 接到聊天软件里3.1 接入 Microsoft TeamsOpenClaw 的核心能力之一是当机器人接入 Teams 后你可以直接在 Teams 里给 agent 发消息它也能主动往频道里发通知。热词里很多人搜“OpenClaw 如何接入 Microsoft Teams”这里我把完整链路讲清楚。要在 Teams 里跑机器人通常需要去 Azure 门户创建一个 Bot 资源拿到三个关键参数Bot ID也叫 MicrosoftAppId、密码MicrosoftAppPassword、租户 IDTenantId。然后执行claw channel add teams \ --app-id MicrosoftAppId \ --app-password MicrosoftAppPassword \ --tenant-id TenantId添加成功后OpenClaw 会返回一个回调地址你需要把这个地址配置到 Bot 的消息终结点里。这个回调地址一般长这样https://你的服务器地址/api/teams/webhook。如果服务器没有公网域名内网测试可以用内网穿透工具把端口暴露到公网然后把映射后的地址填进去。配置完成后用下面的命令验证 channel 是否正常claw channel test teams我实际接入 Teams 时遇到过一个问题Bot 能显示在线但发消息没反应。后来发现是消息终点站没填对Azure 那边要求回调地址必须能公网访问且响应要足够快否则请求会超时。排查时你可以先看日志claw logs follow --channel teams日志里能看到请求到达记录和错误码比瞎猜靠谱得多。3.2 接入飞书与输出被截断的处理飞书Lark接入的流程和 Teams 类似都有一个小技巧在飞书开放平台创建应用时权限声明要一次配齐否则后面每次调用 API 都报没有权限来回折腾很浪费时间。接入飞书的命令claw channel add lark \ --app-id AppID \ --app-secret AppSecret和 Teams 一样接入后需要配置事件订阅回调地址。飞书要求回调地址验证签名OpenClaw 已经处理了这部分逻辑你只需要把地址填进飞书后台URL 验证一般会自动通过。飞书接入最常被抱怨的问题是“输出容易被截断”。原因很直接飞书机器人单条消息有长度限制超长内容会被截掉看起来像 agent 话没说完。解决办法是开启消息拆分claw config set channel.lark.split_messages true claw config set channel.lark.max_message_length 2800max_message_length建议设置在 2800 到 3000 之间这是飞书单条消息安全范围的常见值。开启后超长回复会被自动切成多条消息依次发送至少不会丢内容。如果你遇到过消息拆得太碎、阅读体验差的问题还有一个变通方案让 agent 把长内容写进 Markdown 文件再把文件链接或摘要发到群里。OpenClaw 的 File 接口支持这个用法虽然配置多一点但对报告类内容体验好很多。3.3 Channel 的查看、切换与多端协同如果同时接了 Teams、飞书、Discord 等多个渠道就需要频繁切换 channel。常用命令claw channel list claw channel select lark claw channel remove teams我见过有人问“OpenClaw agent 怎么选择 channel”其实这个逻辑有两层。第一层是运行时的默认 channel用claw channel select切换第二层是单条消息级别指定目标 channelclaw run 汇报一下今天的项目进度 --channel lark --to group:dev-team多端协同还有一个容易忽略的点同一个 agent 可以同时挂多个 channel但不同 channel 可能会收到相同的事件导致一次提问被多个入口重复触发。我处理这个问题的方式是配置消息路由白名单claw config set route.reply_to_channel true claw config set route.ignore_bot_messages trueignore_bot_messages一定要开否则其他机器人发的消息也会触发你的 agent群里会热闹得像菜市场。这些配置看起来不起眼但在真实生产环境中的作用能省下大量维护精力。4. 日常运维命令大全跑起来之后每天都要用的指令4.1 对话、任务提交与超时控制日常使用最频繁的命令是直接对话。终端交互模式里输入claw进入 REPL交互式命令行直接打字对话输入/exit退出。这种方式适合短对话一边调试一边看输出。要执行一次性任务用claw runclaw run 分析一下这份日志找出最频繁的异常类型 --agent ops-assistantclaw run适合单次请求不会像交互模式一样保持长连接。在脚本或 CI 里调用时我习惯加--output jsonclaw run 统计本月数据库慢查询次数 --output json这样输出的结果是结构化 JSON后续用 jq 或者 Python 解析都非常方便不用去抠纯文本里的结果。长任务场景下必须要控制超时时间。默认超时可能只有几分钟跑一个复杂的多步任务会直接失败claw run 完成一份竞品分析报告 --timeout 1800--timeout单位是秒1800 就是 30 分钟。这个参数我自己的经验是宁大勿小因为 agent 执行过程中的工具调用每一轮都有耗时超时导致半路中断前面的工作全部浪费除了让人血压升高没有任何收益。4.2 日志、进程与诊断出问题时别慌日志是排查问题的第一现场OpenClaw 提供了比较完整的日志体系。claw logs follow claw logs --level debug claw logs --since 1h--level debug输出最详细包括 agent 内部的每次工具调用、每次模型请求耗时排障时非常有价值。平时不用开 debug因为信息量太大日志文件增长很快全量 slash 到磁盘会很占空间。如果 agent 出现行为异常我处理的第一步永远是看最近日志claw logs --since 30m | grep -i error不过要留个心眼grep 出来的错误有时候只是无关紧要的警告。要区分级别比如带ERROR的通常是真问题WARN大多是提示性信息影响不大。做深度诊断的时候claw doctor --full比默认模式检查项更多会覆盖网络连通性、模型服务端点的可用性、channel 回调地址可达性等。遇到“agent 就是不动”的情况先跑一次完整 doctor再决定下一步。4.3 更新、备份与迁移升级 OpenClaw 的命令在不同安装方式下略有不同。npm 安装的用户最常用npm update -g openclaw claw update --check升级之前务必先备份配置和数据目录。因为新版本可能有配置格式变更备份可以让你随时回滚。我的备份命令cp -r ~/.openclaw ~/.openclaw.bak.$(date %Y%m%d)除了整个目录备份OpenClaw 也支持按 agent 导出配置claw agent export dev-assistant --file dev-assistant.json claw agent import --file dev-assistant.json这种导出导入的模式在迁移服务器时特别省心。我把一台机器上的 agent 导出导入到另一台整个过程没超过一分钟包括 system prompt、模型参数、会话配置都完整带过去了。注意备份或者迁移之后记得看一眼config.yaml里有没有写死的老路径。如果之前的配置用的是绝对路径比如/home/olduser/openclaw/xxx换机器后大概率会启动失败。看到错误先别急着重装多半是路径问题。5. 高频报错与排查实录这些坑我都替你踩过了5.1 agent failed before reply: session file locked 的完整解决过程先说说这个论坛里出现率极高的报错agent failed before reply: session file locked (timeout 60000ms)。第一次遇见它的时候我的第一反应是代码出 bug 了后面排了很久才发现原因很朴素多个进程试图同时操作同一个会话文件文件被锁住了。我在本地同时开了两个终端窗口都用同一个 agent 和同一个 session 去发消息第二个窗口很快报出 session file locked。OpenClaw 为了防并发写同一个会话导致数据错乱会给会话文件加锁默认等待 60 秒超时就报错。解决思路按顺序来。先看有没有残留进程仍占用会话ps aux | grep openclaw确认没有其他进程后再查看会话目录下的锁文件ls -la ~/.openclaw/sessions/如果有.lock后缀的文件且没有进程占用手动删除即可rm -f ~/.openclaw/sessions/*.lock更常见的场景是你在一个终端里已经进入了交互模式又在另一个终端执行了同 agent 的claw run这同样会触发会话锁。解决办法是在执行claw run时指定新会话claw run ... --session new或者干脆把这条命令放进自己的知识库牢牢记在心同一时刻同一会话只允许一个进程操作。这个原则在 OpenClaw 里是铁律违反就会锁文件。5.2 飞书输出被截断的排查清单前面讲了飞书截断的配置解法这里展开讲一下排查过程。截断可能发生在三个层面OpenClaw 输出侧、飞书消息服务侧、飞书客户端渲染侧。OpenClaw 输出侧主要是消息长度超过了飞书限制解决手段是split_messages和max_message_length前文已配置过。如果配置了还是截断检查一条命令的输出结果claw channel inspect lark看它显示的连接信息是否正常必要的时候重新连接claw channel reconnect lark飞书服务侧的截断通常出现在富文本场景。如果用的是 Markdown 消息某些超长表格或代码块在飞书里会折叠或被截断这是飞书平台的限制不是 OpenClaw 的问题。处理方式是让内容更精简或者改用文件消息发送。我给自己定的规矩是单条消息控制在 2000 字以内复杂内容先落成文件再发链接。宁可多操作一步也绝不让用户在群里看到半截话。用户体验这东西一旦坏了就很难补回来。5.3 Channel 掉线与消息不回的基础排错思路channel 的问题尤其是 Teams 和飞书这类需要回调地址的场景掉线多半是先检查地址通不通。先确认本地服务端口在监听claw status --verbose再确认外部能访问到回调地址。可以不借助在线工具用 curl 直接带上 Host 头探测一下curl -I https://你的回调地址/api/teams/webhook如果返回 2xx说明通道是通的如果超时或 4xx问题大概率在网络穿透、域名解析、防火墙这三者之间。还有一类很隐蔽的问题channel 配置了旧的 bot 凭据而 Azure 或飞书后台已经重置过密钥。重新配置一次 channel 即可命令是claw channel remove后重新claw channel add。我后来给每个 channel 配置都建立了文档避免“凭据失效”成为薛定谔的 bug。5.4 常见问题速查表为了方便直接对照解决我把自己遇到过的典型问题整理成了下面这个表问题现象可能原因处理命令 / 操作命令找不到Node 全局目录不在 PATH查看npm prefix -g手动加入 PATH对话报 session file locked多进程操作同一会话ps aux | grep openclaw删除会话目录下.lock文件飞书消息被截断单条消息超长claw config set channel.lark.split_messages trueTeams 机器人不回消息回调地址未配置或不可达claw status --verbose curl 探测回调地址模型响应缓慢上下文太长或模型负载高开新会话claw session new升级后启动异常配置路径写死或格式不兼容用备份目录回滚cp -r ~/.openclaw.bak.xxx ~/.openclaw多 channel 重复回复未忽略机器人消息claw config set route.ignore_bot_messages true日志量大爆磁盘debug 级别日志一直开着claw logs --level info重设定期清理日志文件这张表我打印出来贴在了工位挡板上。命令这东西用多了自然熟但关键时刻能快速找到答案比“我记得好像有个命令”要靠谱得多。建议你也收藏一份再把自己遇到的个性化问题补充进去。我个人在实际操作中的体会是OpenClaw 的命令体系并不复杂核心就围绕三条线agent、channel、session。任何命令先想清楚它操作的是这三条线里的哪一条参数就很好猜了。另外我建议在.bashrc或 PowerShell profile 里给高频命令加个别名比如把claw run缩写成cr把claw logs follow缩写成clf每天能省不少打字时间。工具越顺手你才越愿意用它如果你也刚把 OpenClaw 部署起来这份命令大全可以先保存在本地遇到问题再翻出来对照。
返回列表