news 2026/7/11 4:35:33

OpenClaw多Agent环境下Skills安装与系统级能力编排

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenClaw多Agent环境下Skills安装与系统级能力编排

1. 项目概述:多 Agent 部署后 Skills 安装不是“装一次就完事”,而是系统级能力编排的起点

你刚跑通 OpenClaw 的多 Agent 部署,几个智能体在 terminal 里各自吐着 log,看起来很酷——但下一秒用户问:“怎么让 Agent A 调用 Agent B 刚爬完的网页数据生成报告?”你卡住了。不是模型没加载,不是端口没通,而是 Skills 没装对位置、没配对上下文、没跨 Agent 共享权限。这正是标题“多 Agent 部署后 skills 如何安装”背后的真实战场:Skills 不是插件,是多 Agent 协作系统的神经突触;安装不是执行一条命令,而是完成一次运行时能力拓扑映射

核心关键词“多 Agent”“OpenClaw”“skills”“clawhub”“install”绝非孤立标签。它们构成一个强耦合技术栈:OpenClaw 是底层运行时框架,clawhub 是 Skills 的注册中心与分发协议,skills 是可执行的原子能力单元,而“多 Agent”则决定了这些能力必须支持跨进程隔离、跨 workspace 加载、跨角色权限控制三大硬约束。我实测过 17 种部署组合,发现 83% 的 Skills 失效问题根本不在 skill 本身,而在于安装路径与 Agent 启动时的--workspace参数不一致、CLAWHUB_WORKDIR环境变量未全局生效、或clawhub install时未指定--workdir导致技能被装进当前 shell 目录而非 Agent 实际加载目录。更隐蔽的是,当多个 Agent 共享同一 workspace 时,Skills 的 YAML frontmatter 中requires字段若声明了python>=3.11,而某个 Agent 运行在独立 conda 环境中只装了 3.9,就会静默跳过加载——连报错都不会打出来。所以这篇内容不是教你怎么敲pip install,而是带你亲手拆开 OpenClaw 的 Skills 加载引擎,看清每个螺丝钉该拧在哪一格螺纹上。

2. 多 Agent 场景下 Skills 安装的核心逻辑与设计思路

2.1 为什么不能直接clawhub install xxx就完事?——理解 OpenClaw 的 Skills 加载生命周期

OpenClaw 的 Skills 加载机制本质是双阶段解析+运行时绑定。第一阶段在 Agent 启动前,由openclaw initopenclaw chat --workspace ./my-workspace触发,扫描./my-workspace/skills/下所有合法 SKILL.md 文件,提取namedescriptionrequiresentrypoint四个关键字段,构建 Skills Registry 缓存;第二阶段在 Agent 收到用户请求后,根据 LLM 的 tool-calling 决策,动态加载对应 Skill 的script.py(或执行SKILL.md中定义的 shell 命令),并注入当前 Agent 的 context(如 memory、credentials、session_id)。这个设计意味着:Skills 必须在 Agent 启动前完成物理存放,且路径必须与启动参数严格匹配

我踩过最深的坑是误以为clawhub install会自动重载已运行的 Agent。实际测试中,我在openclaw chat进程运行时执行clawhub install summarize,终端显示 “Installed successfully”,但 Agent 依然无法调用 summarize 功能。用lsof -p $(pgrep -f 'openclaw chat') | grep skills查看,发现进程只打开了启动时扫描的/tmp/openclaw-default/skills/目录,而clawhub install默认把 skill 装到了./skills/。这就是典型的“路径幻觉”——你以为装进去了,其实装进了另一个平行宇宙。解决方案不是重启 Agent(虽然有效),而是从根上理解:clawhub install只负责文件复制,真正的加载权在openclaw启动器手里。因此,多 Agent 部署的第一条铁律是:所有 Agent 的--workspace参数必须指向同一物理路径,且该路径下的skills/子目录必须为所有 Agent 进程可读写

2.2 多 Agent 架构对 Skills 安装的三重特殊要求

当部署从单 Agent 扩展到多 Agent(如 Coordinator + Researcher + Writer + Validator 四角色协作),Skills 安装策略必须升级为系统工程。我们逐层拆解:

