配置 🔧
OpenClaw 从~/.openclaw/openclaw.json 读取可选的 JSON5 配置(允许注释和尾随逗号)。
如果文件缺失,OpenClaw 使用安全的默认设置(嵌入式 Pi agent + 按发送者隔离的 session + 工作目录 ~/.openclaw/workspace)。通常只有在以下情况才需要配置:
- 限制谁可以触发机器人(
channels.whatsapp.allowFrom、channels.telegram.allowFrom等) - 控制群组白名单和提及行为(
channels.whatsapp.groups、channels.telegram.groups、channels.discord.guilds、channels.googlechat.groups、agents.list[].groupChat) - 自定义消息前缀(
messages) - 设置 agent 的工作目录(
agents.defaults.workspace或agents.list[].workspace) - 调整嵌入式 agent 默认值(
agents.defaults)和 session 行为(session) - 设置每个 agent 的身份(
agents.list[].identity)
初次接触配置? 查看 配置示例 指南获取完整示例和详细说明!
严格的配置验证
OpenClaw 只接受完全符合 schema 的配置。 未知的键、格式错误的类型或无效的值会导致 Gateway 拒绝启动,以确保安全。 验证失败时:- Gateway 不会启动。
- 只允许诊断命令(例如:
openclaw doctor、openclaw logs、openclaw health、openclaw status、openclaw service、openclaw help)。 - 运行
openclaw doctor查看具体问题。 - 运行
openclaw doctor --fix(或--yes)应用迁移/修复。
--fix/--yes 时才会写入更改。
Schema + UI 提示
Gateway 通过config.schema 暴露配置的 JSON Schema 表示,供 UI 编辑器使用。
Control UI 从此 schema 渲染表单,并提供 Raw JSON 编辑器作为备用方案。
Channel 插件和扩展可以为它们的配置注册 schema 和 UI 提示,因此 channel 设置
可以在不同应用中保持 schema 驱动,无需硬编码表单。
提示(标签、分组、敏感字段)随 schema 一起提供,因此客户端可以渲染
更好的表单,无需硬编码配置知识。
Apply + restart (RPC)
使用config.apply 验证并写入完整配置,然后一步重启 Gateway。
它会写入重启标记文件,并在 Gateway 恢复后 ping 最后活动的 session。
警告:config.apply 会替换整个配置。如果只想更改几个键,
请使用 config.patch 或 openclaw config set。请备份 ~/.openclaw/openclaw.json。
参数:
raw(string) — 整个配置的 JSON5 负载baseHash(可选) — 来自config.get的配置哈希(当配置已存在时需要)sessionKey(可选) — 用于唤醒 ping 的最后活动 session 键note(可选) — 包含在重启标记文件中的备注restartDelayMs(可选) — 重启前的延迟(默认 2000)
gateway call):
部分更新 (RPC)
使用config.patch 将部分更新合并到现有配置,而不会覆盖
不相关的键。它应用 JSON merge patch 语义:
- 对象递归合并
null删除键- 数组替换
与
config.apply类似,它会验证、写入配置、存储重启标记文件,并安排 Gateway 重启(当提供sessionKey时可选唤醒)。
raw(string) — 仅包含要更改的键的 JSON5 负载baseHash(必需) — 来自config.get的配置哈希sessionKey(可选) — 用于唤醒 ping 的最后活动 session 键note(可选) — 包含在重启标记文件中的备注restartDelayMs(可选) — 重启前的延迟(默认 2000)
最小配置(推荐起点)
自聊模式(推荐用于群组控制)
要防止机器人在 WhatsApp 群组中响应 @-提及(仅响应特定文本触发器):配置包含 ($include)
使用 $include 指令将配置拆分为多个文件。这适用于:
- 组织大型配置(例如,按客户端的 agent 定义)
- 跨环境共享通用设置
- 将敏感配置分开保存
基本用法
合并行为
- 单个文件:替换包含
$include的对象 - 文件数组:按顺序深度合并文件(后面的文件覆盖前面的)
- 与兄弟键共存:兄弟键在包含后合并(覆盖包含的值)
- 兄弟键 + 数组/基本类型:不支持(包含的内容必须是对象)
嵌套包含
包含的文件本身可以包含$include 指令(最多 10 层深度):
路径解析
- 相对路径:相对于包含文件解析
- 绝对路径:按原样使用
- 父目录:
../引用按预期工作
错误处理
- 文件缺失:清晰的错误并显示解析后的路径
- 解析错误:显示哪个包含的文件失败
- 循环包含:检测并报告包含链
示例:多客户端法律设置
常用选项
环境变量 + .env
OpenClaw 从父进程(shell、launchd/systemd、CI 等)读取环境变量。
此外,它加载:
- 当前工作目录的
.env(如果存在) - 全局备用
.env从~/.openclaw/.env(即$OPENCLAW_STATE_DIR/.env)
.env 文件都不会覆盖现有的环境变量。
您还可以在配置中提供内联环境变量。这些仅在
进程环境缺少该键时应用(相同的非覆盖规则):
env.shellEnv (可选)
选择加入的便利功能:如果启用且尚未设置任何预期键,OpenClaw 会运行您的登录 shell 并仅导入缺失的预期键(从不覆盖)。
这实际上会 source 您的 shell 配置文件。
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000
配置中的环境变量替换
您可以使用${VAR_NAME} 语法在任何配置字符串值中直接引用环境变量。变量在配置加载时、验证之前替换。
- 仅匹配大写环境变量名:
[A-Z_][A-Z0-9_]* - 缺失或空的环境变量在配置加载时抛出错误
- 使用
$${VAR}转义以输出字面量${VAR} - 与
$include一起工作(包含的文件也会进行替换)
认证存储 (OAuth + API keys)
OpenClaw 将每个 agent 的认证配置文件(OAuth + API keys)存储在:<agentDir>/auth-profiles.json(默认:~/.openclaw/agents/<agentId>/agent/auth-profiles.json)
~/.openclaw/credentials/oauth.json(或$OPENCLAW_STATE_DIR/credentials/oauth.json)
<agentDir>/auth.json(自动管理;请勿手动编辑)
~/.openclaw/agent/*(由openclaw doctor迁移到~/.openclaw/agents/<defaultAgentId>/agent/*)
- OAuth 目录(仅旧版导入):
OPENCLAW_OAUTH_DIR - Agent 目录(默认 agent 根目录覆盖):
OPENCLAW_AGENT_DIR(推荐),PI_CODING_AGENT_DIR(旧版)
oauth.json 条目导入 auth-profiles.json。
auth
认证配置文件的可选元数据。这不存储密钥;它映射
配置文件 ID 到提供商 + 模式(和可选电子邮件)并定义用于故障转移的提供商
轮换顺序。
agents.list[].identity
用于默认值和 UX 的可选每个 agent 身份。这由 macOS 入门助手写入。
如果设置,OpenClaw 派生默认值(仅当您未显式设置它们时):
messages.ackReaction来自活动 agent的identity.emoji(回退到 👀)agents.list[].groupChat.mentionPatterns来自 agent 的identity.name/identity.emoji(因此 “@Samantha” 在 Telegram/Slack/Discord/Google Chat/iMessage/WhatsApp 的群组中有效)identity.avatar接受相对于工作目录的图片路径或远程 URL/data URL。本地文件必须位于 agent 工作目录内。
identity.avatar 接受:
- 相对于工作目录的路径(必须位于 agent 工作目录内)
http(s)URLdata:URI
wizard
CLI 向导(onboard、configure、doctor)写入的元数据。
logging
- 默认日志文件:
/tmp/openclaw/openclaw-YYYY-MM-DD.log - 如果需要稳定的路径,将
logging.file设置为/tmp/openclaw/openclaw.log。 - 控制台输出可通过以下方式单独调整:
logging.consoleLevel(默认为info,--verbose时提升为debug)logging.consoleStyle(pretty|compact|json)
- 工具摘要可以编辑以避免泄露密钥:
logging.redactSensitive(off|tools,默认:tools)logging.redactPatterns(正则表达式字符串数组;覆盖默认值)
channels.whatsapp.dmPolicy
控制 WhatsApp 私信(DMs)的处理方式:
"pairing"(默认):未知发送者获得配对码;所有者必须批准"allowlist":仅允许channels.whatsapp.allowFrom(或配对允许存储)中的发送者"open":允许所有入站私信(需要channels.whatsapp.allowFrom包含"*")"disabled":忽略所有入站私信
openclaw pairing list whatsappopenclaw pairing approve whatsapp <code>
channels.whatsapp.allowFrom
允许触发 WhatsApp 自动回复的 E.164 电话号码白名单(仅限私信)。
如果为空且 channels.whatsapp.dmPolicy="pairing",未知发送者将收到配对码。
对于群组,使用 channels.whatsapp.groupPolicy + channels.whatsapp.groupAllowFrom。
channels.whatsapp.sendReadReceipts
控制入站 WhatsApp 消息是否标记为已读(蓝色对勾)。默认:true。
自聊模式始终跳过已读回执,即使已启用。
每个账户覆盖:channels.whatsapp.accounts.<id>.sendReadReceipts。
channels.whatsapp.accounts (多账户)
在一个 gateway 中运行多个 WhatsApp 账户:
- 出站命令默认使用账户
default(如果存在);否则使用第一个配置的账户 id(排序后)。 - 旧版单账户 Baileys 认证目录由
openclaw doctor迁移到whatsapp/default。
channels.telegram.accounts / channels.discord.accounts / channels.googlechat.accounts / channels.slack.accounts / channels.mattermost.accounts / channels.signal.accounts / channels.imessage.accounts
每个 channel 运行多个账户(每个账户有自己的 accountId 和可选的 name):
- 省略
accountId时使用default(CLI + 路由)。 - 环境变量 token 仅适用于默认账户。
- 基本 channel 设置(群组策略、提及门控等)适用于所有账户,除非每个账户覆盖。
- 使用
bindings[].match.accountId将每个账户路由到不同的 agents.defaults。
群组聊天提及门控 (agents.list[].groupChat + messages.groupChat)
群组消息默认需要提及(元数据提及或正则表达式模式)。适用于 WhatsApp、Telegram、Discord、Google Chat 和 iMessage 群组聊天。
提及类型:
- 元数据提及:原生平台 @-提及(例如,WhatsApp 点击提及)。在 WhatsApp 自聊模式下忽略(参见
channels.whatsapp.allowFrom)。 - 文本模式:
agents.list[].groupChat.mentionPatterns中定义的正则表达式模式。始终检查,无论自聊模式如何。 - 仅在可以检测提及时才强制执行提及门控(原生提及或至少一个
mentionPattern)。
messages.groupChat.historyLimit 设置群组历史上下文的全局默认值。Channel 可以用 channels.<channel>.historyLimit(或多账户的 channels.<channel>.accounts.*.historyLimit)覆盖。设置为 0 禁用历史包装。
私信历史限制
私信对话使用 agent 管理的基于 session 的历史。您可以限制每个私信 session 保留的用户轮次数量:- 每个私信覆盖:
channels.<provider>.dms[userId].historyLimit - 提供商默认:
channels.<provider>.dmHistoryLimit - 无限制(保留所有历史)
telegram、whatsapp、discord、slack、signal、imessage、msteams。
每个 agent 覆盖(设置时优先,即使是 []):
channels.whatsapp.groups、channels.telegram.groups、channels.imessage.groups、channels.discord.guilds)。设置 *.groups 时,它也充当群组白名单;包含 "*" 以允许所有群组。
仅响应特定文本触发器(忽略原生 @-提及):
群组策略(每个 channel)
使用channels.*.groupPolicy 控制是否接受群组/房间消息:
"open":群组绕过白名单;提及门控仍然适用。"disabled":阻止所有群组/房间消息。"allowlist":仅允许匹配配置白名单的群组/房间。channels.defaults.groupPolicy在提供商的groupPolicy未设置时设置默认值。- WhatsApp/Telegram/Signal/iMessage/Microsoft Teams 使用
groupAllowFrom(回退:显式allowFrom)。 - Discord/Slack 使用 channel 白名单(
channels.discord.guilds.*.channels、channels.slack.channels)。 - 群组私信(Discord/Slack)仍由
dm.groupEnabled+dm.groupChannels控制。 - 默认为
groupPolicy: "allowlist"(除非被channels.defaults.groupPolicy覆盖);如果未配置白名单,群组消息被阻止。
多 agent 路由 (agents.list + bindings)
在一个 Gateway 中运行多个隔离的 agent(独立的工作目录、agentDir、session)。
入站消息通过绑定路由到 agent。
agents.list[]:每个 agent 的覆盖。id:稳定的 agent id(必需)。default:可选;当设置多个时,第一个获胜并记录警告。 如果未设置,列表中的第一个条目是默认 agent。name:agent 的显示名称。workspace:默认~/.openclaw/workspace-<agentId>(对于main,回退到agents.defaults.workspace)。agentDir:默认~/.openclaw/agents/<agentId>/agent。model:每个 agent 的默认模型,覆盖该 agent 的agents.defaults.model。- 字符串形式:
"provider/model",仅覆盖agents.defaults.model.primary - 对象形式:
{ primary, fallbacks }(fallbacks 覆盖agents.defaults.model.fallbacks;[]禁用该 agent 的全局 fallbacks)
- 字符串形式:
identity:每个 agent 的名称/主题/表情符号(用于提及模式和确认反应)。groupChat:每个 agent 的提及门控(mentionPatterns)。sandbox:每个 agent 的 sandbox 配置(覆盖agents.defaults.sandbox)。mode:"off"|"non-main"|"all"workspaceAccess:"none"|"ro"|"rw"scope:"session"|"agent"|"shared"workspaceRoot:自定义 sandbox 工作目录根docker:每个 agent 的 docker 覆盖(例如image、network、env、setupCommand、limits;scope: "shared"时忽略)browser:每个 agent 的 sandbox 浏览器覆盖(scope: "shared"时忽略)prune:每个 agent 的 sandbox 清理覆盖(scope: "shared"时忽略)
subagents:每个 agent 的子 agent 默认值。allowAgents:允许从此 agent 进行sessions_spawn的 agent id 白名单(["*"]= 允许任何;默认:仅相同 agent)
tools:每个 agent 的工具限制(在 sandbox 工具策略之前应用)。profile:基础工具配置文件(在允许/拒绝之前应用)allow:允许的工具名称数组deny:拒绝的工具名称数组(拒绝优先)
agents.defaults:共享的 agent 默认值(模型、工作目录、sandbox 等)。bindings[]:将入站消息路由到agentId。match.channel(必需)match.accountId(可选;*= 任何账户;省略 = 默认账户)match.peer(可选;{ kind: dm|group|channel, id })match.guildId/match.teamId(可选;特定于 channel)
match.peermatch.guildIdmatch.teamIdmatch.accountId(精确,无 peer/guild/team)match.accountId: "*"(全 channel,无 peer/guild/team)- 默认 agent(
agents.list[].default,否则列表中的第一个条目,否则"main")
bindings 中的第一个匹配条目获胜。
每个 agent 的访问配置文件(多 agent)
每个 agent 可以携带自己的 sandbox + 工具策略。使用此功能在一个 gateway 中混合 访问级别:- 完全访问(个人 agent)
- 只读工具 + 工作目录
- 无文件系统访问(仅消息/session 工具)
tools.agentToAgent (可选)
Agent 间消息传递是选择加入的:
messages.queue
控制当 agent 运行已处于活动状态时入站消息的行为。
messages.inbound
去抖动来自同一发送者的快速入站消息,使多个连续
消息成为单个 agent 轮次。去抖动按 channel + 对话范围,并使用最新消息进行回复线程/ID。
- 去抖动批量处理仅文本消息;媒体/附件立即刷新。
- 控制命令(例如
/queue、/new)绕过去抖动,因此它们保持独立。
commands(聊天命令处理)
控制如何在连接器中启用聊天命令。
- 文本命令必须作为独立消息发送,并使用前导
/(无纯文本别名)。 commands.text: false禁用解析聊天消息中的命令。commands.native: "auto"(默认)为 Discord/Telegram 开启原生命令,Slack 保持关闭;不支持的 channel 保持仅文本。- 设置
commands.native: true|false以强制全部,或通过channels.discord.commands.native、channels.telegram.commands.native、channels.slack.commands.native(bool 或"auto")按 channel 覆盖。false在启动时清除 Discord/Telegram 上先前注册的命令;Slack 命令在 Slack 应用中管理。 channels.telegram.customCommands添加额外的 Telegram 机器人菜单条目。名称被规范化;与原生命令的冲突被忽略。commands.bash: true启用! <cmd>运行主机 shell 命令(/bash <cmd>也作为别名工作)。需要tools.elevated.enabled并在tools.elevated.allowFrom.<channel>中将发送者列入白名单。commands.bashForegroundMs控制 bash 在后台运行前等待的时间。当 bash 作业运行时,新的! <cmd>请求被拒绝(一次一个)。commands.config: true启用/config(读取/写入openclaw.json)。channels.<provider>.configWrites控制该 channel 发起的配置变更(默认:true)。这适用于/config set|unset加上提供商特定的自动迁移(Telegram 超级组 ID 变更、Slack channel ID 变更)。commands.debug: true启用/debug(仅运行时覆盖)。commands.restart: true启用/restart和 gateway 工具重启操作。commands.useAccessGroups: false允许命令绕过访问组白名单/策略。- 斜杠命令和指令仅对授权发送者有效。授权源自
channel 白名单/配对加上
commands.useAccessGroups。
web(WhatsApp web channel 运行时)
WhatsApp 通过 gateway 的 web channel(Baileys Web)运行。当存在链接的 session 时自动启动。
设置 web.enabled: false 以默认保持关闭。
channels.telegram(机器人传输)
OpenClaw 仅在存在 channels.telegram 配置部分时启动 Telegram。机器人 token 从 channels.telegram.botToken(或 channels.telegram.tokenFile)解析,TELEGRAM_BOT_TOKEN 作为默认账户的备用。
设置 channels.telegram.enabled: false 以禁用自动启动。
多账户支持位于 channels.telegram.accounts 下(参见上面的多账户部分)。环境变量 token 仅适用于默认账户。
设置 channels.telegram.configWrites: false 以阻止 Telegram 发起的配置写入(包括超级组 ID 迁移和 /config set|unset)。
- 使用 Telegram
sendMessageDraft(草稿气泡,不是真实消息)。 - 需要私信主题(私信中的 message_thread_id;机器人已启用主题)。
/reasoning stream将推理流式传输到草稿中,然后发送最终答案。 重试策略默认和行为记录在 重试策略 中。
channels.discord(机器人传输)
通过设置机器人 token 和可选门控配置 Discord 机器人:
多账户支持位于 channels.discord.accounts 下(参见上面的多账户部分)。环境变量 token 仅适用于默认账户。
channels.discord 配置部分时启动 Discord。token 从 channels.discord.token 解析,DISCORD_BOT_TOKEN 作为默认账户的备用(除非 channels.discord.enabled 为 false)。为 cron/CLI 命令指定传递目标时使用 user:<id>(私信)或 channel:<id>(公会 channel);裸数字 ID 有歧义并被拒绝。
公会 slug 是小写,空格替换为 -;channel 键使用 slugged channel 名称(无前导 #)。首选公会 id 作为键以避免重命名歧义。
默认情况下忽略机器人撰写的消息。使用 channels.discord.allowBots 启用(自己的消息仍被过滤以防止自回复循环)。
反应通知模式:
off:无反应事件。own:对机器人自己消息的反应(默认)。all:对所有消息的所有反应。allowlist:来自guilds.<id>.users对所有消息的反应(空列表禁用)。 出站文本按channels.discord.textChunkLimit(默认 2000)分块。设置channels.discord.chunkMode="newline"以在长度分块之前在空行(段落边界)处分割。Discord 客户端可以裁剪非常高的消息,因此channels.discord.maxLinesPerMessage(默认 17)即使在少于 2000 字符时也会分割长的多行回复。 重试策略默认和行为记录在 重试策略 中。
channels.googlechat(Chat API webhook)
Google Chat 通过应用级认证(服务账户)的 HTTP webhook 运行。
多账户支持位于 channels.googlechat.accounts 下(参见上面的多账户部分)。环境变量仅适用于默认账户。
- 服务账户 JSON 可以是内联(
serviceAccount)或基于文件(serviceAccountFile)。 - 默认账户的环境变量备用:
GOOGLE_CHAT_SERVICE_ACCOUNT或GOOGLE_CHAT_SERVICE_ACCOUNT_FILE。 audienceType+audience必须匹配 Chat 应用的 webhook 认证配置。- 设置传递目标时使用
spaces/<spaceId>或users/<userId|email>。
channels.slack(socket 模式)
Slack 在 Socket 模式下运行,需要机器人 token 和应用 token:
channels.slack.accounts 下(参见上面的多账户部分)。环境变量 token 仅适用于默认账户。
OpenClaw 在提供商启用且两个 token 都设置时启动 Slack(通过配置或 SLACK_BOT_TOKEN + SLACK_APP_TOKEN)。为 cron/CLI 命令指定传递目标时使用 user:<id>(私信)或 channel:<id>。
设置 channels.slack.configWrites: false 以阻止 Slack 发起的配置写入(包括 channel ID 迁移和 /config set|unset)。
默认情况下忽略机器人撰写的消息。使用 channels.slack.allowBots 或 channels.slack.channels.<id>.allowBots 启用。
反应通知模式:
off:无反应事件。own:对机器人自己消息的反应(默认)。all:对所有消息的所有反应。allowlist:来自channels.slack.reactionAllowlist对所有消息的反应(空列表禁用)。
channels.slack.thread.historyScope控制 thread 历史是每个 thread(thread,默认)还是在 channel 中共享(channel)。channels.slack.thread.inheritParent控制新 thread session 是否继承父 channel 记录(默认:false)。
slack 工具操作):
| 操作组 | 默认 | 说明 |
|---|---|---|
| reactions | enabled | 反应 + 列出反应 |
| messages | enabled | 读取/发送/编辑/删除 |
| pins | enabled | 置顶/取消置顶/列表 |
| memberInfo | enabled | 成员信息 |
| emojiList | enabled | 自定义表情符号列表 |
channels.mattermost(机器人 token)
Mattermost 作为插件提供,不与核心安装捆绑。
首先安装:openclaw plugins install @openclaw/mattermost(或 git checkout 中的 ./extensions/mattermost)。
Mattermost 需要机器人 token 加上服务器的 base URL:
channels.mattermost.botToken + channels.mattermost.baseUrl 或默认账户的 MATTERMOST_BOT_TOKEN + MATTERMOST_URL 解析(除非 channels.mattermost.enabled 为 false)。
聊天模式:
oncall(默认):仅当 @mentioned 时响应 channel 消息。onmessage:响应每个 channel 消息。onchar:当消息以触发前缀开头时响应(channels.mattermost.oncharPrefixes,默认[">", "!"])。
- 默认私信:
channels.mattermost.dmPolicy="pairing"(未知发送者获得配对码)。 - 公开私信:
channels.mattermost.dmPolicy="open"加上channels.mattermost.allowFrom=["*"]。 - 群组:默认
channels.mattermost.groupPolicy="allowlist"(提及门控)。使用channels.mattermost.groupAllowFrom限制发送者。
channels.mattermost.accounts 下(参见上面的多账户部分)。环境变量仅适用于默认账户。
指定传递目标时使用 channel:<id> 或 user:<id>(或 @username);裸 id 被视为 channel id。
channels.signal(signal-cli)
Signal 反应可以发出系统事件(共享反应工具):
off:无反应事件。own:对机器人自己消息的反应(默认)。all:对所有消息的所有反应。allowlist:来自channels.signal.reactionAllowlist对所有消息的反应(空列表禁用)。
channels.imessage(imsg CLI)
OpenClaw 生成 imsg rpc(JSON-RPC over stdio)。不需要守护进程或端口。
channels.imessage.accounts 下(参见上面的多账户部分)。
注意:
- 需要对 Messages DB 的完全磁盘访问权限。
- 首次发送将提示 Messages 自动化权限。
- 首选
chat_id:<id>目标。使用imsg chats --limit 20列出聊天。 channels.imessage.cliPath可以指向 wrapper 脚本(例如ssh到另一台运行imsg rpc的 Mac);使用 SSH 密钥避免密码提示。- 对于远程 SSH wrapper,设置
channels.imessage.remoteHost以在启用includeAttachments时通过 SCP 获取附件。
agents.defaults.workspace
设置 agent 用于文件操作的单一全局工作目录。
默认:~/.openclaw/workspace。
agents.defaults.sandbox,非主 session 可以用 agents.defaults.sandbox.workspaceRoot 下的自己的每个范围工作目录覆盖此设置。
agents.defaults.repoRoot
可选的仓库根目录,显示在系统提示的 Runtime 行中。如果未设置,OpenClaw
尝试通过从工作目录(和当前工作目录)向上遍历来检测 .git 目录。路径必须存在才能使用。
agents.defaults.skipBootstrap
禁用自动创建工作目录引导文件(AGENTS.md、SOUL.md、TOOLS.md、IDENTITY.md、USER.md 和 BOOTSTRAP.md)。
用于工作目录文件来自仓库的预置部署。
agents.defaults.bootstrapMaxChars
在截断之前注入系统提示的每个工作目录引导文件的最大字符数。默认:20000。
当文件超过此限制时,OpenClaw 记录警告并注入截断的
头/尾并带标记。
agents.defaults.userTimezone
设置系统提示上下文的用户时区(不用于消息信封中的时间戳)。如果未设置,OpenClaw 在运行时使用主机时区。
agents.defaults.timeFormat
控制系统提示的当前日期和时间部分中显示的时间格式。
默认:auto(OS 偏好)。