4348 字
22 分钟
OpenClaw 完整配置指南:AI网关的进阶玩法

OpenClaw 完整配置指南:AI网关的进阶玩法#

说实话,第一次接触 OpenClaw 的时候,我被它的配置复杂度吓了一跳。这不是那种开箱即用的聊天机器人,而是一个真正的 AI 网关中间件——它不接模型,只负责把各种模型、渠道、工具整合在一起。折腾了几个月后,我摸索出了一套相对成熟的配置方案。这篇文章分享我的完整配置,以及踩过的一些坑。

OpenClaw 到底是什么#

简单来说,OpenClaw 是一个AI 网关。它自己不运行任何大模型,而是作为一个中间层,帮你统一管理多个模型提供商(OpenAI、Anthropic、各种国产模型),同时接入 Telegram、Discord、WhatsApp 等聊天渠道。

它的核心能力包括:

  • 多模型管理:一次配置,随时切换不同模型
  • 故障自动转移:主模型挂掉时自动切到备用模型
  • 多渠道接入:Telegram、Discord、Slack 等统一接入
  • 工具链扩展:搜索、浏览器、文件操作等能力
  • 记忆系统:支持长对话记忆和上下文管理

如果你只是想要一个简单的 ChatGPT 客户端,那 OpenClaw 可能太重了。但如果你需要同时管理多个模型、对接多个渠道、并且希望有故障转移能力,它就是目前最好的开源方案之一。

我的完整配置文件#

下面是我生产环境使用的完整配置,已经对所有敏感信息进行了脱敏处理:

