Tham Khảo Cấu Hình
Mọi trường có sẵn trong~/.openclaw/openclaw.json. Để có cái nhìn tổng quan theo nhiệm vụ, xem Cấu Hình.
Định dạng cấu hình là JSON5 (cho phép chú thích và dấu phẩy cuối). Tất cả các trường đều không bắt buộc — OpenClaw sử dụng giá trị mặc định an toàn khi không có.
Kênh
Mỗi kênh tự động khởi động khi phần cấu hình của nó tồn tại (trừ khienabled: false).
Truy cập DM và nhóm
Tất cả các kênh hỗ trợ chính sách DM và chính sách nhóm:| Chính sách DM | Hành vi |
|---|---|
pairing (mặc định) | Người gửi không xác định nhận mã ghép nối một lần; chủ sở hữu phải phê duyệt |
allowlist | Chỉ những người gửi trong allowFrom (hoặc cửa hàng ghép nối cho phép) |
open | Cho phép tất cả DM đến (yêu cầu allowFrom: ["*"]) |
disabled | Bỏ qua tất cả DM đến |
| Chính sách nhóm | Hành vi |
|---|---|
allowlist (mặc định) | Chỉ các nhóm khớp với danh sách cho phép đã cấu hình |
open | Bỏ qua danh sách cho phép nhóm (vẫn áp dụng việc kiểm soát nhắc đến) |
disabled | Chặn tất cả tin nhắn nhóm/phòng |
channels.defaults.groupPolicy thiết lập mặc định khi groupPolicy của nhà cung cấp không được đặt.
Mã ghép nối hết hạn sau 1 giờ. Yêu cầu ghép nối DM đang chờ bị giới hạn ở 3 mỗi kênh.
Nếu một khối nhà cung cấp hoàn toàn thiếu (channels.<provider> không có), chính sách nhóm khi chạy sẽ quay lại allowlist (thất bại-đóng) với cảnh báo khi khởi động.Ghi đè mô hình kênh
Sử dụngchannels.modelByChannel để gán ID kênh cụ thể vào một mô hình. Giá trị chấp nhận provider/model hoặc bí danh mô hình đã cấu hình. Ánh xạ kênh áp dụng khi một phiên chưa có ghi đè mô hình (ví dụ, được đặt qua /model).
Mặc định kênh và nhịp tim
Sử dụngchannels.defaults cho chính sách nhóm chia sẻ và hành vi nhịp tim trên các nhà cung cấp:
channels.defaults.groupPolicy: chính sách nhóm dự phòng khigroupPolicycấp nhà cung cấp không được đặt.channels.defaults.heartbeat.showOk: bao gồm trạng thái kênh khỏe mạnh trong đầu ra nhịp tim.channels.defaults.heartbeat.showAlerts: bao gồm trạng thái suy giảm/lỗi trong đầu ra nhịp tim.channels.defaults.heartbeat.useIndicator: hiển thị đầu ra nhịp tim kiểu chỉ báo gọn.
WhatsApp đa tài khoản
WhatsApp đa tài khoản
- Lệnh đi ra mặc định cho tài khoản
defaultnếu có; nếu không thì tài khoản id đầu tiên được cấu hình (đã sắp xếp). channels.whatsapp.defaultAccounttùy chọn ghi đè lựa chọn tài khoản mặc định khi nó khớp với một id tài khoản đã cấu hình.- Thư mục xác thực Baileys đơn tài khoản cũ được di chuyển bởi
openclaw doctorvàowhatsapp/default. - Ghi đè theo tài khoản:
channels.whatsapp.accounts.<id>.sendReadReceipts,channels.whatsapp.accounts.<id>.dmPolicy,channels.whatsapp.accounts.<id>.allowFrom.
Telegram
- Token bot:
channels.telegram.botTokenhoặcchannels.telegram.tokenFile(chỉ file thường; symlinks bị từ chối), vớiTELEGRAM_BOT_TOKENlà dự phòng cho tài khoản mặc định. channels.telegram.defaultAccounttùy chọn ghi đè lựa chọn tài khoản mặc định khi nó khớp với một id tài khoản đã cấu hình.- Trong các thiết lập đa tài khoản (2+ id tài khoản), đặt một mặc định rõ ràng (
channels.telegram.defaultAccounthoặcchannels.telegram.accounts.default) để tránh định tuyến dự phòng;openclaw doctorcảnh báo khi điều này thiếu hoặc không hợp lệ. configWrites: falsechặn các ghi cấu hình khởi tạo từ Telegram (di chuyển ID siêu nhóm,/config set|unset).- Các mục
bindings[]cấp cao nhất vớitype: "acp"cấu hình các ràng buộc ACP liên tục cho các chủ đề diễn đàn (sử dụngchatId:topic:topicIdchuẩn trongmatch.peer.id). Ngữ nghĩa trường được chia sẻ trong ACP Agents. - Xem trước luồng Telegram sử dụng
sendMessage+editMessageText(hoạt động trong các cuộc trò chuyện trực tiếp và nhóm). - Chính sách thử lại: xem Chính sách thử lại.
Discord
- Token:
channels.discord.token, vớiDISCORD_BOT_TOKENlà dự phòng cho tài khoản mặc định. - Các cuộc gọi đi trực tiếp cung cấp một
tokenDiscord rõ ràng sử dụng token đó cho cuộc gọi; cài đặt chính sách/thử lại tài khoản vẫn đến từ tài khoản đã chọn trong ảnh chụp nhanh runtime đang hoạt động. channels.discord.defaultAccounttùy chọn ghi đè lựa chọn tài khoản mặc định khi nó khớp với một id tài khoản đã cấu hình.- Sử dụng
user:<id>(DM) hoặcchannel:<id>(kênh guild) cho các mục tiêu giao hàng; các ID số không có sẽ bị từ chối. - Các slug guild là chữ thường với khoảng trắng được thay thế bằng
-; các khóa kênh sử dụng tên slug (không có#). Ưu tiên ID guild. - Tin nhắn do bot tạo ra bị bỏ qua theo mặc định.
allowBots: truecho phép chúng; sử dụngallowBots: "mentions"để chỉ chấp nhận tin nhắn bot nhắc đến bot (các tin nhắn của chính mình vẫn bị lọc). channels.discord.guilds.<id>.ignoreOtherMentions(và ghi đè kênh) bỏ qua các tin nhắn nhắc đến người dùng hoặc vai trò khác nhưng không nhắc đến bot (trừ @everyone/@here).maxLinesPerMessage(mặc định 17) chia các tin nhắn cao ngay cả khi dưới 2000 ký tự.channels.discord.threadBindingskiểm soát định tuyến ràng buộc luồng Discord:enabled: ghi đè Discord cho các tính năng phiên ràng buộc luồng (/focus,/unfocus,/agents,/session idle,/session max-age, và giao hàng/routing ràng buộc)idleHours: ghi đè Discord cho tự động không tập trung khi không hoạt động trong giờ (0vô hiệu hóa)maxAgeHours: ghi đè Discord cho tuổi tối đa cứng trong giờ (0vô hiệu hóa)spawnSubagentSessions: công tắc opt-in chosessions_spawn({ thread: true })tạo/binding luồng tự động
- Các mục
bindings[]cấp cao nhất vớitype: "acp"cấu hình các ràng buộc ACP liên tục cho các kênh và luồng (sử dụng id kênh/luồng trongmatch.peer.id). Ngữ nghĩa trường được chia sẻ trong ACP Agents. channels.discord.ui.components.accentColorđặt màu nhấn cho các container thành phần Discord v2.channels.discord.voicecho phép các cuộc trò chuyện kênh thoại Discord và tùy chọn tự động tham gia + ghi đè TTS.channels.discord.voice.daveEncryptionvàchannels.discord.voice.decryptionFailureTolerancetruyền qua các tùy chọn DAVE của@discordjs/voice(truevà24theo mặc định).- OpenClaw cũng cố gắng khôi phục nhận giọng nói bằng cách rời khỏi/tham gia lại một phiên giọng nói sau khi thất bại giải mã lặp lại.
channels.discord.streaminglà khóa chế độ luồng chuẩn. Các giá trịstreamModevàstreamingboolean cũ được tự động di chuyển.channels.discord.autoPresenceánh xạ khả năng runtime thành sự hiện diện của bot (khỏe mạnh => online, suy giảm => idle, kiệt sức => dnd) và cho phép ghi đè văn bản trạng thái tùy chọn.channels.discord.dangerouslyAllowNameMatchingbật lại khớp tên/tag có thể thay đổi (chế độ tương thích phá vỡ kính).
off (không có), own (tin nhắn của bot, mặc định), all (tất cả tin nhắn), allowlist (từ guilds.<id>.users trên tất cả tin nhắn).
Google Chat
- Tài khoản dịch vụ JSON: nội tuyến (
serviceAccount) hoặc dựa trên file (serviceAccountFile). - Tài khoản dịch vụ SecretRef cũng được hỗ trợ (
serviceAccountRef). - Dự phòng môi trường:
GOOGLE_CHAT_SERVICE_ACCOUNThoặcGOOGLE_CHAT_SERVICE_ACCOUNT_FILE. - Sử dụng
spaces/<spaceId>hoặcusers/<userId>cho các mục tiêu giao hàng. channels.googlechat.dangerouslyAllowNameMatchingbật lại khớp nguyên tắc email có thể thay đổi (chế độ tương thích phá vỡ kính).
Slack
- Chế độ Socket yêu cầu cả
botTokenvàappToken(SLACK_BOT_TOKEN+SLACK_APP_TOKENcho dự phòng môi trường tài khoản mặc định). - Chế độ HTTP yêu cầu
botTokencộng vớisigningSecret(ở gốc hoặc theo tài khoản). configWrites: falsechặn các ghi cấu hình khởi tạo từ Slack.channels.slack.defaultAccounttùy chọn ghi đè lựa chọn tài khoản mặc định khi nó khớp với một id tài khoản đã cấu hình.channels.slack.streaminglà khóa chế độ luồng chuẩn. Các giá trịstreamModevàstreamingboolean cũ được tự động di chuyển.- Sử dụng
user:<id>(DM) hoặcchannel:<id>cho các mục tiêu giao hàng.
off, own (mặc định), all, allowlist (từ reactionAllowlist).
Cách ly phiên luồng: thread.historyScope là theo luồng (mặc định) hoặc chia sẻ trên kênh. thread.inheritParent sao chép bản ghi kênh cha vào các luồng mới.
typingReactionthêm một phản ứng tạm thời vào tin nhắn Slack đến trong khi một câu trả lời đang chạy, sau đó loại bỏ nó khi hoàn thành. Sử dụng mã ngắn emoji Slack như"hourglass_flowing_sand".
| Nhóm hành động | Mặc định | Ghi chú |
|---|---|---|
| reactions | enabled | Phản ứng + danh sách phản ứng |
| messages | enabled | Đọc/gửi/chỉnh sửa/xóa |
| pins | enabled | Ghim/bỏ ghim/danh sách |
| memberInfo | enabled | Thông tin thành viên |
| emojiList | enabled | Danh sách emoji tùy chỉnh |
Mattermost
Mattermost được cung cấp dưới dạng plugin:openclaw plugins install @openclaw/mattermost.
oncall (phản hồi khi được @-mention, mặc định), onmessage (mỗi tin nhắn), onchar (tin nhắn bắt đầu với tiền tố kích hoạt).
Khi các lệnh gốc Mattermost được bật:
commands.callbackPathphải là một đường dẫn (ví dụ/api/channels/mattermost/command), không phải là một URL đầy đủ.commands.callbackUrlphải giải quyết đến điểm cuối gateway OpenClaw và có thể truy cập từ máy chủ Mattermost.- Đối với các máy chủ callback riêng/tailnet/nội bộ, Mattermost có thể yêu cầu
ServiceSettings.AllowedUntrustedInternalConnectionsđể bao gồm máy chủ/tên miền callback. Sử dụng giá trị máy chủ/tên miền, không phải URL đầy đủ. channels.mattermost.configWrites: cho phép hoặc từ chối các ghi cấu hình khởi tạo từ Mattermost.channels.mattermost.requireMention: yêu cầu@mentiontrước khi trả lời trong các kênh.channels.mattermost.defaultAccounttùy chọn ghi đè lựa chọn tài khoản mặc định khi nó khớp với một id tài khoản đã cấu hình.
Signal
off, own (mặc định), all, allowlist (từ reactionAllowlist).
channels.signal.account: gán khởi động kênh vào một danh tính tài khoản Signal cụ thể.channels.signal.configWrites: cho phép hoặc từ chối các ghi cấu hình khởi tạo từ Signal.channels.signal.defaultAccounttùy chọn ghi đè lựa chọn tài khoản mặc định khi nó khớp với một id tài khoản đã cấu hình.
BlueBubbles
BlueBubbles là đường dẫn iMessage được khuyến nghị (hỗ trợ plugin, cấu hình dướichannels.bluebubbles).
- Các đường dẫn khóa cốt lõi được bao phủ ở đây:
channels.bluebubbles,channels.bluebubbles.dmPolicy. channels.bluebubbles.defaultAccounttùy chọn ghi đè lựa chọn tài khoản mặc định khi nó khớp với một id tài khoản đã cấu hình.- Cấu hình kênh BlueBubbles đầy đủ được tài liệu trong BlueBubbles.
iMessage
OpenClaw khởi chạyimsg rpc (JSON-RPC qua stdio). Không cần daemon hoặc cổng.
-
channels.imessage.defaultAccounttùy chọn ghi đè lựa chọn tài khoản mặc định khi nó khớp với một id tài khoản đã cấu hình. - Yêu cầu Quyền Truy cập Đĩa Đầy đủ vào DB Tin nhắn.
-
Ưu tiên các mục tiêu
chat_id:<id>. Sử dụngimsg chats --limit 20để liệt kê các cuộc trò chuyện. -
cliPathcó thể trỏ đến một trình bao SSH; đặtremoteHost(hosthoặcuser@host) để lấy tệp đính kèm SCP. -
attachmentRootsvàremoteAttachmentRootshạn chế các đường dẫn tệp đính kèm đến (mặc định:/Users/*/Library/Messages/Attachments). -
SCP sử dụng kiểm tra khóa máy chủ nghiêm ngặt, vì vậy hãy đảm bảo khóa máy chủ chuyển tiếp đã tồn tại trong
~/.ssh/known_hosts. -
channels.imessage.configWrites: cho phép hoặc từ chối các ghi cấu hình khởi tạo từ iMessage.
Ví dụ trình bao SSH iMessage
Ví dụ trình bao SSH iMessage
Microsoft Teams
Microsoft Teams được hỗ trợ mở rộng và cấu hình dướichannels.msteams.
- Các đường dẫn khóa cốt lõi được bao phủ ở đây:
channels.msteams,channels.msteams.configWrites. - Cấu hình Teams đầy đủ (thông tin xác thực, webhook, chính sách DM/nhóm, ghi đè theo nhóm/kênh) được tài liệu trong Microsoft Teams.
IRC
IRC được hỗ trợ mở rộng và cấu hình dướichannels.irc.
- Các đường dẫn khóa cốt lõi được bao phủ ở đây:
channels.irc,channels.irc.dmPolicy,channels.irc.configWrites,channels.irc.nickserv.*. channels.irc.defaultAccounttùy chọn ghi đè lựa chọn tài khoản mặc định khi nó khớp với một id tài khoản đã cấu hình.- Cấu hình kênh IRC đầy đủ (host/port/TLS/channels/allowlists/mention gating) được tài liệu trong IRC.
Đa tài khoản (tất cả các kênh)
Chạy nhiều tài khoản cho mỗi kênh (mỗi tài khoản cóaccountId riêng):
defaultđược sử dụng khiaccountIdbị bỏ qua (CLI + định tuyến).- Các token môi trường chỉ áp dụng cho tài khoản mặc định.
- Cài đặt kênh cơ bản áp dụng cho tất cả các tài khoản trừ khi bị ghi đè theo tài khoản.
- Sử dụng
bindings[].match.accountIdđể định tuyến mỗi tài khoản đến một agent khác nhau. - Nếu bạn thêm một tài khoản không mặc định qua
openclaw channels add(hoặc onboarding kênh) trong khi vẫn ở cấu hình kênh cấp cao nhất đơn tài khoản, OpenClaw di chuyển các giá trị đơn tài khoản cấp cao nhất theo phạm vi tài khoản vàochannels.<channel>.accounts.defaulttrước để tài khoản gốc tiếp tục hoạt động. - Các ràng buộc chỉ có kênh hiện có (không có
accountId) vẫn khớp với tài khoản mặc định; các ràng buộc theo phạm vi tài khoản vẫn là tùy chọn. openclaw doctor --fixcũng sửa chữa các hình dạng hỗn hợp bằng cách di chuyển các giá trị đơn tài khoản cấp cao nhất theo phạm vi tài khoản vàoaccounts.defaultkhi các tài khoản được đặt tên tồn tại nhưngdefaultbị thiếu.
Các kênh mở rộng khác
Nhiều kênh mở rộng được cấu hình dưới dạngchannels.<id> và được tài liệu trong các trang kênh chuyên dụng của chúng (ví dụ Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat, và Twitch).
Xem chỉ mục kênh đầy đủ: Channels.
Kiểm soát nhắc đến trong chat nhóm
Tin nhắn nhóm mặc định là yêu cầu nhắc đến (nhắc đến metadata hoặc mẫu regex an toàn). Áp dụng cho các cuộc trò chuyện nhóm WhatsApp, Telegram, Discord, Google Chat, và iMessage. Loại nhắc đến:- Nhắc đến metadata: Nhắc đến @-native của nền tảng. Bị bỏ qua trong chế độ tự-chat WhatsApp.
- Mẫu văn bản: Mẫu regex an toàn trong
agents.list[].groupChat.mentionPatterns. Các mẫu không hợp lệ và lặp lại lồng ghép không an toàn bị bỏ qua. - Kiểm soát nhắc đến chỉ được thực thi khi phát hiện là có thể (nhắc đến native hoặc ít nhất một mẫu).
messages.groupChat.historyLimit đặt mặc định toàn cầu. Các kênh có thể ghi đè với channels.<channel>.historyLimit (hoặc theo tài khoản). Đặt 0 để vô hiệu hóa.
Giới hạn lịch sử DM
telegram, whatsapp, discord, slack, signal, imessage, msteams.
Chế độ tự-chat
Bao gồm số của bạn trongallowFrom để bật chế độ tự-chat (bỏ qua nhắc đến @-native, chỉ phản hồi các mẫu văn bản):
Lệnh (xử lý lệnh chat)
Chi tiết lệnh
Chi tiết lệnh
- Lệnh văn bản phải là tin nhắn độc lập với dấu
/đầu tiên. native: "auto"bật lệnh gốc cho Discord/Telegram, để Slack tắt.- Ghi đè theo kênh:
channels.discord.commands.native(bool hoặc"auto").falsexóa các lệnh đã đăng ký trước đó. channels.telegram.customCommandsthêm các mục menu bot Telegram bổ sung.bash: truebật! <cmd>cho shell máy chủ. Yêu cầutools.elevated.enabledvà người gửi trongtools.elevated.allowFrom.<channel>.config: truebật/config(đọc/ghiopenclaw.json). Đối với các khách hàngchat.sendcủa gateway, các ghi/config set|unsetbền vững cũng yêu cầuoperator.admin;/config showchỉ đọc vẫn có sẵn cho các khách hàng operator có quyền ghi bình thường.channels.<provider>.configWritescổng các biến đổi cấu hình theo kênh (mặc định: true).- Đối với các kênh đa tài khoản,
channels.<provider>.accounts.<id>.configWritescũng cổng các ghi nhắm mục tiêu tài khoản đó (ví dụ/allowlist --config --account <id>hoặc/config set channels.<provider>.accounts.<id>...). allowFromlà theo nhà cung cấp. Khi được đặt, nó là nguồn ủy quyền duy nhất (danh sách cho phép/ghép nối kênh vàuseAccessGroupsbị bỏ qua).useAccessGroups: falsecho phép các lệnh bỏ qua các chính sách nhóm truy cập khiallowFromkhông được đặt.
Mặc định của Agent
agents.defaults.workspace
Mặc định: ~/.openclaw/workspace.
agents.defaults.repoRoot
Gốc kho lưu trữ tùy chọn hiển thị trong dòng Runtime của lời nhắc hệ thống. Nếu không được đặt, OpenClaw tự động phát hiện bằng cách đi lên từ workspace.
agents.defaults.skipBootstrap
Vô hiệu hóa việc tạo tự động các file bootstrap workspace (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md).
agents.defaults.bootstrapMaxChars
Số ký tự tối đa cho mỗi file bootstrap workspace trước khi cắt ngắn. Mặc định: 20000.
agents.defaults.bootstrapTotalMaxChars
Tổng số ký tự tối đa được chèn vào tất cả các file bootstrap workspace. Mặc định: 150000.
agents.defaults.bootstrapPromptTruncationWarning
Kiểm soát văn bản cảnh báo có thể nhìn thấy của agent khi ngữ cảnh bootstrap bị cắt ngắn.
Mặc định: "once".
"off": không bao giờ chèn văn bản cảnh báo vào lời nhắc hệ thống."once": chèn cảnh báo một lần cho mỗi chữ ký cắt ngắn duy nhất (khuyến nghị)."always": chèn cảnh báo mỗi lần chạy khi có cắt ngắn.
agents.defaults.imageMaxDimensionPx
Kích thước pixel tối đa cho cạnh dài nhất của hình ảnh trong các khối hình ảnh transcript/tool trước khi gọi nhà cung cấp.
Mặc định: 1200.
Giá trị thấp hơn thường giảm sử dụng vision-token và kích thước payload yêu cầu cho các lần chạy nặng về ảnh chụp màn hình.
Giá trị cao hơn giữ lại nhiều chi tiết hình ảnh hơn.
agents.defaults.userTimezone
Múi giờ cho ngữ cảnh lời nhắc hệ thống (không phải dấu thời gian tin nhắn). Dự phòng cho múi giờ máy chủ.
agents.defaults.timeFormat
Định dạng thời gian trong lời nhắc hệ thống. Mặc định: auto (ưu tiên hệ điều hành).
agents.defaults.model
model: chấp nhận một chuỗi ("provider/model") hoặc một đối tượng ({ primary, fallbacks }).- Dạng chuỗi chỉ đặt mô hình chính.
- Dạng đối tượng đặt mô hình chính cộng với các mô hình dự phòng theo thứ tự.
imageModel: chấp nhận một chuỗi ("provider/model") hoặc một đối tượng ({ primary, fallbacks }).- Được sử dụng bởi đường dẫn công cụ
imagenhư cấu hình mô hình tầm nhìn của nó. - Cũng được sử dụng như định tuyến dự phòng khi mô hình đã chọn/mặc định không thể chấp nhận đầu vào hình ảnh.
- Được sử dụng bởi đường dẫn công cụ
imageGenerationModel: chấp nhận một chuỗi ("provider/model") hoặc một đối tượng ({ primary, fallbacks }).- Được sử dụng bởi khả năng tạo hình ảnh chia sẻ và bất kỳ bề mặt công cụ/plugin tương lai nào tạo ra hình ảnh.
- Các giá trị điển hình:
google/gemini-3-pro-image-previewcho luồng kiểu Nano Banana gốc,fal/fal-ai/flux/devcho fal, hoặcopenai/gpt-image-1cho OpenAI Images. - Nếu bị bỏ qua,
image_generatevẫn có thể suy ra một nhà cung cấp mặc định nỗ lực tốt nhất từ các nhà cung cấp tạo hình ảnh có xác thực tương thích. - Các giá trị điển hình:
google/gemini-3-pro-image-preview,fal/fal-ai/flux/dev,openai/gpt-image-1.
pdfModel: chấp nhận một chuỗi ("provider/model") hoặc một đối tượng ({ primary, fallbacks }).- Được sử dụng bởi công cụ
pdfcho định tuyến mô hình. - Nếu bị bỏ qua, công cụ PDF sẽ quay lại
imageModel, sau đó là các nhà cung cấp mặc định nỗ lực tốt nhất.
- Được sử dụng bởi công cụ
pdfMaxBytesMb: giới hạn kích thước PDF mặc định cho công cụpdfkhimaxBytesMbkhông được truyền tại thời điểm gọi.pdfMaxPages: số trang tối đa mặc định được xem xét bởi chế độ dự phòng trích xuất trong công cụpdf.model.primary: định dạngprovider/model(ví dụanthropic/claude-opus-4-6). Nếu bạn bỏ qua nhà cung cấp, OpenClaw giả địnhanthropic(không khuyến nghị).models: danh mục mô hình đã cấu hình và danh sách cho phép cho/model. Mỗi mục có thể bao gồmalias(lối tắt) vàparams(cụ thể cho nhà cung cấp, ví dụtemperature,maxTokens,cacheRetention,context1m).paramsưu tiên hợp nhất (cấu hình):agents.defaults.models["provider/model"].paramslà cơ sở, sau đóagents.list[].params(khớp với id agent) ghi đè theo khóa.- Các trình ghi cấu hình thay đổi các trường này (ví dụ
/models set,/models set-image, và các lệnh thêm/xóa dự phòng) lưu dạng đối tượng chuẩn và bảo tồn danh sách dự phòng hiện có khi có thể. maxConcurrent: số lần chạy agent song song tối đa trên các phiên (mỗi phiên vẫn được tuần tự hóa). Mặc định: 1.
agents.defaults.models):
| Bí danh | Mô hình |
|---|---|
opus | anthropic/claude-opus-4-6 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/gpt-5.4 |
gpt-mini | openai/gpt-5-mini |
gemini | google/gemini-3.1-pro-preview |
gemini-flash | google/gemini-3-flash-preview |
gemini-flash-lite | google/gemini-3.1-flash-lite-preview |
--thinking off hoặc tự định nghĩa agents.defaults.models["zai/<model>"].params.thinking.
Các mô hình Z.AI bật tool_stream theo mặc định cho luồng gọi công cụ. Đặt agents.defaults.models["zai/<model>"].params.tool_stream thành false để vô hiệu hóa nó.
Các mô hình Anthropic Claude 4.6 mặc định là adaptive suy nghĩ khi không có mức suy nghĩ rõ ràng nào được đặt.
agents.defaults.cliBackends
Các backend CLI tùy chọn cho các lần chạy dự phòng chỉ văn bản (không có cuộc gọi công cụ). Hữu ích như một bản sao lưu khi các nhà cung cấp API thất bại.
- Các backend CLI là ưu tiên văn bản; các công cụ luôn bị vô hiệu hóa.
- Các phiên được hỗ trợ khi
sessionArgđược đặt. - Hỗ trợ truyền qua hình ảnh khi
imageArgchấp nhận các đường dẫn file.
agents.defaults.heartbeat
Các lần chạy nhịp tim định kỳ.
every: chuỗi thời lượng (ms/s/m/h). Mặc định:30m.suppressToolErrorWarnings: khi đúng, ngăn chặn các payload cảnh báo lỗi công cụ trong các lần chạy nhịp tim.directPolicy: chính sách giao hàng trực tiếp/DM.allow(mặc định) cho phép giao hàng mục tiêu trực tiếp.blockngăn chặn giao hàng mục tiêu trực tiếp và phát rareason=dm-blocked.lightContext: khi đúng, các lần chạy nhịp tim sử dụng ngữ cảnh bootstrap nhẹ và chỉ giữ lạiHEARTBEAT.mdtừ các file bootstrap workspace.isolatedSession: khi đúng, mỗi nhịp tim chạy trong một phiên mới không có lịch sử hội thoại trước đó. Cùng mẫu cách ly như cronsessionTarget: "isolated". Giảm chi phí token mỗi nhịp tim từ ~100K xuống ~2-5K token.- Theo agent: đặt
agents.list[].heartbeat. Khi bất kỳ agent nào định nghĩaheartbeat, chỉ những agent đó chạy nhịp tim. - Nhịp tim chạy các lượt agent đầy đủ — các khoảng thời gian ngắn hơn tiêu tốn nhiều token hơn.
agents.defaults.compaction
mode:defaulthoặcsafeguard(tóm tắt theo khối cho các lịch sử dài). Xem Nén.timeoutSeconds: số giây tối đa cho phép cho một hoạt động nén đơn trước khi OpenClaw hủy bỏ nó. Mặc định:900.identifierPolicy:strict(mặc định),off, hoặccustom.strictthêm hướng dẫn bảo toàn định danh mờ tích hợp trong quá trình tóm tắt nén.identifierInstructions: văn bản bảo toàn định danh tùy chỉnh tùy chọn được sử dụng khiidentifierPolicy=custom.postCompactionSections: tên phần H2/H3 AGENTS.md tùy chọn để tái chèn sau khi nén. Mặc định là["Session Startup", "Red Lines"]; đặt[]để vô hiệu hóa tái chèn. Khi không được đặt hoặc được đặt rõ ràng thành cặp mặc định đó, các tiêu đềEvery Session/Safetycũ hơn cũng được chấp nhận như một dự phòng cũ.model: ghi đèprovider/model-idtùy chọn cho chỉ tóm tắt nén. Sử dụng điều này khi phiên chính nên giữ một mô hình nhưng các tóm tắt nén nên chạy trên một mô hình khác; khi không được đặt, nén sử dụng mô hình chính của phiên.memoryFlush: lượt agentic im lặng trước khi tự động nén để lưu trữ các ký ức bền vững. Bỏ qua khi workspace chỉ đọc.
agents.defaults.contextPruning
Loại bỏ kết quả công cụ cũ khỏi bộ nhớ trước khi gửi đến LLM. Không thay đổi lịch sử phiên trên ổ đĩa.
Hành vi chế độ cache-ttl
Hành vi chế độ cache-ttl
mode: "cache-ttl"kích hoạt quá trình loại bỏ.ttlkiểm soát tần suất loại bỏ có thể chạy lại (sau lần cuối cùng bộ nhớ cache được chạm tới).- Loại bỏ mềm cắt ngắn kết quả công cụ quá lớn trước, sau đó xóa cứng kết quả công cụ cũ hơn nếu cần.
... vào giữa.Xóa cứng thay thế toàn bộ kết quả công cụ bằng một placeholder.Ghi chú:- Các khối hình ảnh không bao giờ bị cắt/xóa.
- Tỷ lệ dựa trên ký tự (xấp xỉ), không phải số lượng token chính xác.
- Nếu có ít hơn
keepLastAssistantstin nhắn trợ lý, quá trình loại bỏ sẽ bị bỏ qua.
Truyền tải khối
- Các kênh không phải Telegram yêu cầu
*.blockStreaming: trueđể kích hoạt trả lời khối. - Ghi đè kênh:
channels.<channel>.blockStreamingCoalesce(và các biến thể theo tài khoản). Signal/Slack/Discord/Google Chat mặc địnhminChars: 1500. humanDelay: tạm dừng ngẫu nhiên giữa các trả lời khối.natural= 800–2500ms. Ghi đè theo agent:agents.list[].humanDelay.
Chỉ báo gõ
- Mặc định:
instantcho các cuộc trò chuyện trực tiếp/đề cập,messagecho các cuộc trò chuyện nhóm không được đề cập. - Ghi đè theo phiên:
session.typingMode,session.typingIntervalSeconds.
agents.defaults.sandbox
Tùy chọn sandboxing cho agent nhúng. Xem Sandboxing để biết hướng dẫn đầy đủ.
Chi tiết Sandbox
Chi tiết Sandbox
Backend:Chế độ OpenShell:
docker: runtime Docker cục bộ (mặc định)ssh: runtime từ xa hỗ trợ SSHopenshell: runtime OpenShell
backend: "openshell" được chọn, cài đặt cụ thể cho runtime chuyển sang
plugins.entries.openshell.config.Cấu hình backend SSH:target: mục tiêu SSH dưới dạnguser@host[:port]command: lệnh client SSH (mặc định:ssh)workspaceRoot: thư mục gốc từ xa tuyệt đối được sử dụng cho các workspace theo phạm viidentityFile/certificateFile/knownHostsFile: các tệp cục bộ hiện có được chuyển đến OpenSSHidentityData/certificateData/knownHostsData: nội dung inline hoặc SecretRefs mà OpenClaw chuyển thành các tệp tạm thời tại runtimestrictHostKeyChecking/updateHostKeys: các nút điều chỉnh chính sách host-key của OpenSSH
identityDatađược ưu tiên hơnidentityFilecertificateDatađược ưu tiên hơncertificateFileknownHostsDatađược ưu tiên hơnknownHostsFile- Các giá trị
*Datađược hỗ trợ bởi SecretRef được giải quyết từ snapshot runtime bí mật hiện tại trước khi phiên sandbox bắt đầu
- khởi tạo workspace từ xa một lần sau khi tạo hoặc tạo lại
- sau đó giữ workspace SSH từ xa là chuẩn
- định tuyến
exec, công cụ tệp và đường dẫn media qua SSH - không đồng bộ hóa các thay đổi từ xa trở lại host tự động
- không hỗ trợ các container trình duyệt sandbox
none: workspace sandbox theo phạm vi dưới~/.openclaw/sandboxesro: workspace sandbox tại/workspace, workspace agent được gắn kết chỉ đọc tại/agentrw: workspace agent được gắn kết đọc/ghi tại/workspace
session: container + workspace theo phiênagent: một container + workspace cho mỗi agent (mặc định)shared: container và workspace chia sẻ (không có cách ly giữa các phiên)
mirror: khởi tạo từ xa từ cục bộ trước khi thực thi, đồng bộ hóa lại sau khi thực thi; workspace cục bộ vẫn là chuẩnremote: khởi tạo từ xa một lần khi sandbox được tạo, sau đó giữ workspace từ xa là chuẩn
remote, các chỉnh sửa cục bộ trên host được thực hiện ngoài OpenClaw không được đồng bộ hóa vào sandbox tự động sau bước khởi tạo.
Truyền tải là SSH vào sandbox OpenShell, nhưng plugin sở hữu vòng đời sandbox và đồng bộ hóa gương tùy chọn.setupCommand chạy một lần sau khi tạo container (thông qua sh -lc). Cần có mạng egress, thư mục gốc có thể ghi, người dùng root.Các container mặc định là network: "none" — đặt thành "bridge" (hoặc mạng cầu tùy chỉnh) nếu agent cần truy cập ra ngoài.
"host" bị chặn. "container:<id>" bị chặn theo mặc định trừ khi bạn đặt rõ ràng
sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true (phá vỡ kính).Các tệp đính kèm đầu vào được lưu trữ vào media/inbound/* trong workspace đang hoạt động.docker.binds gắn kết các thư mục host bổ sung; các gắn kết toàn cầu và theo agent được hợp nhất.Trình duyệt sandbox (sandbox.browser.enabled): Chromium + CDP trong một container. URL noVNC được chèn vào lời nhắc hệ thống. Không yêu cầu browser.enabled trong openclaw.json.
Truy cập quan sát noVNC sử dụng xác thực VNC theo mặc định và OpenClaw phát ra một URL token ngắn hạn (thay vì tiết lộ mật khẩu trong URL chia sẻ).allowHostControl: false(mặc định) chặn các phiên sandbox nhắm mục tiêu vào trình duyệt host.networkmặc định làopenclaw-sandbox-browser(mạng cầu chuyên dụng). Đặt thànhbridgechỉ khi bạn muốn kết nối cầu toàn cầu.cdpSourceRangetùy chọn hạn chế ingress CDP tại cạnh container đến một phạm vi CIDR (ví dụ172.21.0.1/32).sandbox.browser.bindsgắn kết các thư mục host bổ sung vào container trình duyệt sandbox chỉ. Khi được đặt (bao gồm[]), nó thay thếdocker.bindscho container trình duyệt.- Các mặc định khởi chạy được định nghĩa trong
scripts/sandbox-browser-entrypoint.shvà được điều chỉnh cho các host container:--remote-debugging-address=127.0.0.1--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>--user-data-dir=${HOME}/.chrome--no-first-run--no-default-browser-check--disable-3d-apis--disable-gpu--disable-software-rasterizer--disable-dev-shm-usage--disable-background-networking--disable-features=TranslateUI--disable-breakpad--disable-crash-reporter--renderer-process-limit=2--no-zygote--metrics-recording-only--disable-extensions(mặc định được bật)--disable-3d-apis,--disable-software-rasterizer, và--disable-gpuđược bật theo mặc định và có thể bị tắt vớiOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0nếu cần sử dụng WebGL/3D.OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0bật lại các tiện ích mở rộng nếu quy trình làm việc của bạn phụ thuộc vào chúng.--renderer-process-limit=2có thể được thay đổi vớiOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>; đặt0để sử dụng giới hạn quy trình mặc định của Chromium.- cộng với
--no-sandboxvà--disable-setuid-sandboxkhinoSandboxđược bật. - Các mặc định là cơ sở hình ảnh container; sử dụng hình ảnh trình duyệt tùy chỉnh với một điểm vào tùy chỉnh để thay đổi các mặc định container.
sandbox.docker.binds hiện chỉ hỗ trợ Docker.
Xây dựng hình ảnh:
agents.list (ghi đè theo agent)
id: id agent ổn định (bắt buộc).default: khi nhiều cái được đặt, cái đầu tiên thắng (cảnh báo được ghi lại). Nếu không có cái nào được đặt, mục đầu tiên trong danh sách là mặc định.model: dạng chuỗi ghi đè chỉprimary; dạng đối tượng{ primary, fallbacks }ghi đè cả hai ([]vô hiệu hóa các fallbacks toàn cầu). Các công việc cron chỉ ghi đèprimaryvẫn kế thừa các fallbacks mặc định trừ khi bạn đặtfallbacks: [].params: các tham số luồng theo agent được hợp nhất trên mục nhập model đã chọn trongagents.defaults.models. Sử dụng điều này cho các ghi đè cụ thể theo agent nhưcacheRetention,temperature, hoặcmaxTokensmà không cần sao chép toàn bộ danh mục model.thinkingDefault: mức độ suy nghĩ mặc định tùy chọn theo agent (off | minimal | low | medium | high | xhigh | adaptive). Ghi đèagents.defaults.thinkingDefaultcho agent này khi không có ghi đè theo tin nhắn hoặc phiên nào được đặt.reasoningDefault: khả năng hiển thị lý luận mặc định tùy chọn theo agent (on | off | stream). Áp dụng khi không có ghi đè lý luận theo tin nhắn hoặc phiên nào được đặt.fastModeDefault: mặc định tùy chọn theo agent cho chế độ nhanh (true | false). Áp dụng khi không có ghi đè chế độ nhanh theo tin nhắn hoặc phiên nào được đặt.runtime: mô tả runtime tùy chọn theo agent. Sử dụngtype: "acp"với các mặc địnhruntime.acp(agent,backend,mode,cwd) khi agent nên mặc định cho các phiên harness ACP.identity.avatar: đường dẫn tương đối workspace, URLhttp(s), hoặc URIdata:.identitydẫn xuất các mặc định:ackReactiontừemoji,mentionPatternstừname/emoji.subagents.allowAgents: danh sách cho phép các id agent chosessions_spawn(["*"]= bất kỳ; mặc định: chỉ cùng agent).- Bảo vệ thừa kế Sandbox: nếu phiên yêu cầu được sandbox,
sessions_spawntừ chối các mục tiêu sẽ chạy không được sandbox.
Định tuyến đa agent
Chạy nhiều agent cách ly bên trong một Gateway. Xem Multi-Agent.Trường khớp ràng buộc
type(tùy chọn):routecho định tuyến thông thường (loại thiếu mặc định là route),acpcho các ràng buộc cuộc trò chuyện ACP liên tục.match.channel(bắt buộc)match.accountId(tùy chọn;*= bất kỳ tài khoản nào; bỏ qua = tài khoản mặc định)match.peer(tùy chọn;{ kind: direct|group|channel, id })match.guildId/match.teamId(tùy chọn; cụ thể cho kênh)acp(tùy chọn; chỉ dành chotype: "acp"):{ mode, label, cwd, backend }
match.peermatch.guildIdmatch.teamIdmatch.accountId(chính xác, không có peer/guild/team)match.accountId: "*"(toàn kênh)- Agent mặc định
bindings khớp đầu tiên sẽ thắng.
Đối với các mục type: "acp", OpenClaw giải quyết bằng danh tính cuộc trò chuyện chính xác (match.channel + tài khoản + match.peer.id) và không sử dụng thứ tự cấp ràng buộc route ở trên.
Hồ sơ truy cập theo agent
Truy cập đầy đủ (không sandbox)
Truy cập đầy đủ (không sandbox)
Công cụ chỉ đọc + workspace
Công cụ chỉ đọc + workspace
Không truy cập hệ thống tệp (chỉ nhắn tin)
Không truy cập hệ thống tệp (chỉ nhắn tin)
Phiên
Chi tiết trường phiên
Chi tiết trường phiên
dmScope: cách nhóm các DM.main: tất cả các DM chia sẻ phiên chính.per-peer: cách ly theo id người gửi trên các kênh.per-channel-peer: cách ly theo kênh + người gửi (được khuyến nghị cho các hộp thư đến nhiều người dùng).per-account-channel-peer: cách ly theo tài khoản + kênh + người gửi (được khuyến nghị cho nhiều tài khoản).
identityLinks: ánh xạ các id chuẩn đến các peer có tiền tố nhà cung cấp để chia sẻ phiên giữa các kênh.reset: chính sách đặt lại chính.dailyđặt lại vàoatHourgiờ địa phương;idleđặt lại sauidleMinutes. Khi cả hai được cấu hình, cái nào hết hạn trước sẽ thắng.resetByType: ghi đè theo loại (direct,group,thread).dmkế thừa được chấp nhận làm bí danh chodirect.parentForkMaxTokens: số lượng tokentotalTokenstối đa của phiên cha được phép khi tạo phiên luồng forked (mặc định100000).- Nếu
totalTokenscủa phiên cha vượt quá giá trị này, OpenClaw bắt đầu một phiên luồng mới thay vì kế thừa lịch sử bản ghi của phiên cha. - Đặt
0để vô hiệu hóa bảo vệ này và luôn cho phép fork của phiên cha.
- Nếu
mainKey: trường kế thừa. Runtime hiện luôn sử dụng"main"cho bucket trò chuyện trực tiếp chính.sendPolicy: khớp theochannel,chatType(direct|group|channel, với bí danhdmkế thừa),keyPrefix, hoặcrawKeyPrefix. Từ chối đầu tiên thắng.maintenance: dọn dẹp + kiểm soát lưu giữ phiên.mode:warnchỉ phát ra cảnh báo;enforceáp dụng dọn dẹp.pruneAfter: ngưỡng tuổi cho các mục không hoạt động (mặc định30d).maxEntries: số lượng mục tối đa trongsessions.json(mặc định500).rotateBytes: xoaysessions.jsonkhi nó vượt quá kích thước này (mặc định10mb).resetArchiveRetention: thời gian lưu giữ cho các bản ghi*.reset.<timestamp>. Mặc định làpruneAfter; đặtfalseđể vô hiệu hóa.maxDiskBytes: ngân sách đĩa thư mục phiên tùy chọn. Trong chế độwarn, nó ghi lại cảnh báo; trong chế độenforce, nó xóa các phiên/mục cũ nhất trước.highWaterBytes: mục tiêu tùy chọn sau khi dọn dẹp ngân sách. Mặc định là80%củamaxDiskBytes.
threadBindings: mặc định toàn cầu cho các tính năng phiên ràng buộc luồng.enabled: công tắc mặc định chính (các nhà cung cấp có thể ghi đè; Discord sử dụngchannels.discord.threadBindings.enabled)idleHours: không hoạt động tự động không tập trung mặc định trong giờ (0vô hiệu hóa; các nhà cung cấp có thể ghi đè)maxAgeHours: tuổi tối đa cứng mặc định trong giờ (0vô hiệu hóa; các nhà cung cấp có thể ghi đè)
Tin nhắn
Tiền tố phản hồi
Ghi đè theo kênh/tài khoản:channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
Giải quyết (cái cụ thể nhất thắng): tài khoản → kênh → toàn cầu. "" vô hiệu hóa và dừng cascade. "auto" dẫn xuất [{identity.name}].
Biến mẫu:
| Biến | Mô tả | Ví dụ |
|---|---|---|
{model} | Tên model ngắn | claude-opus-4-6 |
{modelFull} | Định danh model đầy đủ | anthropic/claude-opus-4-6 |
{provider} | Tên nhà cung cấp | anthropic |
{thinkingLevel} | Mức độ suy nghĩ hiện tại | high, low, off |
{identity.name} | Tên danh tính agent | (giống như "auto") |
{think} là bí danh cho {thinkingLevel}.
Phản ứng xác nhận
- Mặc định là
identity.emojicủa agent đang hoạt động, nếu không là"👀". Đặt""để vô hiệu hóa. - Ghi đè theo kênh:
channels.<channel>.ackReaction,channels.<channel>.accounts.<id>.ackReaction. - Thứ tự giải quyết: tài khoản → kênh →
messages.ackReaction→ dự phòng danh tính. - Phạm vi:
group-mentions(mặc định),group-all,direct,all. removeAckAfterReply: xóa xác nhận sau khi trả lời (chỉ Slack/Discord/Telegram/Google Chat).
Giảm chấn đầu vào
Gộp các tin nhắn văn bản nhanh từ cùng một người gửi thành một lượt agent duy nhất. Media/tệp đính kèm xả ngay lập tức. Các lệnh điều khiển bỏ qua giảm chấn.TTS (text-to-speech)
autokiểm soát tự động TTS./tts off|always|inbound|taggedghi đè theo phiên.summaryModelghi đèagents.defaults.model.primarycho tóm tắt tự động.modelOverridesđược bật theo mặc định;modelOverrides.allowProvidermặc định làfalse(opt-in).- Các khóa API dự phòng cho
ELEVENLABS_API_KEY/XI_API_KEYvàOPENAI_API_KEY. openai.baseUrlghi đè điểm cuối TTS của OpenAI. Thứ tự giải quyết là cấu hình, sau đóOPENAI_TTS_BASE_URL, sau đóhttps://api.openai.com/v1.- Khi
openai.baseUrltrỏ đến một điểm cuối không phải của OpenAI, OpenClaw coi đó là máy chủ TTS tương thích với OpenAI và nới lỏng xác thực model/giọng nói.
Talk
Mặc định cho chế độ Talk (macOS/iOS/Android).- Các ID giọng nói dự phòng cho
ELEVENLABS_VOICE_IDhoặcSAG_VOICE_ID. apiKeyvàproviders.*.apiKeychấp nhận chuỗi văn bản thuần hoặc đối tượng SecretRef.- Dự phòng
ELEVENLABS_API_KEYchỉ áp dụng khi không có khóa API Talk nào được cấu hình. voiceAliasescho phép các chỉ thị Talk sử dụng tên thân thiện.silenceTimeoutMskiểm soát thời gian chế độ Talk chờ sau khi người dùng im lặng trước khi gửi bản ghi. Không đặt giữ cửa sổ tạm dừng mặc định của nền tảng (700 ms trên macOS và Android, 900 ms trên iOS).
Công cụ
Hồ sơ công cụ
tools.profile đặt danh sách cho phép cơ bản trước tools.allow/tools.deny:
Các cấu hình cục bộ mới mặc định cho tools.profile: "coding" khi không được đặt (các hồ sơ rõ ràng hiện có được giữ nguyên).
| Hồ sơ | Bao gồm |
|---|---|
minimal | Chỉ session_status |
coding | group:fs, group:runtime, group:sessions, group:memory, image |
messaging | group:messaging, sessions_list, sessions_history, sessions_send, session_status |
full | Không có hạn chế (giống như không đặt) |
Nhóm công cụ
| Nhóm | Công cụ |
|---|---|
group:runtime | exec, process (bash được chấp nhận làm bí danh cho exec) |
group:fs | read, write, edit, apply_patch |
group:sessions | sessions_list, sessions_history, sessions_send, sessions_spawn, session_status |
group:memory | memory_search, memory_get |
group:web | web_search, web_fetch |
group:ui | browser, canvas |
group:automation | cron, gateway |
group:messaging | message |
group:nodes | nodes |
group:openclaw | Tất cả các công cụ tích hợp (không bao gồm các plugin nhà cung cấp) |
tools.allow / tools.deny
Chính sách cho phép/từ chối công cụ toàn cầu (từ chối thắng). Không phân biệt chữ hoa chữ thường, hỗ trợ ký tự đại diện *. Áp dụng ngay cả khi sandbox Docker tắt.
tools.byProvider
Hạn chế thêm công cụ cho các nhà cung cấp hoặc model cụ thể. Thứ tự: hồ sơ cơ bản → hồ sơ nhà cung cấp → cho phép/từ chối.
tools.elevated
Kiểm soát quyền truy cập thực thi nâng cao (host):
- Ghi đè theo agent (
agents.list[].tools.elevated) chỉ có thể hạn chế thêm. /elevated on|off|ask|fulllưu trữ trạng thái theo phiên; các chỉ thị inline áp dụng cho một tin nhắn duy nhất.- Thực thi
execnâng cao chạy trên host, bỏ qua sandboxing.
tools.exec
tools.loopDetection
Kiểm tra an toàn vòng lặp công cụ bị vô hiệu hóa theo mặc định. Đặt enabled: true để kích hoạt phát hiện.
Các cài đặt có thể được định nghĩa toàn cầu trong tools.loopDetection và ghi đè theo agent tại agents.list[].tools.loopDetection.
historySize: kích thước lịch sử gọi công cụ tối đa được giữ lại để phân tích vòng lặp.warningThreshold: ngưỡng mẫu không tiến triển lặp lại cho cảnh báo.criticalThreshold: ngưỡng lặp lại cao hơn cho việc chặn các vòng lặp quan trọng.globalCircuitBreakerThreshold: ngưỡng dừng cứng cho bất kỳ lần chạy không tiến triển nào.detectors.genericRepeat: cảnh báo về các cuộc gọi cùng công cụ/cùng tham số lặp lại.detectors.knownPollNoProgress: cảnh báo/chặn trên các công cụ thăm dò đã biết (process.poll,command_status, v.v.).detectors.pingPong: cảnh báo/chặn trên các mẫu cặp không tiến triển xen kẽ.- Nếu
warningThreshold >= criticalThresholdhoặccriticalThreshold >= globalCircuitBreakerThreshold, xác thực sẽ thất bại.
tools.web
tools.media
Cấu hình hiểu biết media đầu vào (hình ảnh/âm thanh/video):
Trường mục nhập model media
Trường mục nhập model media
Mục nhập nhà cung cấp (
type: "provider" hoặc bỏ qua):provider: id nhà cung cấp API (openai,anthropic,google/gemini,groq, v.v.)model: ghi đè id modelprofile/preferredProfile: lựa chọn hồ sơauth-profiles.json
type: "cli"):command: lệnh thực thiargs: tham số có thể thay thế (hỗ trợ{{MediaPath}},{{Prompt}},{{MaxChars}}, v.v.)
capabilities: danh sách tùy chọn (image,audio,video). Mặc định:openai/anthropic/minimax→ hình ảnh,google→ hình ảnh+âm thanh+video,groq→ âm thanh.prompt,maxChars,maxBytes,timeoutSeconds,language: ghi đè theo mục nhập.- Thất bại sẽ chuyển sang mục nhập tiếp theo.
auth-profiles.json → biến môi trường → models.providers.*.apiKey.tools.agentToAgent
tools.sessions
Kiểm soát phiên nào có thể được nhắm mục tiêu bởi các công cụ phiên (sessions_list, sessions_history, sessions_send).
Mặc định: tree (phiên hiện tại + các phiên được tạo bởi nó, chẳng hạn như subagents).
self: chỉ khóa phiên hiện tại.tree: phiên hiện tại + các phiên được tạo bởi phiên hiện tại (subagents).agent: bất kỳ phiên nào thuộc về id agent hiện tại (có thể bao gồm người dùng khác nếu bạn chạy các phiên theo người gửi dưới cùng một id agent).all: bất kỳ phiên nào. Nhắm mục tiêu chéo agent vẫn yêu cầutools.agentToAgent.- Kẹp Sandbox: khi phiên hiện tại được sandbox và
agents.defaults.sandbox.sessionToolsVisibility="spawned", khả năng hiển thị bị ép buộc thànhtreengay cả khitools.sessions.visibility="all".
tools.sessions_spawn
Kiểm soát hỗ trợ tệp đính kèm inline cho sessions_spawn.
- Tệp đính kèm chỉ được hỗ trợ cho
runtime: "subagent". Runtime ACP từ chối chúng. - Các tệp được chuyển thành workspace con tại
.openclaw/attachments/<uuid>/với một.manifest.json. - Nội dung tệp đính kèm tự động được xóa khỏi lưu trữ bản ghi.
- Đầu vào Base64 được xác thực với kiểm tra bảng chữ cái/đệm nghiêm ngặt và bảo vệ kích thước trước khi giải mã.
- Quyền tệp là
0700cho thư mục và0600cho tệp. - Dọn dẹp theo chính sách
cleanup:deleteluôn xóa tệp đính kèm;keepgiữ chúng chỉ khiretainOnSessionKeep: true.
tools.subagents
model: model mặc định cho các sub-agent được tạo. Nếu bỏ qua, sub-agent kế thừa model của người gọi.runTimeoutSeconds: thời gian chờ mặc định (giây) chosessions_spawnkhi cuộc gọi công cụ bỏ quarunTimeoutSeconds.0có nghĩa là không có thời gian chờ.- Chính sách công cụ theo subagent:
tools.subagents.tools.allow/tools.subagents.tools.deny.
Nhà cung cấp tùy chỉnh và URL cơ sở
OpenClaw sử dụng danh mục model pi-coding-agent. Thêm nhà cung cấp tùy chỉnh thông quamodels.providers trong cấu hình hoặc ~/.openclaw/agents/<agentId>/agent/models.json.
- Sử dụng
authHeader: true+headerscho các nhu cầu xác thực tùy chỉnh. - Ghi đè thư mục cấu hình agent với
OPENCLAW_AGENT_DIR(hoặcPI_CODING_AGENT_DIR). - Thứ tự ưu tiên hợp nhất cho các ID nhà cung cấp khớp:
- Các giá trị
baseUrlkhông rỗng củamodels.jsonagent thắng. - Các giá trị
apiKeykhông rỗng của agent thắng chỉ khi nhà cung cấp đó không được quản lý bởi SecretRef trong cấu hình/hồ sơ xác thực hiện tại. - Các giá trị
apiKeycủa nhà cung cấp được quản lý bởi SecretRef được làm mới từ các dấu nguồn (ENV_VAR_NAMEcho các tham chiếu môi trường,secretref-managedcho các tham chiếu tệp/thực thi) thay vì duy trì các bí mật đã giải quyết. - Các giá trị tiêu đề của nhà cung cấp được quản lý bởi SecretRef được làm mới từ các dấu nguồn (
secretref-env:ENV_VAR_NAMEcho các tham chiếu môi trường,secretref-managedcho các tham chiếu tệp/thực thi). apiKey/baseUrltrống hoặc thiếu của agent dự phòng chomodels.providerstrong cấu hình.- Các giá trị
contextWindow/maxTokenscủa model khớp sử dụng giá trị cao hơn giữa cấu hình rõ ràng và các giá trị danh mục ngầm định. - Sử dụng
models.mode: "replace"khi bạn muốn cấu hình ghi đè hoàn toànmodels.json. - Dấu hiệu lưu trữ là nguồn chính thức: các dấu hiệu được ghi từ snapshot cấu hình nguồn hoạt động (trước khi giải quyết), không phải từ các giá trị bí mật runtime đã giải quyết.
- Các giá trị
Chi tiết trường nhà cung cấp
models.mode: hành vi danh mục nhà cung cấp (mergehoặcreplace).models.providers: bản đồ nhà cung cấp tùy chỉnh được khóa bởi id nhà cung cấp.models.providers.*.api: bộ điều hợp yêu cầu (openai-completions,openai-responses,anthropic-messages,google-generative-ai, v.v.).models.providers.*.apiKey: thông tin xác thực nhà cung cấp (ưu tiên thay thế SecretRef/môi trường).models.providers.*.auth: chiến lược xác thực (api-key,token,oauth,aws-sdk).models.providers.*.injectNumCtxForOpenAICompat: cho Ollama +openai-completions, chènoptions.num_ctxvào các yêu cầu (mặc định:true).models.providers.*.authHeader: buộc vận chuyển thông tin xác thực trong tiêu đềAuthorizationkhi cần.models.providers.*.baseUrl: URL cơ sở API thượng nguồn.models.providers.*.headers: tiêu đề tĩnh bổ sung cho định tuyến proxy/tenant.models.providers.*.models: các mục nhập danh mục model nhà cung cấp rõ ràng.models.providers.*.models.*.compat.supportsDeveloperRole: gợi ý tương thích tùy chọn. Đối vớiapi: "openai-completions"vớibaseUrlkhông rỗng không phải gốc (host không phảiapi.openai.com), OpenClaw buộc điều này thànhfalsetại runtime.baseUrltrống/bỏ qua giữ hành vi mặc định của OpenAI.models.bedrockDiscovery: gốc cài đặt tự động phát hiện Bedrock.models.bedrockDiscovery.enabled: bật/tắt phát hiện polling.models.bedrockDiscovery.region: vùng AWS cho phát hiện.models.bedrockDiscovery.providerFilter: bộ lọc id nhà cung cấp tùy chọn cho phát hiện mục tiêu.models.bedrockDiscovery.refreshInterval: khoảng thời gian polling cho làm mới phát hiện.models.bedrockDiscovery.defaultContextWindow: cửa sổ ngữ cảnh dự phòng cho các model được phát hiện.models.bedrockDiscovery.defaultMaxTokens: số lượng token đầu ra tối đa dự phòng cho các model được phát hiện.
Ví dụ về Provider
Cerebras (GLM 4.6 / 4.7)
Cerebras (GLM 4.6 / 4.7)
cerebras/zai-glm-4.7 cho Cerebras; zai/glm-4.7 cho Z.AI trực tiếp.OpenCode
OpenCode
OPENCODE_API_KEY (hoặc OPENCODE_ZEN_API_KEY). Sử dụng tham chiếu opencode/... cho danh mục Zen hoặc opencode-go/... cho danh mục Go. Lối tắt: openclaw onboard --auth-choice opencode-zen hoặc openclaw onboard --auth-choice opencode-go.Z.AI (GLM-4.7)
Z.AI (GLM-4.7)
ZAI_API_KEY. z.ai/* và z-ai/* là các bí danh được chấp nhận. Lối tắt: openclaw onboard --auth-choice zai-api-key.- Endpoint chung:
https://api.z.ai/api/paas/v4 - Endpoint mã hóa (mặc định):
https://api.z.ai/api/coding/paas/v4 - Đối với endpoint chung, định nghĩa một provider tùy chỉnh với URL cơ sở ghi đè.
Moonshot AI (Kimi)
Moonshot AI (Kimi)
baseUrl: "https://api.moonshot.cn/v1" hoặc openclaw onboard --auth-choice moonshot-api-key-cn.Kimi Coding
Kimi Coding
openclaw onboard --auth-choice kimi-code-api-key.Synthetic (Anthropic-compatible)
Synthetic (Anthropic-compatible)
/v1 (ứng dụng khách Anthropic sẽ tự động thêm vào). Lối tắt: openclaw onboard --auth-choice synthetic-api-key.MiniMax M2.7 (trực tiếp)
MiniMax M2.7 (trực tiếp)
MINIMAX_API_KEY. Lối tắt: openclaw onboard --auth-choice minimax-api.
MiniMax-M2.5 và MiniMax-M2.5-highspeed vẫn có sẵn nếu bạn thích các mô hình văn bản cũ hơn.Mô hình cục bộ (LM Studio)
Mô hình cục bộ (LM Studio)
Xem Mô hình cục bộ. Tóm tắt: chạy MiniMax M2.5 qua API Phản hồi LM Studio trên phần cứng mạnh; giữ các mô hình được lưu trữ để dự phòng.
Kỹ năng
allowBundled: danh sách cho phép tùy chọn chỉ cho các kỹ năng được đóng gói (các kỹ năng quản lý/workspace không bị ảnh hưởng).entries.<skillKey>.enabled: falsevô hiệu hóa một kỹ năng ngay cả khi đã được đóng gói/cài đặt.entries.<skillKey>.apiKey: tiện lợi cho các kỹ năng khai báo một biến môi trường chính (chuỗi văn bản thuần hoặc đối tượng SecretRef).
Plugins
- Được tải từ
~/.openclaw/extensions,<workspace>/.openclaw/extensions, cộng vớiplugins.load.paths. - Khám phá chấp nhận các plugin OpenClaw gốc cộng với các gói Codex tương thích và các gói Claude, bao gồm cả các gói Claude không có manifest.
- Thay đổi cấu hình yêu cầu khởi động lại gateway.
allow: danh sách cho phép tùy chọn (chỉ các plugin được liệt kê mới được tải).denysẽ thắng.plugins.entries.<id>.apiKey: trường tiện lợi cho khóa API cấp plugin (khi được plugin hỗ trợ).plugins.entries.<id>.env: bản đồ biến môi trường phạm vi plugin.plugins.entries.<id>.hooks.allowPromptInjection: khifalse, lõi sẽ chặnbefore_prompt_buildvà bỏ qua các trường thay đổi prompt từbefore_agent_startcũ, trong khi vẫn giữmodelOverridevàproviderOverridecũ. Áp dụng cho các hook plugin gốc và các thư mục hook do gói cung cấp hỗ trợ.plugins.entries.<id>.subagent.allowModelOverride: tin tưởng rõ ràng plugin này để yêu cầu ghi đèprovidervàmodelcho mỗi lần chạy subagent nền.plugins.entries.<id>.subagent.allowedModels: danh sách cho phép tùy chọn của các mục tiêuprovider/modelchính tắc cho các ghi đè subagent đáng tin cậy. Sử dụng"*"chỉ khi bạn cố ý muốn cho phép bất kỳ mô hình nào.plugins.entries.<id>.config: đối tượng cấu hình do plugin định nghĩa (được xác thực bởi schema plugin OpenClaw gốc khi có sẵn).- Các plugin gói Claude được bật cũng có thể đóng góp các mặc định Pi nhúng từ
settings.json; OpenClaw áp dụng những điều đó như các cài đặt agent đã được làm sạch, không phải là các bản vá cấu hình OpenClaw thô. plugins.slots.memory: chọn id plugin bộ nhớ đang hoạt động, hoặc"none"để vô hiệu hóa các plugin bộ nhớ.plugins.slots.contextEngine: chọn id plugin động cơ ngữ cảnh đang hoạt động; mặc định là"legacy"trừ khi bạn cài đặt và chọn một động cơ khác.plugins.installs: metadata cài đặt được quản lý bởi CLI được sử dụng bởiopenclaw plugins update.- Bao gồm
source,spec,sourcePath,installPath,version,resolvedName,resolvedVersion,resolvedSpec,integrity,shasum,resolvedAt,installedAt. - Xem
plugins.installs.*như trạng thái được quản lý; ưu tiên các lệnh CLI hơn là chỉnh sửa thủ công.
- Bao gồm
Trình duyệt
evaluateEnabled: falsevô hiệu hóaact:evaluatevàwait --fn.ssrfPolicy.dangerouslyAllowPrivateNetworkmặc định làtruekhi không được thiết lập (mô hình mạng tin cậy).- Đặt
ssrfPolicy.dangerouslyAllowPrivateNetwork: falseđể duyệt trình duyệt chỉ công khai nghiêm ngặt. - Trong chế độ nghiêm ngặt, các endpoint hồ sơ CDP từ xa (
profiles.*.cdpUrl) phải tuân theo cùng một chặn mạng riêng trong quá trình kiểm tra khả năng truy cập/khám phá. ssrfPolicy.allowPrivateNetworkvẫn được hỗ trợ như một bí danh cũ.- Trong chế độ nghiêm ngặt, sử dụng
ssrfPolicy.hostnameAllowlistvàssrfPolicy.allowedHostnamescho các ngoại lệ rõ ràng. - Hồ sơ từ xa chỉ có thể đính kèm (bắt đầu/dừng/đặt lại bị vô hiệu hóa).
- Hồ sơ
existing-sessionchỉ dành cho máy chủ và sử dụng Chrome MCP thay vì CDP. - Hồ sơ
existing-sessioncó thể đặtuserDataDirđể nhắm mục tiêu một hồ sơ trình duyệt dựa trên Chromium cụ thể như Brave hoặc Edge. - Thứ tự tự động phát hiện: trình duyệt mặc định nếu dựa trên Chromium → Chrome → Brave → Edge → Chromium → Chrome Canary.
- Dịch vụ điều khiển: chỉ vòng lặp (cổng được lấy từ
gateway.port, mặc định18791). extraArgsthêm các cờ khởi động bổ sung vào khởi động Chromium cục bộ (ví dụ như--disable-gpu, kích thước cửa sổ hoặc cờ gỡ lỗi).
Giao diện người dùng
seamColor: màu nhấn cho giao diện ứng dụng gốc (bong bóng chế độ Talk, v.v.).assistant: Kiểm soát ghi đè danh tính giao diện người dùng. Trở lại danh tính agent đang hoạt động.
Gateway
Chi tiết trường Gateway
Chi tiết trường Gateway
mode:local(chạy gateway) hoặcremote(kết nối đến gateway từ xa). Gateway từ chối khởi động trừ khi làlocal.port: cổng đơn cho WS + HTTP. Ưu tiên:--port>OPENCLAW_GATEWAY_PORT>gateway.port>18789.bind:auto,loopback(mặc định),lan(0.0.0.0),tailnet(chỉ IP Tailscale), hoặccustom.- Bí danh bind cũ: sử dụng các giá trị chế độ bind trong
gateway.bind(auto,loopback,lan,tailnet,custom), không phải các bí danh host (0.0.0.0,127.0.0.1,localhost,::,::1). - Lưu ý Docker: bind
loopbackmặc định lắng nghe trên127.0.0.1bên trong container. Với mạng cầu Docker (-p 18789:18789), lưu lượng đến trêneth0, do đó gateway không thể truy cập. Sử dụng--network host, hoặc đặtbind: "lan"(hoặcbind: "custom"vớicustomBindHost: "0.0.0.0") để lắng nghe trên tất cả các giao diện. - Auth: yêu cầu theo mặc định. Các bind không phải loopback yêu cầu một token/mật khẩu chia sẻ. Trình hướng dẫn onboarding tạo một token theo mặc định.
- Nếu cả
gateway.auth.tokenvàgateway.auth.passwordđều được cấu hình (bao gồm cả SecretRefs), đặtgateway.auth.moderõ ràng thànhtokenhoặcpassword. Các luồng khởi động và cài đặt/dịch vụ sửa chữa sẽ thất bại khi cả hai đều được cấu hình và chế độ không được thiết lập. gateway.auth.mode: "none": chế độ không xác thực rõ ràng. Chỉ sử dụng cho các thiết lập loopback cục bộ đáng tin cậy; điều này không được cung cấp bởi các lời nhắc onboarding.gateway.auth.mode: "trusted-proxy": ủy quyền xác thực cho một proxy ngược nhận thức danh tính và tin tưởng các tiêu đề danh tính từgateway.trustedProxies(xem Trusted Proxy Auth).gateway.auth.allowTailscale: khitrue, các tiêu đề danh tính Tailscale Serve có thể thỏa mãn xác thực Control UI/WebSocket (được xác minh quatailscale whois); các endpoint API HTTP vẫn yêu cầu xác thực token/mật khẩu. Luồng không có token này giả định rằng máy chủ gateway là đáng tin cậy. Mặc định làtruekhitailscale.mode = "serve".gateway.auth.rateLimit: bộ giới hạn xác thực thất bại tùy chọn. Áp dụng cho mỗi IP khách hàng và mỗi phạm vi xác thực (bí mật chia sẻ và token thiết bị được theo dõi độc lập). Các nỗ lực bị chặn trả về429+Retry-After.gateway.auth.rateLimit.exemptLoopbackmặc định làtrue; đặtfalsekhi bạn cố ý muốn lưu lượng localhost cũng bị giới hạn tốc độ (cho các thiết lập thử nghiệm hoặc triển khai proxy nghiêm ngặt).
- Các nỗ lực xác thực WS nguồn trình duyệt luôn bị giới hạn với miễn trừ loopback bị vô hiệu hóa (phòng thủ sâu chống lại tấn công brute force localhost dựa trên trình duyệt).
tailscale.mode:serve(chỉ tailnet, bind loopback) hoặcfunnel(công khai, yêu cầu xác thực).controlUi.allowedOrigins: danh sách cho phép nguồn trình duyệt rõ ràng cho kết nối WebSocket Gateway. Yêu cầu khi các khách hàng trình duyệt được mong đợi từ các nguồn không phải loopback.controlUi.dangerouslyAllowHostHeaderOriginFallback: chế độ nguy hiểm cho phép dự phòng nguồn tiêu đề Host cho các triển khai cố ý dựa vào chính sách nguồn tiêu đề Host.remote.transport:ssh(mặc định) hoặcdirect(ws/wss). Đối vớidirect,remote.urlphải làws://hoặcwss://.OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1: ghi đè phá vỡ phía khách hàng cho phépws://văn bản rõ ràng đến các IP mạng riêng đáng tin cậy; mặc định vẫn là chỉ loopback cho văn bản rõ ràng.gateway.remote.token/.passwordlà các trường thông tin xác thực khách hàng từ xa. Chúng không cấu hình xác thực gateway tự chúng.gateway.push.apns.relay.baseUrl: URL HTTPS cơ sở cho relay APNs bên ngoài được sử dụng bởi các bản dựng iOS chính thức/TestFlight sau khi chúng xuất bản các đăng ký dựa trên relay đến gateway. URL này phải khớp với URL relay được biên dịch vào bản dựng iOS.gateway.push.apns.relay.timeoutMs: thời gian chờ gửi từ gateway đến relay tính bằng mili giây. Mặc định là10000.- Các đăng ký dựa trên relay được ủy quyền cho một danh tính gateway cụ thể. Ứng dụng iOS được ghép đôi sẽ lấy
gateway.identity.get, bao gồm danh tính đó trong đăng ký relay và chuyển tiếp một quyền gửi phạm vi đăng ký đến gateway. Một gateway khác không thể tái sử dụng đăng ký đã lưu trữ đó. OPENCLAW_APNS_RELAY_BASE_URL/OPENCLAW_APNS_RELAY_TIMEOUT_MS: ghi đè môi trường tạm thời cho cấu hình relay ở trên.OPENCLAW_APNS_RELAY_ALLOW_HTTP=true: lối thoát chỉ phát triển cho các URL relay HTTP loopback. Các URL relay sản xuất nên giữ trên HTTPS.gateway.channelHealthCheckMinutes: khoảng thời gian kiểm tra sức khỏe kênh tính bằng phút. Đặt0để vô hiệu hóa khởi động lại kiểm tra sức khỏe toàn cầu. Mặc định:5.gateway.channelStaleEventThresholdMinutes: ngưỡng sự kiện cũ tính bằng phút. Giữ điều này lớn hơn hoặc bằnggateway.channelHealthCheckMinutes. Mặc định:30.gateway.channelMaxRestartsPerHour: số lần khởi động lại kiểm tra sức khỏe tối đa mỗi kênh/tài khoản trong một giờ cuộn. Mặc định:10.channels.<provider>.healthMonitor.enabled: từ chối tùy chọn cho mỗi kênh đối với khởi động lại kiểm tra sức khỏe trong khi giữ cho giám sát toàn cầu được bật.channels.<provider>.accounts.<accountId>.healthMonitor.enabled: ghi đè cho mỗi tài khoản cho các kênh đa tài khoản. Khi được đặt, nó sẽ ưu tiên hơn ghi đè cấp kênh.- Các đường dẫn cuộc gọi gateway cục bộ có thể sử dụng
gateway.remote.*làm dự phòng chỉ khigateway.auth.*không được thiết lập. - Nếu
gateway.auth.token/gateway.auth.passwordđược cấu hình rõ ràng qua SecretRef và không được giải quyết, giải quyết sẽ thất bại (không có che giấu dự phòng từ xa). trustedProxies: các IP proxy ngược kết thúc TLS. Chỉ liệt kê các proxy bạn kiểm soát.allowRealIpFallback: khitrue, gateway chấp nhậnX-Real-IPnếuX-Forwarded-Forbị thiếu. Mặc địnhfalsecho hành vi đóng thất bại.gateway.tools.deny: tên công cụ bổ sung bị chặn cho HTTPPOST /tools/invoke(mở rộng danh sách từ chối mặc định).gateway.tools.allow: xóa tên công cụ khỏi danh sách từ chối HTTP mặc định.
Các endpoint tương thích OpenAI
- Chat Completions: bị vô hiệu hóa theo mặc định. Bật với
gateway.http.endpoints.chatCompletions.enabled: true. - API Phản hồi:
gateway.http.endpoints.responses.enabled. - Cứng hóa đầu vào URL Phản hồi:
gateway.http.endpoints.responses.maxUrlPartsgateway.http.endpoints.responses.files.urlAllowlistgateway.http.endpoints.responses.images.urlAllowlistDanh sách cho phép trống được coi là chưa thiết lập; sử dụnggateway.http.endpoints.responses.files.allowUrl=falsevà/hoặcgateway.http.endpoints.responses.images.allowUrl=falseđể vô hiệu hóa việc lấy URL.
- Tiêu đề cứng hóa phản hồi tùy chọn:
gateway.http.securityHeaders.strictTransportSecurity(chỉ đặt cho các nguồn HTTPS bạn kiểm soát; xem Trusted Proxy Auth)
Cách ly đa phiên bản
Chạy nhiều gateway trên một máy chủ với các cổng và thư mục trạng thái duy nhất:--dev (sử dụng ~/.openclaw-dev + cổng 19001), --profile <name> (sử dụng ~/.openclaw-<name>).
Xem Nhiều Gateway.
Hooks
Authorization: Bearer <token> hoặc x-openclaw-token: <token>.
Endpoints:
POST /hooks/wake→{ text, mode?: "now"|"next-heartbeat" }POST /hooks/agent→{ message, name?, agentId?, sessionKey?, wakeMode?, deliver?, channel?, to?, model?, thinking?, timeoutSeconds? }sessionKeytừ payload yêu cầu chỉ được chấp nhận khihooks.allowRequestSessionKey=true(mặc định:false).
POST /hooks/<name>→ được giải quyết quahooks.mappings
Chi tiết Mapping
Chi tiết Mapping
match.pathkhớp với đường dẫn con sau/hooks(ví dụ:/hooks/gmail→gmail).match.sourcekhớp với một trường payload cho các đường dẫn chung.- Các mẫu như
{{messages[0].subject}}đọc từ payload. transformcó thể trỏ đến một module JS/TS trả về một hành động hook.transform.modulephải là một đường dẫn tương đối và nằm tronghooks.transformsDir(các đường dẫn tuyệt đối và di chuyển bị từ chối).
agentIdđịnh tuyến đến một agent cụ thể; các ID không xác định sẽ trở lại mặc định.allowedAgentIds: hạn chế định tuyến rõ ràng (*hoặc bỏ qua = cho phép tất cả,[]= từ chối tất cả).defaultSessionKey: khóa phiên cố định tùy chọn cho các lần chạy agent hook mà không cósessionKeyrõ ràng.allowRequestSessionKey: cho phép người gọi/hooks/agentđặtsessionKey(mặc định:false).allowedSessionKeyPrefixes: danh sách cho phép tiền tố tùy chọn cho các giá trịsessionKeyrõ ràng (yêu cầu + mapping), ví dụ:["hook:"].deliver: truegửi phản hồi cuối cùng đến một kênh;channelmặc định làlast.modelghi đè LLM cho lần chạy hook này (phải được cho phép nếu danh mục mô hình được thiết lập).
Tích hợp Gmail
- Gateway tự động khởi động
gog gmail watch servekhi khởi động khi được cấu hình. ĐặtOPENCLAW_SKIP_GMAIL_WATCHER=1để vô hiệu hóa. - Không chạy một
gog gmail watch serveriêng biệt cùng với Gateway.
Máy chủ Canvas
- Phục vụ HTML/CSS/JS và A2UI có thể chỉnh sửa bởi agent qua HTTP dưới cổng Gateway:
http://<gateway-host>:<gateway.port>/__openclaw__/canvas/http://<gateway-host>:<gateway.port>/__openclaw__/a2ui/
- Chỉ cục bộ: giữ
gateway.bind: "loopback"(mặc định). - Các bind không phải loopback: các tuyến canvas yêu cầu xác thực Gateway (token/mật khẩu/proxy đáng tin cậy), giống như các bề mặt HTTP Gateway khác.
- Các WebView Node thường không gửi tiêu đề xác thực; sau khi một node được ghép đôi và kết nối, Gateway quảng cáo các URL khả năng phạm vi node cho truy cập canvas/A2UI.
- Các URL khả năng được ràng buộc với phiên WS node đang hoạt động và hết hạn nhanh chóng. Không sử dụng dự phòng dựa trên IP.
- Tiêm khách hàng tải lại trực tiếp vào HTML được phục vụ.
- Tự động tạo
index.htmlkhởi đầu khi trống. - Cũng phục vụ A2UI tại
/__openclaw__/a2ui/. - Thay đổi yêu cầu khởi động lại gateway.
- Vô hiệu hóa tải lại trực tiếp cho các thư mục lớn hoặc lỗi
EMFILE.
Khám phá
mDNS (Bonjour)
minimal(mặc định): bỏ quacliPath+sshPortkhỏi các bản ghi TXT.full: bao gồmcliPath+sshPort.- Tên máy chủ mặc định là
openclaw. Ghi đè vớiOPENCLAW_MDNS_HOSTNAME.
Khu vực rộng (DNS-SD)
~/.openclaw/dns/. Để khám phá mạng chéo, ghép đôi với một máy chủ DNS (CoreDNS được khuyến nghị) + Tailscale DNS phân tách.
Thiết lập: openclaw dns setup --apply.
Môi trường
env (biến môi trường nội tuyến)
- Các biến môi trường nội tuyến chỉ được áp dụng nếu môi trường quy trình thiếu khóa.
- Các tệp
.env: CWD.env+~/.openclaw/.env(không cái nào ghi đè các biến hiện có). shellEnv: nhập các khóa mong đợi bị thiếu từ hồ sơ shell đăng nhập của bạn.- Xem Môi trường để biết đầy đủ thứ tự ưu tiên.
Thay thế biến môi trường
Tham chiếu các biến môi trường trong bất kỳ chuỗi cấu hình nào với${VAR_NAME}:
- Chỉ các tên viết hoa được khớp:
[A-Z_][A-Z0-9_]*. - Các biến bị thiếu/trống sẽ gây ra lỗi khi tải cấu hình.
- Thoát với
$${VAR}cho một${VAR}nguyên văn. - Hoạt động với
$include.
Secrets
Tham chiếu bí mật là bổ sung: các giá trị văn bản thuần vẫn hoạt động.SecretRef
Sử dụng một hình dạng đối tượng:
- Mẫu
provider:^[a-z][a-z0-9_-]{0,63}$ - Mẫu id
source: "env":^[A-Z][A-Z0-9_]{0,127}$ - id
source: "file": con trỏ JSON tuyệt đối (ví dụ"/providers/openai/apiKey") - Mẫu id
source: "exec":^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$ - id
source: "exec"không được chứa các đoạn đường dẫn phân tách dấu gạch chéo.hoặc..(ví dụa/../bbị từ chối)
Bề mặt thông tin xác thực được hỗ trợ
- Ma trận chính tắc: Bề mặt thông tin xác thực SecretRef
secrets applynhắm mục tiêu các đường dẫn thông tin xác thựcopenclaw.jsonđược hỗ trợ.- Các tham chiếu
auth-profiles.jsonđược bao gồm trong độ phân giải thời gian chạy và phạm vi kiểm toán.
Cấu hình nhà cung cấp bí mật
- Nhà cung cấp
filehỗ trợmode: "json"vàmode: "singleValue"(idphải là"value"trong chế độ singleValue). - Nhà cung cấp
execyêu cầu một đường dẫncommandtuyệt đối và sử dụng các payload giao thức trên stdin/stdout. - Theo mặc định, các đường dẫn lệnh symlink bị từ chối. Đặt
allowSymlinkCommand: trueđể cho phép các đường dẫn symlink trong khi xác thực đường dẫn mục tiêu đã giải quyết. - Nếu
trustedDirsđược cấu hình, kiểm tra thư mục tin cậy áp dụng cho đường dẫn mục tiêu đã giải quyết. - Môi trường con
execlà tối thiểu theo mặc định; truyền các biến cần thiết rõ ràng vớipassEnv. - Các tham chiếu bí mật được giải quyết tại thời điểm kích hoạt thành một ảnh chụp nhanh trong bộ nhớ, sau đó các đường dẫn yêu cầu chỉ đọc ảnh chụp nhanh.
- Lọc bề mặt hoạt động áp dụng trong quá trình kích hoạt: các tham chiếu không được giải quyết trên các bề mặt được bật sẽ gây ra lỗi khởi động/tải lại, trong khi các bề mặt không hoạt động bị bỏ qua với chẩn đoán.
Lưu trữ xác thực
- Hồ sơ mỗi agent được lưu trữ tại
<agentDir>/auth-profiles.json. auth-profiles.jsonhỗ trợ các tham chiếu cấp giá trị (keyRefchoapi_key,tokenRefchotoken).- Các thông tin xác thực thời gian chạy tĩnh đến từ các ảnh chụp nhanh đã giải quyết trong bộ nhớ; các mục
auth.jsontĩnh cũ bị xóa khi được phát hiện. - Nhập OAuth cũ từ
~/.openclaw/credentials/oauth.json. - Xem OAuth.
- Hành vi thời gian chạy của Secrets và công cụ
audit/configure/apply: Quản lý Secrets.
Ghi nhật ký
- Tệp nhật ký mặc định:
/tmp/openclaw/openclaw-YYYY-MM-DD.log. - Đặt
logging.filecho một đường dẫn ổn định. consoleLeveltăng lêndebugkhi--verbose.
CLI
cli.banner.taglineModekiểm soát kiểu tagline banner:"random"(mặc định): tagline hài hước/mùa vụ xoay vòng."default": tagline trung lập cố định (All your chats, one OpenClaw.)."off": không có văn bản tagline (tiêu đề/banner vẫn được hiển thị).
- Để ẩn toàn bộ banner (không chỉ tagline), đặt môi trường
OPENCLAW_HIDE_BANNER=1.
Wizard
Metadata được ghi bởi các luồng thiết lập hướng dẫn CLI (onboard, configure, doctor):
Danh tính
messages.ackReactiontừidentity.emoji(trở lại 👀)mentionPatternstừidentity.name/identity.emojiavatarchấp nhận: đường dẫn tương đối workspace, URLhttp(s), hoặc URIdata:
Bridge (cũ, đã bị loại bỏ)
Các bản dựng hiện tại không còn bao gồm cầu TCP. Các node kết nối qua WebSocket Gateway. Các khóabridge.* không còn là một phần của schema cấu hình (xác thực thất bại cho đến khi bị loại bỏ; openclaw doctor --fix có thể loại bỏ các khóa không xác định).
Cấu hình cầu cũ (tham khảo lịch sử)
Cấu hình cầu cũ (tham khảo lịch sử)
Cron
sessionRetention: thời gian giữ các phiên chạy cron cô lập đã hoàn thành trước khi cắt tỉa khỏisessions.json. Cũng kiểm soát việc dọn dẹp các bản ghi đã xóa đã lưu trữ. Mặc định:24h; đặtfalseđể vô hiệu hóa.runLog.maxBytes: kích thước tối đa cho mỗi tệp nhật ký chạy (cron/runs/<jobId>.jsonl) trước khi cắt tỉa. Mặc định:2_000_000bytes.runLog.keepLines: các dòng mới nhất được giữ lại khi cắt tỉa nhật ký chạy được kích hoạt. Mặc định:2000.webhookToken: token bearer được sử dụng cho việc gửi POST webhook cron (delivery.mode = "webhook"), nếu bị bỏ qua không có tiêu đề xác thực nào được gửi.webhook: URL webhook dự phòng lỗi thời (http/https) chỉ được sử dụng cho các công việc lưu trữ vẫn cónotify: true.
Biến mẫu mô hình Media
Các chỗ giữ mẫu được mở rộng trongtools.media.models[].args:
| Biến | Mô tả |
|---|---|
{{Body}} | Nội dung tin nhắn đến đầy đủ |
{{RawBody}} | Nội dung thô (không có lịch sử/gói người gửi) |
{{BodyStripped}} | Nội dung với các đề cập nhóm bị loại bỏ |
{{From}} | Định danh người gửi |
{{To}} | Định danh đích |
{{MessageSid}} | ID tin nhắn kênh |
{{SessionId}} | UUID phiên hiện tại |
{{IsNewSession}} | "true" khi phiên mới được tạo |
{{MediaUrl}} | Pseudo-URL media đến |
{{MediaPath}} | Đường dẫn media cục bộ |
{{MediaType}} | Loại media (hình ảnh/âm thanh/tài liệu/…) |
{{Transcript}} | Bản ghi âm thanh |
{{Prompt}} | Lời nhắc media đã giải quyết cho các mục CLI |
{{MaxChars}} | Số ký tự đầu ra tối đa đã giải quyết cho các mục CLI |
{{ChatType}} | "direct" hoặc "group" |
{{GroupSubject}} | Chủ đề nhóm (nỗ lực tốt nhất) |
{{GroupMembers}} | Xem trước thành viên nhóm (nỗ lực tốt nhất) |
{{SenderName}} | Tên hiển thị người gửi (nỗ lực tốt nhất) |
{{SenderE164}} | Số điện thoại người gửi (nỗ lực tốt nhất) |
{{Provider}} | Gợi ý nhà cung cấp (whatsapp, telegram, discord, v.v.) |
Bao gồm cấu hình ($include)
Chia cấu hình thành nhiều tệp:
- Tệp đơn: thay thế đối tượng chứa.
- Mảng tệp: hợp nhất sâu theo thứ tự (sau ghi đè trước).
- Các khóa cùng cấp: hợp nhất sau khi bao gồm (ghi đè các giá trị đã bao gồm).
- Bao gồm lồng nhau: tối đa 10 cấp độ sâu.
- Đường dẫn: được giải quyết tương đối với tệp bao gồm, nhưng phải nằm trong thư mục cấu hình cấp cao nhất (
dirnamecủaopenclaw.json). Các dạng tuyệt đối/../chỉ được phép khi chúng vẫn giải quyết bên trong ranh giới đó. - Lỗi: thông báo rõ ràng cho các tệp bị thiếu, lỗi phân tích cú pháp và bao gồm vòng tròn.
Liên quan: Cấu hình · Ví dụ cấu hình · Doctor