# 通过工具白名单和黑名单限制可用工具

## 使用场景

如果你希望某类会话只能使用少量安全工具，或者想屏蔽高风险工具，可以使用 `tool_group` + `tool_groups` 定义工具白名单和黑名单。

## 操作步骤

1. 打开 Jarvis 全局配置文件：`~/.jarvis/config.yaml`。
2. 定义一个工具组，组内可以使用：
   - `use`：白名单，只允许这些工具
   - `dont_use`：黑名单，从可选工具中排除这些工具
3. 例如：

   ```yaml
   tool_group: safe_mode

   tool_groups:
     - safe_mode:
         use:
           - read_code
           - edit_file
           - execute_script
         dont_use:
           - virtual_tty
   ```

4. 保存配置文件。
5. 重新启动会话。
6. 系统会先加载工具，再根据当前激活的 `tool_group` 应用过滤。
7. 如果你设置了 `use`，系统会优先只保留白名单中的工具；之后再应用 `dont_use` 做额外排除。

## 你会看到的提示与反馈

- 生效后，你会发现当前会话里可见或可调用的工具数量明显变化。
- 如果 `use` 中写了不存在的工具名，系统会给出缺失工具相关警告。
- 如果 `dont_use` 里包含系统必须保留的工具，这些必需工具仍会被保留，不会真的被移除。

## 注意事项

- 配置项名称分别是 `tool_group` 和 `tool_groups`。
- `tool_group` 表示当前激活哪一个工具组；`tool_groups` 负责定义各组内容。
- 一旦某个组设置了 `use`，含义就是“只允许这些工具”，不再是默认全开。
- 黑名单只能排除可选工具，不能移除系统强制保留的必需工具。
- 如果你只是想切换不同场景的工具集，建议定义多个组，而不是频繁手改单个工具名。