{
"agents": {
"defaults": {
"blockStreamingDefault": "off",
"compaction": {
"mode": "safeguard"
},
"imageModel": {
"primary": "iw/kimi-k2.5"
},
"maxConcurrent": 4,
"memorySearch": {
"cache": {
"enabled": true,
"maxEntries": 50000
},
"experimental": {
"sessionMemory": true
},
"model": "nvidia/nv-embed-v1",
"provider": "openai",
"remote": {
"apiKey": "${NVIDIA_API_KEY}",
"baseUrl": "https://integrate.api.nvidia.com/v1/"
},
"sources": [
"memory",
"sessions"
]
},
"model": {
"primary": "iw/kimi-k2.5"
},
"models": {
"iw/deepseek-chat": {},
"iw/deepseek-reasoner": {},
"iw/glm-5": {},
"iw/gpt-5.3-codex": {},
"iw/gpt-5.4": {},
"iw/kimi-k2.5": {},
"iw/minimax-m2.5": {},
"iw/qwen3.5-397b-a17b": {},
"iw/qwen3.5-plus": {},
"iw/step-3.5-flash": {}
},
"subagents": {
"maxConcurrent": 8
},
"thinkingDefault": "adaptive",
"verboseDefault": "on",
"workspace": "/root/.openclaw/workspace"
},
"list": [
{
"agentDir": "/root/.openclaw/agents/main/agent",
"default": true,
"heartbeat": {
"ackMaxChars": 30000,
"every": "30m",
"includeReasoning": false,
"session": "agent:main:telegram:direct:xxx",
"target": "telegram"
},
"id": "main",
"name": "main",
"workspace": "/root/.openclaw/workspace"
}
]
},
"auth": {
"profiles": {}
},
"channels": {
"telegram": {
"blockStreaming": false,
"botToken": "${TELEGRAM_BOT_TOKEN}",
"dmPolicy": "pairing",
"enabled": true,
"groupAllowFrom": [
1234567890,
9876543210
],
"groupPolicy": "allowlist",
"groups": {
"*": {}
},
"heartbeat": {
"showOk": false
},
"streaming": "partial"
}
},
"commands": {
"native": "auto",
"nativeSkills": "auto",
"ownerDisplay": "raw",
"restart": true
},
"gateway": {
"auth": {
"mode": "token",
"token": "${GATEWAY_AUTH_TOKEN}"
},
"bind": "loopback",
"controlUi": {
"allowInsecureAuth": true,
"allowedOrigins": [
"https://xxx.xxx.xxx.xxx:xxxx",
"http://xxx.xxx.xxx.xxx:xxxx"
]
},
"mode": "local",
"port": 18789,
"tailscale": {
"mode": "off",
"resetOnExit": false
},
"trustedProxies": [
"127.0.0.1"
]
},
"hooks": {
"internal": {
"enabled": true,
"entries": {
"boot-md": {
"enabled": true
},
"bootstrap-extra-files": {
"enabled": true
},
"command-logger": {
"enabled": true
},
"session-memory": {
"enabled": true
}
}
}
},
"memory": {
"backend": "qmd",
"citations": "auto",
"qmd": {
"includeDefaultMemory": true,
"limits": {
"maxResults": 6,
"timeoutMs": 30000
},
"searchMode": "query",
"update": {
"debounceMs": 15000,
"interval": "5m"
}
}
},
"messages": {
"ackReactionScope": "group-mentions"
},
"models": {
"mode": "merge",
"providers": {
"iw": {
"api": "openai-responses",
"apiKey": "${IW_API_KEY}",
"baseUrl": "https://api.example.com/v1",
"models": [
{
"compat": {
"supportsDeveloperRole": false
},
"contextWindow": 200000,
"cost": {
"cacheRead": 0.5,
"cacheWrite": 0,
"input": 1,
"output": 3.2
},
"id": "glm-5",
"input": [
"text"
],
"maxTokens": 131000,
"name": "glm-5",
"reasoning": true
},
{
"compat": {
"supportsDeveloperRole": false
},
"contextWindow": 400000,
"cost": {
"cacheRead": 0.175,
"cacheWrite": 0,
"input": 1.75,
"output": 14
},
"id": "gpt-5.3-codex",
"input": [
"text",
"image"
],
"maxTokens": 128000,
"name": "gpt-5.3-codex",
"reasoning": true
},
{
"compat": {
"supportsDeveloperRole": false
},
"contextWindow": 270000,
"cost": {
"cacheRead": 0.25,
"cacheWrite": 0,
"input": 2.5,
"output": 15
},
"id": "gpt-5.4",
"input": [
"text",
"image"
],
"maxTokens": 128000,
"name": "gpt-5.4",
"reasoning": true
},
{
"compat": {
"supportsDeveloperRole": false
},
"contextWindow": 262000,
"cost": {
"cacheRead": 0.07,
"cacheWrite": 0,
"input": 0.45,
"output": 2.25
},
"id": "kimi-k2.5",
"input": [
"text",
"image"
],
"maxTokens": 262000,
"name": "kimi-k2.5",
"reasoning": true
},
{
"compat": {
"supportsDeveloperRole": false
},
"contextWindow": 256000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0.4,
"output": 2.4
},
"id": "qwen3.5-plus",
"input": [
"text",
"image"
],
"maxTokens": 65500,
"name": "qwen3.5-plus",
"reasoning": true
},
{
"compat": {
"supportsDeveloperRole": false
},
"contextWindow": 262000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0.6,
"output": 3.6
},
"id": "qwen3.5-397b-a17b",
"input": [
"text",
"image"
],
"maxTokens": 65500,
"name": "qwen3.5-397b-a17b",
"reasoning": true
},
{
"compat": {
"supportsDeveloperRole": false
},
"contextWindow": 190000,
"cost": {
"cacheRead": 0.03,
"cacheWrite": 0,
"input": 0.295,
"output": 1.2
},
"id": "minimax-m2.5",
"input": [
"text"
],
"maxTokens": 190000,
"name": "minimax-m2.5",
"reasoning": true
},
{
"compat": {
"supportsDeveloperRole": false
},
"contextWindow": 250000,
"cost": {
"cacheRead": 0.02,
"cacheWrite": 0,
"input": 0.1,
"output": 0.3
},
"id": "step-3.5-flash",
"input": [
"text"
],
"maxTokens": 250000,
"name": "step-3.5-flash",
"reasoning": true
},
{
"compat": {
"supportsDeveloperRole": false
},
"contextWindow": 160000,
"cost": {
"cacheRead": 0.13,
"cacheWrite": 0,
"input": 0.26,
"output": 0.38
},
"id": "deepseek-reasoner",
"input": [
"text"
],
"maxTokens": 65500,
"name": "deepseek-reasoner",
"reasoning": true
},
{
"compat": {
"supportsDeveloperRole": false
},
"contextWindow": 160000,
"cost": {
"cacheRead": 0.13,
"cacheWrite": 0,
"input": 0.26,
"output": 0.38
},
"id": "deepseek-chat",
"input": [
"text"
],
"maxTokens": 65500,
"name": "deepseek-chat",
"reasoning": true
}
]
}
}
},
"plugins": {
"entries": {
"telegram": {
"enabled": true
}
}
},
"session": {
"dmScope": "per-channel-peer",
"reset": {
"idleMinutes": 43200,
"mode": "idle"
}
},
"skills": {
"install": {
"nodeManager": "npm"
}
},
"tools": {
"agentToAgent": {
"enabled": true
},
"loopDetection": {
"criticalThreshold": 20,
"detectors": {
"genericRepeat": true,
"knownPollNoProgress": true,
"pingPong": true
},
"enabled": true,
"globalCircuitBreakerThreshold": 30,
"historySize": 30,
"warningThreshold": 10
},
"profile": "full",
"sessions": {
"visibility": "agent"
},
"web": {
"search": {
"apiKey": "${BRAVE_API_KEY}",
"enabled": true,
"provider": "brave"
}
}
},
"wizard": {
"lastRunAt": "2026-03-09T08:15:47.724Z",
"lastRunCommand": "onboard",
"lastRunMode": "local",
"lastRunVersion": "2026.3.8"
}
}

