# 模式切换指令

本节介绍切换 AI 行为模式的指令：YOLO、Plan、漏洞猎人、按需工具搜索与工具显示密度。

返回：[指令面板说明](./09.0.指令面板说明.md)

---

## `/yolo`

切换 YOLO 模式（自动批准模式）。

- **作用**: 开启/关闭工具调用自动批准，无需手动确认
- **使用场景**: 信任 AI 操作时快速执行，或需要人工审核时关闭
- **状态**: 状态保存在 localStorage，重启后保持
- **示例**: 输入 `/yolo` 切换模式

## `/plan`

切换 Plan 模式（计划模式）。

- **作用**: 开启/关闭计划模式，AI 会先制定详细计划再执行
- **使用场景**: 复杂任务需要先规划，或简单任务直接执行
- **状态**: 状态保存在 localStorage
- **示例**: 输入 `/plan` 切换模式

## `/vulnerability-hunting`

切换漏洞猎人模式。

- **作用**: 开启/关闭漏洞猎人模式，这是一个专业的安全分析代理
- **功能**:
  - 系统化的 5 阶段漏洞分析流程
  - 生成可执行的验证脚本
  - 创建详细的安全分析报告
  - 支持多种漏洞类型检测（逻辑错误、安全漏洞等）
- **使用场景**: 进行专业的安全审计或代码漏洞检测
- **状态**: 状态保存在 localStorage
- **报告位置**: `.snow/vulnerability-hunting/docs/`
- **脚本位置**: `.snow/vulnerability-hunting/scripts/`
- **详细说明**: 参考 [漏洞猎人模式](./11.漏洞猎人模式.md)
- **示例**: 输入 `/vulnerability-hunting` 切换模式

## `/tool-search`

切换工具搜索模式。

- **作用**: 开启/关闭 Tool Search（按需搜索并加载工具）
- **功能**:
  - 开启后优先按需发现工具，减少一次性注入的工具数量
  - 关闭后会直接提供完整工具集合
  - 当前状态会持久化到项目内的 `.snow/settings.json`
- **使用场景**: 需要在"节省上下文"和"直接暴露全部工具"之间切换时
- **示例**: 输入 `/tool-search` 切换模式

## `/image-compress`

切换图片上下文压缩模式。

- **作用**: 开启后，在执行 `/compact` 或触发自动压缩时，将主会话的历史记录归档并渲染为 PNG 图片，再作为上下文发送给模型
- **工作方式**: 历史记录会保留本地文本归档；后续压缩会使用归档与新消息重新渲染，不会嵌套使用旧的图片上下文
- **前置条件**: 当前模型必须支持视觉。若配置中明确将 `supportsVision` 设为 `false`，Snow CLI 会回退到标准文本压缩，不会生成 PNG 上下文
- **模式关系**: 与混合压缩模式互斥；开启图片压缩会自动关闭混合压缩
- **状态**: 持久化于项目内的 `.snow/settings.json`（`imageCompressEnabled` 字段）
- **使用场景**: 视觉模型可用且希望在较长对话中以图片形式保留更多历史上下文时
- **示例**: 输入 `/image-compress` 开启或关闭模式

## `/tool-display`

切换工具调用显示密度。

- **作用**: 控制工具调用及结果在对话中的渲染方式，共三档：`full`、`compact`、`hidden`
  - `full`（默认）：显示工具名 + 参数 + 完整结果
  - `compact`：仅显示工具名 + 简要状态摘要
  - `hidden`：完全隐藏工具调用过程，只显示 AI 回复
- **参数**:
  - 无参数或 `status`：查看当前显示模式
  - `full` / `compact` / `hidden`：切换到指定模式
- **状态**: 持久化于 `~/.snow/theme.json`（`toolDisplayMode` 字段），实时同步至界面
- **使用场景**: 任务中工具调用过多时降低视觉噪音，或完全隐藏工具活动以让对话聚焦于 AI 回复
- **示例**:
  - `/tool-display compact` — 将工具调用折叠为一行状态
  - `/tool-display hidden` — 隐藏所有工具活动
  - `/tool-display` — 查看当前模式

