@qingchencloud/openclaw-zh 2026.1.29-zh.202601301427 → 2026.1.30-zh.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,31 +2,31 @@ import { CHANNEL_IDS } from "../channels/registry.js";
2
2
  import { VERSION } from "../version.js";
3
3
  import { OpenClawSchema } from "./zod-schema.js";
4
4
  const GROUP_LABELS = {
5
- wizard: "Wizard",
6
- update: "Update",
7
- diagnostics: "Diagnostics",
8
- logging: "Logging",
9
- gateway: "Gateway",
10
- nodeHost: "Node Host",
11
- agents: "Agents",
12
- tools: "Tools",
13
- bindings: "Bindings",
14
- audio: "Audio",
15
- models: "Models",
16
- messages: "Messages",
17
- commands: "Commands",
18
- session: "Session",
19
- cron: "Cron",
20
- hooks: "Hooks",
21
- ui: "UI",
22
- browser: "Browser",
23
- talk: "Talk",
24
- channels: "Messaging Channels",
25
- skills: "Skills",
26
- plugins: "Plugins",
27
- discovery: "Discovery",
28
- presence: "Presence",
29
- voicewake: "Voice Wake",
5
+ wizard: "设置向导",
6
+ update: "更新",
7
+ diagnostics: "诊断",
8
+ logging: "日志",
9
+ gateway: "网关",
10
+ nodeHost: "节点主机",
11
+ agents: "代理",
12
+ tools: "工具",
13
+ bindings: "绑定",
14
+ audio: "音频",
15
+ models: "模型",
16
+ messages: "消息",
17
+ commands: "命令",
18
+ session: "会话",
19
+ cron: "定时任务",
20
+ hooks: "钩子",
21
+ ui: "界面",
22
+ browser: "浏览器",
23
+ talk: "语音",
24
+ channels: "消息渠道",
25
+ skills: "技能",
26
+ plugins: "插件",
27
+ discovery: "发现",
28
+ presence: "存在状态",
29
+ voicewake: "语音唤醒",
30
30
  };
