个人游戏笔记本免费“养龙虾”(七)OpenClaw的openclaw.json文件的基本配置

个人游戏笔记本免费"养龙虾"(七)OpenClaw的openclaw.json文件的基本配置


系列文章:
1. 个人游戏笔记本免费"养龙虾"(Win10+WSL2+OpenClaw 部署与配置指南)
2.个人游戏笔记本免费"养龙虾"(二)用显卡GPU运行OpenClaw,CUDA的安装与配置
3.个人游戏笔记本免费"养龙虾"(三)OpenClaw的安全配置指南
4.个人游戏笔记本免费"养龙虾"(四)OpenClaw(exec tools)的文件权限配置
5.个人游戏笔记本免费"养龙虾"(五)OpenClaw浏览器工具browser的使用
6.个人游戏笔记本免费"养龙虾"(番外篇)VSCode远程SSH登录Ubuntu配置OpenClaw
7.个人游戏笔记本免费"养龙虾"(六)给OpenClaw一个灵魂:配置七大Markdown文件
8.个人游戏笔记本免费"养龙虾"(七)OpenClaw的openclaw.json文件的基本配置
9.个人游戏笔记本免费"养龙虾"(八)OpenClaw:如何选择部署哪个大模型版本


问题背景

经过前期的实践,目前(2026.4.4) OpenClaw可以正常运行,webchat(UI聊天)可以进行2-3轮对话,也能够分析自然语言指令,命令行也能正常执行agent-browser命令。但是, 很棘手的问题是:在webchat中,不能正常调用skills。例如,通过对话不能正常执行agent-browser命令。

纳米AI的回答是:这个问题主要原因是安全设计,对话模式默认处于严格的安全限制下,而命令行模式拥有更高的权限。这是官方为了防止AI在对话中被诱导执行恶意操作而故意设置的安全机制。

可能的原因分析

  • 权限问题:对话模式:默认仅允许纯对话,禁止自动执行任何操作(如文件读写、浏览器操作、命令执行等)
  • 配置问题:可能没有正确配置对话模式的权限、环境变量(PATH、env等)
  • 环境问题:可能缺少某些依赖库或工具

因此,本文根据官方文档,尽可能多的配置选项,而不仅仅是最小配置。需要配置的总体内容如下:

openclaw.json (JSON5 格式,支持注释)

├── agents # Agent 运行时配置

├── env # 环境变量配置

├── auth # 认证配置(OAuth/API Key)

├── identity # AI 身份设定

├── logging # 日志配置

├── messages # 消息格式化

├── routing # 路由和队列

├── tools # 工具配置

├── session # 会话管理

├── channels # 渠道配置(WhatsApp/Telegram/Discord 等)

├── models # 模型提供商配置

├── cron # 定时任务

├── hooks # Webhooks

├── gateway # 网关配置

├── skills # 技能配置

└── plugins # 插件配置

ollama pullopenclaw onboard等命令完成了模型的安装、拉取、配置,在openclaw.json文件中,会自动生成配置内容。包括:"models" "auth" "agents" "gateway"等选项的基本配置。

同样,在OpenClaw control UI界面中的配置内容,也会自动写入openclaw.json文件中。这些都没有问题。不再赘述。

但是,这些配置内容还不够,需要增加权限相关的配置。

一、env

tools和skills会调用外部命令,因此,需要配置环境变量。
官方文档:环境变量 - OpenClaw

c 复制代码
{
  "env": {
    "shellEnv": {
      "enabled": true,
      "timeoutMs": 15000
    }
  },
}

二、models

"models"基本不需要修改。这里强调2个参数:"contextWindow"和"maxTokens"。这2个参数过大,会导致内存超限,系统崩溃;太小,推理性能会下降。

我的GPU是6G,选择的模型是qwen3.5:2b-q4_K_M。2个参数设置如下。验证结果表明,可以进行3-5轮对话。

复制代码
    "contextWindow": 104858,
    "maxTokens": 8192

三、agents

在自动配置的基础上,增加了一些配置项。具体含义可以参考官方文档,这里仅仅列出来供大家参考。

(一)elevated提升权限

elevated权限升级选项必须打开,才能够在主机上执行外部shell命令,例如/命令、!bash命令。
官方文档:沙箱 vs 工具策略 vs 提升执行-OpenClaw

c 复制代码
      "elevatedDefault": "on",

(二)heartbeat

这个似乎也是必不可少的。

(三)list

该选项也是自动生成的,但是要增加一些选项。特别是涉及到权限的一些选项,例如:"skills" "sandbox" "tools" "elevated"。

