switch-modes

TotalClaw 作者 serudda

动态切换人工智能模型以优化成本和性能。当用户说出“eco 模式”、“平衡模式”、“智能模式”或“最大模式”等模式命令时,或者当用户想要使用“/modes status”检查当前模式或使用“/modes setup”配置模式时使用。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~serudda-switch-modes
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~serudda-switch-modes/file -o serudda-switch-modes.md
## 概述(中文)

动态切换人工智能模型以优化成本和性能。当用户说出“eco 模式”、“平衡模式”、“智能模式”或“最大模式”等模式命令时,或者当用户想要使用“/modes status”检查当前模式或使用“/modes setup”配置模式时使用。

## 原文

# Switch Modes

Dynamically switch between AI models to optimize costs and performance.

## When to Use This Skill

Activate this skill when the user mentions:

- Mode switching commands: `eco mode`, `balanced mode`, `smart mode`, `max mode`
- Status check: `/modes status`
- Configuration: `/modes setup`

## How It Works

The skill manages 4 predefined modes, each mapped to a specific model:

- **eco** → Cheapest model (for summaries, quick questions)
- **balanced** → Daily driver model (for general work)
- **smart** → Powerful model (for complex reasoning)
- **max** → Most powerful model (for critical tasks)

Configuration is stored in `~/.openclaw/workspace/switch-modes.json`.

## Step-by-Step Instructions

### 1. Detect Mode Commands

When the user message contains any of these patterns:

- `eco mode` or `eco` (standalone)
- `balanced mode` or `balanced`
- `smart mode` or `smart`
- `max mode` or `max`
- `/modes status`
- `/modes setup`

### 2. Handle Setup Command (`/modes setup`)

If the configuration file doesn't exist or user requests setup:

1. Use `AskUserQuestion` to gather model preferences for each mode:
   - **ECO mode**: Recommend `anthropic/claude-3.5-haiku`
   - **BALANCED mode**: Recommend `anthropic/claude-sonnet-4-5`
   - **SMART mode**: Recommend `anthropic/claude-opus-4-5`
   - **MAX mode**: Recommend `anthropic/claude-opus-4-6` or `openai/o1-pro`

2. Create/update `~/.openclaw/workspace/switch-modes.json` with the structure:

```json
{
	"eco": "model-id",
	"balanced": "model-id",
	"smart": "model-id",
	"max": "model-id"
}
```

3. Confirm setup completion to the user.

### 3. Handle Status Command (`/modes status`)

1. Read the OpenClaw config at `~/.openclaw/openclaw.json` to get current model
2. Read `~/.openclaw/workspace/switch-modes.json` to get mode mappings
3. Determine which mode is currently active by matching the current model
4. Display: `✅ Currently in [MODE] mode using [MODEL_ID]`

### 4. Handle Mode Switch Commands

When user requests a mode switch:

1. **Read configuration**:

   ```bash
   cat ~/.openclaw/workspace/switch-modes.json
   ```

   If file doesn't exist, prompt user to run `/modes setup` first.

2. **Get the target model** from the config based on requested mode (eco/balanced/smart/max)

3. **Update OpenClaw config**:
   - Read current config: `~/.openclaw/openclaw.json`
   - Update the `model` field with the new model ID
   - Write back to `~/.openclaw/openclaw.json`

4. **Confirm to user**:
   ```
   ✅ [MODE] mode activated
   Now using: [MODEL_ID]
   ```

## Examples

### Example 1: Mode Switch

```
User: eco mode
Agent: [reads switch-modes.json, gets model for "eco"]
Agent: [updates openclaw.json with new model]
Agent: ✅ ECO mode activated
      Now using: anthropic/claude-3.5-haiku
```

### Example 2: Status Check

```
User: /modes status
Agent: [reads openclaw.json for current model]
Agent: [reads switch-modes.json for mode mappings]
Agent: ✅ Currently in BALANCED mode using anthropic/claude-sonnet-4-5
```

### Example 3: First Time Setup

```
User: /modes setup
Agent: [uses AskUserQuestion for each mode]
Agent: [creates ~/.openclaw/workspace/switch-modes.json]
Agent: ✅ Setup complete! You can now use:
      - eco mode
      - balanced mode
      - smart mode
      - max mode
```

## File Locations

- **Configuration**: `~/.openclaw/workspace/switch-modes.json`
- **OpenClaw Config**: `~/.openclaw/openclaw.json`
- **Example Config**: See `example-config.json` in skill directory

## Common Edge Cases

1. **Config file missing**: Prompt user to run `/modes setup`
2. **Invalid model ID**: Show error and ask user to reconfigure that mode
3. **Model not available**: Suggest checking API keys and model access in OpenClaw
4. **Ambiguous input**: If just "eco" or "smart" without "mode", still treat as mode switch command
5. **Case insensitive**: Accept "ECO MODE", "Eco Mode", "eco mode" all the same

## Important Notes

- Mode switching is instant - no restart required
- Changes only affect the current session's default model
- Preserve all other settings in `openclaw.json` when updating model
- Always validate JSON before writing config files
- Use absolute paths: `~/.openclaw/...` not relative paths

## Reference

For detailed troubleshooting, supported models list, and FAQ, see [./REFERENCE.md](references/REFERENCE.md).