CLI commands
Cấu hình
Trình trợ giúp không tương tác cho openclaw.json: lấy/đặt/vá/hủy đặt một giá trị theo đường dẫn, in schema, xác thực hoặc in đường dẫn tệp đang hoạt động. Chạy openclaw config mà không có lệnh con để mở cùng trình hướng dẫn từng bước như openclaw configure.
Tùy chọn gốc
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tc2VjdGlvbiA8c2VjdGlvbg
" type="string">
Bộ lọc phần thiết lập có hướng dẫn, có thể lặp lại, khi bạn chạy openclaw config mà không có lệnh con.
Các phần có hướng dẫn: workspace, model, web, gateway, daemon, channels, plugins, skills, health.
Ví dụ
openclaw config fileopenclaw config --section modelopenclaw config --section gateway --section daemonopenclaw config schemaopenclaw config get browser.executablePathopenclaw config set browser.executablePath "/usr/bin/google-chrome"openclaw config set browser.profiles.work.executablePath "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"openclaw config set agents.defaults.heartbeat.every "2h"openclaw config set 'agents.list[0].tools.exec.node' "node-id-or-name"openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --mergeopenclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKENopenclaw config set secrets.providers.vaultfile --provider-source file --provider-path /etc/openclaw/secrets.json --provider-mode jsonopenclaw config patch --file ./openclaw.patch.json5 --dry-runopenclaw config unset plugins.entries.brave.config.webSearch.apiKeyopenclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN --dry-runopenclaw config validateopenclaw config validate --jsonĐường dẫn
Ký hiệu dấu chấm hoặc dấu ngoặc. Hãy đặt đường dẫn có dấu ngoặc trong dấu nháy ở các ví dụ shell để zsh không mở rộng glob [0]:
openclaw config get agents.defaults.workspaceopenclaw config get 'agents.list[0].id'openclaw config get agents.listopenclaw config set 'agents.list[1].tools.exec.node' "node-id-or-name"config get
Đọc một giá trị từ ảnh chụp nhanh cấu hình đã che thông tin nhạy cảm (các bí mật không bao giờ được in). --json in giá trị thô dưới dạng JSON; nếu không, chuỗi/số/giá trị boolean được in trực tiếp, còn đối tượng/mảng được in dưới dạng JSON đã định dạng.
Khi không có đường dẫn, --json ghi { "error": "Config path not found: <path>" } vào stdout và thoát với trạng thái 1. Nếu không có --json, thông báo chẩn đoán vẫn nằm trên stderr.
openclaw config get browser.executablePathopenclaw config get agents.defaults.model --jsonconfig file
In đường dẫn tệp cấu hình đang hoạt động, được phân giải từ OPENCLAW_CONFIG_PATH hoặc vị trí mặc định. Đường dẫn trỏ đến một tệp thông thường, không phải liên kết tượng trưng; xem An toàn khi ghi.
config schema
In schema JSON đã tạo cho openclaw.json ra stdout.
Nội dung bao gồm
- Schema cấu hình gốc hiện tại, cùng với trường chuỗi
$schemaở cấp gốc dành cho công cụ trình soạn thảo. - Siêu dữ liệu tài liệu của trường
title/descriptionđược Control UI sử dụng. - Các nút đối tượng lồng nhau, ký tự đại diện (
*) và phần tử mảng ([]) kế thừa cùng siêu dữ liệutitle/descriptionkhi có tài liệu trường khớp. - Các nhánh
anyOf/oneOf/allOfcũng kế thừa cùng siêu dữ liệu tài liệu. - Siêu dữ liệu schema Plugin + kênh trực tiếp theo cơ chế nỗ lực tối đa khi có thể tải các manifest thời gian chạy.
- Một schema dự phòng sạch ngay cả khi cấu hình hiện tại không hợp lệ.
RPC thời gian chạy liên quan
config.schema.lookup trả về một đường dẫn cấu hình đã chuẩn hóa cùng một nút schema nông (title, description, type, enum, const, các giới hạn chung), siêu dữ liệu gợi ý UI khớp và bản tóm tắt các phần tử con trực tiếp. Dùng nó để xem chi tiết theo phạm vi đường dẫn trong Control UI hoặc các máy khách tùy chỉnh.
openclaw config schemaopenclaw config schema > openclaw.schema.jsonconfig validate
Xác thực cấu hình hiện tại theo schema đang hoạt động mà không khởi động Gateway.
openclaw config validateopenclaw config validate --jsonGiá trị
Các giá trị được phân tích cú pháp dưới dạng JSON5 khi có thể; nếu không, chúng được coi là chuỗi thô. Dùng --strict-json để bắt buộc sử dụng JSON chuẩn mà không dự phòng sang chuỗi (khi đó cú pháp chỉ có trong JSON5 như chú thích, dấu phẩy cuối hoặc khóa không đặt trong dấu nháy sẽ bị từ chối). --json là bí danh cũ của --strict-json trên config set.
openclaw config set agents.defaults.heartbeat.every "0m"openclaw config set gateway.port 19001 --strict-jsonopenclaw config set channels.whatsapp.groups '["*"]' --strict-jsonconfig get <path> --json in giá trị thô dưới dạng JSON thay vì văn bản được định dạng cho terminal.
Khi một lần ghi thay đổi agents.defaults.model hoặc agents.list[].model của từng tác nhân, OpenClaw phân giải từng mô hình chính hoặc dự phòng đã thay đổi thông qua các danh mục nhà cung cấp đã cấu hình trước khi ghi. Các tham chiếu mô hình không xác định bị từ chối mà không thay đổi cấu hình đang hoạt động; chạy openclaw models list để xem các mô hình có sẵn.
Dùng --merge khi thêm mục vào các ánh xạ đó:
openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --mergeopenclaw config set models.providers.ollama.models '[{"id":"llama3.2","name":"Llama 3.2"}]' --strict-json --mergeChỉ dùng --replace khi giá trị được cung cấp chủ ý trở thành toàn bộ giá trị đích.
Các chế độ config set
Chế độ giá trị
openclaw config set <path> <value>Chế độ trình dựng SecretRef
openclaw config set channels.discord.token \ --ref-provider default \ --ref-source env \ --ref-id DISCORD_BOT_TOKENChế độ trình dựng nhà cung cấp
Chỉ nhắm đến các đường dẫn secrets.providers.<alias>:
openclaw config set secrets.providers.vault \ --provider-source exec \ --provider-command /usr/local/bin/openclaw-vault \ --provider-arg read \ --provider-arg openai/api-key \ --provider-timeout-ms 5000Chế độ hàng loạt
openclaw config set --batch-json '[ { "path": "secrets.providers.default", "provider": { "source": "env" } }, { "path": "channels.discord.token", "ref": { "source": "env", "provider": "default", "id": "DISCORD_BOT_TOKEN" } }]'openclaw config set --batch-file ./config-set.batch.json --dry-runCác tệp hàng loạt bị giới hạn ở 8 MiB.
Quá trình phân tích cú pháp hàng loạt luôn dùng tải trọng hàng loạt (--batch-json/--batch-file) làm nguồn sự thật; --strict-json / --json không thay đổi hành vi phân tích cú pháp hàng loạt.
Chế độ đường dẫn/giá trị JSON cũng hoạt động trực tiếp với SecretRef và nhà cung cấp:
openclaw config set channels.discord.token \ '{"source":"env","provider":"default","id":"DISCORD_BOT_TOKEN"}' \ --strict-json openclaw config set secrets.providers.vaultfile \ '{"source":"file","path":"/etc/openclaw/secrets.json","mode":"json"}' \ --strict-jsonCờ trình dựng nhà cung cấp
Các đích của trình dựng nhà cung cấp phải dùng secrets.providers.<alias> làm đường dẫn.
Cờ chung
--provider-source <env|file|exec>--provider-timeout-ms <ms>(file,exec)
Nhà cung cấp môi trường (--provider-source env)
--provider-allowlist <ENV_VAR>(có thể lặp lại)
Nhà cung cấp tệp (--provider-source file)
--provider-path <path>(bắt buộc)--provider-mode <singleValue|json>--provider-max-bytes <bytes>--provider-allow-insecure-path
Nhà cung cấp thực thi (--provider-source exec)
--provider-command <path>(bắt buộc)--provider-arg <arg>(có thể lặp lại)--provider-no-output-timeout-ms <ms>--provider-max-output-bytes <bytes>--provider-json-only--provider-env <KEY=VALUE>(có thể lặp lại)--provider-pass-env <ENV_VAR>(có thể lặp lại)--provider-trusted-dir <path>(có thể lặp lại)--provider-allow-insecure-path--provider-allow-symlink-command
Ví dụ về nhà cung cấp thực thi được gia cố:
openclaw config set secrets.providers.vault \ --provider-source exec \ --provider-command /usr/local/bin/openclaw-vault \ --provider-arg read \ --provider-arg openai/api-key \ --provider-json-only \ --provider-pass-env VAULT_TOKEN \ --provider-trusted-dir /usr/local/bin \ --provider-timeout-ms 5000config patch
Dán hoặc chuyển qua pipe một bản vá JSON5 có hình dạng cấu hình thay vì chạy nhiều lệnh config set dựa trên đường dẫn. Các đối tượng được hợp nhất đệ quy; mảng và giá trị vô hướng thay thế đích; null xóa đường dẫn đích.
openclaw config patch --file ./openclaw.patch.json5 --dry-runopenclaw config patch --file ./openclaw.patch.json5Các tệp bản vá bị giới hạn ở 8 MiB. Các bản vá --stdin được chuyển qua pipe bị giới hạn ở 1 MiB.
Chuyển bản vá qua stdin cho các tập lệnh thiết lập từ xa:
ssh user@gateway-host 'openclaw config patch --stdin --dry-run' < ./openclaw.patch.json5ssh user@gateway-host 'openclaw config patch --stdin' < ./openclaw.patch.json5Bản vá mẫu:
{ channels: { slack: { enabled: true, mode: "socket", botToken: { source: "env", provider: "default", id: "SLACK_BOT_TOKEN" }, appToken: { source: "env", provider: "default", id: "SLACK_APP_TOKEN" }, groupPolicy: "open", requireMention: false, }, discord: { enabled: true, token: { source: "env", provider: "default", id: "DISCORD_BOT_TOKEN" }, dmPolicy: "disabled", dm: { enabled: false }, groupPolicy: "allowlist", }, }, agents: { defaults: { model: { primary: "openai/gpt-5.6-sol" }, models: { "openai/gpt-5.6-sol": { params: { fastMode: true } }, }, }, },}Dùng --replace-path <path> khi một đối tượng hoặc mảng phải trở thành chính xác giá trị được cung cấp thay vì được vá đệ quy:
openclaw config patch --file ./discord.patch.json5 --replace-path 'channels.discord.guilds["123"].channels'--dry-run chạy các kiểm tra về schema và khả năng phân giải SecretRef mà không ghi dữ liệu. Theo mặc định, các SecretRef dựa trên exec bị bỏ qua trong quá trình chạy thử; thêm --allow-exec khi bạn chủ ý muốn quá trình chạy thử thực thi các lệnh của nhà cung cấp.
Chạy thử
--dry-run xác thực các thay đổi mà không ghi openclaw.json. Có trên config set, config patch và config unset.
openclaw config set channels.discord.token \ --ref-provider default \ --ref-source env \ --ref-id DISCORD_BOT_TOKEN \ --dry-run \ --json openclaw config set channels.discord.token \ --ref-provider vault \ --ref-source exec \ --ref-id discord/token \ --dry-run \ --allow-execHành vi chạy thử
- Chế độ trình dựng: chạy các kiểm tra khả năng phân giải SecretRef cho các tham chiếu/nhà cung cấp đã thay đổi.
- Chế độ JSON (
--strict-json,--jsonhoặc chế độ hàng loạt): chạy xác thực schema cùng các kiểm tra khả năng phân giải SecretRef. - Xác thực chính sách được thực hiện trên toàn bộ cấu hình sau thay đổi, vì vậy việc ghi đối tượng cha (ví dụ đặt
hooksthành một đối tượng) không thể bỏ qua việc xác thực bề mặt không được hỗ trợ. - Theo mặc định, các kiểm tra SecretRef exec bị bỏ qua để tránh tác dụng phụ của lệnh; truyền
--allow-execđể chủ động bật (thao tác này có thể thực thi các lệnh của nhà cung cấp).--allow-execchỉ dành cho chạy thử và sẽ báo lỗi nếu không có--dry-run.
Các trường của --dry-run --json
ok: quá trình chạy thử có thành công hay khôngoperations: số phép gán đã được đánh giáchecks: các kiểm tra schema/khả năng phân giải có được chạy hay khôngchecks.resolvabilityComplete: các kiểm tra khả năng phân giải có chạy đến khi hoàn tất hay không (false khi các tham chiếu exec bị bỏ qua)refsChecked: số tham chiếu thực sự được phân giải trong quá trình chạy thửskippedExecRefs: số tham chiếu exec bị bỏ qua vì chưa đặt--allow-execerrors: các lỗi có cấu trúc về đường dẫn bị thiếu, schema hoặc khả năng phân giải khiok=false
Cấu trúc đầu ra JSON
{ ok: boolean, operations: number, configPath: string, inputModes: ["value" | "json" | "builder" | "unset", ...], checks: { schema: boolean, resolvability: boolean, resolvabilityComplete: boolean, }, refsChecked: number, skippedExecRefs: number, errors?: [ { kind: "missing-path" | "schema" | "resolvability" | "model", message: string, ref?: string, // có mặt đối với lỗi khả năng phân giải }, ],}Ví dụ thành công
{ "ok": true, "operations": 1, "configPath": "~/.openclaw/openclaw.json", "inputModes": ["builder"], "checks": { "schema": false, "resolvability": true, "resolvabilityComplete": true }, "refsChecked": 1, "skippedExecRefs": 0}Ví dụ thất bại
{ "ok": false, "operations": 1, "configPath": "~/.openclaw/openclaw.json", "inputModes": ["builder"], "checks": { "schema": false, "resolvability": true, "resolvabilityComplete": true }, "refsChecked": 1, "skippedExecRefs": 0, "errors": [ { "kind": "resolvability", "message": "Lỗi: Biến môi trường \"MISSING_TEST_SECRET\" chưa được đặt.", "ref": "env:default:MISSING_TEST_SECRET" } ]}Nếu chạy thử thất bại
config schema validation failed: cấu trúc cấu hình sau thay đổi không hợp lệ; hãy sửa đường dẫn/giá trị hoặc cấu trúc đối tượng nhà cung cấp/tham chiếu.Config policy validation failed: unsupported SecretRef usage: chuyển thông tin xác thực đó trở lại đầu vào văn bản thuần/chuỗi; chỉ giữ SecretRef trên các bề mặt được hỗ trợ.SecretRef assignment(s) could not be resolved: hiện không thể phân giải nhà cung cấp/tham chiếu được dẫn chiếu (thiếu biến môi trường, con trỏ tệp không hợp lệ, nhà cung cấp exec thất bại hoặc nhà cung cấp/nguồn không khớp).model reference validation failed: mô hình văn bản chính hoặc dự phòng đã thay đổi không được nhận dạng; chạyopenclaw models listvà chọn một mô hình khả dụng.Dry run note: skipped <n> exec SecretRef resolvability check(s): chạy lại với--allow-execnếu bạn cần xác thực khả năng phân giải exec.- Đối với chế độ hàng loạt, hãy sửa các mục bị lỗi và chạy lại
--dry-runtrước khi ghi.
Áp dụng thay đổi
Sau mỗi lần config set / config patch / config unset thành công, CLI in ra một trong ba gợi ý để bạn biết Gateway có cần khởi động lại hay không:
| Gợi ý | Ý nghĩa |
|---|---|
Restart the gateway to apply. |
Đường dẫn đã thay đổi cần khởi động lại hoàn toàn. |
Change will apply without restarting the gateway. |
Tải lại nóng tự động nhận thay đổi. |
No gateway restart needed. |
Không có nội dung liên quan đến thời gian chạy thay đổi. |
Việc ghi vào plugins.entries (hoặc bất kỳ đường dẫn con nào) luôn yêu cầu khởi động lại, vì CLI không thể xác minh rằng siêu dữ liệu tải lại của mọi plugin đã được nạp.
An toàn khi ghi
openclaw config set và các trình ghi cấu hình khác do OpenClaw sở hữu xác thực toàn bộ cấu hình sau thay đổi trước khi ghi cấu hình đó vào đĩa. Nếu nội dung mới không vượt qua xác thực schema hoặc có vẻ là thao tác ghi đè phá hủy, cấu hình đang hoạt động sẽ được giữ nguyên và nội dung bị từ chối được lưu bên cạnh dưới dạng openclaw.json.rejected.*.
Các thao tác ghi do OpenClaw sở hữu sẽ tuần tự hóa lại JSON5 thành JSON tiêu chuẩn. Khi nguồn chứa chú thích, trình ghi sẽ cảnh báo ngay trước khi xóa chúng; hãy dùng trình chỉnh sửa trực tiếp khi cần giữ lại chú thích.
Ưu tiên ghi bằng CLI cho các chỉnh sửa nhỏ:
openclaw config set gateway.reload.mode hybrid --dry-runopenclaw config set gateway.reload.mode hybridopenclaw config validateNếu thao tác ghi bị từ chối, hãy kiểm tra nội dung đã lưu và sửa toàn bộ cấu trúc cấu hình:
CONFIG="$(openclaw config file)"ls -lt "$CONFIG".rejected.* 2>/dev/null | headopenclaw config validateVẫn được phép ghi trực tiếp bằng trình chỉnh sửa, nhưng Gateway đang chạy sẽ coi các thay đổi đó là không đáng tin cậy cho đến khi chúng vượt qua xác thực. Các chỉnh sửa trực tiếp không hợp lệ sẽ khiến quá trình khởi động thất bại hoặc bị bỏ qua khi tải lại nóng; Gateway không ghi lại openclaw.json. Chạy openclaw doctor --fix để sửa cấu hình có tiền tố/bị ghi đè hoặc khôi phục bản sao tốt gần nhất đã biết. Xem Khắc phục sự cố Gateway.
Khôi phục toàn bộ tệp chỉ dành cho việc sửa chữa bằng doctor. Các thay đổi schema của plugin hoặc độ lệch minHostVersion vẫn được báo rõ thay vì hoàn tác các cài đặt không liên quan của người dùng như cấu hình mô hình, nhà cung cấp, hồ sơ xác thực, kênh, mức độ mở Gateway, công cụ, bộ nhớ, trình duyệt hoặc cron.
Vòng lặp sửa chữa
Sau khi openclaw config validate thành công, hãy dùng TUI cục bộ để một agent nhúng so sánh cấu hình đang hoạt động với tài liệu trong khi bạn xác thực từng thay đổi từ cùng một terminal:
openclaw chatBên trong TUI, ký tự ! ở đầu sẽ chạy một lệnh shell cục bộ theo đúng nghĩa đen (sau lời nhắc xác nhận một lần cho mỗi phiên):
!openclaw config file!openclaw docs gateway auth token secretref!openclaw config validate!openclaw doctorSo sánh với tài liệu
Yêu cầu agent so sánh cấu hình hiện tại của bạn với trang tài liệu liên quan và đề xuất cách sửa nhỏ nhất.
Áp dụng chỉnh sửa có mục tiêu
Áp dụng các chỉnh sửa có mục tiêu bằng openclaw config set hoặc openclaw configure.
Xác thực lại
Chạy lại openclaw config validate sau mỗi thay đổi.
Dùng doctor cho sự cố thời gian chạy
Nếu xác thực thành công nhưng thời gian chạy vẫn không ổn định, hãy chạy openclaw doctor hoặc openclaw doctor --fix để được hỗ trợ di chuyển và sửa chữa.