OpenClaw đọc cấu hình tùy chọn từDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
~/.openclaw/openclaw.json.
Đường dẫn cấu hình đang hoạt động phải là một tệp thông thường. Các bố cục openclaw.json
dạng liên kết tượng trưng không được hỗ trợ cho các thao tác ghi do OpenClaw sở hữu; một thao tác ghi nguyên tử có thể thay thế
đường dẫn thay vì giữ nguyên liên kết tượng trưng. Nếu bạn giữ cấu hình bên ngoài
thư mục trạng thái mặc định, hãy trỏ OPENCLAW_CONFIG_PATH trực tiếp đến tệp thật.
Nếu thiếu tệp này, OpenClaw dùng các giá trị mặc định an toàn. Các lý do phổ biến để thêm cấu hình:
- Kết nối các kênh và kiểm soát ai có thể nhắn tin cho bot
- Thiết lập mô hình, công cụ, sandboxing hoặc tự động hóa (cron, hook)
- Tinh chỉnh phiên, phương tiện, mạng hoặc UI
config.schema.lookup để lấy tài liệu chính xác
ở cấp trường trước khi chỉnh sửa cấu hình. Dùng trang này cho hướng dẫn theo tác vụ và
Tài liệu tham chiếu cấu hình cho bản đồ trường
rộng hơn và các giá trị mặc định.
Cấu hình tối thiểu
Chỉnh sửa cấu hình
- Trình hướng dẫn tương tác
- CLI (một dòng lệnh)
- Control UI
- Chỉnh sửa trực tiếp
Xác thực nghiêm ngặt
openclaw config schema in JSON Schema chuẩn được Control UI
và quy trình xác thực dùng. config.schema.lookup lấy một node theo phạm vi đường dẫn cùng
các tóm tắt con cho công cụ đi sâu theo cấp. Metadata tài liệu title/description của trường
được truyền qua các đối tượng lồng nhau, wildcard (*), phần tử mảng ([]), và các nhánh anyOf/
oneOf/allOf. Schema plugin và kênh trong runtime được hợp nhất khi
manifest registry được tải.
Khi xác thực thất bại:
- Gateway không khởi động
- Chỉ các lệnh chẩn đoán hoạt động (
openclaw doctor,openclaw logs,openclaw health,openclaw status) - Chạy
openclaw doctorđể xem vấn đề chính xác - Chạy
openclaw doctor --fix(hoặc--yes) để áp dụng sửa chữa
openclaw.json
không vượt qua xác thực (bao gồm xác thực cục bộ của plugin), quá trình khởi động Gateway thất bại hoặc
lần tải lại bị bỏ qua và runtime hiện tại giữ cấu hình được chấp nhận gần nhất.
Chạy openclaw doctor --fix (hoặc --yes) để sửa cấu hình bị thêm tiền tố/bị ghi đè hoặc
khôi phục bản sao last-known-good. Việc quảng bá lên last-known-good bị bỏ qua khi một
ứng viên chứa placeholder bí mật đã được biên tập như ***.
Tác vụ phổ biến
Thiết lập một kênh (WhatsApp, Telegram, Discord, v.v.)
Thiết lập một kênh (WhatsApp, Telegram, Discord, v.v.)
channels.<provider>. Xem trang kênh chuyên biệt để biết các bước thiết lập:- WhatsApp -
channels.whatsapp - Telegram -
channels.telegram - Discord -
channels.discord - Feishu -
channels.feishu - Google Chat -
channels.googlechat - Microsoft Teams -
channels.msteams - Slack -
channels.slack - Signal -
channels.signal - iMessage -
channels.imessage - Mattermost -
channels.mattermost
Chọn và cấu hình mô hình
Chọn và cấu hình mô hình
agents.defaults.modelsđịnh nghĩa danh mục mô hình và đóng vai trò allowlist cho/model.- Dùng
openclaw config set agents.defaults.models '<json>' --strict-json --mergeđể thêm mục allowlist mà không xóa các mô hình hiện có. Các thao tác thay thế thuần túy có thể xóa mục sẽ bị từ chối trừ khi bạn truyền--replace. - Tham chiếu mô hình dùng định dạng
provider/model(ví dụanthropic/claude-opus-4-6). agents.defaults.imageMaxDimensionPxkiểm soát việc giảm kích thước hình ảnh transcript/công cụ (mặc định1200); giá trị thấp hơn thường giảm mức dùng vision-token trong các lượt chạy có nhiều ảnh chụp màn hình.- Xem CLI mô hình để chuyển đổi mô hình trong chat và Chuyển đổi dự phòng mô hình để biết hành vi xoay vòng xác thực và dự phòng.
- Với nhà cung cấp tùy chỉnh/tự host, xem Nhà cung cấp tùy chỉnh trong tài liệu tham chiếu.
Kiểm soát ai có thể nhắn tin cho bot
Kiểm soát ai có thể nhắn tin cho bot
dmPolicy:"pairing"(mặc định): người gửi không xác định nhận mã ghép đôi dùng một lần để phê duyệt"allowlist": chỉ người gửi trongallowFrom(hoặc kho cho phép đã ghép đôi)"open": cho phép tất cả DM gửi vào (yêu cầuallowFrom: ["*"])"disabled": bỏ qua tất cả DM
groupPolicy + groupAllowFrom hoặc allowlist riêng theo kênh.Xem tài liệu tham chiếu đầy đủ để biết chi tiết theo từng kênh.Thiết lập cổng kiểm soát nhắc tên trong chat nhóm
Thiết lập cổng kiểm soát nhắc tên trong chat nhóm
- Nhắc tên bằng metadata: @-mention gốc (nhấn để nhắc tên trong WhatsApp, Telegram @bot, v.v.)
- Mẫu văn bản: mẫu regex an toàn trong
mentionPatterns - Trả lời hiển thị:
messages.visibleRepliescó thể yêu cầu gửi bằng message-tool trên toàn cục;messages.groupChat.visibleRepliesghi đè điều đó cho nhóm/kênh. - Xem tài liệu tham chiếu đầy đủ để biết các chế độ trả lời hiển thị, ghi đè theo kênh và chế độ tự chat.
Giới hạn skills theo từng agent
Giới hạn skills theo từng agent
agents.defaults.skills làm baseline dùng chung, rồi ghi đè các
agent cụ thể bằng agents.list[].skills:- Bỏ qua
agents.defaults.skillsđể mặc định không giới hạn skills. - Bỏ qua
agents.list[].skillsđể kế thừa mặc định. - Đặt
agents.list[].skills: []để không có skills. - Xem Skills, Cấu hình Skills, và Tài liệu tham chiếu cấu hình.
Tinh chỉnh giám sát sức khỏe kênh gateway
Tinh chỉnh giám sát sức khỏe kênh gateway
- Đặt
gateway.channelHealthCheckMinutes: 0để tắt khởi động lại do health-monitor trên toàn cục. channelStaleEventThresholdMinutesnên lớn hơn hoặc bằng khoảng thời gian kiểm tra.- Dùng
channels.<provider>.healthMonitor.enabledhoặcchannels.<provider>.accounts.<id>.healthMonitor.enabledđể tắt tự động khởi động lại cho một kênh hoặc tài khoản mà không tắt trình giám sát toàn cục. - Xem Kiểm tra sức khỏe để gỡ lỗi vận hành và tài liệu tham chiếu đầy đủ cho tất cả trường.
Tinh chỉnh thời gian chờ bắt tay WebSocket của gateway
Tinh chỉnh thời gian chờ bắt tay WebSocket của gateway
- Mặc định là
15000mili giây. OPENCLAW_HANDSHAKE_TIMEOUT_MSvẫn được ưu tiên cho các ghi đè dịch vụ hoặc shell dùng một lần.- Nên sửa tình trạng stall khi khởi động/event-loop trước; nút chỉnh này dành cho host khỏe mạnh nhưng chậm trong lúc khởi động nóng.
Cấu hình phiên và đặt lại
Cấu hình phiên và đặt lại
dmScope:main(dùng chung) |per-peer|per-channel-peer|per-account-channel-peerthreadBindings: mặc định toàn cục cho định tuyến phiên gắn với luồng (Discord hỗ trợ/focus,/unfocus,/agents,/session idle, và/session max-age).- Xem Quản lý phiên để biết phạm vi, liên kết danh tính và chính sách gửi.
- Xem tài liệu tham chiếu đầy đủ cho tất cả trường.
Bật sandboxing
Bật sandboxing
scripts/sandbox-setup.sh, hoặc từ bản cài npm, xem lệnh docker build nội tuyến trong Sandboxing § Image và thiết lập.Xem Sandboxing để đọc hướng dẫn đầy đủ và tham chiếu đầy đủ cho tất cả tùy chọn.Bật push dựa trên relay cho các bản build iOS chính thức
Bật push dựa trên relay cho các bản build iOS chính thức
openclaw.json.Đặt mục này trong cấu hình gateway:- Cho phép gateway gửi
push.test, các nhắc đánh thức và đánh thức kết nối lại qua relay bên ngoài. - Dùng quyền gửi theo phạm vi đăng ký do ứng dụng iOS đã ghép đôi chuyển tiếp. Gateway không cần token relay trên toàn bộ deployment.
- Ràng buộc từng đăng ký dựa trên relay với danh tính gateway mà ứng dụng iOS đã ghép đôi, nên gateway khác không thể tái sử dụng đăng ký đã lưu.
- Giữ các bản build iOS cục bộ/thủ công dùng APNs trực tiếp. Gửi dựa trên relay chỉ áp dụng cho các bản build được phân phối chính thức đã đăng ký qua relay.
- Phải khớp với URL cơ sở relay được nhúng trong bản build iOS chính thức/TestFlight, để lưu lượng đăng ký và gửi đi tới cùng một deployment relay.
- Cài đặt một bản build iOS chính thức/TestFlight được biên dịch với cùng URL cơ sở relay.
- Cấu hình
gateway.push.apns.relay.baseUrltrên gateway. - Ghép đôi ứng dụng iOS với gateway và để cả phiên node lẫn phiên operator kết nối.
- Ứng dụng iOS lấy danh tính gateway, đăng ký với relay bằng App Attest cộng với biên nhận ứng dụng, rồi phát payload
push.apns.registerdựa trên relay tới gateway đã ghép đôi. - Gateway lưu handle relay và quyền gửi, rồi dùng chúng cho
push.test, các nhắc đánh thức và đánh thức kết nối lại.
- Nếu bạn chuyển ứng dụng iOS sang một gateway khác, hãy kết nối lại ứng dụng để ứng dụng có thể phát một đăng ký relay mới ràng buộc với gateway đó.
- Nếu bạn phát hành một bản build iOS mới trỏ tới một deployment relay khác, ứng dụng sẽ làm mới đăng ký relay đã lưu trong bộ nhớ đệm thay vì tái sử dụng origin relay cũ.
OPENCLAW_APNS_RELAY_BASE_URLvàOPENCLAW_APNS_RELAY_TIMEOUT_MSvẫn hoạt động như các ghi đè env tạm thời.OPENCLAW_APNS_RELAY_ALLOW_HTTP=truevẫn là lối thoát phát triển chỉ dành cho loopback; không lưu URL relay HTTP lâu dài trong cấu hình.
Thiết lập Heartbeat (check-in định kỳ)
Thiết lập Heartbeat (check-in định kỳ)
every: chuỗi thời lượng (30m,2h). Đặt0mđể tắt.target:last|none|<channel-id>(ví dụdiscord,matrix,telegram, hoặcwhatsapp)directPolicy:allow(mặc định) hoặcblockcho các mục tiêu Heartbeat kiểu DM- Xem Heartbeat để đọc hướng dẫn đầy đủ.
Cấu hình Cron jobs
Cấu hình Cron jobs
sessionRetention: dọn dẹp các phiên chạy tách biệt đã hoàn tất khỏisessions.json(mặc định24h; đặtfalseđể tắt).runLog: dọn dẹpcron/runs/<jobId>.jsonltheo kích thước và số dòng được giữ lại.- Xem Cron jobs để biết tổng quan tính năng và ví dụ CLI.
Thiết lập Webhook (hooks)
Thiết lập Webhook (hooks)
- Xem mọi nội dung payload hook/Webhook là dữ liệu đầu vào không đáng tin cậy.
- Dùng một
hooks.tokenchuyên dụng; không tái sử dụng token Gateway dùng chung. - Xác thực hook chỉ dùng header (
Authorization: Bearer ...hoặcx-openclaw-token); token trong query string bị từ chối. hooks.pathkhông được là/; giữ ingress Webhook trên một subpath chuyên dụng như/hooks.- Giữ các cờ bỏ qua nội dung không an toàn ở trạng thái tắt (
hooks.gmail.allowUnsafeExternalContent,hooks.mappings[].allowUnsafeExternalContent) trừ khi đang gỡ lỗi trong phạm vi rất chặt. - Nếu bạn bật
hooks.allowRequestSessionKey, cũng đặthooks.allowedSessionKeyPrefixesđể giới hạn các session key do caller chọn. - Với các agent do hook điều khiển, ưu tiên các tier model hiện đại mạnh và chính sách tool nghiêm ngặt (ví dụ chỉ nhắn tin cộng với sandboxing khi có thể).
Cấu hình định tuyến đa agent
Cấu hình định tuyến đa agent
Tách cấu hình thành nhiều tệp ($include)
Tách cấu hình thành nhiều tệp ($include)
$include để tổ chức các cấu hình lớn:- Một tệp: thay thế object chứa nó
- Mảng tệp: deep-merge theo thứ tự (mục sau thắng)
- Khóa sibling: được merge sau include (ghi đè các giá trị được include)
- Include lồng nhau: hỗ trợ sâu tối đa 10 cấp
- Đường dẫn tương đối: được resolve tương đối với tệp đang include
- Ghi do OpenClaw sở hữu: khi một lần ghi chỉ thay đổi một section cấp cao nhất
được backing bởi include một tệp như
plugins: { $include: "./plugins.json5" }, OpenClaw cập nhật tệp được include đó và giữ nguyênopenclaw.json - Write-through không được hỗ trợ: root include, mảng include và include có ghi đè sibling sẽ fail closed cho các lần ghi do OpenClaw sở hữu thay vì làm phẳng cấu hình
- Giam phạm vi: đường dẫn
$includephải resolve bên dưới thư mục chứaopenclaw.json. Để chia sẻ một cây giữa nhiều máy hoặc người dùng, đặtOPENCLAW_INCLUDE_ROOTSthành danh sách đường dẫn (:trên POSIX,;trên Windows) gồm các thư mục bổ sung mà include có thể tham chiếu. Symlink được resolve và kiểm tra lại, nên một đường dẫn về mặt chữ nằm trong thư mục cấu hình nhưng đích thực của nó thoát khỏi mọi root được phép vẫn bị từ chối. - Xử lý lỗi: lỗi rõ ràng cho tệp bị thiếu, lỗi parse và include vòng
Tải lại nóng cấu hình
Gateway theo dõi~/.openclaw/openclaw.json và tự động áp dụng thay đổi - hầu hết thiết lập không cần khởi động lại thủ công.
Các chỉnh sửa tệp trực tiếp được xem là không đáng tin cậy cho đến khi chúng vượt qua xác thực. Watcher chờ
các thao tác temp-write/rename của trình soạn thảo ổn định, đọc tệp cuối cùng, và từ chối
các chỉnh sửa bên ngoài không hợp lệ mà không ghi lại openclaw.json. Các lần ghi cấu hình
do OpenClaw sở hữu dùng cùng cổng schema trước khi ghi; các lần clobber phá hoại như
xóa gateway.mode hoặc thu nhỏ tệp hơn một nửa sẽ bị từ chối và
được lưu dưới dạng .rejected.* để kiểm tra.
Nếu bạn thấy config reload skipped (invalid config) hoặc khi khởi động báo Invalid config, hãy kiểm tra cấu hình, chạy openclaw config validate, rồi chạy openclaw doctor --fix để sửa chữa. Xem Khắc phục sự cố Gateway
để biết checklist.
Chế độ tải lại
| Chế độ | Hành vi |
|---|---|
hybrid (mặc định) | Áp dụng nóng ngay các thay đổi an toàn. Tự động khởi động lại cho các thay đổi quan trọng. |
hot | Chỉ áp dụng nóng các thay đổi an toàn. Ghi warning khi cần khởi động lại - bạn tự xử lý. |
restart | Khởi động lại Gateway khi có bất kỳ thay đổi cấu hình nào, an toàn hay không. |
off | Tắt theo dõi tệp. Thay đổi có hiệu lực ở lần khởi động lại thủ công tiếp theo. |
Những gì áp dụng nóng so với những gì cần khởi động lại
Hầu hết các trường áp dụng nóng mà không có thời gian gián đoạn. Ở chế độhybrid, các thay đổi cần khởi động lại được xử lý tự động.
| Danh mục | Trường | Cần khởi động lại? |
|---|---|---|
| Kênh | channels.*, web (WhatsApp) - tất cả kênh tích hợp và Plugin | Không |
| Agent & model | agent, agents, models, routing | Không |
| Tự động hóa | hooks, cron, agent.heartbeat | Không |
| Phiên & tin nhắn | session, messages | Không |
| Tool & media | tools, browser, skills, mcp, audio, talk | Không |
| UI & mục khác | ui, logging, identity, bindings | Không |
| Máy chủ Gateway | gateway.* (port, bind, auth, tailscale, TLS, HTTP) | Có |
| Hạ tầng | discovery, plugins | Có |
gateway.reload và gateway.remote là ngoại lệ - thay đổi chúng không kích hoạt khởi động lại.Lập kế hoạch tải lại
Khi bạn chỉnh sửa một tệp nguồn được tham chiếu qua$include, OpenClaw lập kế hoạch
tải lại từ bố cục do nguồn định nghĩa, không phải dạng xem trong bộ nhớ đã được làm phẳng.
Điều đó giúp các quyết định hot-reload (hot-apply so với restart) dễ dự đoán ngay cả khi một
phần cấp cao duy nhất nằm trong tệp được include riêng, chẳng hạn như
plugins: { $include: "./plugins.json5" }. Việc lập kế hoạch tải lại sẽ thất bại đóng nếu
bố cục nguồn không rõ ràng.
RPC cấu hình (cập nhật bằng chương trình)
Đối với công cụ ghi cấu hình qua API Gateway, hãy ưu tiên luồng này:config.schema.lookupđể kiểm tra một cây con (nút schema nông + tóm tắt con)config.getđể lấy snapshot hiện tại cùng vớihashconfig.patchcho các cập nhật một phần (JSON merge patch: object được merge,nullxóa, array thay thế)config.applychỉ khi bạn định thay thế toàn bộ cấu hìnhupdate.runđể tự cập nhật rõ ràng kèm restart; thêmcontinuationMessagekhi phiên sau restart cần chạy một lượt tiếp theoupdate.statusđể kiểm tra sentinel restart cập nhật mới nhất và xác minh phiên bản đang chạy sau restart
config.schema.lookup là điểm bắt đầu để có tài liệu và ràng buộc chính xác
ở cấp trường. Dùng Tham chiếu cấu hình
khi cần bản đồ cấu hình rộng hơn, giá trị mặc định, hoặc liên kết đến các tham chiếu hệ thống con
chuyên biệt.
config.apply, config.patch, update.run) bị
giới hạn tốc độ ở mức 3 yêu cầu mỗi 60 giây cho mỗi deviceId+clientIp. Các yêu cầu
restart được gộp lại rồi áp dụng thời gian chờ 30 giây giữa các chu kỳ restart.
update.status là chỉ đọc nhưng thuộc phạm vi quản trị vì sentinel restart có thể
bao gồm tóm tắt bước cập nhật và phần cuối output lệnh.config.apply và config.patch đều chấp nhận raw, baseHash, sessionKey,
note, và restartDelayMs. baseHash là bắt buộc cho cả hai phương thức khi một
cấu hình đã tồn tại.
Biến môi trường
OpenClaw đọc biến môi trường từ tiến trình cha, cộng thêm:.envtừ thư mục làm việc hiện tại (nếu có)~/.openclaw/.env(dự phòng toàn cục)
Nhập env shell (tùy chọn)
Nhập env shell (tùy chọn)
OPENCLAW_LOAD_SHELL_ENV=1Thay thế biến môi trường trong giá trị cấu hình
Thay thế biến môi trường trong giá trị cấu hình
${VAR_NAME}:- Chỉ khớp tên viết hoa:
[A-Z_][A-Z0-9_]* - Biến thiếu/rỗng sẽ gây lỗi khi tải
- Escape bằng
$${VAR}để xuất literal - Hoạt động bên trong các tệp
$include - Thay thế inline:
"${BASE}/v1"→"https://api.example.com/v1"
Tham chiếu bí mật (env, file, exec)
Tham chiếu bí mật (env, file, exec)
secrets.providers cho env/file/exec) có trong Quản lý bí mật.
Các đường dẫn thông tin xác thực được hỗ trợ được liệt kê trong Bề mặt thông tin xác thực SecretRef.Tham chiếu đầy đủ
Để xem tham chiếu đầy đủ theo từng trường, hãy xem Tham chiếu cấu hình.Liên quan: Ví dụ cấu hình · Tham chiếu cấu hình · Doctor