# OpenClaw

#### Introduction

[OpenClaw](https://openclaw.ai/) 是一款開源的個人 AI 數位助理，讓你在各種通訊平台上擁有專屬的智慧管家。無論是自動回覆訊息、整理資訊、串接工作流程，OpenClaw 都能幫你搞定。

- 中文手冊：[OpenClaw：在 WhatsApp 與 Telegram 輕鬆使用你的 AI Agent | OpenClaw](https://open-claw.bot/docs/zh-tw/)
- 李宏毅: [解剖小龍蝦 — 以 OpenClaw 為例介紹 AI Agent 的運作原理 - YouTube](https://www.youtube.com/watch?v=2rcJdFuNbZQ)
- [為什麼我拖了一個多月才開始使用OpenClaw？ （附接入飛書完整詳細教程，新手必看）](https://codelove.tw/@tony/post/am2Zoq)
- [OpenClaw 教學：26 個 Tools + 53 個 Skills 完整指南 | WenHao Yu](https://yu-wenhao.com/zh-TW/blog/openclaw-tools-skills-tutorial/)
- [OpenClaw：在 WhatsApp 與 Telegram 輕鬆使用你的 AI Agent | OpenClaw](https://open-claw.bot/docs/zh-tw/)
- [OpenClaw 中文教程 - 个人 AI 智能体开发一站式社区](https://openclawai.cc/)
- [OpenClaw 新手必备！安装实用Skills，模型选择，浏览器自动化等！ – 零度博客](https://www.freedidi.com/23203.html)

<span style="color: rgb(187, 187, 187); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 1.4em; font-weight: 400;">Resources</span>

- [Awesome OpenClaw Agents](https://github.com/mergisi/awesome-openclaw-agents)
- [ClawHub](https://docs.openclaw.ai/zh-CN/tools/clawhub)
- [OpenClaw CLI](https://skill-deploy-wwjmzwrcj4.vercel.app/)
- [建議模型列表](https://pinchbench.com/)
- [各種專家級 AI 助理](https://github.com/msitarzewski/agency-agents)
- [193 個即插即用的 AI 專家角色](https://github.com/jnMetaCode/agency-agents-zh)

#### Installation

- [【保姆级】OpenClaw 全网最细教学：安装→Skills实战→多Agent协作，1 小时全精通！ | 小林的博客-AI学长](https://ai.linbintalk.com/article/ytopenclaw)
- YT: [【保姆级】OpenClaw 全网最细教学：安装→Skills实战→多Agent协作，1 小时全精通！ - YouTube](https://www.youtube.com/watch?v=2ZZCyHzo9as)

##### With Docker

- [OpenClaw Docker 部署完全指南：从零搭建你的私有 AI Agent](https://ofox.ai/zh/blog/openclaw-docker-deployment-guide-2026/)
- [Self-hosting OpenClaw with Docker and Tailscale on a $5 VPS](https://heyabhishek.com/blog/self-hosting-openclaw-docker-tailscale/)
- [Docker 部署 OpenClaw：从踩坑到跑通的完整记录 | Yuxu Ge](https://yuxu.ge/blog/2026/2026-02-25-openclaw-docker-deploy-zh.html)

```bash
git clone https://github.com/openclaw/openclaw
cd openclaw
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
./scripts/docker/setup.sh
```

##### Debian 13

Run as root

```bash
# Install Node.js
# Run as root
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
apt install nodejs
```

Run as non-root

```bash
# Switch to non-root account
# NOTE: Node.js 22.14 or newer is required for openclaw
su - <your-username>
node -v
npm --version

mkdir -p "$HOME/.npm-global"
npm config set prefix "$HOME/.npm-global"
npm prefix -g
export PATH="$HOME/.npm-global/bin:$PATH"
```

Edit: ~/.bashrc

```shell
export PATH="$HOME/.npm-global/bin:$PATH"
```

Install openclaw

```bash
npm install -g openclaw@latest
openclaw onboard --install-daemon
```

#### Post-Install

##### 訂製 AI 助理

使用 3 個檔案量身訂製助理

- SOUL.md — 身份、記憶、溝通風格、關鍵規則
- AGENTS.md — 核心使命、技術交付物、工作流程
- IDENTITY.md — 名稱與簡介

##### Timezone

```bash
openclaw config set agents.defaults.userTimezone "Asia/Taipei"
```

#### CLI Commands

##### Check Service

```bash
docker compose run --rm openclaw-cli status
docker compose run --rm openclaw-cli gateway status
```

##### Pairing required

Approve the device

```bash
docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <request-id>
```

##### Model Configuration

```bash
# 主要模型設置
openclaw models list
openclaw models status
openclaw models set <provider/model>
openclaw models set-image <provider/model>

# 備用模型設置
openclaw models fallbacks list
openclaw models fallbacks add <provider/model>
openclaw models fallbacks remove <provider/model>
openclaw models fallbacks clear
```

#### Telegram

##### Configuration

Create a Bot from Telegram

1. Open Telegram
2. Chat with `@BotFather`
3. Run `/newbot` , follow prompts to create your bot, and save the token. 
    - Bot Name: &lt;whatever&gt;
    - Bot Username: &lt;unique-name and must end in 'bot'&gt;

Go to OpenClaw CLI

```bash
docker compose run --rm openclaw-cli channels add --channel telegram --token "<bot-token>"
```

Go to Telegram

1. Open you-bot
2. Send "Hi"
3. Getting a pairing code "XXXXX"

Go to OpenClaw CLI

```bash
docker compose run --rm openclaw-cli pairing list telegram
docker compose run --rm openclaw-cli pairing approve telegram XXXXX
```

Done

##### Bot Commands

- `/btw` : 題外話，在不打斷目前對話（主任務），可以臨時問一個小問題，其內容不會進入主對話的上下文。
- `/subagent` : 子代理，在不打斷目前對話（主任務），呼叫另一個代理執行其他任務，其任務結果會納入主任務的上下文。
- `/new` : 新對話，建立新的對話（任務），全新的上下文，可節省 Token 用量。

#### Gateway

##### Local only (default)

- 遠端存取可以使用 SSH Port Forwarding

`~/.openclaw/openclaw.json` :

```json
  "gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "loopback",
    "controlUi": {
      "allowedOrigins": [
        "http://localhost:18789",
        "http://127.0.0.1:18789"
      ]
    },
    "auth": {
      "mode": "token",
      "token": "YOUR-OPENCLAW-TOKEN"
    },
```

##### Tailscale

<p class="callout info">openclaw.json 的 tailscale 功能不適用在 Docker 環境。</p>

1. Tailscale Console: Enable **HTTPS Certicficates**
2. OpenClaw Host: Run 
    1. `sudo tailscale serve --bg --https=443 127.0.0.1:18789`
    2. `tailscale serve status`
3. Change `~/.openclaw/openclaw.json` as follows
4. Connect to tailnet, and then visit https://your-openclaw-device.tailnet-domain/?token=YOUR-TOKEN , such as *https://dockers-vm.tailcb58c9.ts.net/* ?token=YOUR-TOKEN

`~/.openclaw/openclaw.json` :

- mode: local
- bind: loopback
- trustedProxies: \["127.0.0.1", "::1"\]
- allowedOrigins: https://yourdevice.tailnet-domain

```json
  "gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "loopback",
    "trustedProxies": ["127.0.0.1", "::1"],
    "controlUi": {
      "allowedOrigins": [
        "http://localhost:18789",
        "http://127.0.0.1:18789",
        "https://yourdevice.tailnet-domain"
      ]
    },
    "auth": {
      "mode": "token",
      "token": "YOUR-OPENCLAW-TOKEN"
    },
```

openclaw.json 的 tailscale 模式比較（不適用在 Docker 環境）

<table border="1" id="bkmrk-%E6%A8%A1%E5%BC%8F-%E5%AD%98%E5%8F%96%E7%AF%84%E5%9C%8D-https-%E8%AA%8D%E8%AD%89-%E9%81%A9%E7%94%A8%E5%A0%B4" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 20%;"></col><col style="width: 20%;"></col><col style="width: 20%;"></col><col style="width: 20%;"></col><col style="width: 20%;"></col></colgroup><tbody><tr><td>模式</td><td>存取範圍</td><td>HTTPS</td><td>認證</td><td>適用場景</td></tr><tr><td>serve</td><td>限 tailnet</td><td>自動</td><td>Tailscale identity headers/Token/Password</td><td>個人使用</td></tr><tr><td>funnel</td><td>公眾網路</td><td>自動</td><td>Password</td><td>Webhook</td></tr><tr><td>bind: "tailnet"</td><td>限 tailnet</td><td>無</td><td>Token/Password</td><td>低延遲</td></tr><tr><td>off</td><td>限 localhost</td><td>無</td><td>Token</td><td>SSH Port Forward</td></tr></tbody></table>

#### Skill

##### 3rd Party

- [Architecture Diagram Generator](https://github.com/Cocoon-AI/architecture-diagram-generator): 繪製架構圖並輸出 HTML 格式。
- [Khazix Skills](https://github.com/KKKKhazix/khazix-skills): 橫縱分析法深度研究。

#### FAQ

##### Context limit exceeded

> Context limit exceeded. I've reset our conversation to start fresh - please try again.
> 
> To prevent this, increase your compaction buffer by setting agents.defaults.compaction.reserveTokensFloor to 20000 or higher in your config.

Cause: 目前使用模型的 Context Window 與 壓縮緩衝參數不匹配。

Solution: 以 Gemma4-31B-it 為例

Edit: ~/.openclaw/openclaw.json

- `contextWindow` : 128000
- `reserveTokensFloor` : 40000

```json
  "models": {
    "mode": "merge",
    "providers": {
      "custom-cpamc": {
        "baseUrl": "http://192.168.31.89:8317/v1",
        "api": "openai-completions",
        "apiKey": "sk-cvgaT1Z3EhJRBB5pu",
        "models": [
          {
            "id": "gemma-4-31b-it",
            "name": "gemma-4-31b-it (Custom Provider)",
            "contextWindow": 128000,
            "maxTokens": 4096,
            "input": [
              "text"
            ],
```

```json
  "agents": {
    "defaults": {
      "workspace": "/home/alang/.openclaw/workspace",
      "model": {
        "primary": "custom-cpamc/gemma-4-31b-it"
      },
      "models": {
        "custom-cpamc/gemma-4-31b-it": {}
      },
      "compaction": {
        "reserveTokensFloor": 40000
      }
    }
  },
```

或者使用 CLI

```bash
openclaw config set agents.defaults.compaction.reserveTokensFloor 40000
```

##### LLM idle timeout

> The model did not produce a response before the LLM idle timeout. Please try again, or increase agents.defaults.llm.idleTimeoutSeconds in your config (set to 0 to disable).

Solution:

```bash
openclaw config set agents.defaults.timeoutSeconds 600
openclaw config set agents.defaults.llm.idleTimeoutSeconds 600
```

##### gateway connect failed

> gateway connect failed: GatewayClientRequestError: pairing required

檢查有無 pending devices

```bash
openclaw devices list
openclaw devices list --json
```