c 复制代码
{
  "agents": {
    "defaults": {
      "model": {
        "primary": "ollama/qwen3.5:2b-q4_K_M"
      },
      "models": {
        "ollama/glm-4.7-flash": {},
        "ollama/qwen3.5:2b": {},
        "ollama/qwen3.5:2b-q4_K_M": {}
      },
      "workspace": "/home/hello/.openclaw/workspace",
      "skipBootstrap": false,
      "bootstrapMaxChars": 20000,
      "bootstrapTotalMaxChars": 150000,
      "bootstrapPromptTruncationWarning": "once",
      "userTimezone": "China/Shanghai",
      "timeFormat": "24",
      "contextPruning": {
        "mode": "cache-ttl",
        "ttl": "1h",
        "keepLastAssistants": 3,
        "softTrimRatio": 0.3,
        "hardClearRatio": 0.5,
        "minPrunableToolChars": 50000,
        "softTrim": {
          "maxChars": 4000,
          "headChars": 1500,
          "tailChars": 1500
        },
        "hardClear": {
          "enabled": true,
          "placeholder": "[Old tool result content cleared]"
        }
      },
      "elevatedDefault": "on",
      "blockStreamingDefault": "on",
      "blockStreamingBreak": "text_end",
      "blockStreamingChunk": {
        "breakPreference": "sentence"
      },
      "heartbeat": {
        "every": "30m",
        "model": "ollama/qwen3.5:2b-q4_K_M",
        "session": "main",
        "includeReasoning": false,
        "target": "none",
        "directPolicy": "allow",
        "to": "+15555550123",
        "prompt": "Read HEARTBEAT.md if it exists...",
        "ackMaxChars": 300,
        "suppressToolErrorWarnings": false,
        "lightContext": false
      }
    },
    "list": [
      {
        "id": "main",
        "default": true,
        "name": "Main",
        "workspace": "~/.openclaw/workspace",
        "agentDir": "~/.openclaw/agents/main/agent",
        "model": "ollama/qwen3.5:2b-q4_K_M",
        "skills": [
          "agent-browser",
          "clawhub",
          "healthcheck",
          "node-connect",
          "skill-creator",
          "tmux",
          "weather",
          "hello_world"
        ],
        "identity": {
          "name": "Claw",
          "theme": "helpful sloth",
          "emoji": "🦥",
          "avatar": "avatars/samantha.png"
        },
        "groupChat": {
          "mentionPatterns": [
            "@openclaw"
          ]
        },
        "subagents": {
          "allowAgents": [
            "*"
          ]
        },
        "sandbox": {
          "mode": "off"
        },
        "params": {
          "cacheRetention": "none"
        },
        "tools": {
          "allow": [
            "llm-task"
          ],
          "elevated": {
            "enabled": true,
            "allowFrom": {
              "webchat": [
                "*"
              ]
            }
          }
        }
      }
    ]
  },
}

补充:session(会话)的修剪

会话剪枝(Session pruning)在每次 LLM 调用之前从内存上下文中修剪旧的工具结果。
官方文档:Session pruning - OpenClaw

四、tools

该选项可以通过"OpenClaw control UI"来配置,文件内容也是自动生成的,但是要增加一些选项。特别要注意权限、环境等相关的选项,例如:"elevated" "exec" "ask" "pathPrepend"。

c 复制代码
  "tools": {
    "profile": "full",
    "byProvider": {
      "webchat": {
        "allow": [
          "exec",
          "read"
        ],
        "profile": "full"
      }
    },
    "web": {
      "fetch": {
        "enabled": true,
        "readability": true
      }
    },
    "links": {
      "enabled": true
    },
    "sessions": {
      "visibility": "all"
    },
    "message": {
      "allowCrossContextSend": true
    },
    "elevated": {
      "enabled": true,
      "allowFrom": {
        "webchat": [
          "*"
        ]
      }
    },
    "exec": {
      "host": "gateway",
      "security": "full",
      "ask": "off",
      "pathPrepend": [
        "/usr/local/bin",
        "/lib/node_modules"
      ],
      "safeBinTrustedDirs": [
        "/usr/local/bin",
        "/lib/node_modules"
      ],
      "backgroundMs": 2000,
      "timeoutSec": 2000,
      "cleanupMs": 2000,
      "notifyOnExit": true,
      "notifyOnExitEmptySuccess": true
    },
    "sessions_spawn": {
      "attachments": {
        "enabled": true
      }
    }
  },

五、"commands" "approvals" "session" "cron"等

