1. 项目概述为什么你需要一份OpenClaw指令手册如果你正在本地折腾AI智能体想把大模型的能力真正用起来而不是停留在聊天界面那你大概率已经听说过或者正在尝试OpenClaw。这个被社区戏称为“龙虾”的开源项目本质上是一个AI智能体网关和编排平台。它就像一个智能中枢能把你的本地大模型比如通过Ollama运行的Llama、Qwen、各种工具搜索、代码执行、文件操作以及外部应用飞书、微信连接起来让AI不仅能“思考”还能“动手”执行任务。我最初接触OpenClaw时感觉文档虽然全面但更像一本开发手册。当你想快速实现一个具体功能比如“让AI自动回复飞书消息”或者“定时检查服务器状态并生成报告”时往往需要在一堆配置文件和API说明里翻来覆去。那些高频使用的指令像启动服务、查看日志、管理技能Skill、调试会话并没有一个“即查即用”的清单。这就是我整理这份手册的初衷——它不是官方文档的替代品而是一线使用者视角的“快捷键”合集帮你跳过摸索阶段直接进入高效管理和应用的状态。这份手册面向的是已经完成基础部署正打算深入使用OpenClaw的开发者、运维或技术爱好者。无论你是想搭建一个自动化客服原型还是构建一个个人效率助手熟悉这些核心指令都能让你事半功倍。我们会从服务生命周期管理、核心配置操作、技能与智能体管理、到日常运维调试覆盖你使用OpenClaw全流程中最常碰到的命令和场景。2. 核心指令全解析从启动到管理的全链路操作掌握OpenClaw首先要能自如地控制它的“生命线”——即服务的启动、停止、状态查看和配置加载。这些是日常操作的基础也是最容易出问题的地方。2.1 服务启动与停止多种运行模式下的命令OpenClaw的启动方式取决于你的部署模式。最常见的是通过Docker Compose和直接运行Python应用。Docker Compose部署推荐的生产及稳定环境用法如果你是通过docker-compose.yml文件部署的那么管理服务就非常统一。# 启动所有服务核心网关、数据库、Redis等 docker-compose up -d # 停止所有服务但保留容器和数据 docker-compose stop # 停止并移除所有容器、网络数据卷通常会被保留具体看配置 docker-compose down # 重启特定服务例如只重启核心的openclaw服务 docker-compose restart openclaw # 在后台启动后实时跟踪核心服务的日志这是排查问题的首要动作 docker-compose logs -f openclaw注意使用docker-compose down前请确认你的数据卷volume配置是否正确避免误删数据库。通常docker-compose.yml中会定义命名卷来持久化数据。直接运行Python应用常见于开发调试在开发环境你可能直接从源码运行便于调试和修改代码。# 进入项目目录通常使用uvicorn启动ASGI应用 # 假设你的主应用文件在app/main.py应用实例名为app uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload # --reload 参数在开发时非常有用代码修改后会自动重启服务。 # 生产环境务必移除--reload并使用进程管理器如systemd, supervisor或容器化部署。系统服务管理Systemd对于Ubuntu等Linux生产服务器配置为系统服务是更规范的做法。创建一个/etc/systemd/system/openclaw.service文件[Unit] DescriptionOpenClaw AI Agent Gateway Afternetwork.target [Service] Typesimple Useryour_username WorkingDirectory/path/to/openclaw EnvironmentPATH/path/to/venv/bin ExecStart/path/to/venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000 Restartalways RestartSec5 [Install] WantedBymulti-user.target之后使用系统指令管理sudo systemctl daemon-reload sudo systemctl start openclaw sudo systemctl enable openclaw # 设置开机自启 sudo systemctl status openclaw # 查看状态和最新日志 sudo journalctl -u openclaw -f # 持续跟踪日志2.2 配置检查与热重载让变更生效的关键OpenClaw的行为严重依赖于配置文件如.envconfig.yaml。修改配置后如何让其生效是关键。环境变量检查OpenClaw大量使用环境变量。启动前或运行时可以快速检查当前进程的环境变量是否如预期。# 如果使用Docker进入容器内部查看 docker exec -it openclaw_container_name /bin/sh env | grep -E (OPENCLAW|OLLAMA|MODEL) # 过滤查看相关环境变量 # 或者在宿主机上如果配置在docker-compose.yml或.env文件中检查文件内容 cat .env | grep -v ^# # 查看所有非注释的环境变量配置热重载并非所有配置都支持热重载。像修改大模型API地址、密钥等核心连接信息通常需要重启服务。但一些内部参数可能支持。最稳妥的方式是修改配置文件.env或config.yaml。使用docker-compose restart openclaw或systemctl restart openclaw重启服务。务必检查重启是否成功docker-compose logs openclaw --tail50或systemctl status openclaw观察启动日志有无报错。一个常见的错误是修改了.env文件但Docker Compose没有重新加载它。确保在运行docker-compose up -d前已经保存了.env文件并且Compose文件通过env_file指令正确引用了它。有时直接执行docker-compose down docker-compose up -d是更彻底的方式。2.3 状态监控与健康检查确保网关心跳正常服务跑起来不代表没问题你需要知道它是否健康是否准备好处理请求。API健康检查端点OpenClaw通常会提供健康检查端点这是最直接的诊断方式。# 使用curl检查健康状态假设服务运行在本地8000端口 curl http://localhost:8000/health # 或者更详细的就绪检查 curl http://localhost:8000/ready预期应返回一个包含{status: ok}或类似信息的JSON响应。如果返回错误或连接拒绝说明服务未正常启动或崩溃。查看运行进程和资源占用# 查看容器状态 docker-compose ps # 查看特定容器的资源使用情况CPU、内存 docker stats openclaw_container_name # 如果是直接进程运行使用ps和top ps aux | grep uvicorn top -p $(pgrep -f “uvicorn.*openclaw”)内存泄漏是长期运行AI服务的常见问题定期监控docker stats中的内存增长趋势很有必要。网络连接检查确保OpenClaw能访问到它所依赖的服务比如Ollama大模型、Redis缓存、数据库。# 进入OpenClaw容器内部测试到Ollama的连接 docker exec -it openclaw_container_name /bin/sh curl http://host.docker.internal:11434/api/tags # 测试连接Ollama API # 如果Ollama也在Docker中可能需要使用服务名如 curl http://ollama:11434/...网络不通是导致openclaw llamap svr operator(): got exception: { error: { code: 400, ...这类错误的常见原因之一它通常表示网关与底层模型服务通信失败。3. 技能与智能体管理赋能AI的核心操作技能Skill和智能体Agent是OpenClaw的灵魂。技能定义了AI能“做什么”如调用一个API、执行一段代码智能体则定义了AI“是谁”以及“如何思考和工作”其系统提示词、可用技能、推理模型等。管理好它们才能真正定制化你的AI助手。3.1 技能的生命周期安装、列表、更新与卸载技能可以来自官方仓库、社区分享或是你自己开发的。安装技能安装技能通常有两种方式通过OpenClaw的管理界面Web UI或使用CLI工具如果项目提供了的话。更底层的方式是直接操作技能目录。# 假设技能被安装在 ./skills 目录下 # 1. 从Git仓库克隆社区技能 cd ./skills git clone https://github.com/someuser/awesome-openclaw-skill.git # 2. 安装技能依赖如果技能有独立的requirements.txt cd awesome-openclaw-skill pip install -r requirements.txt # 之后通常需要重启OpenClaw服务或通过管理界面/API触发技能扫描和加载。实操心得在安装社区技能前务必检查其README.md和代码特别是它声明的权限和要执行的操作避免引入安全风险。最好先在测试环境验证。列出已加载技能通过OpenClaw的API可以查询当前已加载的技能列表。curl -X GET http://localhost:8000/api/v1/skills \ -H Authorization: Bearer YOUR_API_KEY \ -H Content-Type: application/json这将返回一个JSON数组包含每个技能的ID、名称、描述、版本和可用操作actions等信息。Web管理界面通常提供更直观的视图。更新技能技能的更新没有一键命令通常需要手动操作。cd ./skills/awesome-openclaw-skill git pull origin main # 如果依赖有变重新安装 pip install -r requirements.txt --upgrade # 重启OpenClaw服务或通过API重新加载技能建议为每个技能建立独立的虚拟环境或确保依赖兼容性避免污染主环境或引发冲突。卸载技能卸载同样需要手动操作删除技能目录并确保重启OpenClaw服务。rm -rf ./skills/awesome-openclaw-skill # 然后重启OpenClaw服务有些技能可能会在数据库注册信息纯删除文件可能留有残存数据。高级用法是通过管理API进行注销但这取决于OpenClaw的具体实现。3.2 智能体的配置与调试打造专属AI角色智能体是你与AI交互的具体对象。你可以创建客服机器人、编码助手、数据分析师等不同角色。通过API创建/更新智能体这是最程序化的管理方式。以下是一个示例请求创建一个基础的客服智能体curl -X POST http://localhost:8000/api/v1/agents \ -H Authorization: Bearer YOUR_API_KEY \ -H Content-Type: application/json \ -d { name: 电商客服助手, description: 负责处理常规商品咨询和售后问题, system_prompt: 你是一个专业、友善的电商客服助手。请用简洁清晰的语言回答用户关于产品信息、订单状态、退换货政策的问题。如果遇到无法解决的问题应引导用户联系人工客服。不要编造产品参数。, model: qwen:7b, # 指定使用的底层大模型需与Ollama中模型名一致 skills: [web_search, query_order_status], # 为该智能体启用的技能列表 config: { temperature: 0.2, # 较低的温度使回答更稳定、确定性更高 max_tokens: 1024 } }创建成功后API会返回智能体的唯一ID用于后续的会话发起。调试智能体行为系统提示词与参数调优智能体的表现很大程度上由system_prompt和模型参数决定。如果智能体表现不符合预期按以下步骤调试检查系统提示词确保指令清晰、无歧义。可以加入格式要求如“用分点列表回答”、“首先确认用户问题”。调整模型参数temperature(0~1)控制随机性。客服场景建议较低0.1~0.3创意写作可调高0.7~0.9。top_p(0~1)核采样影响词汇选择的集中程度。通常与temperature配合调整。max_tokens限制单次响应长度防止生成过长内容。会话历史测试通过API发起一个测试会话观察完整交互。curl -X POST http://localhost:8000/api/v1/agents/YOUR_AGENT_ID/sessions \ -H Authorization: Bearer YOUR_API_KEY \ -H Content-Type: application/json \ -d { message: 我昨天买的手机什么时候能发货, stream: false # 设为true可以流式接收响应便于调试长文本 }查看日志在OpenClaw服务日志中过滤该智能体的交互日志能看到模型接收的完整提示词和返回的原始结果这是深度调试的黄金信息。3.3 多模型配置与管理灵活切换AI大脑OpenClaw可以同时连接多个大模型服务并为不同智能体分配合适的模型。配置模型端点模型连接信息通常在环境变量或配置文件中设置。例如在.env文件中# 配置主模型例如本地Ollama OLLAMA_BASE_URLhttp://host.docker.internal:11434 DEFAULT_MODELqwen:7b # 配置备用模型或不同能力的模型例如通义千问API OPENCLAW_MODEL_PROVIDERSollama, dashscope DASHSCOPE_API_KEYyour_api_key_here DASHSCOPE_MODELqwen-max在智能体配置中model字段就可以指定为qwen:7b使用Ollama或dashscope/qwen-max使用阿里云服务。验证模型连接在启动OpenClaw前或遇到模型调用失败时手动验证模型服务至关重要。# 验证Ollama服务及模型列表 curl http://localhost:11434/api/tags # 应返回已拉取模型的列表如 [{name:qwen:7b, ...}] # 验证外部API服务如Dashscope curl -X POST https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation \ -H Authorization: Bearer YOUR_DASHSCOPE_API_KEY \ -H Content-Type: application/json \ -d {model:qwen-max, input:{messages:[{role:user,content:Hello}]}} # 注意实际API端点可能不同请查阅对应平台文档。注意事项当出现openclaw llamap svr operator(): got exception: { error: { code: 400, message: ...错误时第一步就是检查这里模型名称是否拼写正确模型服务URL是否可达API密钥是否有效且未过期网络策略特别是Docker网络是否允许连接动态模型切换高级用法中你可以通过API在运行时为智能体切换模型或者让一个技能根据任务复杂度调用不同的模型。这需要在智能体逻辑或技能代码中实现模型路由策略。4. 集成与连接配置打通外部世界的桥梁OpenClaw的强大在于连接能力。将它与飞书、微信、企业微信等平台集成AI才能触达真实用户。4.1 飞书/钉钉/微信机器人接入以飞书为例接入流程涉及双方配置。1. 在飞书开放平台创建应用创建“企业自建应用”获取App ID和App Secret。配置“事件订阅”设置请求网址Request URL为你的OpenClaw服务器公网地址 回调路径例如https://your-domain.com/feishu/event。飞书会向该地址发送一个包含challenge参数的验证请求你的服务必须能正确响应这个挑战值。配置“权限”为应用添加“获取用户发给机器人的单聊消息”、“以应用身份发消息”等必要权限。发布应用并添加到你的飞书群组或开启与用户的单聊。2. 在OpenClaw中配置飞书技能通常需要安装或配置飞书技能插件。这可能需要你填写飞书应用的凭证并设置消息处理逻辑。技能会提供一个Webhook端点如/feishu/event你需要将其配置到飞书后台。技能内部会处理飞书的事件和消息将其转换为OpenClaw智能体能理解的格式并将智能体的回复转回飞书。关键配置与验证命令# 检查OpenClaw服务是否在监听集成端口如8000 netstat -tlnp | grep :8000 # 使用ngrok或类似工具进行本地开发调试将本地端口暴露到公网 ngrok http 8000 # 将ngrok生成的https地址配置到飞书请求网址中。 # 在OpenClaw日志中实时查看飞书事件接收情况 docker-compose logs -f openclaw | grep -i feishu踩坑实录飞书等平台对回调URL的响应超时时间有严格要求通常5秒内。如果你的智能体处理消息较慢可能导致飞书重试或报错。解决方案在收到事件后立即返回成功响应HTTP 200然后将消息放入队列异步处理再通过“回复消息”API发送结果。这需要在技能开发层面实现。4.2 Webhook与API调用配置除了接收消息OpenClaw也经常主动通过Webhook或API调用外部服务。配置出站Webhook在技能配置或智能体系统提示词中可以指示AI在特定条件下调用外部Webhook。例如当识别到用户想创建工单时调用内部工单系统的API。# 在技能配置文件中可能这样定义一个动作action actions: create_ticket: description: “创建客服工单” endpoint: “https://internal-ticket-system.com/api/v1/tickets” method: “POST” headers: Authorization: “Bearer {{INTERNAL_API_KEY}}” payload_template: | { “title”: “{{user_query|truncate(50)}}”, “user_id”: “{{user_id}}” }管理API密钥与环境变量所有第三方服务的API密钥、数据库连接字符串等敏感信息绝对不要硬编码在代码或配置文件中。必须使用环境变量管理。# 在 .env 文件中定义 FEISHU_APP_IDcli_xxxxxx FEISHU_APP_SECRETxxxxxxxx DATABASE_URLpostgresql://user:passdb:5432/openclaw INTERNAL_API_KEYsk_live_xxxxx # 在Docker Compose或系统服务配置中引用 # docker-compose.yml 示例 services: openclaw: environment: - FEISHU_APP_ID${FEISHU_APP_ID} - FEISHU_APP_SECRET${FEISHU_APP_SECRET}然后在代码中通过os.getenv(‘FEISHU_APP_ID’)读取。这保证了安全性和配置的灵活性。5. 运维、调试与故障排查实战即使一切配置妥当在生产中运行OpenClaw也难免遇到问题。高效的运维和调试能力至关重要。5.1 日志分析与监控定位问题的眼睛日志是排查问题的第一手资料。OpenClaw的日志通常包含不同级别INFO, WARNING, ERROR, DEBUG的信息。集中查看与过滤日志# Docker环境查看最近100行日志 docker-compose logs --tail100 openclaw # 持续跟踪日志并过滤ERROR级别以上的信息 docker-compose logs -f openclaw | grep -E “(ERROR|WARNING|Exception)” # 查看特定时间段的日志 docker-compose logs --since“2024-01-01T10:00:00” --until“2024-01-01T12:00:00” openclaw # 如果日志量巨大可以输出到文件分析 docker-compose logs openclaw openclaw_full.log解读常见错误日志连接错误Connection refused,Timeout,Name or service not known。指向网络问题、依赖服务未启动或配置的主机名/端口错误。认证错误401 Unauthorized,Invalid API Key。检查相关服务的API密钥或令牌是否过期、拼写错误、权限不足。模型调用错误openclaw llamap svr operator(): got exception: { “error”: { “code”: 400, …。这是最典型的模型服务通信失败。需要检查1) Ollama等服务是否运行2) 模型名称在Ollama中是否存在3) 网络是否互通特别是跨Docker容器时4) 请求负载是否符合模型API要求。技能执行错误SkillExecutionError,ModuleNotFoundError。通常是技能依赖未安装或技能代码中存在语法、运行时错误。配置结构化日志与外部收集对于生产环境建议配置JSON格式的结构化日志并集成到ELKElasticsearch, Logstash, Kibana或LokiGrafana等日志平台便于搜索、分析和设置告警。5.2 会话管理与数据维护OpenClaw会存储会话历史、智能体配置等数据。了解如何管理这些数据很重要。清理旧会话数据长时间运行后会话表可能增长很快。可以设置自动清理策略或手动执行清理。-- 假设使用PostgreSQL连接数据库后执行 -- 删除30天前的会话记录谨慎操作先备份 DELETE FROM sessions WHERE created_at NOW() - INTERVAL ‘30 days’;更安全的方式是在OpenClaw配置中设置会话的TTL生存时间或编写定时任务脚本。备份与恢复数据库定期备份是必须的。如果使用Docker卷存储数据库数据# 备份PostgreSQL数据 docker exec -t your_postgres_container pg_dumpall -c -U openclaw_user dump_$(date %Y-%m-%d).sql # 恢复数据库 cat your_dump.sql | docker exec -i your_postgres_container psql -U openclaw_user确保备份文件的安全存储。处理“忘记上下文”问题有用户反馈“openclaw第二天就不知道昨天会话的内容了”。这通常由两个原因导致会话过期或丢失检查会话存储机制。如果会话是基于内存的服务重启后就会丢失。确保配置了持久化会话存储如数据库。上下文窗口限制大模型本身有上下文长度限制如4K、8K、32K tokens。如果会话历史很长在发起新请求时系统可能只截取最近的一部分历史作为上下文发送给模型。这不是OpenClaw的bug而是模型本身的限制。解决方案在智能体配置中实现会话历史摘要功能将长历史压缩成摘要。主动管理会话在适当的时候开启新会话。选择上下文窗口更大的模型。5.3 性能调优与安全加固随着使用深入你需要关注性能和安全性。性能调优点模型推理优化使用量化模型如q4_K_M, q8_0能显著降低内存占用和提升推理速度。在Ollama中拉取模型时指定ollama pull qwen:7b-q4_K_M。缓存策略为频繁且结果固定的查询如产品知识库问答引入缓存Redis减少对模型的重复调用。异步处理将耗时的技能操作如网络请求、复杂计算设计为异步避免阻塞主响应线程。资源限制在Docker Compose中为容器设置CPU和内存限制防止单个服务耗尽主机资源。services: openclaw: deploy: resources: limits: cpus: ‘2.0’ memory: 4G安全加固 checklist[ ]API密钥管理全部使用环境变量绝不写入代码或配置文件到版本库。[ ]网络隔离将OpenClaw、数据库、Redis等服务放在独立的Docker自定义网络中仅暴露必要端口如OpenClaw的API端口。[ ]API访问控制为OpenClaw的管理API和关键操作API配置强认证如JWT Token并限制访问IP。[ ]输入验证与清理在自定义技能中对所有用户输入和外部API返回数据进行严格的验证和清理防止注入攻击。[ ]定期更新关注OpenClaw及其依赖尤其是技能库的安全更新及时升级。[ ]日志脱敏确保日志中不会打印出API密钥、用户敏感信息等。这份手册覆盖了从入门到进阶的核心操作指令和场景。真正的熟练来自于实践和解决问题。当你遇到报错时别慌按照“查日志 - 验配置 - 测连接 - 搜社区”的步骤大部分问题都能找到线索。OpenClaw生态在快速发展多关注其GitHub仓库的Issue和Discussions常常能找到意想不到的解决方案和灵感。