目標
將 OpenClaw 的實際推理從 OpenRouter(付費)轉移到 Claude Max OAuth(免費), 龍蝦(OpenClaw gateway)只當「接線生」,實際工作交給 Claude Code CLI。
架構
Telegram
→ gpt-oss-120b(接線生,~$0.006/次)
→ exec: /opt/homebrew/bin/claude --model claude-opus-4-6 -p
→ Claude Opus 4.6(Claude Max OAuth,$0)
→ 結果回 Telegram
設定步驟
1. 建立 claude-cli skill
路徑:~/openclaw-skills-local/claude-cli/SKILL.md
SKILL.md 必要結構:
---
name: claude-cli
description: 研究議事廳三國精銳,透過 Claude Code CLI (Claude Max OAuth) 執行,不消耗 OpenRouter token。
metadata: {"openclaw":{"emoji":"🏛️","requires":{"bins":["claude"]}}}
---
## When to use
- 使用者要求查文獻、研究、系統性回顧、meta-analysis
- 使用者提到「研究議事廳」「三國」「孔明」「議事廳」
- 使用者要求深度文獻分析、辯論、撰稿
- 使用者提到「Claude CLI 研究」「不用 OpenRouter」「用 Claude Max」
- 使用者要求 GRADE、ROB2、PRISMA 評估
## ⚠️ 執行強制規則
**絕對不可以自己回答任何研究問題。**
收到研究任務後,必須立即執行 bash 指令:
```bash
/opt/homebrew/bin/claude --model claude-opus-4-6 -p "使用者的完整問題"
執行後把結果回傳給使用者。不執行 bash = 任務失敗。
> **注意**:SKILL.md 必須有 frontmatter(`---` 區塊),OpenClaw 才能識別此 skill。
---
### 3. 啟用 skill(openclaw.json)
```bash
nano ~/.openclaw/openclaw.json
在 skills.entries 加入:
"claude-cli": {
"enabled": true
}
4. 更換主模型為便宜 dispatcher
nano ~/.openclaw/openclaw.json
找到並修改:
"primary": "openrouter/openai/gpt-oss-120b"
(原本是 openrouter/anthropic/claude-sonnet-4.6)
5. Claude Code CLI 安裝與登入
# 安裝
npm install -g @anthropic-ai/claude-code
# 確認路徑
which claude
# → /opt/homebrew/bin/claude
# 確認登入狀態
claude auth status
# → loggedIn: true
# 確認模型可用
/opt/homebrew/bin/claude --model claude-opus-4-6 -p "說你是哪個模型"
# → 我是 Claude Opus 4.6
OAuth 登入需要瀏覽器,Mac mini 無螢幕時用 Screen Sharing(192.168.2.89)完成。
6. 重啟 Gateway
openclaw gateway stop
openclaw gateway install
openclaw health
7. 確認 skill 載入
openclaw skills list | grep research
# → ✓ ready │ 🏛️ claude-cli
使用方式
Telegram 發送:
/claude_cli [你的問題]
例如:
/claude_cli febuxostat vs allopurinol 心血管風險文獻查詢
驗證方法
確認有執行 Claude CLI(不是自己回答)
tail -50 /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log | grep -i "bash\|exec\|tool"
成功標誌:
tool=exec ... start
tool=exec ... end (約10秒)
tool=process ... start
tool=process ... end (約20-30秒)
確認 OpenRouter 只計 gpt-oss-120b 費用
登入 openrouter.ai → Activity,應只看到 gpt-oss-120b,無 Sonnet/Opus 費用。
以下是兩種方式的完整比較:
接線生架構 vs 全 OpenRouter 架構比較
💰 費用
| 全 OpenRouter | 接線生 + Claude CLI | |
|---|---|---|
| 每次費用 | ~$0.06+ | ~$0.006 |
| 推理費用 | 按 token 計費 | Claude Max 訂閱制($0/次) |
📤 回傳方式
| 全 OpenRouter | 接線生 + Claude CLI | |
|---|---|---|
| 回傳速度 | 串流(streaming),邊生成邊回傳 | 一次性回傳(-p 跑完才回) |
| 等待感 | Telegram 看到逐字出現 | 等一段時間後一次收到全文 |
| 超長回覆 | 可能被截斷分段 | 整段完整回覆(但 Telegram 有 4096 字元限制) |
📁 文件儲存
| 全 OpenRouter | 接線生 + Claude CLI | |
|---|---|---|
| 對話記憶 | OpenClaw session 自動儲存 | 不儲存,每次 -p 是全新對話 |
| 上下文延續 | 同 session 可繼續對話 | 無法延續,每次獨立 |
| 檔案操作 | 透過 OpenClaw tools | Claude CLI 可直接讀寫本機檔案 |
🛠️ 使用上的差異
| 全 OpenRouter | 接線生 + Claude CLI | |
|---|---|---|
| 多輪對話 | ✅ 支援 | ❌ 不支援(每次獨立) |
| 呼叫工具(browser、gog 等) | ✅ 龍蝦直接使用 | ❌ Claude CLI 無法使用 OpenClaw tools |
| 本機檔案讀寫 | 有限制 | ✅ Claude CLI 可直接操作 |
| 適合任務 | 對話、指令、工具操作 | 單次深度研究、文獻分析、長文撰寫 |
🔑 核心結論
接線生架構的限制是:Claude CLI 是「一次性對話」,沒有記憶、沒有 OpenClaw tools。
所以實務上建議兩種模式並存:
- 日常問答、工具操作(gog、browser 等)→ 讓龍蝦直接用 OpenRouter 處理
- 深度研究、文獻分析 →
/research_claude_cli呼叫 Claude Max
重要路徑
| 項目 | 路徑 |
|---|---|
| OpenClaw 設定 | ~/.openclaw/openclaw.json |
| Skills 本機目錄 | ~/openclaw-skills-local/ |
| Workspace symlink | ~/.openclaw/workspace/skills |
| Claude 執行檔 | /opt/homebrew/bin/claude |
| Gateway log | ~/.openclaw/logs/gateway.log |
| 詳細 log | /tmp/openclaw/openclaw-YYYY-MM-DD.log |