c 复制代码
  "commands": {
    "native": true,
    "nativeSkills": true,
    "text": true,
    "bash": true,
    "bashForegroundMs": 2000,
    "restart": true,
    "useAccessGroups": true,
    "ownerDisplay": "raw",
    "allowFrom": {
      "*": [
        "*"
      ]
    }
  },
  "approvals": {
    "exec": {
      "enabled": true,
      "mode": "session"
    }
  },
  "session": {
    "dmScope": "per-peer"
  },
  "cron": {
    "enabled": false
  },
  "web": {
    "enabled": true
  },

补充:session(会话)的配置和重置

  • (1)会话控制对话的连续性和隔离性:
    dmScope是OpenClaw中的会话隔离范围配置,用于控制直接聊天(DM)会话的边界,防止不同用户的对话串起来。
    • main(共享模式):所有用户的直接聊天都会进入同一个会话上下文。适合单人自用场景:所有对话上下文保持连续,体验自然
    • per-peer:每个发送者(peer)的对话会进入独立的会话上下文
    • per-channel-peer:每个渠道+发送者的组合会进入独立的会话上下文。多用户多渠道的复杂场景
    • per-account-channel-peer:每个账户+渠道+发送者的组合会进入独立的会话上下文。

六、gateway

自动生成的基本就够用了。

c 复制代码
  "gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "loopback",
    "controlUi": {
      "enabled": true
    },
    "auth": {
      "mode": "token",
      "token": "322da958350196cdd5c6f1a42797942f729121771a17423b"
    },
    "tailscale": {
      "mode": "off",
      "resetOnExit": false
    },
    "nodes": {
      "denyCommands": [
        "camera.snap",
        "camera.clip",
        "screen.record",
        "contacts.add",
        "calendar.add",
        "reminders.add",
        "sms.send"
      ]
    }
  },

七、plugins

这个应该也很重要,plugins与skills是类似的,甚至是相关的。注意权限设置的相关部分。

c 复制代码
  "plugins": {
    "allow": [],
    "entries": {
      "llm-task": {
        "enabled": true
      }
    }
  }
}

八、channels(渠道)的配置

(一)WebChat的配置

WebChat也属于channel(通信渠道)的一种,因此,也要配置渠道。但是,webchat没有专用的Json字段,它使用gateway的端点+认证配置。其使用的是比较简单的全局选项,如下:

  • gateway.port:WebSocket 主机/端口。
  • gateway.auth.token:WebSocket 认证。
  • gateway.remote.token:远程 Gateway 网关目标。
  • session.*:会话存储和主键默认值。

(二)gateway中channel的配置

1、设置一个渠道

每个渠道,例如iMessage,在channels.<provider> 下都有各自的配置部分。

webchat似乎没有channels.<provider> 这个选项。

2、选择并配置模型

ollama pullopenclaw onboard等命令完成了模型的安装、拉取、配置,在openclaw.json文件中,会自动生成配置内容。这里没有问题。不再赘述。

这里强烈建议:每修改一个Json字段,就运行一次openclaw doctor,检查是否有错误。最好是重启gatewayopneclaw gateway restart。这样就可以及时发现修改不正确的地方。因为,官方文档中的配置不一定就是正确的。

九、验证

  1. 可以执行外部shell命令。例如,输入!echo hello,可以返回执行结果。
  2. 可以执行skills的CLI命令。例如,agent-browser的命令结果如下

    参考文献:OpenClaw 配置文件全解析:openclaw.yaml 详解
相关推荐
jinanwuhuaguo2 小时前
OpenClaw v2026.4.5 深度解读剖析:安全架构的终极硬化与生态治理的范式转型
大数据·人工智能·安全·安全架构·openclaw
wal13145202 小时前
OpenClaw 2026.4.5:视频/音乐生成内置,11 种语言支持,多个安全修复
运维·服务器·人工智能·安全·openclaw
大萌神Nagato11 小时前
OpenClaw更换模型
agent·openclaw
前端不太难11 小时前
OpenClaw:探索未知的多智能体中枢
状态模式·openclaw
chenqianghqu19 小时前
ubuntu 22.04环境中安装goland
linux·运维·ubuntu
海兰20 小时前
【实战】OpenClaw调用本地部署的Nacos注册的Library MCP 服务
人工智能·openclaw
ken223221 小时前
安装问题@ ubuntu 24.04 :efi 磁盘分区,挂载
linux·运维·ubuntu
comedate21 小时前
【OpenClaw】图像配置指南
人工智能·openclaw·图像修改
数据知道21 小时前
claw-code 源码详细分析:`reference_data` JSON 快照——大型移植里「对照底稿」该怎么治理与演进?
linux·python·ubuntu·json·claude code