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

206 lines
9.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`么?
不是。根据配置文件:
```json
"agents": {
"defaults": {
"workspace": "D:\\OpenClaw-Workspace"
}
}
```
workspace 是 `D:\OpenClaw-Workspace`。`C:\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` | ✅ | 有 `find`、`skill-vetter-1-0-0`、`xiucheng-self-improving-agent` |
| 2 | `D:\OpenClaw-Workspace\.agents\skills` | ❌ | 不存在 |
| 3 | `C:\Users\admin\.agents\skills` | ✅ | 有 17 个技能(`agent-browser`、`slack` 等) |
| 4 | `C:\Users\admin\.openclaw\skills` | ✅ | 有 18 个 Junction指向 #3 |
所以你列表里的 **#2**`D:\OpenClaw-Workspace\.agents\skills`)实际上不存在,没有加载任何东西。
真正在加载的就是 #1、#3、和 #4(只是 #4 的 Junction 被跳过了)。
# 5
好的,你的检查没有问题。
那么这四个路径的意义是什么?#2 的我知道这里是和Claude Code共用的其他的呢
| 路径 | 意义 | 当前状态 |
|------|------|----------|
| `D:\OpenClaw-Workspace\skills` | **项目级技能**,只属于当前 workspace | ✅ 有内容(`find`、`skill-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` + 新移入的 `find`、`skill-vetter-1-0-0`、`xiucheng-self-improving-agent`(共 4 个)
# 7
现在把本次讨论的内容做一个总结,包括四层技能路径的用途,现在主要集中在后两层上的技能做一个介绍。
这个总结是给我/用户用的,以便我了解现在哪些技能已经安装了。
格式markdown
```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适合存放仅本地使用的技能或不需同步的定制封装
```