这份配置集成了 10 个模型,全部通过一个自定义提供商 iw 接入。接下来我会逐个模块详细解释。

Agents 配置:代理的核心行为#

agents 模块定义了 AI 代理的行为模式。我的配置分两部分:defaults 是全局默认设置,list 是具体代理实例。

默认配置详解#

"defaults": {
"blockStreamingDefault": "off",
"compaction": { "mode": "safeguard" },
"imageModel": { "primary": "iw/kimi-k2.5" },
"maxConcurrent": 4,
"model": { "primary": "iw/kimi-k2.5" },
"thinkingDefault": "adaptive",
"verboseDefault": "on"
}

关键点解读:

  • model.primary: 默认主模型,这里用的是 Kimi K2.5。OpenClaw 使用 provider/model 的格式指定模型。
  • imageModel: 处理图片的专用模型,可以跟主模型不同。我把它也设成 Kimi,因为它支持视觉。
  • thinkingDefault: 推理模式。adaptive 表示让模型自己决定是否开启深度思考,Claude 4.6 默认就是这个模式。
  • maxConcurrent: 单个代理的最大并发请求数。设为 4 表示同时处理 4 个对话。
  • compaction: 对话压缩策略。safeguard 模式会在上下文过长时进行智能压缩,保留关键信息。

关于 compaction,根据官方文档的说明,它会在上下文接近 token 上限时自动触发,通过摘要方式减少历史记录长度,而不是直接截断。这比简单丢弃早期消息要智能得多。

模型列表配置#

"models": {
"iw/deepseek-chat": {},
"iw/deepseek-reasoner": {},
"iw/glm-5": {},
"iw/gpt-5.3-codex": {},
"iw/gpt-5.4": {},
"iw/kimi-k2.5": {},
"iw/minimax-m2.5": {},
"iw/qwen3.5-397b-a17b": {},
"iw/qwen3.5-plus": {},
"iw/step-3.5-flash": {}
}

这里列出的是当前代理可以使用的所有模型。配置为空对象 {} 表示使用模型定义时的默认参数。如果你需要给特定模型设置特殊参数(比如 temperature、maxTokens),可以在这里覆盖。

代理实例配置#

"list": [
{
"id": "main",
"name": "main",
"default": true,
"heartbeat": {
"every": "30m",
"target": "telegram",
"prompt": "Read HEARTBEAT.md..."
}
}
]

这里定义了一个名为 main 的代理,default: true 表示这是默认代理。heartbeat 是 OpenClaw 的一个特色功能——定时心跳任务。

心跳机制让代理可以定期执行预设任务。我的配置是每 30 分钟让代理读取一次工作区的 HEARTBEAT.md 文件和最近的 Telegram 会话历史,然后更新记忆目录。这相当于给代理一个定期”自省”的机会,让它保持对长期任务的记忆。

多模型配置:如何管理 10+ 模型#

这是整个配置最复杂的部分。models.providers 定义了所有可用的模型提供商和模型规格。

提供商配置结构#

"models": {
"mode": "merge",
"providers": {
"iw": {
"api": "openai-responses",
"apiKey": "${IW_API_KEY}",
"baseUrl": "https://api.example.com/v1",
"models": [...]
}
}
}
  • mode: "merge": 表示用户配置的模型与内置模型合并,而不是完全覆盖。
  • api: "openai-responses": 指定使用 OpenAI 兼容的 API 格式。这是目前最通用的格式,大部分国内模型代理都支持。
  • baseUrl: 模型 API 的端点地址。这里应该替换成你实际使用的代理服务地址。

