# ClawXpert 技能选择与偏好规则

本文说明 ClawXpert 中“工作流默认技能”“技能偏好”“对话技能选择”三类入口的功能边界，以及它们在用户使用时的优先级。

## 三类入口

| 入口           | 用途                                                | 影响范围                  | 是否修改工作流 |
| -------------- | --------------------------------------------------- | ------------------------- | -------------- |
| 工作流默认技能 | 定义这个 Xpert 默认应该带上的技能                   | 这个 Xpert 的默认运行能力 | 是             |
| 技能偏好       | 当前用户决定自己使用这个 ClawXpert 时不使用哪些技能 | 当前用户                  | 否             |
| 对话技能选择   | 当前对话或当前消息临时选择要使用哪些技能            | 当前运行                  | 否             |

这三类入口都会影响模型最终能使用的技能，但它们不是同一层配置。

## 工作流默认技能

工作流默认技能表示这个 Xpert 在设计上默认应该使用哪些技能。

用户进入对话时，如果某个技能是工作流默认技能，它会作为默认能力进入对话选择范围，并可能默认选中。这个行为只表示“工作流建议默认使用它”，不是对话侧把设置写回了工作流。

如果要长期改变某个 Xpert 默认带哪些技能，应修改工作流里的技能配置。

## 对话技能选择

对话技能选择只影响当前运行。

在对话里勾选或取消某个技能，不会修改工作流默认技能，也不会修改当前用户的技能偏好。它只是告诉本次对话或本条消息使用哪些技能。

因此：

- 工作流默认技能可以让对话里默认选中某些技能。
- 对话里取消选中某个技能，不会反向取消工作流里的默认配置。
- 新的对话或刷新后的能力列表，仍会按工作流默认技能和用户技能偏好重新计算。

## 技能偏好

技能偏好表示“当前用户不希望自己的 ClawXpert 使用某些技能”。

它不修改工作流，也不影响其他用户。关闭某个技能偏好后，该技能对当前用户来说不再可用于 ClawXpert：

- 不应作为默认技能自动选中。
- 不应出现在对话技能选择范围里，不能被临时勾选启用。
- 即使工作流默认包含它，当前用户运行 ClawXpert 时也不会使用它。
- 重新开启后，该技能恢复为可用；如果它仍是工作流默认技能，也会重新按默认规则生效。

技能偏好通常在保存后，对后续打开的对话能力列表和后续发送的消息生效。已经开始执行的请求不会因为中途修改偏好而改变。

## 优先级

可以按下面的优先级理解：

```text
当前用户的技能偏好
  > 当前对话技能选择
  > 工作流默认技能
```

含义是：

- 用户关闭的技能优先级最高。只要当前用户关闭了某个技能，它就不应被本用户的 ClawXpert 使用。
- 对话技能选择只能在“当前用户允许使用的技能范围内”做临时选择。
- 工作流默认技能只是默认建议，不能覆盖当前用户的禁用偏好。

## 与工具偏好的区别

技能偏好和工具偏好控制的对象不同。

技能偏好控制的是哪些 skill 可以进入 ClawXpert 的有效技能范围。关闭某个 skill，表示当前用户不希望 ClawXpert 使用这项技能。

工具偏好控制的是工具能不能被模型调用。例如 `read_skill_file` 是一个工具，它是否可调用由工具偏好决定，不由某个具体 skill 的开关决定。

因此：

- 关闭某个 skill，不等于关闭 `read_skill_file`。
- 关闭 `read_skill_file`，不等于关闭所有 skill。
- 如果希望当前用户不使用某项技能，应该关闭技能偏好。
- 如果希望模型不能调用某个工具，应该关闭工具偏好。

## 常见结论

- 工作流里默认勾选的技能，会影响对话里的默认技能状态。
- 对话里取消勾选技能，不会修改工作流。
- 技能偏好只影响当前用户，不影响其他用户。
- 技能偏好优先级高于工作流默认技能和对话临时选择。
- 工具偏好和技能偏好是两套独立控制。