> **相关：工具标题标记 `toolIcons`**  
> 控制聊天区工具标题的**类型标记**（`[?]`/`[$]`/`[R]`）与**状态前缀**（默认 `[ ]`/`✓`/`✗`），与 `toolDisplayMode` 独立；**不是**底部 StatusLine。  
> 配置字段：`~/.snow/theme.json` -> `toolIcons`（默认 `true` = 类型标记开启 + 紧凑状态前缀）。  
> 命令：`/tool-icons`、`/tool-icons status on|off`、`snow cmd theme set toolIcons=status:success:✓` 等。  
> 详见 [08.主题设置](./08.主题设置.md#工具图标toolicons操作)。

## `/tool-icons`

配置工具标题的 ASCII 类型标记与状态前缀（与 `/tool-display` 独立）。

- **作用**: 控制标题前的状态标记（`[ ]`/`✓`/`✗`/`[!]`/`[..]`）与类型标记（`[?]`/`[$]`/`[R]` 等），并可分别覆盖
- **参数**:
  - 无参数或 `status`：查看类型标记与状态前缀启停、当前字符与覆盖
  - `on` / `off`：开启或关闭**类型**标记
  - `status on` / `status off`：开启或关闭**状态前缀**
  - `status:<key>:<marker>`：覆盖状态标记（`pending` / `success` / `error` / `warning` / `running`）
  - `status:<key>:`：恢复该状态默认标记（成功状态默认为 `✓`，错误状态默认为 `✗`）
  - `<key>:<marker>`：简写，当 `<key>` 为上述保留状态名时等同 `status:...`
  - `<tool>:<marker>`：为指定工具设置类型标记覆盖
  - `<tool>:`：清除该工具类型覆盖（恢复内置标记）
- **状态**: 持久化于 `~/.snow/theme.json`（`toolIcons` 字段），立即作用于**新**工具标题；恢复会话时会按当前配置重建历史工具标题
- **使用场景**: 偏好简洁 `✓ terminal-execute`、隐藏类型标记，或自定义状态字符
- **示例**:
  - `/tool-icons off` — 关闭类型标记（状态前缀仍默认开启）
  - `/tool-icons status off` — 隐藏状态前缀
  - `/tool-icons status:success:✓` — 设置成功标记
  - `/tool-icons terminal-execute:[$]` — 覆盖终端工具类型标记
  - `/tool-icons` — 查看当前状态

也可使用 session-command：`snow cmd theme set toolIcons=on|off`、`toolIcons=status:off` 等（见主题设置文档）。

## `/tool-names`（别名 `/tool-name`）

自定义聊天区工具标题显示名（**无内置默认译名**，未配置则显示技术 ID）。

> **官方路径**：请用本命令或 `snow cmd theme set toolDisplayNames=…`，**不要**用 `filesystem-*` 整文件覆盖 `~/.snow/theme.json`（易冲掉其它主题字段）。

- **作用**: 为指定工具设置友好显示名；外挂 MCP / skills 同样可覆盖
- **参数**:
  - 无参数或 `status`：列出当前覆盖
  - `<tool>:<显示名>`：设置一项
  - `<tool>:`：清除一项
  - 多项空格/逗号分隔：批量设置（一次写入）
  - `clear` / `reset`：清除全部覆盖
- **状态**: 经 theme API 写入 `toolDisplayNames`；仅影响**新**工具标题
- **示例**:
  - `/tool-names` 或 `/tool-name`
  - `/tool-names websearch-search:网页搜索`
  - `/tool-names filesystem-read:阅读文件 terminal-execute:终端`
  - `/tool-names clear`

session-command：`snow cmd theme set toolDisplayNames=websearch-search:网页搜索`（单项；批量优先 `/tool-names a:甲 b:乙`）。

## `/think-display`

切换思考内容显示模式。

- **作用**: 控制模型思考内容在对话中的渲染方式，共两档：`full`、`compact`
  - `compact`（默认）：将思考内容缩减（保留首尾若干行并以省略号衔接）后移入静态区
  - `full`：将全部思考内容移入静态区（原始行为）
- **参数**:
  - 无参数或 `status`：查看当前显示模式
  - `full` / `compact`：切换到指定模式
- **状态**: 持久化于 `~/.snow/theme.json`（`thinkDisplayMode` 字段），实时同步至界面
- **使用场景**: 思考内容过长导致对话拥挤时，使用 `compact` 模式在保留关键思考上下文的同时降低视觉噪音
- **示例**:
  - `/think-display full` — 将全部思考内容移入静态区
  - `/think-display compact` — 缩减思考内容后移入静态区
  - `/think-display` — 查看当前模式
