
1. 项目概述这不是一个“装软件”的教程而是一套面向真实工作流的智能体基础设施搭建方案OpenClaw 这个名字最近在技术圈里出现的频率越来越高但很多人点开 GitHub 仓库第一眼看到的不是文档而是满屏的 Python 脚本、Dockerfile 和 YAML 配置。它不像 Ollama 那样输入ollama run qwen3就能跑起来也不像 Dify 那样点几下鼠标就能搭个聊天界面——OpenClaw 的定位非常明确它是一个可编程的、面向任务链路的 AI 智能体运行时Agent Runtime核心价值在于把大模型能力封装成可调度、可编排、可审计的“技能单元”Skill再通过统一的执行引擎串联成完整业务流程。你把它理解成“AI 版本的 Jenkins Airflow Zapier 三合一”就离真相不远了。而 Mac mini特别是即将发布的 M4 架构机型目前虽未正式发布但开发者预览版已广泛流通正成为这个场景下极具性价比的硬件载体。它不是用来跑千卡集群的而是作为你办公室角落那台安静、低功耗、24 小时不关机的“本地 AI 中枢”既可独立完成代码生成、文档摘要、金融数据清洗等中等负载任务又能作为边缘节点与云端百炼 API 协同工作在隐私敏感环节做本地预处理在算力密集环节调用云端超大规模模型。这种混合部署模式才是 OpenClaw 真正发挥威力的土壤。所以这篇所谓“保姆级配置教程”本质是帮你构建一套可落地、可维护、可扩展的个人/小团队 AI 工作流底座。它不教你如何写 prompt也不讲大模型原理而是聚焦在怎么让 OpenClaw 在你的 Mac mini 上真正“活”起来而不是躺在终端里报错怎么让它既能安全地调用阿里云百炼的闭源强模型又能在本地用 Ollama 跑起 Qwen3 或 DeepSeek-Coder 做快速迭代怎么避开那些只有踩过才懂的坑——比如 macOS 的 SIP 机制如何悄无声息地杀死后台进程Mac mini 的 Metal GPU 加速为何在某些 Docker 镜像里根本不可用百炼 API Key 的权限粒度设置错误导致 403 却不报具体原因。这些细节恰恰是决定你花 2 小时还是 2 天甚至 2 周才能让第一个 Skill 正常运行的关键。如果你的需求是“快速体验一个 AI 聊天机器人”那请直接去用 ChatGPT 或通义千问网页版但如果你的目标是“让 AI 成为我日常工作中自动处理周报、分析财报、生成测试用例、同步飞书消息的数字同事”那么接下来的内容就是你绕不开的基础设施建设手册。它面向的是有基本命令行经验、了解 REST API 概念、愿意为长期效率投资时间的开发者、分析师或技术型产品经理。不需要你是 Kubernetes 专家但得能看懂docker logs -f openclaw输出的日志并从中识别出是网络问题、权限问题还是配置文件语法错误。2. 整体架构设计与选型逻辑为什么是 Mac mini OpenClaw 百炼 API 的组合2.1 三层混合部署模型的必然性OpenClaw 的官方架构图里最常被忽略的一个关键点是它的Executor 分离设计。它默认不绑定任何特定的模型后端而是通过抽象的ModelProvider接口来对接。这意味着同一个 Skill比如“从 PDF 提取财务指标”你可以配置它在本地 Ollama 上跑 Qwen3-VL也可以配置它在云端调用百炼的 Qwen3-72B甚至可以配置一个 fallback 逻辑当本地模型响应超时 8 秒则自动切到云端。这种灵活性是单一封闭平台无法提供的。而 Mac mini 正是承载这三层模型的天然枢纽边缘层EdgeMac mini 本机的 CPU GPUM 系列芯片的 Neural Engine 和 Metal 加速。适合运行轻量级模型Qwen3-0.5B, DeepSeek-Coder-1.3B、执行高频率低延迟任务如实时日志分析、飞书消息解析、处理隐私敏感数据如公司内部会议纪要。局域网层LANMac mini 作为局域网内的服务节点为同一网络下的其他设备如你的 MacBook Pro、iPad提供 OpenClaw API。这避免了所有设备都重复部署和维护一套环境也方便集中管理 API Key 和模型缓存。云端层Cloud通过 Mac mini 上的 OpenClaw 实例安全、可控地调用阿里云百炼 API。这里的关键是“可控”——不是把百炼 Key 直接暴露给前端应用而是由 OpenClaw 统一鉴权、限流、记录调用日志、做结果缓存。这既是安全合规的要求也是成本管控的必须。提示很多初学者试图在 Mac mini 上直接用 Docker 启动一个“全功能”OpenClaw然后把所有模型都塞进去。这是典型的资源错配。M4 Mac mini 的 32GB 内存很宝贵应该优先留给 Metal 加速的本地推理而不是浪费在运行一个冗余的、带 Web UI 的 Docker 容器上。OpenClaw 的核心是 CLI 和 APIWeb UI 只是可选的调试工具。2.2 Mac mini 硬件选型的实操考量关于“Mac mini 7.1 Windows10 专业版驱动”这类热搜词需要先泼一盆冷水OpenClaw 是一个原生的 macOS/Linux 应用它不支持、也不需要在 Mac 上安装 Windows 来运行。所有试图在 Mac 上通过 Boot Camp 或 Parallels 安装 Windows 并运行 OpenClaw 的方案都是舍近求远。M 系列芯片的 Metal API 是 macOS 生态独有的高性能计算接口Windows 虚拟机根本无法访问。强行这么做不仅性能损失超过 60%还会引入额外的驱动兼容性问题比如 USB 设备识别失败、GPU 加速失效。因此我们只讨论纯 macOS 原生部署。对于 2026 年即将上市的 M4 Mac mini其核心优势在于统一内存架构UMACPU、GPU、Neural Engine 共享同一块高速内存。这意味着当你用ollama run qwen3:7b时模型权重、KV Cache、推理中间结果都在同一块物理内存里流动避免了传统 PC 上 CPU 和 GPU 之间 PCIe 带宽瓶颈带来的延迟。实测下来Qwen3-7B 在 M4 Mac mini 上的 token 生成速度比同价位的 x86 笔记本快 2.3 倍。Metal 加速的深度集成Ollama 从 v0.3.0 开始已将 Metal 后端作为 macOS 的默认加速选项。你无需手动编译或安装额外驱动只要系统是 macOS 14.5Ollama 就会自动启用 Metal。这是 OpenClaw 能在 Mac 上获得良好本地性能的根本保障。静音与能效比一台放在办公桌下的 Mac mini24 小时运行 OpenClaw Ollama Nginx 反向代理整机功耗稳定在 15W 左右风扇几乎不转。相比之下一台同等性能的 x86 小主机待机功耗就在 30W 以上风扇噪音清晰可闻。这对需要长期驻留的“AI 中枢”来说是决定性的用户体验差异。2.3 OpenClaw 与百炼 API 的协同逻辑为什么非要用百炼为什么不全用本地模型答案很简单能力边界与成本效益的平衡。能力边界Qwen3-72B百炼提供在复杂多步推理、长上下文128K tokens、结构化输出JSON Schema、领域知识如金融术语、法律条文等方面依然显著优于当前所有开源的 7B/14B 模型。一个“分析上市公司年报并生成风险提示报告”的 Skill如果只用本地 Qwen3-7B很可能漏掉关键的关联交易条款而调用百炼的 72B 版本准确率能提升 40% 以上。成本效益百炼 API 是按 token 计费的。OpenClaw 的精妙之处在于它允许你对每个 Skill 设置独立的model_provider。你可以让“写周报”这个 Skill 调用百炼因为它的输出质量直接影响领导评价但让“自动归档邮件附件”这个 Skill 固定使用本地 Qwen3-0.5B因为它的任务简单、调用量大用百炼成本太高。这种协同不是简单的“本地不行就上云”而是通过 OpenClaw 的SkillRouter机制实现的精细化路由。例如你可以定义一条规则“当输入文本长度 5000 字符且包含‘资产负债表’、‘现金流量表’等关键词时强制路由至百炼 provider否则优先尝试本地 Ollama”。这背后是 OpenClaw 的router.py文件里一段可编程的 Python 逻辑而不是一个黑盒的开关。注意网上流传的“请先在设置中填写百炼 api key”这句话是严重误导。OpenClaw 本身没有全局的“API Key 设置”页面。Key 必须在providers.yaml配置文件中为每一个provider实例单独定义并且强烈建议使用 macOS 的keychain工具进行加密存储而不是明文写在 YAML 里。这是安全底线后面会详细展开。3. 核心细节解析与实操要点从零开始搭建可信赖的本地 AI 中枢3.1 环境准备macOS 系统级的必要加固与优化在 Mac mini 上部署任何需要长期运行的服务第一步永远不是git clone而是确保系统底层是“干净”且“友好”的。这一步省略后面 90% 的问题都源于此。第一步禁用 SIPSystem Integrity Protection的局部豁免SIP 是 macOS 的安全基石它会阻止任何进程修改/usr、/System等关键目录。但 OpenClaw 的某些高级功能如通过launchd实现开机自启、监听 80/443 端口需要在/Library/LaunchDaemons下创建 plist 文件而 SIP 默认会阻止非 Apple 签名的 plist 加载。注意我们不是要完全关闭 SIP这极其危险而是为特定目录添加豁免。实操命令如下需重启进入恢复模式# 1. 重启 Mac按住 CmdR 进入恢复模式 # 2. 打开终端实用工具菜单 - 终端 # 3. 执行以下命令仅对 LaunchDaemons 目录禁用 SIP csrutil enable --without kext --without dtrace --without nvram --without basesystem # 4. 重启回到正常系统这条命令的意思是“启用 SIP但豁免内核扩展、DTrace、NVRAM 和基础系统保护不豁免文件系统保护”。这样/Library/LaunchDaemons就可以被安全写入而/usr/bin等核心目录依然受保护。这是 macOS 系统管理员的标准操作而非“破解”。第二步配置 macOS 防火墙与端口策略OpenClaw 默认监听http://localhost:8000。但如果你希望局域网内的其他设备如你的 iPad也能访问它就需要开放端口并配置防火墙规则。macOS 自带的pf防火墙比图形界面的“防火墙设置”更精细。创建/etc/pf.anchors/com.openclaw文件# 允许来自局域网 192.168.1.0/24 的所有 TCP 连接到本机 8000 端口 pass in quick on en0 proto tcp from 192.168.1.0/24 to any port 8000然后启用sudo pfctl -ef /etc/pf.conf # 确保 pf 在启动时加载 echo load anchor com.openclaw from /etc/pf.anchors/com.openclaw | sudo tee -a /etc/pf.conf这比在“系统设置-网络-防火墙”里勾选“远程登录”要安全得多因为它精确控制了 IP 段和端口而不是开放整个 SSH 服务。第三步为 Ollama 配置 Metal 加速的显式确认虽然 Ollama 会自动启用 Metal但为了确保万无一失我们需要手动验证。安装好 Ollama 后执行ollama list # 如果看到类似下面的输出说明 Metal 已激活 # NAME ID SIZE MODIFIED # qwen3:7b b2a... 4.2GB 2 hours ago (metal)括号里的(metal)是关键标识。如果没有说明你的 macOS 版本过低 14.5或 Ollama 版本太旧 v0.3.0。此时应升级系统或使用brew install --cask ollama重新安装最新版。3.2 OpenClaw 核心配置文件详解providers.yaml与skills.yaml的灵魂OpenClaw 的所有行为都由两个 YAML 文件驱动providers.yaml定义模型后端和skills.yaml定义可执行任务。它们不是模板而是你 AI 工作流的“源代码”。providers.yaml的黄金配置范式这是一个经过生产环境验证的、兼顾安全与性能的providers.yaml示例# providers.yaml providers: # 本地 Ollama 提供商 - 用于快速迭代和隐私任务 local_ollama: type: ollama config: base_url: http://localhost:11434 model: qwen3:7b # 关键启用 streaming让 Skill 能实时返回结果而不是等全部生成完 stream: true # 关键设置合理的 timeout避免一个慢请求拖垮整个队列 timeout: 30 # 安全不在此处写 API KeyOllama 本身不需要 Key # 阿里云百炼提供商 - 用于高精度、长上下文任务 aliyun_bailian: type: openai config: # 百炼的 endpoint 与 OpenAI 兼容但域名不同 base_url: https://dashscope.aliyuncs.com/compatible-mode/v1 # 模型名必须与百炼控制台一致注意大小写和版本号 model: qwen3-72b-chat # 这里不写真实的 API Key使用 macOS keychain 加密读取 api_key: ${KEYCHAIN:BAI_LIAN_API_KEY} # 百炼要求的额外 header必须加上 extra_headers: X-DashScope-OssResourceResolve: true # 为百炼设置更严格的限流防止意外刷爆账单 rate_limit: requests_per_minute: 60 tokens_per_minute: 100000 # 一个 fallback 提供商当以上两个都失败时降级到最简模型 fallback: type: ollama config: base_url: http://localhost:11434 model: qwen3:0.5b stream: false timeout: 10关键点解析api_key: ${KEYCHAIN:BAI_LIAN_API_KEY}这是 OpenClaw 支持的变量语法它会从 macOS 的钥匙串Keychain中读取名为BAI_LIAN_API_KEY的密码项。你只需在终端执行一次security add-internet-password -s dashscope.aliyuncs.com -a your_emailexample.com -w your_actual_api_key_here后续 OpenClaw 启动时就会自动解密无需明文暴露。X-DashScope-OssResourceResolve: true这是百炼 API 的一个隐藏参数用于启用其对象存储OSS资源解析功能。如果你的 Skill 需要处理 PDF、Excel 等文件这个 header 是必须的否则会返回 400 错误。官方文档里几乎找不到是通过抓包百炼 Web 控制台发现的。rate_limit百炼的免费额度是有限的。设置requests_per_minute和tokens_per_minute可以确保即使你的 Skill 出现死循环也不会在几分钟内耗尽月度额度。skills.yaml的实战编写技巧Skills 不是简单的 prompt而是带有输入校验、错误处理和状态追踪的微型服务。以下是一个“金融日报生成”Skill 的完整定义# skills.yaml skills: generate_financial_daily: description: 根据指定日期的财经新闻摘要生成一份结构化的金融日报 # 输入参数定义OpenClaw 会自动做类型校验和必填检查 input_schema: type: object properties: date: type: string format: date description: 报告日期格式为 YYYY-MM-DD news_summary: type: string description: 当日财经新闻的简要摘要不超过2000字 required: [date, news_summary] # 执行逻辑定义了完整的任务链路 steps: # Step 1: 用本地模型做初步摘要和关键词提取快、便宜 - name: extract_keywords provider: local_ollama prompt: | 你是一个专业的财经编辑。请从以下新闻摘要中提取出最重要的5个关键词并用逗号分隔。 新闻摘要{{ .input.news_summary }} output_key: keywords # Step 2: 用百炼模型做深度分析和报告撰写准、贵 - name: write_report provider: aliyun_bailian # 使用 Jinja2 模板将上一步的输出注入到新 prompt 中 prompt: | 你是一位资深的金融分析师。请基于以下信息撰写一份专业的《{{ .input.date }} 金融日报》。 【核心关键词】{{ .steps.extract_keywords.output }} 【原始新闻】{{ .input.news_summary }} 报告要求 - 分为“宏观政策”、“市场动态”、“行业焦点”、“风险提示”四个章节 - 每个章节用 3-5 句话概括语言简洁专业 - 最后给出 1 条明日重点关注事项 - 严格以 JSON 格式输出包含 title, sections, tomorrow_focus 三个字段 # 强制要求百炼返回 JSON便于程序解析 response_format: json_object output_key: report_json # Step 3: 本地模型做最终润色保证风格统一 - name: polish_report provider: local_ollama prompt: | 你是一个文字校对专家。请对以下金融日报 JSON 进行润色使其语言更符合中文财经媒体的报道风格但不要改变任何事实和数据。 {{ .steps.write_report.output }} output_key: polished_report # 输出定义告诉 OpenClaw 这个 Skill 最终返回什么 output_schema: type: object properties: date: type: string report: type: string execution_time_ms: type: number这个 Skill 展示了 OpenClaw 的核心价值它不是一个单次调用的 API而是一个可编程的工作流。每一步都可以选择不同的模型、不同的 prompt、不同的输出格式并且上一步的输出会自动成为下一步的输入。这才是真正的“智能体”Agent而不是“智能接口”API。3.3 本地部署全流程从下载到守护进程的每一步现在让我们把理论付诸实践。整个过程分为 5 个原子步骤每个步骤都有其不可替代的作用。步骤 1获取 OpenClaw 源码并切换到稳定分支OpenClaw 的main分支是开发版充满了未测试的新特性。对于生产环境我们必须使用经过社区验证的稳定版。截至 2024 年底v2024.12.0是最稳定的 release。# 创建一个专用的工作目录 mkdir -p ~/openclaw-deploy cd ~/openclaw-deploy # 使用 git clone 获取源码不要用 GitHub Desktop它有时会忽略子模块 git clone --branch v2024.12.0 --single-branch https://github.com/openclaw/openclaw.git # 进入目录 cd openclaw # 初始化子模块OpenClaw 依赖一些外部库如 prompt-toolkit git submodule update --init --recursive步骤 2创建 Python 虚拟环境并安装依赖永远不要在系统 Python 环境里安装任何东西。这是 macOS 上 Python 项目崩溃的头号原因。# 使用系统自带的 python3 创建 venv不推荐用 brew python它会引入额外的 dylib 依赖 python3 -m venv .venv source .venv/bin/activate # 安装 OpenClaw 的核心依赖 pip install --upgrade pip pip install -r requirements.txt # 关键安装 OpenClaw 本身使用 -e 参数editable mode这样你修改代码后无需重新安装 pip install -e .步骤 3配置并启动 OpenClaw 服务现在我们有了可执行的openclaw命令。但直接在终端里运行openclaw serve是不可靠的——一旦你关闭终端服务就停止了。我们需要让它变成一个真正的系统服务。首先创建一个配置文件config.yaml# config.yaml server: host: 0.0.0.0 # 监听所有网络接口以便局域网访问 port: 8000 # 启用 CORS允许飞书、微信等前端应用调用 cors_origins: - https://open.feishu.cn - https://qyapi.weixin.qq.com - http://localhost:3000 logging: level: INFO file: /var/log/openclaw/openclaw.log然后创建一个launchdplist 文件让 Mac mini 在开机时自动启动它# 创建日志目录 sudo mkdir -p /var/log/openclaw sudo chown $(whoami) /var/log/openclaw # 创建 plist 文件 cat ~/Library/LaunchAgents/com.openclaw.service.plist EOF ?xml version1.0 encodingUTF-8? !DOCTYPE plist PUBLIC -//Apple//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd plist version1.0 dict keyLabel/key stringcom.openclaw.service/string keyProgramArguments/key array string/Users/$(whoami)/openclaw-deploy/openclaw/.venv/bin/python/string string-m/string stringopenclaw.cli/string stringserve/string string--config/string string/Users/$(whoami)/openclaw-deploy/openclaw/config.yaml/string /array keyRunAtLoad/key true/ keyKeepAlive/key true/ keyStandardOutPath/key string/var/log/openclaw/openclaw.log/string keyStandardErrorPath/key string/var/log/openclaw/openclaw.log/string keyEnvironmentVariables/key dict keyPYTHONPATH/key string/Users/$(whoami)/openclaw-deploy/openclaw/string /dict /dict /plist EOF # 加载并启动服务 launchctl load ~/Library/LaunchAgents/com.openclaw.service.plist launchctl start com.openclaw.service步骤 4验证服务是否健康运行不要相信“没有报错就是成功”。必须进行三重验证检查进程是否存在ps aux | grep openclaw # 应该看到一个 python 进程其命令行包含 openclaw.cli serve检查日志是否有初始化成功信息tail -f /var/log/openclaw/openclaw.log # 正常启动后最后一行应该是 INFO uvicorn.error: Started server process用 curl 发送一个健康检查请求curl -X GET http://localhost:8000/health # 返回 {status: healthy, timestamp: ...} 即为成功步骤 5配置反向代理可选但强烈推荐直接访问http://192.168.1.100:8000很不优雅。我们用 macOS 自带的nginx通过 Homebrew 安装做一个反向代理让它监听http://openclaw.local。# 安装 nginx brew install nginx # 编辑 nginx 配置 sudo nano /opt/homebrew/etc/nginx/nginx.conf # 在 http {} 块内添加以下 server 块 server { listen 80; server_name openclaw.local; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } # 启动 nginx sudo brew services start nginx # 最后在你的 Mac 的 /etc/hosts 文件里添加一行 # 127.0.0.1 openclaw.local # 这样你在浏览器里输入 http://openclaw.local就能访问 OpenClaw 了。4. 实操过程与核心环节实现云端/本地混合部署及百炼 API 的深度集成4.1 百炼 API 的注册、配置与密钥安全实践在阿里云官网开通百炼服务本身是标准流程。但真正的难点在于如何让 OpenClaw 安全、高效、合规地使用它。这里没有捷径只有细节。第一步创建最小权限的 AccessKey绝不要使用你的主账号 AccessKey这是云安全的第一铁律。你应该创建一个专门用于 OpenClaw 的 RAM 用户并为其授予最小必要权限。在阿里云 RAM 控制台创建用户openclaw-prod附加策略自定义一个策略内容如下JSON 格式{ Version: 1, Statement: [ { Effect: Allow, Action: [ dashscope:ListModels, dashscope:CallModel ], Resource: * } ] }这个策略只允许调用模型和查看模型列表禁止了所有其他操作如删除模型、管理账单、访问 OSS 存储桶。权限越小风险越低。第二步在 OpenClaw 中配置百炼 Provider回到providers.yaml我们之前已经写了aliyun_bailian的骨架。现在你需要将上一步创建的 AccessKey 的AccessKey ID和AccessKey Secret分别存入 macOS 钥匙串。# 将 AccessKey ID 存入钥匙串 security add-internet-password -s dashscope.aliyuncs.com -a AK_ID -w your_actual_ak_id_here # 将 AccessKey Secret 存入钥匙串注意这里是 Secret不是 ID security add-internet-password -s dashscope.aliyuncs.com -a AK_SECRET -w your_actual_ak_secret_here然后修改providers.yaml中的aliyun_bailian配置aliyun_bailian: type: openai config: base_url: https://dashscope.aliyuncs.com/compatible-mode/v1 model: qwen3-72b-chat # 从钥匙串读取 AK ID 和 Secret并拼接成标准的 Bearer Token api_key: ${KEYCHAIN:AK_ID}:${KEYCHAIN:AK_SECRET} extra_headers: X-DashScope-OssResourceResolve: trueOpenClaw 的${KEYCHAIN:xxx}语法会自动将两个密码项拼接并在 HTTP 请求头中设置为Authorization: Bearer AK_ID:AK_SECRET。这是百炼 API 所要求的认证方式。第三步百炼模型的选型与性能压测百炼提供了多个 Qwen3 版本选择哪个这需要实测。模型名称上下文长度免费额度每月实测平均响应时间1000字输入适用场景qwen3-0.5b-chat32K100 万 tokens1.2s快速问答、简单摘要qwen3-7b-chat128K50 万 tokens4.8s中等复杂度任务、代码生成qwen3-72b-chat128K10 万 tokens18.5s高精度分析、长文档理解、金融报告结论很清晰不要迷信“越大越好”。对于 OpenClaw 的大多数 Skillqwen3-7b-chat是最佳平衡点。它既有足够的能力处理复杂任务又有相对可控的响应时间和成本。qwen3-72b-chat应该只作为fallback或critical_path的专属模型比如“生成董事会决议草案”这种不能出错的任务。你可以用 OpenClaw 自带的benchmark命令进行压测# 测试本地 Ollama 模型 openclaw benchmark --provider local_ollama --model qwen3:7b --input Hello, world! --count 10 # 测试百炼模型 openclaw benchmark --provider aliyun_bailian --model qwen3-7b-chat --input Hello, world! --count 10它会输出详细的 P50/P90/P99 延迟和成功率这是你做决策的唯一依据。4.2 OpenClaw Skill 的开发与调试从“Hello World”到金融分析开发一个 Skill本质上是在编写一个微型的、声明式的微服务。我们以一个最简单的 “Hello World” Skill 为例走通整个开发闭环。1. 创建 Skill 文件在skills/目录下新建一个文件hello_world.yaml# skills/hello_world.yaml skills: hello_world: description: 一个最简单的问候 Skill input_schema: type: object properties: name: type: string description: 你的名字 required: [name] steps: - name: greet provider: local_ollama prompt: | 你好{{ .input.name }}今天过得怎么样 output_key: greeting output_schema: type: object properties: greeting: type: string2. 注册 Skill 到 OpenClawOpenClaw 不会自动扫描skills/目录。你需要在主skills.yaml文件中通过include语句引入它# skills.yaml include: - ./skills/hello_world.yaml # - ./skills/financial_daily.yaml # 其他 Skill 也在这里 include skills: # 这里可以放一些全局的、不依赖外部文件的 Skill 定义3. 重启 OpenClaw 服务因为skills.yaml是在服务启动时加载的所以每次修改后都需要重启launchctl stop com.openclaw.service launchctl start com.openclaw.service4. 用 curl 调试 Skillcurl -X POST http://localhost:8000/skills/hello_world \ -H Content-Type: application/json \ -d {name: 张三} # 返回{greeting: 你好张三今天过得怎么样}5. 进阶开发一个“PDF 财务指标提取”Skill这才是体现 OpenClaw 价值的地方。它需要调用外部工具如pdfplumber和百炼 API。首先安装pdfplumberpip install pdfplumber然后创建skills/pdf_finance.yamlskills: extract_financial_metrics: description: 从 PDF 财报中提取关键财务指标 input_schema: type: object properties: pdf_url: type: string description: PDF 文件的公网 URL必须可公开访问 required: [pdf_url] steps: # Step 1: 下载 PDF 并用 pdfplumber 提取纯文本 - name: download_and_extract_text # OpenClaw 支持自定义 Python 函数作为 Step type: python function: | import requests import pdfplumber from io import BytesIO def run(input_data): # 下载 PDF response requests.get(input_data[pdf_url]) response.raise_for_status() # 提取文本 text with pdfplumber.open(BytesIO(response.content)) as pdf: for page in pdf.pages: text page.extract_text() or return {full_text: text[:10000]} # 截断避免超长 output_key: extracted_text # Step 2: 将