31
31
  const GROUP_ORDER = {
32
32
  wizard: 20,
@@ -56,196 +56,196 @@ const GROUP_ORDER = {
56
56
  logging: 900,
57
57
  };
58
58
  const FIELD_LABELS = {
59
- "meta.lastTouchedVersion": "Config Last Touched Version",
60
- "meta.lastTouchedAt": "Config Last Touched At",
61
- "update.channel": "Update Channel",
62
- "update.checkOnStart": "Update Check on Start",
63
- "diagnostics.enabled": "Diagnostics Enabled",
64
- "diagnostics.flags": "Diagnostics Flags",
65
- "diagnostics.otel.enabled": "OpenTelemetry Enabled",
66
- "diagnostics.otel.endpoint": "OpenTelemetry Endpoint",
67
- "diagnostics.otel.protocol": "OpenTelemetry Protocol",
68
- "diagnostics.otel.headers": "OpenTelemetry Headers",
69
- "diagnostics.otel.serviceName": "OpenTelemetry Service Name",
70
- "diagnostics.otel.traces": "OpenTelemetry Traces Enabled",
71
- "diagnostics.otel.metrics": "OpenTelemetry Metrics Enabled",
72
- "diagnostics.otel.logs": "OpenTelemetry Logs Enabled",
73
- "diagnostics.otel.sampleRate": "OpenTelemetry Trace Sample Rate",
74
- "diagnostics.otel.flushIntervalMs": "OpenTelemetry Flush Interval (ms)",
75
- "diagnostics.cacheTrace.enabled": "Cache Trace Enabled",
76
- "diagnostics.cacheTrace.filePath": "Cache Trace File Path",
77
- "diagnostics.cacheTrace.includeMessages": "Cache Trace Include Messages",
78
- "diagnostics.cacheTrace.includePrompt": "Cache Trace Include Prompt",
79
- "diagnostics.cacheTrace.includeSystem": "Cache Trace Include System",
80
- "agents.list.*.identity.avatar": "Identity Avatar",
81
- "gateway.remote.url": "Remote Gateway URL",
82
- "gateway.remote.sshTarget": "Remote Gateway SSH Target",
83
- "gateway.remote.sshIdentity": "Remote Gateway SSH Identity",
84
- "gateway.remote.token": "Remote Gateway Token",
85
- "gateway.remote.password": "Remote Gateway Password",
86
- "gateway.remote.tlsFingerprint": "Remote Gateway TLS Fingerprint",
87
- "gateway.auth.token": "Gateway Token",
88
- "gateway.auth.password": "Gateway Password",
89
- "tools.media.image.enabled": "Enable Image Understanding",
90
- "tools.media.image.maxBytes": "Image Understanding Max Bytes",
91
- "tools.media.image.maxChars": "Image Understanding Max Chars",
92
- "tools.media.image.prompt": "Image Understanding Prompt",
93
- "tools.media.image.timeoutSeconds": "Image Understanding Timeout (sec)",
94
- "tools.media.image.attachments": "Image Understanding Attachment Policy",
95
- "tools.media.image.models": "Image Understanding Models",
96
- "tools.media.image.scope": "Image Understanding Scope",
97
- "tools.media.models": "Media Understanding Shared Models",
98
- "tools.media.concurrency": "Media Understanding Concurrency",
99
- "tools.media.audio.enabled": "Enable Audio Understanding",
100
- "tools.media.audio.maxBytes": "Audio Understanding Max Bytes",
101
- "tools.media.audio.maxChars": "Audio Understanding Max Chars",
102
- "tools.media.audio.prompt": "Audio Understanding Prompt",
103
- "tools.media.audio.timeoutSeconds": "Audio Understanding Timeout (sec)",
104
- "tools.media.audio.language": "Audio Understanding Language",
105
- "tools.media.audio.attachments": "Audio Understanding Attachment Policy",
106
- "tools.media.audio.models": "Audio Understanding Models",
107
- "tools.media.audio.scope": "Audio Understanding Scope",
108
- "tools.media.video.enabled": "Enable Video Understanding",
109
- "tools.media.video.maxBytes": "Video Understanding Max Bytes",
110
- "tools.media.video.maxChars": "Video Understanding Max Chars",
111
- "tools.media.video.prompt": "Video Understanding Prompt",
112
- "tools.media.video.timeoutSeconds": "Video Understanding Timeout (sec)",
113
- "tools.media.video.attachments": "Video Understanding Attachment Policy",
114
- "tools.media.video.models": "Video Understanding Models",
115
- "tools.media.video.scope": "Video Understanding Scope",
116
- "tools.links.enabled": "Enable Link Understanding",
117
- "tools.links.maxLinks": "Link Understanding Max Links",
118
- "tools.links.timeoutSeconds": "Link Understanding Timeout (sec)",
119
- "tools.links.models": "Link Understanding Models",
120
- "tools.links.scope": "Link Understanding Scope",
121
- "tools.profile": "Tool Profile",
122
- "tools.alsoAllow": "Tool Allowlist Additions",
123
- "agents.list[].tools.profile": "Agent Tool Profile",
124
- "agents.list[].tools.alsoAllow": "Agent Tool Allowlist Additions",
125
- "tools.byProvider": "Tool Policy by Provider",
126
- "agents.list[].tools.byProvider": "Agent Tool Policy by Provider",
127
- "tools.exec.applyPatch.enabled": "Enable apply_patch",
128
- "tools.exec.applyPatch.allowModels": "apply_patch Model Allowlist",
129
- "tools.exec.notifyOnExit": "Exec Notify On Exit",
130
- "tools.exec.approvalRunningNoticeMs": "Exec Approval Running Notice (ms)",
131
- "tools.exec.host": "Exec Host",
132
- "tools.exec.security": "Exec Security",
133
- "tools.exec.ask": "Exec Ask",
134
- "tools.exec.node": "Exec Node Binding",
135
- "tools.exec.pathPrepend": "Exec PATH Prepend",
136
- "tools.exec.safeBins": "Exec Safe Bins",
137
- "tools.message.allowCrossContextSend": "Allow Cross-Context Messaging",
138
- "tools.message.crossContext.allowWithinProvider": "Allow Cross-Context (Same Provider)",
139
- "tools.message.crossContext.allowAcrossProviders": "Allow Cross-Context (Across Providers)",
140
- "tools.message.crossContext.marker.enabled": "Cross-Context Marker",
141
- "tools.message.crossContext.marker.prefix": "Cross-Context Marker Prefix",
142
- "tools.message.crossContext.marker.suffix": "Cross-Context Marker Suffix",
143
- "tools.message.broadcast.enabled": "Enable Message Broadcast",
144
- "tools.web.search.enabled": "Enable Web Search Tool",
145
- "tools.web.search.provider": "Web Search Provider",
146
- "tools.web.search.apiKey": "Brave Search API Key",
147
- "tools.web.search.maxResults": "Web Search Max Results",
148
- "tools.web.search.timeoutSeconds": "Web Search Timeout (sec)",
149
- "tools.web.search.cacheTtlMinutes": "Web Search Cache TTL (min)",
150
- "tools.web.fetch.enabled": "Enable Web Fetch Tool",
151
- "tools.web.fetch.maxChars": "Web Fetch Max Chars",
152
- "tools.web.fetch.timeoutSeconds": "Web Fetch Timeout (sec)",
153
- "tools.web.fetch.cacheTtlMinutes": "Web Fetch Cache TTL (min)",
154
- "tools.web.fetch.maxRedirects": "Web Fetch Max Redirects",
155
- "tools.web.fetch.userAgent": "Web Fetch User-Agent",
156
- "gateway.controlUi.basePath": "Control UI Base Path",
157
- "gateway.controlUi.allowInsecureAuth": "Allow Insecure Control UI Auth",
158
- "gateway.controlUi.dangerouslyDisableDeviceAuth": "Dangerously Disable Control UI Device Auth",
159
- "gateway.http.endpoints.chatCompletions.enabled": "OpenAI Chat Completions Endpoint",
160
- "gateway.reload.mode": "Config Reload Mode",
161
- "gateway.reload.debounceMs": "Config Reload Debounce (ms)",
162
- "gateway.nodes.browser.mode": "Gateway Node Browser Mode",
163
- "gateway.nodes.browser.node": "Gateway Node Browser Pin",
164
- "gateway.nodes.allowCommands": "Gateway Node Allowlist (Extra Commands)",
165
- "gateway.nodes.denyCommands": "Gateway Node Denylist",
166
- "nodeHost.browserProxy.enabled": "Node Browser Proxy Enabled",
167
- "nodeHost.browserProxy.allowProfiles": "Node Browser Proxy Allowed Profiles",
168
- "skills.load.watch": "Watch Skills",
169
- "skills.load.watchDebounceMs": "Skills Watch Debounce (ms)",
170
- "agents.defaults.workspace": "Workspace",
171
- "agents.defaults.repoRoot": "Repo Root",
172
- "agents.defaults.bootstrapMaxChars": "Bootstrap Max Chars",
173
- "agents.defaults.envelopeTimezone": "Envelope Timezone",
174
- "agents.defaults.envelopeTimestamp": "Envelope Timestamp",
175
- "agents.defaults.envelopeElapsed": "Envelope Elapsed",
176
- "agents.defaults.memorySearch": "Memory Search",
177
- "agents.defaults.memorySearch.enabled": "Enable Memory Search",
178
- "agents.defaults.memorySearch.sources": "Memory Search Sources",
179
- "agents.defaults.memorySearch.extraPaths": "Extra Memory Paths",
180
- "agents.defaults.memorySearch.experimental.sessionMemory": "Memory Search Session Index (Experimental)",
181
- "agents.defaults.memorySearch.provider": "Memory Search Provider",
182
- "agents.defaults.memorySearch.remote.baseUrl": "Remote Embedding Base URL",
183
- "agents.defaults.memorySearch.remote.apiKey": "Remote Embedding API Key",
184
- "agents.defaults.memorySearch.remote.headers": "Remote Embedding Headers",
185
- "agents.defaults.memorySearch.remote.batch.concurrency": "Remote Batch Concurrency",
186
- "agents.defaults.memorySearch.model": "Memory Search Model",
187
- "agents.defaults.memorySearch.fallback": "Memory Search Fallback",
188
- "agents.defaults.memorySearch.local.modelPath": "Local Embedding Model Path",
189
- "agents.defaults.memorySearch.store.path": "Memory Search Index Path",
190
- "agents.defaults.memorySearch.store.vector.enabled": "Memory Search Vector Index",
191
- "agents.defaults.memorySearch.store.vector.extensionPath": "Memory Search Vector Extension Path",
192
- "agents.defaults.memorySearch.chunking.tokens": "Memory Chunk Tokens",
193
- "agents.defaults.memorySearch.chunking.overlap": "Memory Chunk Overlap Tokens",
194
- "agents.defaults.memorySearch.sync.onSessionStart": "Index on Session Start",
195
- "agents.defaults.memorySearch.sync.onSearch": "Index on Search (Lazy)",
196
- "agents.defaults.memorySearch.sync.watch": "Watch Memory Files",
197
- "agents.defaults.memorySearch.sync.watchDebounceMs": "Memory Watch Debounce (ms)",
198
- "agents.defaults.memorySearch.sync.sessions.deltaBytes": "Session Delta Bytes",
199
- "agents.defaults.memorySearch.sync.sessions.deltaMessages": "Session Delta Messages",
200
- "agents.defaults.memorySearch.query.maxResults": "Memory Search Max Results",
201
- "agents.defaults.memorySearch.query.minScore": "Memory Search Min Score",
202
- "agents.defaults.memorySearch.query.hybrid.enabled": "Memory Search Hybrid",
203
- "agents.defaults.memorySearch.query.hybrid.vectorWeight": "Memory Search Vector Weight",
204
- "agents.defaults.memorySearch.query.hybrid.textWeight": "Memory Search Text Weight",
205
- "agents.defaults.memorySearch.query.hybrid.candidateMultiplier": "Memory Search Hybrid Candidate Multiplier",
206
- "agents.defaults.memorySearch.cache.enabled": "Memory Search Embedding Cache",
207
- "agents.defaults.memorySearch.cache.maxEntries": "Memory Search Embedding Cache Max Entries",
208
- "auth.profiles": "Auth Profiles",
209
- "auth.order": "Auth Profile Order",
210
- "auth.cooldowns.billingBackoffHours": "Billing Backoff (hours)",
211
- "auth.cooldowns.billingBackoffHoursByProvider": "Billing Backoff Overrides",
212
- "auth.cooldowns.billingMaxHours": "Billing Backoff Cap (hours)",
213
- "auth.cooldowns.failureWindowHours": "Failover Window (hours)",
214
- "agents.defaults.models": "Models",
215
- "agents.defaults.model.primary": "Primary Model",
216
- "agents.defaults.model.fallbacks": "Model Fallbacks",
217
- "agents.defaults.imageModel.primary": "Image Model",
218
- "agents.defaults.imageModel.fallbacks": "Image Model Fallbacks",
219
- "agents.defaults.humanDelay.mode": "Human Delay Mode",
220
- "agents.defaults.humanDelay.minMs": "Human Delay Min (ms)",
221
- "agents.defaults.humanDelay.maxMs": "Human Delay Max (ms)",
222
- "agents.defaults.cliBackends": "CLI Backends",
223
- "commands.native": "Native Commands",
224
- "commands.nativeSkills": "Native Skill Commands",
225
- "commands.text": "Text Commands",
226
- "commands.bash": "Allow Bash Chat Command",
227
- "commands.bashForegroundMs": "Bash Foreground Window (ms)",
228
- "commands.config": "Allow /config",
229
- "commands.debug": "Allow /debug",
230
- "commands.restart": "Allow Restart",
231
- "commands.useAccessGroups": "Use Access Groups",
232
- "ui.seamColor": "Accent Color",
233
- "ui.assistant.name": "Assistant Name",
234
- "ui.assistant.avatar": "Assistant Avatar",
235
- "browser.evaluateEnabled": "Browser Evaluate Enabled",
236
- "browser.snapshotDefaults": "Browser Snapshot Defaults",
237
- "browser.snapshotDefaults.mode": "Browser Snapshot Mode",
238
- "browser.remoteCdpTimeoutMs": "Remote CDP Timeout (ms)",
239
- "browser.remoteCdpHandshakeTimeoutMs": "Remote CDP Handshake Timeout (ms)",
240
- "session.dmScope": "DM Session Scope",
241
- "session.agentToAgent.maxPingPongTurns": "Agent-to-Agent Ping-Pong Turns",
242
- "messages.ackReaction": "Ack Reaction Emoji",
243
- "messages.ackReactionScope": "Ack Reaction Scope",
244
- "messages.inbound.debounceMs": "Inbound Message Debounce (ms)",
245
- "talk.apiKey": "Talk API Key",
59
+ "meta.lastTouchedVersion": "配置最后修改版本",
60
+ "meta.lastTouchedAt": "配置最后修改时间",
61
+ "update.channel": "更新渠道",
62
+ "update.checkOnStart": "启动时检查更新",
63
+ "diagnostics.enabled": "启用诊断",
64
+ "diagnostics.flags": "诊断标志",
65
+ "diagnostics.otel.enabled": "启用 OpenTelemetry",
66
+ "diagnostics.otel.endpoint": "OpenTelemetry 端点",
67
+ "diagnostics.otel.protocol": "OpenTelemetry 协议",
68
+ "diagnostics.otel.headers": "OpenTelemetry 请求头",
69
+ "diagnostics.otel.serviceName": "OpenTelemetry 服务名",
70
+ "diagnostics.otel.traces": "启用 OpenTelemetry 追踪",
71
+ "diagnostics.otel.metrics": "启用 OpenTelemetry 指标",
72
+ "diagnostics.otel.logs": "启用 OpenTelemetry 日志",
73
+ "diagnostics.otel.sampleRate": "OpenTelemetry 追踪采样率",
74
+ "diagnostics.otel.flushIntervalMs": "OpenTelemetry 刷新间隔 (毫秒)",
75
+ "diagnostics.cacheTrace.enabled": "启用缓存追踪",
76
+ "diagnostics.cacheTrace.filePath": "缓存追踪文件路径",
77
+ "diagnostics.cacheTrace.includeMessages": "缓存追踪包含消息",
78
+ "diagnostics.cacheTrace.includePrompt": "缓存追踪包含提示词",
79
+ "diagnostics.cacheTrace.includeSystem": "缓存追踪包含系统提示",
80
+ "agents.list.*.identity.avatar": "身份头像",
81
+ "gateway.remote.url": "远程网关 URL",
82
+ "gateway.remote.sshTarget": "远程网关 SSH 目标",
83
+ "gateway.remote.sshIdentity": "远程网关 SSH 身份",
84
+ "gateway.remote.token": "远程网关令牌",
85
+ "gateway.remote.password": "远程网关密码",
86
+ "gateway.remote.tlsFingerprint": "远程网关 TLS 指纹",
87
+ "gateway.auth.token": "网关令牌",
88
+ "gateway.auth.password": "网关密码",
89
+ "tools.media.image.enabled": "启用图像理解",
90
+ "tools.media.image.maxBytes": "图像理解最大字节数",
91
+ "tools.media.image.maxChars": "图像理解最大字符数",
92
+ "tools.media.image.prompt": "图像理解提示词",
93
+ "tools.media.image.timeoutSeconds": "图像理解超时 ()",
94
+ "tools.media.image.attachments": "图像理解附件策略",
95
+ "tools.media.image.models": "图像理解模型",
96
+ "tools.media.image.scope": "图像理解范围",
97
+ "tools.media.models": "媒体理解共享模型",
98
+ "tools.media.concurrency": "媒体理解并发数",
99
+ "tools.media.audio.enabled": "启用音频理解",
100
+ "tools.media.audio.maxBytes": "音频理解最大字节数",
101
+ "tools.media.audio.maxChars": "音频理解最大字符数",
102
+ "tools.media.audio.prompt": "音频理解提示词",
103
+ "tools.media.audio.timeoutSeconds": "音频理解超时 ()",
104
+ "tools.media.audio.language": "音频理解语言",
105
+ "tools.media.audio.attachments": "音频理解附件策略",
106
+ "tools.media.audio.models": "音频理解模型",
107
+ "tools.media.audio.scope": "音频理解范围",
108
+ "tools.media.video.enabled": "启用视频理解",
109
+ "tools.media.video.maxBytes": "视频理解最大字节数",
110
+ "tools.media.video.maxChars": "视频理解最大字符数",
111
+ "tools.media.video.prompt": "视频理解提示词",
112
+ "tools.media.video.timeoutSeconds": "视频理解超时 ()",
113
+ "tools.media.video.attachments": "视频理解附件策略",
114
+ "tools.media.video.models": "视频理解模型",
115
+ "tools.media.video.scope": "视频理解范围",
116
+ "tools.links.enabled": "启用链接理解",
117
+ "tools.links.maxLinks": "链接理解最大链接数",
118
+ "tools.links.timeoutSeconds": "链接理解超时 ()",
119
+ "tools.links.models": "链接理解模型",
120
+ "tools.links.scope": "链接理解范围",
121
+ "tools.profile": "工具配置",
122
+ "tools.alsoAllow": "工具白名单附加项",
123
+ "agents.list[].tools.profile": "代理工具配置",
124
+ "agents.list[].tools.alsoAllow": "代理工具白名单附加项",
125
+ "tools.byProvider": "按提供商的工具策略",
126
+ "agents.list[].tools.byProvider": "代理按提供商的工具策略",
127
+ "tools.exec.applyPatch.enabled": "启用 apply_patch",
128
+ "tools.exec.applyPatch.allowModels": "apply_patch 模型白名单",
129
+ "tools.exec.notifyOnExit": "执行退出时通知",
130
+ "tools.exec.approvalRunningNoticeMs": "执行审批运行通知 (毫秒)",
131
+ "tools.exec.host": "执行主机",
132
+ "tools.exec.security": "执行安全",
133
+ "tools.exec.ask": "执行询问",
134
+ "tools.exec.node": "执行节点绑定",
135
+ "tools.exec.pathPrepend": "执行 PATH 前置",
136
+ "tools.exec.safeBins": "执行安全二进制",
137
+ "tools.message.allowCrossContextSend": "允许跨上下文消息",
138
+ "tools.message.crossContext.allowWithinProvider": "允许跨上下文 (同提供商)",
139
+ "tools.message.crossContext.allowAcrossProviders": "允许跨上下文 (跨提供商)",
140
+ "tools.message.crossContext.marker.enabled": "跨上下文标记",
141
+ "tools.message.crossContext.marker.prefix": "跨上下文标记前缀",
142
+ "tools.message.crossContext.marker.suffix": "跨上下文标记后缀",
143
+ "tools.message.broadcast.enabled": "启用消息广播",
144
+ "tools.web.search.enabled": "启用网页搜索工具",
145
+ "tools.web.search.provider": "网页搜索提供商",
146
+ "tools.web.search.apiKey": "Brave 搜索 API 密钥",
147
+ "tools.web.search.maxResults": "网页搜索最大结果数",
148
+ "tools.web.search.timeoutSeconds": "网页搜索超时 ()",
149
+ "tools.web.search.cacheTtlMinutes": "网页搜索缓存 TTL (分钟)",
150
+ "tools.web.fetch.enabled": "启用网页获取工具",
151
+ "tools.web.fetch.maxChars": "网页获取最大字符数",
152
+ "tools.web.fetch.timeoutSeconds": "网页获取超时 ()",
153
+ "tools.web.fetch.cacheTtlMinutes": "网页获取缓存 TTL (分钟)",
154
+ "tools.web.fetch.maxRedirects": "网页获取最大重定向次数",
155
+ "tools.web.fetch.userAgent": "网页获取 User-Agent",
156
+ "gateway.controlUi.basePath": "控制台 UI 基础路径",
157
+ "gateway.controlUi.allowInsecureAuth": "允许不安全的控制台认证",
158
+ "gateway.controlUi.dangerouslyDisableDeviceAuth": "危险: 禁用控制台设备认证",
159
+ "gateway.http.endpoints.chatCompletions.enabled": "OpenAI 聊天补全端点",
160
+ "gateway.reload.mode": "配置重载模式",
161
+ "gateway.reload.debounceMs": "配置重载防抖 (毫秒)",
162
+ "gateway.nodes.browser.mode": "网关节点浏览器模式",
163
+ "gateway.nodes.browser.node": "网关节点浏览器绑定",
164
+ "gateway.nodes.allowCommands": "网关节点白名单 (额外命令)",
165
+ "gateway.nodes.denyCommands": "网关节点黑名单",
166
+ "nodeHost.browserProxy.enabled": "启用节点浏览器代理",
167
+ "nodeHost.browserProxy.allowProfiles": "节点浏览器代理允许的配置",
168
+ "skills.load.watch": "监视技能",
169
+ "skills.load.watchDebounceMs": "技能监视防抖 (毫秒)",
170
+ "agents.defaults.workspace": "工作空间",
171
+ "agents.defaults.repoRoot": "仓库根目录",
172
+ "agents.defaults.bootstrapMaxChars": "引导最大字符数",
173
+ "agents.defaults.envelopeTimezone": "信封时区",
174
+ "agents.defaults.envelopeTimestamp": "信封时间戳",
175
+ "agents.defaults.envelopeElapsed": "信封已过时间",
176
+ "agents.defaults.memorySearch": "记忆搜索",
177
+ "agents.defaults.memorySearch.enabled": "启用记忆搜索",
178
+ "agents.defaults.memorySearch.sources": "记忆搜索来源",
179
+ "agents.defaults.memorySearch.extraPaths": "额外记忆路径",
180
+ "agents.defaults.memorySearch.experimental.sessionMemory": "记忆搜索会话索引 (实验性)",
181
+ "agents.defaults.memorySearch.provider": "记忆搜索提供商",
182
+ "agents.defaults.memorySearch.remote.baseUrl": "远程嵌入基础 URL",
183
+ "agents.defaults.memorySearch.remote.apiKey": "远程嵌入 API 密钥",
184
+ "agents.defaults.memorySearch.remote.headers": "远程嵌入请求头",
185
+ "agents.defaults.memorySearch.remote.batch.concurrency": "远程批处理并发数",
186
+ "agents.defaults.memorySearch.model": "记忆搜索模型",
187
+ "agents.defaults.memorySearch.fallback": "记忆搜索备选",
188
+ "agents.defaults.memorySearch.local.modelPath": "本地嵌入模型路径",
189
+ "agents.defaults.memorySearch.store.path": "记忆搜索索引路径",
190
+ "agents.defaults.memorySearch.store.vector.enabled": "记忆搜索向量索引",
191
+ "agents.defaults.memorySearch.store.vector.extensionPath": "记忆搜索向量扩展路径",
192
+ "agents.defaults.memorySearch.chunking.tokens": "记忆块令牌数",
193
+ "agents.defaults.memorySearch.chunking.overlap": "记忆块重叠令牌数",
194
+ "agents.defaults.memorySearch.sync.onSessionStart": "会话开始时索引",
195
+ "agents.defaults.memorySearch.sync.onSearch": "搜索时索引 (懒加载)",
196
+ "agents.defaults.memorySearch.sync.watch": "监视记忆文件",
197
+ "agents.defaults.memorySearch.sync.watchDebounceMs": "记忆监视防抖 (毫秒)",
198
+ "agents.defaults.memorySearch.sync.sessions.deltaBytes": "会话增量字节",
199
+ "agents.defaults.memorySearch.sync.sessions.deltaMessages": "会话增量消息",
200
+ "agents.defaults.memorySearch.query.maxResults": "记忆搜索最大结果数",
201
+ "agents.defaults.memorySearch.query.minScore": "记忆搜索最小分数",
202
+ "agents.defaults.memorySearch.query.hybrid.enabled": "记忆搜索混合模式",
203
+ "agents.defaults.memorySearch.query.hybrid.vectorWeight": "记忆搜索向量权重",
204
+ "agents.defaults.memorySearch.query.hybrid.textWeight": "记忆搜索文本权重",
205
+ "agents.defaults.memorySearch.query.hybrid.candidateMultiplier": "记忆搜索混合候选乘数",
206
+ "agents.defaults.memorySearch.cache.enabled": "记忆搜索嵌入缓存",
207
+ "agents.defaults.memorySearch.cache.maxEntries": "记忆搜索嵌入缓存最大条目",
208
+ "auth.profiles": "认证配置",
209
+ "auth.order": "认证配置顺序",
210
+ "auth.cooldowns.billingBackoffHours": "计费退避 (小时)",
211
+ "auth.cooldowns.billingBackoffHoursByProvider": "计费退避覆盖",
212
+ "auth.cooldowns.billingMaxHours": "计费退避上限 (小时)",
213
+ "auth.cooldowns.failureWindowHours": "故障转移窗口 (小时)",
214
+ "agents.defaults.models": "模型",
215
+ "agents.defaults.model.primary": "主模型",
216
+ "agents.defaults.model.fallbacks": "备选模型",
217
+ "agents.defaults.imageModel.primary": "图像模型",
218
+ "agents.defaults.imageModel.fallbacks": "备选图像模型",
219
+ "agents.defaults.humanDelay.mode": "人性化延迟模式",
220
+ "agents.defaults.humanDelay.minMs": "人性化延迟最小值 (毫秒)",
221
+ "agents.defaults.humanDelay.maxMs": "人性化延迟最大值 (毫秒)",
222
+ "agents.defaults.cliBackends": "CLI 后端",
223
+ "commands.native": "原生命令",
224
+ "commands.nativeSkills": "原生技能命令",
225
+ "commands.text": "文本命令",
226
+ "commands.bash": "允许 Bash 聊天命令",
227
+ "commands.bashForegroundMs": "Bash 前台窗口 (毫秒)",
228
+ "commands.config": "允许 /config",
229
+ "commands.debug": "允许 /debug",
230
+ "commands.restart": "允许重启",
231
+ "commands.useAccessGroups": "使用访问组",
232
+ "ui.seamColor": "强调色",
233
+ "ui.assistant.name": "助手名称",
234
+ "ui.assistant.avatar": "助手头像",
235
+ "browser.evaluateEnabled": "启用浏览器执行",
236
+ "browser.snapshotDefaults": "浏览器快照默认值",
237
+ "browser.snapshotDefaults.mode": "浏览器快照模式",
238
+ "browser.remoteCdpTimeoutMs": "远程 CDP 超时 (毫秒)",
239
+ "browser.remoteCdpHandshakeTimeoutMs": "远程 CDP 握手超时 (毫秒)",
240
+ "session.dmScope": "私信会话范围",
241
+ "session.agentToAgent.maxPingPongTurns": "代理间乒乓轮次",
242
+ "messages.ackReaction": "确认反应表情",
243
+ "messages.ackReactionScope": "确认反应范围",
244
+ "messages.inbound.debounceMs": "入站消息防抖 (毫秒)",
245
+ "talk.apiKey": "语音 API 密钥",
246
246
  "channels.whatsapp": "WhatsApp",
247
247
  "channels.telegram": "Telegram",
248
- "channels.telegram.customCommands": "Telegram Custom Commands",
248
+ "channels.telegram.customCommands": "Telegram 自定义命令",
249
249
  "channels.discord": "Discord",
250
250
  "channels.slack": "Slack",
251
251
  "channels.mattermost": "Mattermost",
@@ -253,126 +253,126 @@ const FIELD_LABELS = {
253
253
  "channels.imessage": "iMessage",
254
254
  "channels.bluebubbles": "BlueBubbles",
255
255
  "channels.msteams": "MS Teams",
256
- "channels.telegram.botToken": "Telegram Bot Token",
257
- "channels.telegram.dmPolicy": "Telegram DM Policy",
258
- "channels.telegram.streamMode": "Telegram Draft Stream Mode",
259
- "channels.telegram.draftChunk.minChars": "Telegram Draft Chunk Min Chars",
260
- "channels.telegram.draftChunk.maxChars": "Telegram Draft Chunk Max Chars",
261
- "channels.telegram.draftChunk.breakPreference": "Telegram Draft Chunk Break Preference",
262
- "channels.telegram.retry.attempts": "Telegram Retry Attempts",
263
- "channels.telegram.retry.minDelayMs": "Telegram Retry Min Delay (ms)",
264
- "channels.telegram.retry.maxDelayMs": "Telegram Retry Max Delay (ms)",
265
- "channels.telegram.retry.jitter": "Telegram Retry Jitter",
266
- "channels.telegram.network.autoSelectFamily": "Telegram autoSelectFamily",
267
- "channels.telegram.timeoutSeconds": "Telegram API Timeout (seconds)",
268
- "channels.telegram.capabilities.inlineButtons": "Telegram Inline Buttons",
269
- "channels.whatsapp.dmPolicy": "WhatsApp DM Policy",
270
- "channels.whatsapp.selfChatMode": "WhatsApp Self-Phone Mode",
271
- "channels.whatsapp.debounceMs": "WhatsApp Message Debounce (ms)",
272
- "channels.signal.dmPolicy": "Signal DM Policy",
273
- "channels.imessage.dmPolicy": "iMessage DM Policy",
274
- "channels.bluebubbles.dmPolicy": "BlueBubbles DM Policy",
275
- "channels.discord.dm.policy": "Discord DM Policy",
276
- "channels.discord.retry.attempts": "Discord Retry Attempts",
277
- "channels.discord.retry.minDelayMs": "Discord Retry Min Delay (ms)",
278
- "channels.discord.retry.maxDelayMs": "Discord Retry Max Delay (ms)",
279
- "channels.discord.retry.jitter": "Discord Retry Jitter",
280
- "channels.discord.maxLinesPerMessage": "Discord Max Lines Per Message",
281
- "channels.discord.intents.presence": "Discord Presence Intent",
282
- "channels.discord.intents.guildMembers": "Discord Guild Members Intent",
283
- "channels.slack.dm.policy": "Slack DM Policy",
284
- "channels.slack.allowBots": "Slack Allow Bot Messages",
285
- "channels.discord.token": "Discord Bot Token",
286
- "channels.slack.botToken": "Slack Bot Token",
287
- "channels.slack.appToken": "Slack App Token",
288
- "channels.slack.userToken": "Slack User Token",
289
- "channels.slack.userTokenReadOnly": "Slack User Token Read Only",
290
- "channels.slack.thread.historyScope": "Slack Thread History Scope",
291
- "channels.slack.thread.inheritParent": "Slack Thread Parent Inheritance",
292
- "channels.mattermost.botToken": "Mattermost Bot Token",
293
- "channels.mattermost.baseUrl": "Mattermost Base URL",
294
- "channels.mattermost.chatmode": "Mattermost Chat Mode",
295
- "channels.mattermost.oncharPrefixes": "Mattermost Onchar Prefixes",
296
- "channels.mattermost.requireMention": "Mattermost Require Mention",
297
- "channels.signal.account": "Signal Account",
298
- "channels.imessage.cliPath": "iMessage CLI Path",
299
- "agents.list[].identity.avatar": "Agent Avatar",
300
- "discovery.mdns.mode": "mDNS Discovery Mode",
301
- "plugins.enabled": "Enable Plugins",
302
- "plugins.allow": "Plugin Allowlist",
303
- "plugins.deny": "Plugin Denylist",
304
- "plugins.load.paths": "Plugin Load Paths",
305
- "plugins.slots": "Plugin Slots",
306
- "plugins.slots.memory": "Memory Plugin",
307
- "plugins.entries": "Plugin Entries",
308
- "plugins.entries.*.enabled": "Plugin Enabled",
309
- "plugins.entries.*.config": "Plugin Config",
310
- "plugins.installs": "Plugin Install Records",
311
- "plugins.installs.*.source": "Plugin Install Source",
312
- "plugins.installs.*.spec": "Plugin Install Spec",
313
- "plugins.installs.*.sourcePath": "Plugin Install Source Path",
314
- "plugins.installs.*.installPath": "Plugin Install Path",
315
- "plugins.installs.*.version": "Plugin Install Version",
316
- "plugins.installs.*.installedAt": "Plugin Install Time",
256
+ "channels.telegram.botToken": "Telegram 机器人令牌",
257
+ "channels.telegram.dmPolicy": "Telegram 私信策略",
258
+ "channels.telegram.streamMode": "Telegram 草稿流模式",
259
+ "channels.telegram.draftChunk.minChars": "Telegram 草稿块最小字符",
260
+ "channels.telegram.draftChunk.maxChars": "Telegram 草稿块最大字符",
261
+ "channels.telegram.draftChunk.breakPreference": "Telegram 草稿块断行偏好",
262
+ "channels.telegram.retry.attempts": "Telegram 重试次数",
263
+ "channels.telegram.retry.minDelayMs": "Telegram 重试最小延迟 (毫秒)",
264
+ "channels.telegram.retry.maxDelayMs": "Telegram 重试最大延迟 (毫秒)",
265
+ "channels.telegram.retry.jitter": "Telegram 重试抖动",
266
+ "channels.telegram.network.autoSelectFamily": "Telegram 自动选择协议族",
267
+ "channels.telegram.timeoutSeconds": "Telegram API 超时 ()",
268
+ "channels.telegram.capabilities.inlineButtons": "Telegram 内联按钮",
269
+ "channels.whatsapp.dmPolicy": "WhatsApp 私信策略",
270
+ "channels.whatsapp.selfChatMode": "WhatsApp 自聊模式",
271
+ "channels.whatsapp.debounceMs": "WhatsApp 消息防抖 (毫秒)",
272
+ "channels.signal.dmPolicy": "Signal 私信策略",
273
+ "channels.imessage.dmPolicy": "iMessage 私信策略",
274
+ "channels.bluebubbles.dmPolicy": "BlueBubbles 私信策略",
275
+ "channels.discord.dm.policy": "Discord 私信策略",
276
+ "channels.discord.retry.attempts": "Discord 重试次数",
277
+ "channels.discord.retry.minDelayMs": "Discord 重试最小延迟 (毫秒)",
278
+ "channels.discord.retry.maxDelayMs": "Discord 重试最大延迟 (毫秒)",
279
+ "channels.discord.retry.jitter": "Discord 重试抖动",
280
+ "channels.discord.maxLinesPerMessage": "Discord 每条消息最大行数",
281
+ "channels.discord.intents.presence": "Discord 状态意图",
282
+ "channels.discord.intents.guildMembers": "Discord 成员意图",
283
+ "channels.slack.dm.policy": "Slack 私信策略",
284
+ "channels.slack.allowBots": "Slack 允许机器人消息",
285
+ "channels.discord.token": "Discord 机器人令牌",
286
+ "channels.slack.botToken": "Slack 机器人令牌",
287
+ "channels.slack.appToken": "Slack 应用令牌",
288
+ "channels.slack.userToken": "Slack 用户令牌",
289
+ "channels.slack.userTokenReadOnly": "Slack 用户令牌只读",
290
+ "channels.slack.thread.historyScope": "Slack 线程历史范围",
291
+ "channels.slack.thread.inheritParent": "Slack 线程继承父级",
292
+ "channels.mattermost.botToken": "Mattermost 机器人令牌",
293
+ "channels.mattermost.baseUrl": "Mattermost 基础 URL",
294
+ "channels.mattermost.chatmode": "Mattermost 聊天模式",
295
+ "channels.mattermost.oncharPrefixes": "Mattermost 触发字符前缀",
296
+ "channels.mattermost.requireMention": "Mattermost 需要提及",
297
+ "channels.signal.account": "Signal 账户",
298
+ "channels.imessage.cliPath": "iMessage CLI 路径",
299
+ "agents.list[].identity.avatar": "代理头像",
300
+ "discovery.mdns.mode": "mDNS 发现模式",
301
+ "plugins.enabled": "启用插件",
302
+ "plugins.allow": "插件白名单",
303
+ "plugins.deny": "插件黑名单",
304
+ "plugins.load.paths": "插件加载路径",
305
+ "plugins.slots": "插件槽位",
306
+ "plugins.slots.memory": "记忆插件",
307
+ "plugins.entries": "插件条目",
308
+ "plugins.entries.*.enabled": "插件已启用",
309
+ "plugins.entries.*.config": "插件配置",
310
+ "plugins.installs": "插件安装记录",
311
+ "plugins.installs.*.source": "插件安装来源",
312
+ "plugins.installs.*.spec": "插件安装规格",
313
+ "plugins.installs.*.sourcePath": "插件安装源路径",
314
+ "plugins.installs.*.installPath": "插件安装路径",
315
+ "plugins.installs.*.version": "插件安装版本",
316
+ "plugins.installs.*.installedAt": "插件安装时间",
317
317
  };
318
318
  const FIELD_HELP = {
319
- "meta.lastTouchedVersion": "Auto-set when OpenClaw writes the config.",
320
- "meta.lastTouchedAt": "ISO timestamp of the last config write (auto-set).",
319
+ "meta.lastTouchedVersion": "OpenClaw 写入配置时自动设置。",
320
+ "meta.lastTouchedAt": "上次配置写入的 ISO 时间戳 (自动设置)",
321
321
  "update.channel": 'Update channel for git + npm installs ("stable", "beta", or "dev").',
322
- "update.checkOnStart": "Check for npm updates when the gateway starts (default: true).",
323
- "gateway.remote.url": "Remote Gateway WebSocket URL (ws:// or wss://).",
324
- "gateway.remote.tlsFingerprint": "Expected sha256 TLS fingerprint for the remote gateway (pin to avoid MITM).",
325
- "gateway.remote.sshTarget": "Remote gateway over SSH (tunnels the gateway port to localhost). Format: user@host or user@host:port.",
326
- "gateway.remote.sshIdentity": "Optional SSH identity file path (passed to ssh -i).",
322
+ "update.checkOnStart": "网关启动时检查 npm 更新 (默认: true)",
323
+ "gateway.remote.url": "远程网关 WebSocket URL (ws:// wss://)",
324
+ "gateway.remote.tlsFingerprint": "远程网关的预期 sha256 TLS 指纹 (固定以避免中间人攻击)",
325
+ "gateway.remote.sshTarget": "通过 SSH 的远程网关 (将网关端口隧道到本地)。格式: user@host user@host:port",
326
+ "gateway.remote.sshIdentity": "可选的 SSH 身份文件路径 (传递给 ssh -i)",
327
327
  "agents.list[].identity.avatar": "Avatar image path (relative to the agent workspace only) or a remote URL/data URL.",
328
328
  "discovery.mdns.mode": 'mDNS broadcast mode ("minimal" default, "full" includes cliPath/sshPort, "off" disables mDNS).',
329
- "gateway.auth.token": "Required by default for gateway access (unless using Tailscale Serve identity); required for non-loopback binds.",
330
- "gateway.auth.password": "Required for Tailscale funnel.",
331
- "gateway.controlUi.basePath": "Optional URL prefix where the Control UI is served (e.g. /openclaw).",
332
- "gateway.controlUi.allowInsecureAuth": "Allow Control UI auth over insecure HTTP (token-only; not recommended).",
333
- "gateway.controlUi.dangerouslyDisableDeviceAuth": "DANGEROUS. Disable Control UI device identity checks (token/password only).",
334
- "gateway.http.endpoints.chatCompletions.enabled": "Enable the OpenAI-compatible `POST /v1/chat/completions` endpoint (default: false).",
329
+ "gateway.auth.token": "网关访问默认需要 (除非使用 Tailscale Serve 身份); 非本地回环绑定必需。",
330
+ "gateway.auth.password": "Tailscale funnel 必需。",
331
+ "gateway.controlUi.basePath": "控制台 UI 服务的可选 URL 前缀 (例如 /openclaw)",
332
+ "gateway.controlUi.allowInsecureAuth": "允许通过不安全的 HTTP 进行控制台认证 (仅令牌; 不推荐)",
333
+ "gateway.controlUi.dangerouslyDisableDeviceAuth": "危险。禁用控制台设备身份检查 (仅令牌/密码)",
334
+ "gateway.http.endpoints.chatCompletions.enabled": "启用兼容 OpenAI `POST /v1/chat/completions` 端点 (默认: false)",
335
335
  "gateway.reload.mode": 'Hot reload strategy for config changes ("hybrid" recommended).',
336
- "gateway.reload.debounceMs": "Debounce window (ms) before applying config changes.",
336
+ "gateway.reload.debounceMs": "应用配置更改前的防抖窗口 (毫秒)",
337
337
  "gateway.nodes.browser.mode": 'Node browser routing ("auto" = pick single connected browser node, "manual" = require node param, "off" = disable).',
338
- "gateway.nodes.browser.node": "Pin browser routing to a specific node id or name (optional).",
338
+ "gateway.nodes.browser.node": "将浏览器路由固定到特定节点 ID 或名称 (可选)",
339
339
  "gateway.nodes.allowCommands": "Extra node.invoke commands to allow beyond the gateway defaults (array of command strings).",
340
340
  "gateway.nodes.denyCommands": "Commands to block even if present in node claims or default allowlist.",
341
- "nodeHost.browserProxy.enabled": "Expose the local browser control server via node proxy.",
342
- "nodeHost.browserProxy.allowProfiles": "Optional allowlist of browser profile names exposed via the node proxy.",
341
+ "nodeHost.browserProxy.enabled": "通过节点代理公开本地浏览器控制服务器。",
342
+ "nodeHost.browserProxy.allowProfiles": "通过节点代理公开的可选浏览器配置名白名单。",
343
343
  "diagnostics.flags": 'Enable targeted diagnostics logs by flag (e.g. ["telegram.http"]). Supports wildcards like "telegram.*" or "*".',
344
- "diagnostics.cacheTrace.enabled": "Log cache trace snapshots for embedded agent runs (default: false).",
345
- "diagnostics.cacheTrace.filePath": "JSONL output path for cache trace logs (default: $OPENCLAW_STATE_DIR/logs/cache-trace.jsonl).",
346
- "diagnostics.cacheTrace.includeMessages": "Include full message payloads in trace output (default: true).",
347
- "diagnostics.cacheTrace.includePrompt": "Include prompt text in trace output (default: true).",
348
- "diagnostics.cacheTrace.includeSystem": "Include system prompt in trace output (default: true).",
349
- "tools.exec.applyPatch.enabled": "Experimental. Enables apply_patch for OpenAI models when allowed by tool policy.",
344
+ "diagnostics.cacheTrace.enabled": "记录嵌入式代理运行的缓存追踪快照 (默认: false)",
345
+ "diagnostics.cacheTrace.filePath": "缓存追踪日志的 JSONL 输出路径 (默认: $OPENCLAW_STATE_DIR/logs/cache-trace.jsonl)",
346
+ "diagnostics.cacheTrace.includeMessages": "在追踪输出中包含完整消息负载 (默认: true)",
347
+ "diagnostics.cacheTrace.includePrompt": "在追踪输出中包含提示词文本 (默认: true)",
348
+ "diagnostics.cacheTrace.includeSystem": "在追踪输出中包含系统提示词 (默认: true)",
349
+ "tools.exec.applyPatch.enabled": "实验性。在工具策略允许时为 OpenAI 模型启用 apply_patch。",
350
350
  "tools.exec.applyPatch.allowModels": 'Optional allowlist of model ids (e.g. "gpt-5.2" or "openai/gpt-5.2").',
351
- "tools.exec.notifyOnExit": "When true (default), backgrounded exec sessions enqueue a system event and request a heartbeat on exit.",
352
- "tools.exec.pathPrepend": "Directories to prepend to PATH for exec runs (gateway/sandbox).",
353
- "tools.exec.safeBins": "Allow stdin-only safe binaries to run without explicit allowlist entries.",
354
- "tools.message.allowCrossContextSend": "Legacy override: allow cross-context sends across all providers.",
355
- "tools.message.crossContext.allowWithinProvider": "Allow sends to other channels within the same provider (default: true).",
356
- "tools.message.crossContext.allowAcrossProviders": "Allow sends across different providers (default: false).",
357
- "tools.message.crossContext.marker.enabled": "Add a visible origin marker when sending cross-context (default: true).",
351
+ "tools.exec.notifyOnExit": " true (默认),后台执行会话在退出时排队系统事件并请求心跳。",
352
+ "tools.exec.pathPrepend": "执行运行时预置到 PATH 的目录 (网关/沙箱)",
353
+ "tools.exec.safeBins": "允许仅标准输入的安全二进制在没有显式白名单条目的情况下运行。",
354
+ "tools.message.allowCrossContextSend": "旧版覆盖: 允许跨所有提供商的跨上下文发送。",
355
+ "tools.message.crossContext.allowWithinProvider": "允许在同一提供商内向其他渠道发送 (默认: true)",
356
+ "tools.message.crossContext.allowAcrossProviders": "允许跨不同提供商发送 (默认: false)",
357
+ "tools.message.crossContext.marker.enabled": "跨上下文发送时添加可见的来源标记 (默认: true)",
358
358
  "tools.message.crossContext.marker.prefix": 'Text prefix for cross-context markers (supports "{channel}").',
359
359
  "tools.message.crossContext.marker.suffix": 'Text suffix for cross-context markers (supports "{channel}").',
360
- "tools.message.broadcast.enabled": "Enable broadcast action (default: true).",
361
- "tools.web.search.enabled": "Enable the web_search tool (requires a provider API key).",
360
+ "tools.message.broadcast.enabled": "启用广播操作 (默认: true)",
361
+ "tools.web.search.enabled": "启用 web_search 工具 (需要提供商 API 密钥)",
362
362
  "tools.web.search.provider": 'Search provider ("brave" or "perplexity").',
363
- "tools.web.search.apiKey": "Brave Search API key (fallback: BRAVE_API_KEY env var).",
364
- "tools.web.search.maxResults": "Default number of results to return (1-10).",
365
- "tools.web.search.timeoutSeconds": "Timeout in seconds for web_search requests.",
366
- "tools.web.search.cacheTtlMinutes": "Cache TTL in minutes for web_search results.",
367
- "tools.web.search.perplexity.apiKey": "Perplexity or OpenRouter API key (fallback: PERPLEXITY_API_KEY or OPENROUTER_API_KEY env var).",
368
- "tools.web.search.perplexity.baseUrl": "Perplexity base URL override (default: https://openrouter.ai/api/v1 or https://api.perplexity.ai).",
363
+ "tools.web.search.apiKey": "Brave 搜索 API 密钥 (备选: BRAVE_API_KEY 环境变量)",
364
+ "tools.web.search.maxResults": "返回的默认结果数 (1-10)",
365
+ "tools.web.search.timeoutSeconds": "web_search 请求的超时秒数。",
366
+ "tools.web.search.cacheTtlMinutes": "web_search 结果的缓存 TTL (分钟)。",
367
+ "tools.web.search.perplexity.apiKey": "Perplexity OpenRouter API 密钥 (备选: PERPLEXITY_API_KEY OPENROUTER_API_KEY 环境变量)",
368
+ "tools.web.search.perplexity.baseUrl": "Perplexity 基础 URL 覆盖 (默认: https://openrouter.ai/api/v1 https://api.perplexity.ai)",
369
369
  "tools.web.search.perplexity.model": 'Perplexity model override (default: "perplexity/sonar-pro").',
370
- "tools.web.fetch.enabled": "Enable the web_fetch tool (lightweight HTTP fetch).",
371
- "tools.web.fetch.maxChars": "Max characters returned by web_fetch (truncated).",
372
- "tools.web.fetch.timeoutSeconds": "Timeout in seconds for web_fetch requests.",
373
- "tools.web.fetch.cacheTtlMinutes": "Cache TTL in minutes for web_fetch results.",
374
- "tools.web.fetch.maxRedirects": "Maximum redirects allowed for web_fetch (default: 3).",
375
- "tools.web.fetch.userAgent": "Override User-Agent header for web_fetch requests.",
370
+ "tools.web.fetch.enabled": "启用 web_fetch 工具 (轻量级 HTTP 获取)",
371
+ "tools.web.fetch.maxChars": "web_fetch 返回的最大字符数 (截断)",
372
+ "tools.web.fetch.timeoutSeconds": "web_fetch 请求的超时秒数。",
373
+ "tools.web.fetch.cacheTtlMinutes": "web_fetch 结果的缓存 TTL (分钟)。",
374
+ "tools.web.fetch.maxRedirects": "web_fetch 允许的最大重定向次数 (默认: 3)",
375
+ "tools.web.fetch.userAgent": "覆盖 web_fetch 请求的 User-Agent 请求头。",
376
376
  "tools.web.fetch.readability": "Use Readability to extract main content from HTML (fallbacks to basic HTML cleanup).",
377
377
  "tools.web.fetch.firecrawl.enabled": "Enable Firecrawl fallback for web_fetch (if configured).",
378
378
  "tools.web.fetch.firecrawl.apiKey": "Firecrawl API key (fallback: FIRECRAWL_API_KEY env var).",
@@ -380,88 +380,88 @@ const FIELD_HELP = {
380
380
  "tools.web.fetch.firecrawl.onlyMainContent": "When true, Firecrawl returns only the main content (default: true).",
381
381
  "tools.web.fetch.firecrawl.maxAgeMs": "Firecrawl maxAge (ms) for cached results when supported by the API.",
382
382
  "tools.web.fetch.firecrawl.timeoutSeconds": "Timeout in seconds for Firecrawl requests.",
383
- "channels.slack.allowBots": "Allow bot-authored messages to trigger Slack replies (default: false).",
383
+ "channels.slack.allowBots": "允许机器人消息触发 Slack 回复 (默认: false)",
384
384
  "channels.slack.thread.historyScope": 'Scope for Slack thread history context ("thread" isolates per thread; "channel" reuses channel history).',
385
- "channels.slack.thread.inheritParent": "If true, Slack thread sessions inherit the parent channel transcript (default: false).",
385
+ "channels.slack.thread.inheritParent": "如果为 trueSlack 线程会话继承父频道记录 (默认: false)",
386
386
  "channels.mattermost.botToken": "Bot token from Mattermost System Console -> Integrations -> Bot Accounts.",
387
387
  "channels.mattermost.baseUrl": "Base URL for your Mattermost server (e.g., https://chat.example.com).",
388
388
  "channels.mattermost.chatmode": 'Reply to channel messages on mention ("oncall"), on trigger chars (">" or "!") ("onchar"), or on every message ("onmessage").',
389
389
  "channels.mattermost.oncharPrefixes": 'Trigger prefixes for onchar mode (default: [">", "!"]).',
390
390
  "channels.mattermost.requireMention": "Require @mention in channels before responding (default: true).",
391
- "auth.profiles": "Named auth profiles (provider + mode + optional email).",
392
- "auth.order": "Ordered auth profile IDs per provider (used for automatic failover).",
393
- "auth.cooldowns.billingBackoffHours": "Base backoff (hours) when a profile fails due to billing/insufficient credits (default: 5).",
391
+ "auth.profiles": "命名认证配置 (提供商 + 模式 + 可选邮箱)",
392
+ "auth.order": "每个提供商的有序认证配置 ID (用于自动故障转移)",
393
+ "auth.cooldowns.billingBackoffHours": "配置因计费/余额不足失败时的基础退避 (小时) (默认: 5)",
394
394
  "auth.cooldowns.billingBackoffHoursByProvider": "Optional per-provider overrides for billing backoff (hours).",
395
- "auth.cooldowns.billingMaxHours": "Cap (hours) for billing backoff (default: 24).",
396
- "auth.cooldowns.failureWindowHours": "Failure window (hours) for backoff counters (default: 24).",
397
- "agents.defaults.bootstrapMaxChars": "Max characters of each workspace bootstrap file injected into the system prompt before truncation (default: 20000).",
398
- "agents.defaults.repoRoot": "Optional repository root shown in the system prompt runtime line (overrides auto-detect).",
395
+ "auth.cooldowns.billingMaxHours": "计费退避上限 (小时) (默认: 24)",
396
+ "auth.cooldowns.failureWindowHours": "退避计数器的故障窗口 (小时) (默认: 24)",
397
+ "agents.defaults.bootstrapMaxChars": "注入系统提示词的每个工作空间引导文件的最大字符数,超出则截断 (默认: 20000)",
398
+ "agents.defaults.repoRoot": "系统提示词运行时行中显示的可选仓库根目录 (覆盖自动检测)",
399
399
  "agents.defaults.envelopeTimezone": 'Timezone for message envelopes ("utc", "local", "user", or an IANA timezone string).',
400
400
  "agents.defaults.envelopeTimestamp": 'Include absolute timestamps in message envelopes ("on" or "off").',
401
401
  "agents.defaults.envelopeElapsed": 'Include elapsed time in message envelopes ("on" or "off").',
402
- "agents.defaults.models": "Configured model catalog (keys are full provider/model IDs).",
402
+ "agents.defaults.models": "配置的模型目录 (键是完整的提供商/模型 ID)",
403
403
  "agents.defaults.memorySearch": "Vector search over MEMORY.md and memory/*.md (per-agent overrides supported).",
404
404
  "agents.defaults.memorySearch.sources": 'Sources to index for memory search (default: ["memory"]; add "sessions" to include session transcripts).',
405
405
  "agents.defaults.memorySearch.extraPaths": "Extra paths to include in memory search (directories or .md files; relative paths resolved from workspace).",
406
- "agents.defaults.memorySearch.experimental.sessionMemory": "Enable experimental session transcript indexing for memory search (default: false).",
406
+ "agents.defaults.memorySearch.experimental.sessionMemory": "启用记忆搜索的实验性会话记录索引 (默认: false)",
407
407
  "agents.defaults.memorySearch.provider": 'Embedding provider ("openai", "gemini", or "local").',
408
- "agents.defaults.memorySearch.remote.baseUrl": "Custom base URL for remote embeddings (OpenAI-compatible proxies or Gemini overrides).",
409
- "agents.defaults.memorySearch.remote.apiKey": "Custom API key for the remote embedding provider.",
408
+ "agents.defaults.memorySearch.remote.baseUrl": "远程嵌入的自定义基础 URL (OpenAI 兼容代理或 Gemini 覆盖)",
409
+ "agents.defaults.memorySearch.remote.apiKey": "远程嵌入提供商的自定义 API 密钥。",
410
410
  "agents.defaults.memorySearch.remote.headers": "Extra headers for remote embeddings (merged; remote overrides OpenAI headers).",
411
- "agents.defaults.memorySearch.remote.batch.enabled": "Enable batch API for memory embeddings (OpenAI/Gemini; default: true).",
412
- "agents.defaults.memorySearch.remote.batch.wait": "Wait for batch completion when indexing (default: true).",
413
- "agents.defaults.memorySearch.remote.batch.concurrency": "Max concurrent embedding batch jobs for memory indexing (default: 2).",
414
- "agents.defaults.memorySearch.remote.batch.pollIntervalMs": "Polling interval in ms for batch status (default: 2000).",
415
- "agents.defaults.memorySearch.remote.batch.timeoutMinutes": "Timeout in minutes for batch indexing (default: 60).",
416
- "agents.defaults.memorySearch.local.modelPath": "Local GGUF model path or hf: URI (node-llama-cpp).",
411
+ "agents.defaults.memorySearch.remote.batch.enabled": "启用记忆嵌入的批处理 API (OpenAI/Gemini; 默认: true)",
412
+ "agents.defaults.memorySearch.remote.batch.wait": "索引时等待批处理完成 (默认: true)",
413
+ "agents.defaults.memorySearch.remote.batch.concurrency": "记忆索引的最大并发嵌入批处理作业数 (默认: 2)",
414
+ "agents.defaults.memorySearch.remote.batch.pollIntervalMs": "批处理状态的轮询间隔毫秒数 (默认: 2000)",
415
+ "agents.defaults.memorySearch.remote.batch.timeoutMinutes": "批处理索引的超时分钟数 (默认: 60)",
416
+ "agents.defaults.memorySearch.local.modelPath": "本地 GGUF 模型路径或 hf: URI (node-llama-cpp)",
417
417
  "agents.defaults.memorySearch.fallback": 'Fallback provider when embeddings fail ("openai", "gemini", "local", or "none").',
418
- "agents.defaults.memorySearch.store.path": "SQLite index path (default: ~/.openclaw/memory/{agentId}.sqlite).",
419
- "agents.defaults.memorySearch.store.vector.enabled": "Enable sqlite-vec extension for vector search (default: true).",
420
- "agents.defaults.memorySearch.store.vector.extensionPath": "Optional override path to sqlite-vec extension library (.dylib/.so/.dll).",
421
- "agents.defaults.memorySearch.query.hybrid.enabled": "Enable hybrid BM25 + vector search for memory (default: true).",
422
- "agents.defaults.memorySearch.query.hybrid.vectorWeight": "Weight for vector similarity when merging results (0-1).",
423
- "agents.defaults.memorySearch.query.hybrid.textWeight": "Weight for BM25 text relevance when merging results (0-1).",
424
- "agents.defaults.memorySearch.query.hybrid.candidateMultiplier": "Multiplier for candidate pool size (default: 4).",
425
- "agents.defaults.memorySearch.cache.enabled": "Cache chunk embeddings in SQLite to speed up reindexing and frequent updates (default: true).",
426
- "agents.defaults.memorySearch.cache.maxEntries": "Optional cap on cached embeddings (best-effort).",
427
- "agents.defaults.memorySearch.sync.onSearch": "Lazy sync: schedule a reindex on search after changes.",
428
- "agents.defaults.memorySearch.sync.watch": "Watch memory files for changes (chokidar).",
429
- "agents.defaults.memorySearch.sync.sessions.deltaBytes": "Minimum appended bytes before session transcripts trigger reindex (default: 100000).",
430
- "agents.defaults.memorySearch.sync.sessions.deltaMessages": "Minimum appended JSONL lines before session transcripts trigger reindex (default: 50).",
431
- "plugins.enabled": "Enable plugin/extension loading (default: true).",
432
- "plugins.allow": "Optional allowlist of plugin ids; when set, only listed plugins load.",
433
- "plugins.deny": "Optional denylist of plugin ids; deny wins over allowlist.",
434
- "plugins.load.paths": "Additional plugin files or directories to load.",
435
- "plugins.slots": "Select which plugins own exclusive slots (memory, etc.).",
418
+ "agents.defaults.memorySearch.store.path": "SQLite 索引路径 (默认: ~/.openclaw/memory/{agentId}.sqlite)",
419
+ "agents.defaults.memorySearch.store.vector.enabled": "启用向量搜索的 sqlite-vec 扩展 (默认: true)",
420
+ "agents.defaults.memorySearch.store.vector.extensionPath": "sqlite-vec 扩展库的可选覆盖路径 (.dylib/.so/.dll)",
421
+ "agents.defaults.memorySearch.query.hybrid.enabled": "启用记忆的混合 BM25 + 向量搜索 (默认: true)",
422
+ "agents.defaults.memorySearch.query.hybrid.vectorWeight": "合并结果时向量相似度的权重 (0-1)",
423
+ "agents.defaults.memorySearch.query.hybrid.textWeight": "合并结果时 BM25 文本相关性的权重 (0-1)",
424
+ "agents.defaults.memorySearch.query.hybrid.candidateMultiplier": "候选池大小乘数 (默认: 4)",
425
+ "agents.defaults.memorySearch.cache.enabled": " SQLite 中缓存块嵌入以加速重新索引和频繁更新 (默认: true)",
426
+ "agents.defaults.memorySearch.cache.maxEntries": "缓存嵌入的可选上限 (尽力而为)",
427
+ "agents.defaults.memorySearch.sync.onSearch": "懒加载同步: 在更改后的搜索时计划重新索引。",
428
+ "agents.defaults.memorySearch.sync.watch": "监视记忆文件的更改 (chokidar)",
429
+ "agents.defaults.memorySearch.sync.sessions.deltaBytes": "会话记录触发重新索引前的最小追加字节数 (默认: 100000)",
430
+ "agents.defaults.memorySearch.sync.sessions.deltaMessages": "会话记录触发重新索引前的最小追加 JSONL 行数 (默认: 50)",
431
+ "plugins.enabled": "启用插件/扩展加载 (默认: true)",
432
+ "plugins.allow": "可选的插件 ID 白名单; 设置后,仅加载列出的插件。",
433
+ "plugins.deny": "可选的插件 ID 黑名单; 黑名单优先于白名单。",
434
+ "plugins.load.paths": "要加载的附加插件文件或目录。",
435
+ "plugins.slots": "选择哪些插件拥有独占槽位 (记忆等)",
436
436
  "plugins.slots.memory": 'Select the active memory plugin by id, or "none" to disable memory plugins.',
437
- "plugins.entries": "Per-plugin settings keyed by plugin id (enable/disable + config payloads).",
438
- "plugins.entries.*.enabled": "Overrides plugin enable/disable for this entry (restart required).",
439
- "plugins.entries.*.config": "Plugin-defined config payload (schema is provided by the plugin).",
437
+ "plugins.entries": "按插件 ID 键入的每个插件设置 (启用/禁用 + 配置负载)",
438
+ "plugins.entries.*.enabled": "覆盖此条目的插件启用/禁用 (需要重启)",
439
+ "plugins.entries.*.config": "插件定义的配置负载 (schema 由插件提供)",
440
440
  "plugins.installs": "CLI-managed install metadata (used by `openclaw plugins update` to locate install sources).",
441
441
  "plugins.installs.*.source": 'Install source ("npm", "archive", or "path").',
442
442
  "plugins.installs.*.spec": "Original npm spec used for install (if source is npm).",
443
443
  "plugins.installs.*.sourcePath": "Original archive/path used for install (if any).",
444
444
  "plugins.installs.*.installPath": "Resolved install directory (usually ~/.openclaw/extensions/<id>).",
445
- "plugins.installs.*.version": "Version recorded at install time (if available).",
446
- "plugins.installs.*.installedAt": "ISO timestamp of last install/update.",
445
+ "plugins.installs.*.version": "安装时记录的版本 (如果可用)",
446
+ "plugins.installs.*.installedAt": "上次安装/更新的 ISO 时间戳。",
447
447
  "agents.list.*.identity.avatar": "Agent avatar (workspace-relative path, http(s) URL, or data URI).",
448
- "agents.defaults.model.primary": "Primary model (provider/model).",
449
- "agents.defaults.model.fallbacks": "Ordered fallback models (provider/model). Used when the primary model fails.",
450
- "agents.defaults.imageModel.primary": "Optional image model (provider/model) used when the primary model lacks image input.",
451
- "agents.defaults.imageModel.fallbacks": "Ordered fallback image models (provider/model).",
452
- "agents.defaults.cliBackends": "Optional CLI backends for text-only fallback (claude-cli, etc.).",
448
+ "agents.defaults.model.primary": "主模型 (提供商/模型)",
449
+ "agents.defaults.model.fallbacks": "有序备选模型 (提供商/模型)。主模型失败时使用。",
450
+ "agents.defaults.imageModel.primary": "可选图像模型 (提供商/模型),当主模型缺乏图像输入时使用。",
451
+ "agents.defaults.imageModel.fallbacks": "有序备选图像模型 (提供商/模型)",
452
+ "agents.defaults.cliBackends": "可选 CLI 后端用于纯文本备选 (claude-cli )",
453
453
  "agents.defaults.humanDelay.mode": 'Delay style for block replies ("off", "natural", "custom").',
454
- "agents.defaults.humanDelay.minMs": "Minimum delay in ms for custom humanDelay (default: 800).",
455
- "agents.defaults.humanDelay.maxMs": "Maximum delay in ms for custom humanDelay (default: 2500).",
456
- "commands.native": "Register native commands with channels that support it (Discord/Slack/Telegram).",
457
- "commands.nativeSkills": "Register native skill commands (user-invocable skills) with channels that support it.",
458
- "commands.text": "Allow text command parsing (slash commands only).",
459
- "commands.bash": "Allow bash chat command (`!`; `/bash` alias) to run host shell commands (default: false; requires tools.elevated).",
460
- "commands.bashForegroundMs": "How long bash waits before backgrounding (default: 2000; 0 backgrounds immediately).",
461
- "commands.config": "Allow /config chat command to read/write config on disk (default: false).",
462
- "commands.debug": "Allow /debug chat command for runtime-only overrides (default: false).",
463
- "commands.restart": "Allow /restart and gateway restart tool actions (default: false).",
464
- "commands.useAccessGroups": "Enforce access-group allowlists/policies for commands.",
454
+ "agents.defaults.humanDelay.minMs": "自定义人性化延迟的最小延迟毫秒数 (默认: 800)",
455
+ "agents.defaults.humanDelay.maxMs": "自定义人性化延迟的最大延迟毫秒数 (默认: 2500)",
456
+ "commands.native": "向支持的渠道注册原生命令 (Discord/Slack/Telegram)",
457
+ "commands.nativeSkills": "向支持的渠道注册原生技能命令 (用户可调用技能)",
458
+ "commands.text": "允许文本命令解析 (仅斜杠命令)",
459
+ "commands.bash": "允许 bash 聊天命令 (`!`; `/bash` 别名) 运行主机 shell 命令 (默认: false; 需要 tools.elevated)",
460
+ "commands.bashForegroundMs": "bash 后台执行前等待时间 (默认: 2000; 0 立即后台)",
461
+ "commands.config": "允许 /config 聊天命令读写磁盘配置 (默认: false)",
462
+ "commands.debug": "允许 /debug 聊天命令进行仅运行时覆盖 (默认: false)",
463
+ "commands.restart": "允许 /restart 和网关重启工具操作 (默认: false)",
464
+ "commands.useAccessGroups": "对命令强制执行访问组白名单/策略。",
465
465
  "session.dmScope": 'DM session scoping: "main" keeps continuity; "per-peer", "per-channel-peer", or "per-account-channel-peer" isolates DM history (recommended for shared inboxes/multi-account).',
466
466
  "session.identityLinks": "Map canonical identities to provider-prefixed peer IDs for DM session linking (example: telegram:123456).",
467
467
  "channels.telegram.configWrites": "Allow Telegram to write config in response to channel events/commands (default: true).",
@@ -478,11 +478,11 @@ const FIELD_HELP = {
478
478
  "channels.telegram.commands.nativeSkills": 'Override native skill commands for Telegram (bool or "auto").',
479
479
  "channels.slack.commands.native": 'Override native commands for Slack (bool or "auto").',
480
480
  "channels.slack.commands.nativeSkills": 'Override native skill commands for Slack (bool or "auto").',
481
- "session.agentToAgent.maxPingPongTurns": "Max reply-back turns between requester and target (05).",
481
+ "session.agentToAgent.maxPingPongTurns": "请求者和目标之间的最大回复轮次 (0-5)",
482
482
  "channels.telegram.customCommands": "Additional Telegram bot menu commands (merged with native; conflicts ignored).",
483
- "messages.ackReaction": "Emoji reaction used to acknowledge inbound messages (empty disables).",
483
+ "messages.ackReaction": "用于确认入站消息的表情反应 (空则禁用)",
484
484
  "messages.ackReactionScope": 'When to send ack reactions ("group-mentions", "group-all", "direct", "all").',
485
- "messages.inbound.debounceMs": "Debounce window (ms) for batching rapid inbound messages from the same sender (0 to disable).",
485
+ "messages.inbound.debounceMs": "批处理来自同一发送者的快速入站消息的防抖窗口 (毫秒) (0 禁用)",
486
486
  "channels.telegram.dmPolicy": 'Direct message access control ("pairing" recommended). "open" requires channels.telegram.allowFrom=["*"].',
487
487
  "channels.telegram.streamMode": "Draft streaming mode for Telegram replies (off | partial | block). Separate from block streaming; requires private topics + sendMessageDraft.",
488
488
  "channels.telegram.draftChunk.minChars": 'Minimum chars before emitting a Telegram draft update when channels.telegram.streamMode="block" (default: 200).',