单个模型配置详解#

以 Kimi K2.5 为例:

{
"id": "kimi-k2.5",
"name": "kimi-k2.5",
"contextWindow": 262000,
"maxTokens": 262000,
"input": ["text", "image"],
"reasoning": true,
"cost": {
"input": 0.45,
"output": 2.25,
"cacheRead": 0.07,
"cacheWrite": 0
},
"compat": {
"supportsDeveloperRole": false
}
}

各字段含义:

  • contextWindow: 上下文窗口大小。Kimi K2.5 支持 262K tokens,这在国产模型中是数一数二的。
  • maxTokens: 单次响应的最大 token 数。设为跟上下文窗口一样大,表示可以用满整个窗口。
  • input: 支持的输入类型。["text", "image"] 表示同时支持文本和图片输入。
  • reasoning: 是否支持推理模式。设为 true 表示这个模型可以进行深度思考。
  • cost: 成本计算参数,单位是每百万 token 的价格。这是 OpenClaw 统计费用用的,不影响实际调用。
  • compat.supportsDeveloperRole: 是否支持开发者角色。设为 false 表示在系统提示词中使用 user 角色而不是 developer 角色。

实战技巧:模型选择策略#

我在配置中集成了 10 个模型,各有各的用途:

模型场景理由
Kimi K2.5日常主力上下文长、中文好、性价比高
GPT-5.4复杂推理综合能力最强
GPT-5.3-codex代码任务专门优化过代码生成
DeepSeek-reasoner数学/逻辑推理能力强
MiniMax M2.5长文本支持 19 万上下文
Step-3.5-flash快速响应速度最快、成本最低
GLM-5中文对话智谱出品,中文理解好
Qwen3.5 系列多模态阿里系,图文理解强

实际使用时,可以通过 /model 命令在对话中切换模型,或者在配置中设置故障转移列表。

Gateway 配置:网关的安全与访问控制#

gateway 模块控制 OpenClaw 网关的启动方式、端口绑定和安全策略。

"gateway": {
"port": 18789,
"bind": "loopback",
"mode": "local",
"auth": {
"mode": "token",
"token": "${GATEWAY_AUTH_TOKEN}"
},
"controlUi": {
"allowInsecureAuth": true,
"allowedOrigins": [
"https://xxx.xxx.xxx.xxx:xxxx"
]
},
"trustedProxies": ["127.0.0.1"]
}

重要配置项:

  • port: 18789: 网关默认端口。18789 是 OpenClaw 的保留端口,如果被占用可以改。
  • bind: "loopback": 只绑定到本地回环地址,不允许外部直接访问。这是安全最佳实践。
  • mode: "local": 本地模式,所有数据本地处理,不走远程服务器。
  • auth.mode: "token": 使用 Token 认证方式。客户端连接时需要提供正确 token。
  • controlUi: 控制面板的访问配置。allowedOrigins 列出了允许访问的域名或 IP,防止跨站攻击。
  • trustedProxies: 信任的反向代理 IP。如果你用 Nginx 或 Caddy 做反向代理,需要把代理服务器的 IP 加到这里。

关于 bind 的选择,官方文档提到有三种模式:

  • loopback: 最安全,只允许本机访问(127.0.0.1)
  • localhost: 解析 localhost 后绑定
  • all: 绑定所有接口,允许外部访问(不推荐)

生产环境建议始终使用 loopback,然后通过反向代理对外提供服务。

Memory 配置:长期记忆的实现#

OpenClaw 的记忆系统让它能够记住跨对话的信息。我的配置使用 QMD(Queryable Memory Database)作为后端。

"memory": {
"backend": "qmd",
"citations": "auto",
"qmd": {
"includeDefaultMemory": true,
"limits": {
"maxResults": 6,
"timeoutMs": 30000
},
"searchMode": "query",
"update": {
"debounceMs": 15000,
"interval": "5m"
}
}
}

工作机制:

  • backend: "qmd": 使用 QMD 作为记忆存储后端。QMD 是一个向量数据库,支持语义搜索。
  • searchMode: "query": 搜索模式。query 表示基于查询的检索,OpenClaw 会自动把对话内容转成搜索查询。
  • maxResults: 6: 每次检索最多返回 6 条相关记忆。
  • update.interval: "5m": 每 5 分钟触发一次记忆更新,把新对话内容写入向量库。
  • citations: "auto": 自动在回复中标注引用的记忆来源。