第一重:路径一致性要求
单 Agent 时代,clawhub install --workdir ./my-agent/skills能工作;但多 Agent 时,若 Coordinator 的 workspace 是./coordinator/,Researcher 的是./researcher/,即使两个目录下都有summarizeskill,Coordinator 也无法调用 Researcher 的 summarize,因为 OpenClaw 的跨 Agent 调用不走文件系统共享,而是通过内部 RPC 协议传递 tool-call 请求,而该协议只认本 Agent workspace 下注册的 Skills。实测数据:在 4 Agent 协作流中,若仅 Coordinator 安装multi-search-engine,其他 Agent 即使有同名 skill 也会因 registry 未注册而返回 “Tool not found”。因此,必须采用centralized skills repo 模式:创建统一 workspace 目录(如./shared-workspace/),所有 Agent 启动时强制指定--workspace ./shared-workspace,再统一在此目录下安装 Skills。

第二重:依赖隔离性要求
Skills 的requires字段常声明 Python 包依赖(如requires: ["requests>=2.28.0", "playwright>=1.32.0"])。单 Agent 时,pip install -r requirements.txt可全局满足;但多 Agent 若运行在不同 Python 环境(如 Coordinator 用 system python,Researcher 用 conda env),就会出现 “A Agent 能跑,B Agent 报 ModuleNotFoundError”。我的解决方案是:为每个 Skill 目录内嵌requirements.txt,并在SKILL.mdentrypoint中显式调用pip install -r ./requirements.txt。例如agent-browser的 SKILL.md:

name: agent-browser requires: ["playwright>=1.32.0"] entrypoint: | pip install -r ./requirements.txt python ./script.py

这样,当 Agent 加载该 Skill 时,会先检查并安装其专属依赖,避免环境污染。实测对比:传统全局 pip install 方式在 3 Agent 混合环境中失败率 67%,而 per-skill pip install 方式失败率降为 0%。

第三重:权限协同性要求
Skills 常需访问敏感资源:githubskill 需要GITHUB_TOKENnotionskill 需要NOTION_API_KEY。单 Agent 时,将 token 写入.env文件即可;但多 Agent 协作时,若每个 Agent 读取自己的.env,Coordinator 生成的 GitHub PR URL 就无法被 Writer Agent 解析(因 Writer 的.env无 token)。OpenClaw 的解法是context propagation 机制:在openclaw chat启动时,通过--env-file ./shared.env参数注入全局环境变量,该变量会随每个 tool-call 请求透传给所有参与 Agent。因此,Skills 安装后,必须确保shared.env文件存在且包含所有 Skill 所需的 key。我建议的实践是:在 centralized workspace 目录下创建./shared.env,内容为:

GITHUB_TOKEN=ghp_xxx NOTION_API_KEY=secret_xxx TAVILY_API_KEY=tvly_xxx

然后所有 Agent 启动命令统一加上--env-file ./shared-workspace/shared.env。这样,clawhub install github后,无需额外配置,GitHub Skill 就能被任何 Agent 安全调用。

2.3 为什么推荐国内镜像skillhub.tencent.com?不只是速度问题

网络热词里高频出现curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash,很多人只当它是“下载加速”,其实它解决了三个深层问题:

问题一:DNS 污染导致的证书链断裂
官方clawhub.ai域名在部分网络环境下,DNS 解析会返回错误 IP,导致npm i -g clawhubhttps://registry.npmjs.org/clawhub返回 404。而腾讯云 COS 镜像使用标准 HTTPS 证书,且域名skillhub-1388575217.cos.ap-guangzhou.myqcloud.com经过 CDN 优化,DNS 解析成功率 100%。我用dig skillhub.aidig skillhub-1388575217.cos.ap-guangzhou.myqcloud.com对比,前者平均响应时间 320ms 且 12% 丢包,后者 28ms 0 丢包。

问题二:npm registry 代理失效引发的依赖树错乱
npm i -g clawhub会递归安装clawhub依赖的@clawhub/core@clawhub/cli等子包。当 npm registry 被干扰时,@clawhub/core可能下载到旧版(如 v0.8.2),而clawhubCLI 要求 v0.9.0+,导致clawhub --versionTypeError: Cannot read property 'version' of undefined。腾讯镜像的install.sh脚本会强制设置npm config set registry https://mirrors.cloud.tencent.com/npm/,并预装兼容版本,规避此问题。

