knowledge-vault/discussions/technology/OpenClaw/Local初始化/2026-04-09-解决ClaudeCode装的技能...

9.7 KiB
Raw Permalink Blame History

1

我看到后台日志中有 [skills] Skipping skill path that resolves outside its configured root.这样的警告信息。 这个原因是什么? 我昨天给Claude Code安装技能时Claude Code顺便也装了一些链接的给到OpenClaw但是OpenClaw用不了么

这个怎么解决在OpenClaw里重新装一遍么

只需要回答我的问题,确定好问题和解决方案后,经过我确认再做操作。

这个警告的意思是OpenClaw 在加载技能时,发现某个技能的路径指向了它允许的根目录之外的位置,所以跳过了它。

原因分析: Claude Code 和 OpenClaw 有各自的技能目录配置。Claude Code 安装时把技能放到了它的目录,而链接指向的位置可能超出了 OpenClaw 配置的 skills.root 范围,所以 OpenClaw 拒绝加载。

解决方案: 不需要在 OpenClaw 里重新装一遍。问题出在路径配置上——只要把技能的链接/安装位置放到 OpenClaw 能找到的地方就行。

我先看一下你当前的技能目录结构,确认具体是哪个技能出了问题,以及它实际安装在哪里。好,我看到了。警告出现了 17 次,说明有 17 个技能路径指向了 OpenClaw 的允许范围之外。从列表来看,当前只有 32/74 个技能ready其他都跳过了。

让我看看具体的技能目录结构,找出哪些路径出了问题:

找到原因了。

问题根源:

  • C:\Users\admin\.openclaw\skills\ 里有 18 个技能,但它们都是 Junction目录联接,指向 C:\Users\admin\.agents\skills\ 里的实际位置
  • 当 OpenClaw 尝试加载这些技能时,它会解析 Junction 的真实路径,发现指向 C:\Users\admin\.agents\skills —— 这个路径在 OpenClaw 的 workspace 根目录(D:\OpenClaw-Workspace)之外
  • OpenClaw 的安全策略是:workspace 技能目录下的技能,其真实路径必须在 workspace 根目录内。因此这些 Junction 技能全部被跳过

好消息: 这 17 个技能其实已经正常加载了——它们来自 ~/.agents/skills(显示为 agents-skills-personal 源),不在 workspace 内,所以不受该路径限制。

解决方案: 删除 C:\Users\admin\.openclaw\skills 里那 17 个指向 ~/.agents/skills 的 Junction。OpenClaw 会继续从 ~/.agents/skills 正常加载它们,警告就会消失。

需要我执行这个清理操作吗?

2

确认一下

OpenClaw 会继续从 ~/.agents/skills 正常加载它们

这个在哪里进行的描述?

在技能文档里,叫 "Personal agent skills"

~/.agents/skills — Personal agent skills, apply across workspaces on that machine

以及加载优先级:

<workspace>/skills<workspace>/.agents/skills~/.agents/skills~/.openclaw/skills → bundled skills → skills.load.extraDirs

~/.agents/skills 的优先级高于 ~/.openclaw/skills,所以即使你删掉 ~/.openclaw/skills 里的 JunctionOpenClaw 仍然会从 ~/.agents/skills 加载它们 —— Junction 只是重复了一份,不会丢失任何技能。

3

那么当前OpenClaw的workspace设置在C:\Users\admin么?

不是。根据配置文件:

"agents": {
  "defaults": {
    "workspace": "D:\\OpenClaw-Workspace"
  }
}

workspace 是 D:\OpenClaw-WorkspaceC:\Users\admin 只是用户主目录(~OpenClaw 的配置和个人数据放在那里,但 workspace 是单独指定的。

4

<workspace>/skills<workspace>/.agents/skills~/.agents/skills~/.openclaw/skills → bundled skills → skills.load.extraDirs

那么写全路径的话,按优先级划分:

  1. D:\OpenClaw-Workspace\skills
  2. D:\OpenClaw-Workspace\agents\skills
  3. C:\Users\admin\agents\skills
  4. C:\Users\admin.openclaw\skills

这些路径下的Skills都会加载我这样理解对么有没有补充

基本正确,但有一点需要纠正:

当前实际存在的路径(根据我的检查):

# 路径 实际存在? 说明
1 D:\OpenClaw-Workspace\skills findskill-vetter-1-0-0xiucheng-self-improving-agent
2 D:\OpenClaw-Workspace\.agents\skills 不存在
3 C:\Users\admin\.agents\skills 有 17 个技能(agent-browserslack 等)
4 C:\Users\admin\.openclaw\skills 有 18 个 Junction指向 #3

所以你列表里的 #2D:\OpenClaw-Workspace\.agents\skills)实际上不存在,没有加载任何东西。

真正在加载的就是 #1、#3、和 #4只是 #4 的 Junction 被跳过了)。

5

好的,你的检查没有问题。 那么这四个路径的意义是什么?#2 的我知道这里是和Claude Code共用的其他的呢

路径 意义 当前状态
D:\OpenClaw-Workspace\skills 项目级技能,只属于当前 workspace 有内容(findskill-vetter 等)
D:\OpenClaw-Workspace\.agents\skills Per-agent 技能,属于 workspace 下的特定 agent 不存在(空目录)
C:\Users\admin\.agents\skills 用户级个人技能,该用户所有 agent 共享,会同步到其他机器 有内容17 个)
C:\Users\admin\.openclaw\skills 机器级托管技能,该机器上所有 agent 共享,通过 ClawHub 安装 有内容18 个 Junction指向 #3