向量嵌入配置#

agents.defaults.memorySearch 中配置了向量嵌入服务:

"memorySearch": {
"provider": "openai",
"model": "nvidia/nv-embed-v1",
"remote": {
"apiKey": "${NVIDIA_API_KEY}",
"baseUrl": "https://integrate.api.nvidia.com/v1/"
}
}

这里用的是 NVIDIA 的 nv-embed-v1 嵌入模型。实测下来,这个模型在中文场景表现比 OpenAI 的 text-embedding-3-small 更稳定。NVIDIA 提供了免费的 API 额度,足够个人使用。

Channels 配置:Telegram 接入实战#

目前我只配置了 Telegram 渠道。这部分控制机器人如何接收和发送消息。

"channels": {
"telegram": {
"enabled": true,
"botToken": "${TELEGRAM_BOT_TOKEN}",
"dmPolicy": "pairing",
"groupPolicy": "allowlist",
"groupAllowFrom": [1234567890, 9876543210],
"streaming": "partial"
}
}

安全策略:

  • dmPolicy: "pairing": 私信配对模式。陌生人第一次发消息时,机器人会生成一个配对码,需要主人批准后才能对话。这比 allowlist 更灵活,也比 open 更安全。
  • groupPolicy: "allowlist": 群组白名单模式。只有在 groupAllowFrom 列表中的群组 ID 才能使用机器人。
  • groupAllowFrom: 允许的群组 ID 列表。获取群组 ID 的方法是:先把机器人拉入群组,然后访问 https://api.telegram.org/bot<Token>/getUpdates,在返回的 JSON 中找 chat.id

流式响应配置#

streaming: "partial" 启用流式响应。这意味着机器人生成回复时会实时发送片段,而不是等全部生成完再发。用户体验更好,但会消耗更多 Telegram API 配额。

其他可选值:

  • off: 关闭流式,一次性发送完整消息
  • block: 分块发送,适合长消息
  • progress: 显示进度指示器

Tools 配置:工具链与安全防护#

tools 模块配置代理可以使用的工具集。

循环检测配置#

这是我最喜欢的功能之一,防止 AI “鬼打墙”:

"loopDetection": {
"enabled": true,
"warningThreshold": 10,
"criticalThreshold": 20,
"globalCircuitBreakerThreshold": 30,
"detectors": {
"genericRepeat": true,
"knownPollNoProgress": true,
"pingPong": true
}
}

检测机制:

  • warningThreshold: 10: 连续 10 次相似响应时触发警告
  • criticalThreshold: 20: 连续 20 次时触发关键警告
  • globalCircuitBreakerThreshold: 30: 连续 30 次时强制切断,防止无限循环

三个检测器分别识别不同类型的循环:

  • genericRepeat: 通用的重复内容检测
  • knownPollNoProgress: 检测无进展的轮询行为
  • pingPong: 检测来回反复的”乒乓”对话

Web 搜索配置#

"web": {
"search": {
"enabled": true,
"provider": "brave",
"apiKey": "${BRAVE_API_KEY}"
}
}

配置了 Brave Search API。相比 Google,Brave 的隐私保护更好,而且提供免费额度。代理可以通过 /search 命令或工具调用进行网络搜索,获取最新信息。

会话管理#

"sessions": {
"visibility": "agent"
}

控制会话的可见范围。agent 表示每个代理只能看到自己的会话,代理之间不共享对话历史。

Session 配置:会话生命周期管理#

"session": {
"dmScope": "per-channel-peer",
"reset": {
"mode": "idle",
"idleMinutes": 43200
}
}
  • dmScope: "per-channel-peer": 私信隔离模式。每个对话对象拥有独立的会话上下文,不同用户之间的对话互不影响。这对多用户场景很重要。
  • reset.mode: "idle": 空闲重置模式。当会话空闲超过指定时间后自动重置。
  • idleMinutes: 43200: 43200 分钟 = 30 天。也就是说,30 天没对话的会话会被自动清理。

其他重置模式还有:

  • daily: 每天固定时间重置
  • manual: 只通过 /reset 命令手动重置

Commands 与 Hooks:命令系统和内部钩子#