问题三:Skill 安装过程中的中间件劫持风险
官方clawhub install在下载 Skill ZIP 包时,会通过https://clawhub.ai/api/skills/{slug}/download获取直链。某些网络环境会在此链路插入广告 JS,导致 ZIP 包损坏。腾讯镜像的install.sh使用curl -L直接拉取 COS 存储桶中的原始 ZIP,绕过所有中间节点。我抓包对比:官方链路平均经过 4 跳(CDN → WAF → API Gateway → S3),腾讯镜像仅 1 跳(COS),传输完整性提升 99.2%。

所以,curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash不是“替代方案”,而是生产环境的安全基线配置

3. Skills 安装全流程实操:从零构建可协作的多 Agent Skills 生态

3.1 环境准备与基础验证:确认你的系统已具备 Skills 运行资格

在敲任何install命令前,必须完成三项原子级验证。这不是形式主义,而是避免后续 90% 的 “找不到命令” 类报错。

第一步:验证 Node.js 与 npm 版本
OpenClaw 的 clawhub CLI 是 Node.js 工具,npm i -g clawhub要求 Node.js >= 16.14.0。执行:

node -v # 输出应为 v16.14.0 或更高,如 v18.17.0 npm -v # 输出应为 8.19.2 或更高

若版本过低,不要用sudo apt install nodejs(Ubuntu 默认源版本太老),改用 NodeSource:

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt-get install -y nodejs

提示:setup_lts.x脚本会自动添加 NodeSource APT 仓库,并安装最新 LTS 版本(当前为 18.x),避免手动下载二进制包的权限问题。

第二步:验证 Python 环境与 pip
Skills 的script.py依赖 Python,且 OpenClaw 默认调用系统python3。执行:

python3 --version # 输出应为 3.8+ which python3 # 记录路径,如 /usr/bin/python3 pip3 --version # 确保 pip3 可用

重点检查:python3是否指向你期望的环境。例如,若你用 pyenv 管理 Python,which python3可能返回/home/user/.pyenv/shims/python3,这是正确的;但若返回/usr/bin/python3,而你希望 Agent 运行在 conda env 中,则需在启动 Agent 时显式指定--python-path /path/to/conda/env/bin/python

第三步:验证 curl 与 jq 工具
clawhubCLI 内部大量使用curl下载 Skill 和jq解析 JSON 响应。执行:

curl --version # 确保支持 HTTPS(输出含 "https") jq --version # 输出应为 1.6+

若缺失,Ubuntu/Debian 系统执行:

sudo apt-get update && sudo apt-get install -y curl jq

CentOS/RHEL 系统执行:

sudo yum install -y curl jq

注意:jq是必须的,clawhub search命令的响应解析完全依赖jq。没有jq时,clawhub search "send email"会返回原始 JSON 字符串,无法格式化显示。

完成以上三步后,执行终极验证:

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash clawhub --version # 应输出类似 "clawhub 0.9.5"

如果clawhub --version报错 “command not found”,说明npm global bin路径未加入PATH。执行:

echo 'export PATH=$(npm config get prefix)/bin:$PATH' >> ~/.bashrc source ~/.bashrc

3.2 创建 centralized workspace 并初始化 Skills 目录结构

多 Agent 的 Skills 管理必须放弃 “每个 Agent 自己搞一套” 的野路子。我们创建一个物理上集中、逻辑上共享的 workspace。

步骤 1:创建 workspace 目录并设置权限

mkdir -p ~/openclaw-workspace cd ~/openclaw-workspace # 创建 skills 目录,这是所有 Agent 共同的 Skills 根目录 mkdir -p skills # 创建 shared.env,用于存储全局密钥 touch shared.env # 设置目录权限,确保所有 Agent 进程可读写 chmod -R 755 skills chmod 600 shared.env

注意:chmod 600 shared.env是安全红线。.env文件包含 API Key,必须禁止 group 和 others 读取,否则ls -l shared.env会显示-rw-------,而非-rw-r--r--

步骤 2:初始化 workspace 配置
OpenClaw 要求 workspace 下有config.yaml定义基础参数。创建~/openclaw-workspace/config.yaml

# ~/openclaw-workspace/config.yaml llm: provider: ollama model: llama3:8b base_url: http://localhost:11434 skills: # 指定 Skills 目录为当前 workspace 下的 skills/ directory: ./skills # 启用 auto-updater,自动同步新版本 Skills auto_update: true environment: # 指定全局 env 文件路径 env_file: ./shared.env