几个补充说明:

  • #1 和 #2 是 workspace 内部的,#3 和 #4 是全局的(跨 workspace
  • #3.agents/skills)设计为跟随用户漫游(同步到其他机器),.openclaw/skills 是机器本地共享的
  • 之前你提到的 Claude Code 共用的是 #3~/.agents/skills),因为 Claude Code 也读这个路径,所以安装到这里两边都能用
  • #4 的 Junction 是之前从 #3 复制过来的,现在属于冗余(跳过了但不影响功能)

6

明白了,那么现在

  1. 删除 C:\Users\admin\.openclaw\skills 里那 17 个指向 ~/.agents/skills 的 Junction。
  2. D:\OpenClaw-Workspace\skills下面的三个技能,也应当归属于公共技能,移动到C:\Users\admin\.openclaw\skills

警告没了。现在 openclaw skills list 不再出现 "Skipping skill path" 警告17 个 Junction 已清理,三个技能已移动到 C:\Users\admin\.openclaw\skills

结果汇总:

  • D:\OpenClaw-Workspace\skills:只剩 agent-browser-clawdbot(项目独有技能)
  • C:\Users\admin\.openclaw\skills:原有 agent-browser-clawdbot + 新移入的 findskill-vetter-1-0-0xiucheng-self-improving-agent(共 4 个)

7

现在把本次讨论的内容做一个总结,包括四层技能路径的用途,现在主要集中在后两层上的技能做一个介绍。 这个总结是给我/用户用的,以便我了解现在哪些技能已经安装了。 格式markdown

# OpenClaw 技能系统总结

## 四层技能路径(按优先级从高到低)

| 层级 | 路径 | 用途 | 当前状态 |
|:---:|------|------|---------|
| 1 | `D:\OpenClaw-Workspace\skills` | **项目级技能** — 仅属于当前 workspace绑定项目 | ⚠️ 几乎空(仅剩 `agent-browser-clawdbot` |
| 2 | `D:\OpenClaw-Workspace\.agents\skills` | **Per-agent 技能** — workspace 下特定 agent 共享Claude Code 共用 | ❌ 不存在 |
| 3 | `C:\Users\admin\.agents\skills` | **用户级个人技能** — 该用户所有 agent 共享,会同步到其他机器 | ✅ 17 个技能 |
| 4 | `C:\Users\admin\.openclaw\skills` | **机器级托管技能** — 该机器所有 agent 共享,通过 ClawHub 安装 | ✅ 4 个技能(含 1 个重复) |

> 加载优先级1 > 2 > 3 > 4 > bundled > extraDirs

---

## 当前已安装的技能

### 用户级技能 — `~/.agents/skills`17 个)

**编程 & 部署**
- `agent-browser` — 浏览器自动化(基于 Vercel agent-browser CLI
- `agentcore` — AWS Bedrock AgentCore 云浏览器
- `deploy-to-vercel` — 部署到 Vercel
- `electron` — 自动化 Electron 桌面应用VS Code、Slack、Discord 等)
- `pdf` — PDF 读写操作
- `skill-creator` — 创建和优化技能
- `vercel-cli-with-tokens` — Vercel CLItoken 认证)

**React / 前端**
- `frontend-design` — 创建生产级前端界面
- `vercel-composition-patterns` — React 组合模式
- `vercel-react-best-practices` — React/Next.js 性能优化
- `vercel-react-native-skills` — React Native 最佳实践
- `vercel-react-view-transitions` — React View Transition API
- `vercel-sandbox` — Vercel Sandbox 浏览器自动化
- `web-design-guidelines` — Web 界面规范审查

**工具类**
- `dogfood` — Web 应用 QA 测试 / 找 Bug
- `find-skills` — 发现和安装新技能
- `slack` — Slack 工作区交互

---

### 机器级技能 — `~/.openclaw/skills`4 个)

| 技能 | 说明 |
|------|------|
| `agent-browser-clawdbot` | agent-browser 的自定义封装,专注 AI Agent 工作流 |
| `find` | 多源渐进式搜索定位 |
| `skill-vetter-1-0-0` | 技能安全审查(安装前检查风险) |
| `xiucheng-self-improving-agent` | 自我改进 Agent 系统 |

---

## 本次操作记录

1. **清理了 17 个冗余 Junction**`~/.openclaw/skills` 下指向 `~/.agents/skills` 的目录联接(导致 "Skipping skill path" 警告)
2. **重组了项目技能**:将 `D:\OpenClaw-Workspace\skills` 下的 `find`、`skill-vetter-1-0-0`、`xiucheng-self-improving-agent` 移至 `~/.openclaw/skills`

---

## 建议

- **新增技能**优先安装到 `~/.agents/skills`#3可跨机器同步
- **项目特有技能**才放到 `D:\OpenClaw-Workspace\skills`#1
- `~/.openclaw/skills`#4适合存放仅本地使用的技能或不需同步的定制封装