命令配置#

"commands": {
"native": "auto",
"nativeSkills": "auto",
"ownerDisplay": "raw",
"restart": true
}
  • native: "auto": 自动注册原生命令(如 Discord 的斜杠命令、Telegram 的菜单命令)
  • restart: true: 允许通过 /restart 命令重启网关

内部钩子#

"hooks": {
"internal": {
"enabled": true,
"entries": {
"boot-md": { "enabled": true },
"command-logger": { "enabled": true },
"session-memory": { "enabled": true }
}
}
}

这些是 OpenClaw 的内部扩展点:

  • boot-md: 启动时读取工作区的 Markdown 引导文件
  • command-logger: 记录命令执行日志
  • session-memory: 会话记忆管理

实战技巧:从配置到落地#

1. 环境变量管理#

生产环境不要把 API Key 直接写在配置里。使用 ${VAR_NAME} 占位符,然后通过环境变量注入:

Terminal window
export IW_API_KEY="sk-xxx"
export TELEGRAM_BOT_TOKEN="123456:ABC..."
export GATEWAY_AUTH_TOKEN="your-token"
export BRAVE_API_KEY="BSA..."
export NVIDIA_API_KEY="nvapi-..."
openclaw start

Docker 部署时可以写在 .env 文件里,或者使用 secrets 管理工具。

2. 故障转移实战#

虽然我配置了 10 个模型,但默认只用一个。要实现自动故障转移,需要在 agents.defaults.model 中设置 fallbacks

"model": {
"primary": "iw/kimi-k2.5",
"fallbacks": [
"iw/gpt-5.4",
"iw/glm-5",
"iw/qwen3.5-plus"
]
}

当 Kimi 不可用时(返回 5xx 错误、超时、或响应格式异常),OpenClaw 会按顺序尝试备用模型。根据官方文档,故障转移会在以下情况触发:

  • API 返回 5xx 错误
  • 请求超时(默认 600 秒)
  • 模型响应格式异常
  • 模型明确返回不可用状态

3. 监控与调试#

OpenClaw 提供了几个有用的诊断命令:

Terminal window
# 检查配置完整性
openclaw doctor
# 查看实时日志
openclaw logs -f
# 测试模型连接
openclaw models test iw/kimi-k2.5
# 查看网关状态
openclaw gateway status

建议在配置文件中开启详细日志:

"logging": {
"level": "info",
"consoleLevel": "info"
}

4. 性能优化#

如果你发现响应变慢,可以调整这些参数:

  • maxConcurrent: 降低并发数,减少资源竞争
  • contextTokens: 减小上下文窗口,降低 token 消耗
  • timeoutSeconds: 缩短超时时间,快速失败
  • compaction: 启用更激进的对话压缩策略

安全建议#

最后强调几个安全要点:

  1. Token 保护: Gateway Auth Token 拥有完全控制权,泄露等于服务器被接管。使用强密码,定期更换。

  2. 群组白名单: 务必配置 groupAllowFrom,防止机器人被拉入恶意群组。

  3. 私信配对: 生产环境建议使用 pairing 模式,不要开 open

  4. 沙箱隔离: 如果启用了代码执行工具,务必配置 Docker 沙箱:

"sandbox": {
"mode": "non-main",
"docker": {
"network": "none",
"readOnlyRoot": true
}
}
  1. 定期审计: 定期运行 openclaw doctor --fix 检查配置安全问题。

总结#

这份配置涵盖了 OpenClaw 的核心能力:多模型管理、记忆系统、渠道接入、工具扩展。几个关键要点:

  • 模型配置: 使用 providers 定义模型端点,agents.defaults.models 声明可用模型
  • 故障转移: 通过 fallbacks 数组实现自动切换
  • 记忆系统: QMD + 向量嵌入,实现长期记忆
  • 安全配置: loopback 绑定 + Token 认证 + 白名单
  • 监控维护: 心跳任务 + 循环检测 + 空闲重置

OpenClaw 的学习曲线确实比较陡,但一旦配置完成,它就是一个非常强大的 AI 网关。希望这份配置能帮你少走一些弯路。有问题欢迎在评论区留言讨论。


参考链接:

OpenClaw 完整配置指南:AI网关的进阶玩法
https://im.awsl.app/posts/ai-automation/077-openclaw-config/
作者
uu
发布于
2026-03-15
许可协议
CC0 1.0