这个配置文件是多 Agent 协作的“宪法”,所有 Agent 启动时都必须加载它。

步骤 3:验证 workspace 结构
正确结构应为:

~/openclaw-workspace/ ├── config.yaml # OpenClaw 主配置 ├── shared.env # 全局密钥存储 └── skills/ # 所有 Skills 的物理存放地 └── (空)

执行tree -L 2 ~/openclaw-workspace确认。若skills/下已有文件,先rm -rf ~/openclaw-workspace/skills/*清空,避免旧 Skill 干扰。

3.3 安装核心 Skills:按协作流顺序精准部署

根据网络热词和实战经验,我为你梳理出多 Agent 协作流的最小可行 Skills 集合(MVS),共 5 个,按安装顺序排列,每一步都附带验证方法。

Skill 1:skill-vetter—— 所有 Skills 的守门员
这是你安装的第一个 Skill,也是唯一一个必须最先安装的。它不提供业务功能,而是为后续所有 Skill 提供安全沙箱。

cd ~/openclaw-workspace clawhub install skill-vetter --workdir ./skills

验证是否成功:

ls -l ./skills/skill-vetter/ # 应看到 SKILL.md, script.py, config.json 等文件 # 检查 SKILL.md 中的 requires 字段 grep "requires" ./skills/skill-vetter/SKILL.md # 应输出类似 "requires: [\"pydantic>=2.0.0\"]"

实操心得:skill-vetter会静态分析每个 Skill 的SKILL.md,检查entrypoint是否包含危险命令(如rm -rf /)、requires是否声明了已知漏洞包。若后续安装的 Skill 被 vetter 拒绝,日志会明确提示 “Blocked by skill-vetter: unsafe command in entrypoint”。

Skill 2:self-improving-agent—— 让 Agent 学会自我纠错
这是多 Agent 协作的“记忆中枢”,它让 Coordinator 能记住 Researcher 的失败案例,并在下次分配任务时避开同类错误。

clawhub install self-improving-agent --workdir ./skills

验证关键点:

# 检查其 entrypoint 是否启用 vetting cat ./skills/self-improving-agent/SKILL.md | grep "entrypoint" # 应看到类似 "entrypoint: | \n clawhub vet . \n python ./script.py" # 运行一次 vetting 测试 cd ./skills/self-improving-agent && clawhub vet . # 应输出 "All checks passed"

注意:self-improving-agent依赖sqlite3存储历史,确保你的 Python 环境已编译 sqlite3 模块(默认 Ubuntu Python 已包含)。

Skill 3:tavily-search—— Researcher 的眼睛
这是 Researcher Agent 的核心技能,提供多引擎聚合搜索。安装时需提前配置 API Key:

# 编辑 shared.env,添加 Tavily Key echo "TAVILY_API_KEY=your_tavily_api_key_here" >> ~/openclaw-workspace/shared.env # 安装 Skill clawhub install tavily-search --workdir ./skills

验证方法:

# 手动测试搜索功能(不启动 Agent) cd ./skills/tavily-search python3 -c " import os os.environ['TAVILY_API_KEY'] = 'your_tavily_api_key_here' from script import search results = search('OpenClaw multi-agent deployment best practices') print(f'Found {len(results)} results') " # 应输出 "Found X results",X 通常为 5-10

提示:Tavily 免费 tier 有 1000 次/月调用限制。若测试时返回 429 错误,说明额度用尽,需等下月重置或升级付费 plan。

Skill 4:summarize—— Writer 的笔
这是 Writer Agent 的核心技能,支持 PDF、网页、文本摘要。它依赖unstructured库解析文档:

clawhub install summarize --workdir ./skills

验证其 PDF 解析能力(需先准备测试 PDF):

# 下载一个测试 PDF curl -o test.pdf https://arxiv.org/pdf/2305.12927.pdf # 测试 summarize Skill cd ./skills/summarize python3 -c " from script import summarize_pdf summary = summarize_pdf('test.pdf') print(summary[:200] + '...') " # 应输出 PDF 前 200 字的摘要

实操心得:summarizerequires声明了unstructured[all-docs]>=0.10.0,该包会安装 50+ 个子依赖(包括pdfminer,pypdf,docx2python)。首次运行时可能耗时 2-3 分钟,耐心等待。

Skill 5:github—— Validator 的审计工具
这是 Validator Agent 的核心技能,用于检查代码质量、PR 描述规范性。安装前需配置 GitHub Token:

# 获取 GitHub Personal Access Token(需勾选 repo, workflow 权限) # 添加到 shared.env echo "GITHUB_TOKEN=ghp_your_token_here" >> ~/openclaw-workspace/shared.env # 安装 clawhub install github --workdir ./skills

验证 GitHub 连接:

cd ./skills/github python3 -c " import os os.environ['GITHUB_TOKEN'] = 'ghp_your_token_here' from script import list_repos repos = list_repos('your_github_username') print(f'Found {len(repos)} repos') " # 应输出你的 GitHub 仓库列表

至此,5 个核心 Skill 已全部安装到~/openclaw-workspace/skills/。执行ls -l ./skills/,应看到:

drwxr-xr-x 4 user user 128 Jun 15 10:20 github/ drwxr-xr-x 4 user user 128 Jun 15 10:20 self-improving-agent/ drwxr-xr-x 4 user user 128 Jun 15 10:20 skill-vetter/ drwxr-xr-x 4 user user 128 Jun 15 10:20 summarize/ drwxr-xr-x 4 user user 128 Jun 15 10:20 tavily-search/

3.4 启动多 Agent 并验证 Skills 加载

现在,我们启动一个最小化的 3 Agent 协作流:Coordinator(调度)、Researcher(搜索)、Writer(总结)。

步骤 1:编写 multi-agent 启动脚本
创建~/openclaw-workspace/start-agents.sh

#!/bin/bash # Coordinator Agent - 负责任务分解与调度 openclaw chat \ --workspace ~/openclaw-workspace \ --env-file ~/openclaw-workspace/shared.env \ --name "Coordinator" \ --role "You are a project coordinator. Break down user requests into sub-tasks for Researcher and Writer." \ --model "llama3:8b" & COORD_PID=$! # Researcher Agent - 负责信息检索 openclaw chat \ --workspace ~/openclaw-workspace \ --env-file ~/openclaw-workspace/shared.env \ --name "Researcher" \ --role "You are a researcher. Use tavily-search to find latest information on given topics." \ --model "llama3:8b" & RESEARCHER_PID=$! # Writer Agent - 负责内容生成 openclaw chat \ --workspace ~/openclaw-workspace \ --env-file ~/openclaw-workspace/shared.env \ --name "Writer" \ --role "You are a writer. Summarize research findings into clear, concise reports." \ --model "llama3:8b" & WRITER_PID=$! echo "Started Coordinator (PID $COORD_PID), Researcher (PID $RESEARCHER_PID), Writer (PID $WRITER_PID)" wait

赋予执行权限:

chmod +x ~/openclaw-workspace/start-agents.sh

步骤 2:启动 Agents 并观察日志

cd ~/openclaw-workspace ./start-agents.sh

观察 terminal 输出,关键验证点:

  • 每个 Agent 启动日志中应出现Loading skills from ./skills/
  • Coordinator日志中应有Loaded skill: tavily-searchLoaded skill: self-improving-agent
  • Researcher日志中应有Loaded skill: tavily-search
  • Writer日志中应有Loaded skill: summarize

若某 Agent 日志中缺少对应 Skill,说明--workspace路径错误或skills/目录权限不足。

步骤 3:交互式验证 Skills 调用
Coordinator的 terminal 中输入:

请调研“OpenClaw 多 Agent 协作的最佳实践”,并生成一份 300 字的摘要报告。

预期流程:

  1. Coordinator 调用tavily-search查询 “OpenClaw 多 Agent 协作的最佳实践”
  2. Coordinator 将搜索结果发送给 Researcher
  3. Researcher 调用summarize对搜索结果进行初步提炼
  4. Coordinator 将提炼结果发送给 Writer
  5. Writer 调用summarize生成最终摘要

若整个流程顺利完成,说明 Skills 已在多 Agent 间正确流转。若卡在某一步(如 Coordinator 报 “No tool found for tavily-search”),则回到第 3.3 节,重新检查tavily-search的安装路径和shared.env中的TAVILY_API_KEY

4. Skills 安装常见问题与排查技巧实录

4.1 “clawhub: command not found” —— Node.js 全局路径陷阱

这是新手最高频的报错,根源在于npm i -g clawhub安装的二进制文件路径未加入系统PATH

排查步骤:

  1. 执行npm config get prefix,获取 npm 全局安装前缀(如/home/user/.npm-global
  2. 执行ls $(npm config get prefix)/bin/clawhub,确认文件是否存在
  3. 执行echo $PATH,检查输出中是否包含步骤 1 的路径

解决方案:
若步骤 2 存在文件而步骤 3 未包含路径,执行:

# 将 npm prefix/bin 加入 PATH echo "export PATH=\$(npm config get prefix)/bin:\$PATH" >> ~/.bashrc source ~/.bashrc

注意:不要用sudo npm i -g clawhub,这会导致文件属主为 root,普通用户无法执行。

终极验证:

which clawhub # 应输出 /home/user/.npm-global/bin/clawhub 或类似路径

4.2 “Failed to load skill: permission denied” —— Skills 目录权限迷雾

openclaw chat启动时,日志出现Failed to load skill: permission denied for ./skills/my-skill/SKILL.md,说明 OpenClaw 进程无权读取该文件。

根本原因:
clawhub install默认以当前用户身份复制文件,但若你曾用sudo clawhub install,则skills/目录下文件属主变为root,而openclaw chat以普通用户运行,无法读取。

排查命令:

ls -l ~/openclaw-workspace/skills/ # 查看 skills/ 目录及子目录的属主 # 正确应为 user:user,错误为 root:root

修复方案:

# 递归修改所有文件属主为当前用户 sudo chown -R $USER:$USER ~/openclaw-workspace/skills/ # 重置目录权限 chmod -R 755 ~/openclaw-workspace/skills/

提示:chmod 755确保目录可进入(x 权限)、文件可读(r 权限),但不开放写权限(w 权限)给 group/others,符合安全原则。

4.3 “Tool not found: xxx” —— Skills 注册表未刷新

Agent 启动后,即使skills/目录下有新 Skill,也报 “Tool not found”。这是因为 OpenClaw 在启动时缓存了 Skills Registry,不会自动监听文件系统变化。

验证方法:
执行openclaw chat --workspace ~/openclaw-workspace --debug,查看 debug 日志中Loaded X skills from ./skills/的 X 值。若安装新 Skill 后 X 未增加,说明未重载。

正确解决方式(非重启):
OpenClaw 提供--reload参数强制重载:

# 在已运行的 Agent 上,发送 SIGUSR1 信号触发重载(Linux/macOS) kill -USR1 $AGENT_PID # 或,停止后重新启动,但指定 --reload openclaw chat --workspace ~/openclaw-workspace --reload

注意:--reload会清空当前 session 的 memory,适合开发调试;生产环境建议用clawhub sync更新后重启 Agent。

4.4 “ModuleNotFoundError: No module named 'xxx'” —— Python 依赖隔离失效

summarizeSkill 报ModuleNotFoundError: No module named 'unstructured',但你在系统中已pip3 install unstructured

根因分析:
OpenClaw 默认调用python3,但unstructured可能安装在python3.10环境,而系统python3指向python3.8。执行python3 -c "import sys; print(sys.path)"查看 Python 模块搜索路径。

解决方案:
为每个 Skill 指定 Python 解释器路径。修改summarize/SKILL.mdentrypoint

entrypoint: | /usr/bin/python3.10 -m pip install unstructured[all-docs]>=0.10.0 /usr/bin/python3.10 ./script.py

然后执行clawhub vet ./skills/summarize验证。

4.5 “Authentication failed for GitHub” —— 环境变量透传失败

githubSkill 报Authentication failed,但shared.envGITHUB_TOKEN正确。

排查链路:

  1. openclaw chat --env-file ./shared.env是否生效?执行openclaw chat --env-file ./shared.env --debug,查看 debug 日志中是否打印Loaded env vars: GITHUB_TOKEN=***
  2. github/script.py是否正确读取环境变量?在script.py开头添加print("GITHUB_TOKEN:", os.getenv('GITHUB_TOKEN'))
  3. openclaw进程是否继承了环境变量?执行ps aux | grep openclaw,确认启动命令包含--env-file

终极修复:
openclaw chat启动前,显式导出环境变量:

export GITHUB_TOKEN="ghp_xxx" export TAVILY_API_KEY="tvly_xxx" openclaw chat --workspace ~/openclaw-workspace

这样,所有子进程(包括 Skills)都能继承。

4.6 Skills 安装失败速查表

现象可能原因排查命令解决方案
clawhub install xxx404 Not FoundSkill slug 错误或镜像未同步clawhub search "xxx"search确认 slug,或换官方源clawhub install xxx --registry https://clawhub.ai
openclaw chat启动慢(>30s)skill-vetter启用了深度扫描clawhub vet --helpskill-vetter/SKILL.md中设置scan_depth: 1降低扫描层级
tavily-search返回空结果TAVILY_API_KEY无效或网络不通curl -H "Authorization: Bearer your_key" https://api.tavily.com/search?q=test用 curl 直连 API 验证 Key 和网络
summarize处理 PDF 报ImportError: libpoppler.so.116Ubuntu 缺少 poppler 库sudo apt-get install libpoppler-cpp-dev安装 poppler 系统依赖
多 Agent 间无法共享 Skills--workspace路径不一致ps aux | grep openclaw | grep workspace统一所有 Agent 的--workspace参数

5. 进阶技巧:构建可维护、可审计的 Skills 管理体系

5.1 用 Git 管理 Skills 目录 —— 版本回滚与协作审计

skills/目录不应是散落的文件夹,而应是 Git 仓库。这带来三大好处:1) Skills 更新可追溯;2) 团队协作时可 PR 审核新 Skill;3) 环境迁移时一键git clone

初始化:

cd ~/openclaw-workspace/skills git init git add . git commit -m "Initial commit: core skills (skill-vetter, self-improving-agent, etc.)" git branch -M main # 关联远程仓库(如 GitHub private repo) git remote add origin https://github.com/your-org/openclaw-skills.git git push -u origin main

日常更新流程:

  1. clawhub install new-skill --workdir ./skills
  2. cd ./skills && git status查看变更
  3. `git add new-skill/ && git commit -m
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/11 4:35:04

锂离子电池组主动平衡方案与BQ25887应用实践

1. 电池单元平衡的核心挑战与解决方案 在锂离子电池组应用中,单体电池之间的电压差异是影响整体性能和寿命的关键因素。当多个电池串联使用时,由于制造工艺、温度分布和使用历史的差异,各单体电池的充电状态(SOC)会逐渐…

作者头像 李华
网站建设 2026/7/11 4:33:51

一招解决《GEO优化客户信息收集表》的收集难题

在做GEO业务的时候,有很多小伙伴可能苦于不能精准的收集甲方客户的信息,进而担心无法更精准的去做GEO优化。 深圳数聚酷科技有限公司经过实践经验总结了一套方法如下: 我们用反推的办法来做这个工作,比方,客户想做的核…

作者头像 李华
网站建设 2026/7/11 4:32:24

CocosCreator UI框架重构实战:从性能优化到分层架构设计

1. 项目概述:为什么我们需要重构UI框架?在CocosCreator项目里摸爬滚打几年,尤其是在项目规模从几百个节点膨胀到几千上万个UI元素之后,我深刻体会到一个事实:原生UI系统在快速原型阶段确实好用,但一旦进入复…

作者头像 李华
网站建设 2026/7/11 4:29:02

如何快速掌握JiYuTrainer:专业用户的极域电子教室破解完整方案

如何快速掌握JiYuTrainer:专业用户的极域电子教室破解完整方案 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 你是否曾在学校机房上课时,被极域电子教室的…

作者头像 李华
网站建设 2026/7/11 4:28:39

AI演员技术解析:从GAN到影视制作的完整实现流程

最近在AI影视制作领域,一个备受争议的话题引起了广泛关注——AI演员Tilly Norwood即将"主演"首部电影《Misaligned》。这一事件不仅引发了美国工会的强烈抵制,更标志着AI技术在影视行业应用进入了一个新的阶段。作为长期关注AI技术发展的从业者…

作者头像 李华
网站建设 2026/7/11 4:28:04

百炼知识库-关键词触发

百炼知识库-关键词触发 数据查询(原结构化数据)类型知识库的索引配置项与文档搜索类不同,不包含分段长度、重叠长度、分句标识符等文本切分参数。其可配置项主要包括: 是否参与检索 / 参与模型回复:按字段分别控制该…

作者头像 李华