Chuyển đến nội dung chính
Gateway xử lý các lệnh được gửi dưới dạng tin nhắn độc lập bắt đầu bằng /. Các lệnh bash chỉ dành cho máy chủ sử dụng ! <cmd> (với /bash <cmd> làm bí danh). Khi một cuộc trò chuyện được liên kết với một phiên ACP, văn bản thông thường được định tuyến đến harness ACP. Các lệnh quản lý Gateway vẫn được xử lý cục bộ: /acp ... luôn được chuyển đến trình xử lý lệnh OpenClaw, còn /status cùng /unfocus vẫn được xử lý cục bộ bất cứ khi nào việc xử lý lệnh được bật cho bề mặt đó.

Ba loại lệnh

Lệnh

Các tin nhắn /... độc lập do Gateway xử lý. Phải được gửi làm nội dung duy nhất trong tin nhắn.

Chỉ thị

/think, /fast, /verbose, /trace, /reasoning, /elevated, /exec, /model, /queue — được loại khỏi tin nhắn trước khi mô hình nhìn thấy. Duy trì các cài đặt phiên khi được gửi riêng; hoạt động như gợi ý nội dòng khi được gửi cùng văn bản khác.

Lối tắt nội dòng

/help, /commands, /status, /whoami — chạy ngay lập tức và được loại bỏ trước khi mô hình nhìn thấy phần văn bản còn lại. Chỉ dành cho người gửi được ủy quyền.
  • Các chỉ thị được loại khỏi tin nhắn trước khi mô hình nhìn thấy.
  • Trong các tin nhắn chỉ chứa chỉ thị (tin nhắn chỉ gồm các chỉ thị), chúng được duy trì trong phiên và phản hồi bằng một xác nhận.
  • Trong các tin nhắn trò chuyện thông thường có văn bản khác, chúng hoạt động như gợi ý nội dòng và không duy trì các cài đặt phiên.
  • Các chỉ thị chỉ áp dụng cho người gửi được ủy quyền. Nếu commands.allowFrom được đặt, đây là danh sách cho phép duy nhất được sử dụng; nếu không, quyền được xác định từ danh sách cho phép/ghép cặp của kênh cùng commands.useAccessGroups. Với người gửi không được ủy quyền, các chỉ thị được coi là văn bản thuần túy.

Cấu hình

commands.text
boolean
mặc định:"true"
Bật phân tích cú pháp /... trong các tin nhắn trò chuyện. Trên các bề mặt không có lệnh gốc (WhatsApp, WebChat, Signal, iMessage, Google Chat, Microsoft Teams), các lệnh văn bản vẫn hoạt động ngay cả khi được đặt thành false.
commands.native
boolean | "auto"
mặc định:"\"auto\""
Đăng ký các lệnh gốc. Tự động: bật cho Discord/Telegram; tắt cho Slack; bị bỏ qua đối với các nhà cung cấp không hỗ trợ lệnh gốc. Ghi đè theo từng kênh bằng channels.<provider>.commands.native. Trên Discord, false bỏ qua việc đăng ký lệnh gạch chéo; các lệnh đã đăng ký trước đó có thể vẫn hiển thị cho đến khi bị xóa.
commands.nativeSkills
boolean | "auto"
mặc định:"\"auto\""
Đăng ký các lệnh kỹ năng dưới dạng lệnh gốc khi được hỗ trợ. Tự động: bật cho Discord/Telegram; tắt cho Slack. Ghi đè bằng channels.<provider>.commands.nativeSkills.
commands.bash
boolean
mặc định:"false"
Bật ! <cmd> để chạy các lệnh shell trên máy chủ (bí danh /bash <cmd>). Yêu cầu danh sách cho phép tools.elevated.
commands.bashForegroundMs
number
mặc định:"2000"
Khoảng thời gian bash chờ trước khi chuyển sang chế độ nền (0 chuyển sang nền ngay lập tức).
commands.config
boolean
mặc định:"false"
Bật /config (đọc/ghi openclaw.json). Chỉ dành cho chủ sở hữu.
commands.mcp
boolean
mặc định:"false"
Bật /mcp (đọc/ghi cấu hình MCP do OpenClaw quản lý trong mcp.servers). Chỉ dành cho chủ sở hữu.
commands.plugins
boolean
mặc định:"false"
Bật /plugins (khám phá/trạng thái plugin cùng cài đặt + bật/tắt). Các thao tác ghi chỉ dành cho chủ sở hữu.
commands.debug
boolean
mặc định:"false"
Bật /debug (ghi đè cấu hình chỉ trong thời gian chạy). Chỉ dành cho chủ sở hữu.
commands.restart
boolean
mặc định:"true"
Bật /restart và các yêu cầu khởi động lại SIGUSR1 từ bên ngoài.
commands.ownerAllowFrom
string[]
Danh sách cho phép chủ sở hữu tường minh dành cho các bề mặt lệnh chỉ dành cho chủ sở hữu. Tách biệt với commands.allowFrom và quyền truy cập ghép cặp DM.
channels.<channel>.commands.enforceOwnerForCommands
boolean
mặc định:"false"
Theo từng kênh: yêu cầu danh tính chủ sở hữu đối với các lệnh chỉ dành cho chủ sở hữu. Khi true, người gửi phải khớp với commands.ownerAllowFrom hoặc có phạm vi nội bộ operator.admin. Mục ký tự đại diện allowFromkhông đủ.
commands.ownerDisplay
"raw" | "hash"
Kiểm soát cách các id chủ sở hữu xuất hiện trong lời nhắc hệ thống.
commands.ownerDisplaySecret
string
Bí mật HMAC được sử dụng khi commands.ownerDisplay: "hash".
commands.allowFrom
object
Danh sách cho phép theo từng nhà cung cấp để ủy quyền lệnh. Khi được cấu hình, đây là nguồn ủy quyền duy nhất cho các lệnh và chỉ thị. Sử dụng "*" làm giá trị mặc định toàn cục; các khóa dành riêng cho nhà cung cấp sẽ ghi đè giá trị này.
commands.useAccessGroups
boolean
mặc định:"true"
Thực thi danh sách cho phép/chính sách đối với các lệnh khi commands.allowFrom chưa được đặt.

Danh sách lệnh

Các lệnh đến từ ba nguồn:
  • Lệnh tích hợp sẵn của lõi: src/auto-reply/commands-registry.shared.ts
  • Lệnh dock được tạo: src/auto-reply/commands-registry.data.ts
  • Lệnh plugin: các lệnh gọi registerCommand() của plugin
Tính khả dụng phụ thuộc vào các cờ cấu hình, bề mặt kênh và các plugin đã cài đặt/bật.

Lệnh lõi

Các đường dẫn /export-session tường minh sẽ thay thế các tệp hiện có bên trong không gian làm việc. Bỏ qua đường dẫn để tạo tên tệp tránh xung đột.
Control UI chặn /new được nhập để tạo và chuyển sang một phiên bảng điều khiển mới, trừ khi session.dmScope: "main" được cấu hình và phiên cha hiện tại là phiên chính của tác nhân — trong trường hợp đó, /new đặt lại phiên chính tại chỗ. /reset được nhập vẫn thực hiện thao tác đặt lại tại chỗ của Gateway. Sử dụng /model default khi bạn muốn xóa lựa chọn mô hình đã ghim của phiên.
  • /verbose dành cho việc gỡ lỗi — hãy giữ tắt khi sử dụng thông thường.
  • /trace chỉ hiển thị các dòng theo dõi/gỡ lỗi do plugin sở hữu; nội dung chi tiết thông thường vẫn tắt.
  • /fast auto|on|off duy trì một ghi đè của phiên; sử dụng tùy chọn inherit trong UI Phiên để xóa.
  • /fast tùy thuộc vào nhà cung cấp: OpenAI/Codex ánh xạ nó thành service_tier=priority; các yêu cầu Anthropic trực tiếp ánh xạ nó thành service_tier=auto hoặc standard_only.
  • /reasoning, /verbose/trace tiềm ẩn rủi ro trong môi trường nhóm — chúng có thể tiết lộ suy luận nội bộ hoặc chẩn đoán plugin. Hãy giữ chúng ở trạng thái tắt trong các cuộc trò chuyện nhóm.
  • /model duy trì mô hình mới vào phiên ngay lập tức.
  • Nếu tác nhân đang nhàn rỗi, lượt chạy tiếp theo sẽ sử dụng mô hình đó ngay.
  • Nếu một lượt chạy đang hoạt động, việc chuyển đổi được đánh dấu là đang chờ và được áp dụng tại điểm thử lại sạch tiếp theo.

Lệnh neo kênh

Lệnh neo kênh chuyển tuyến trả lời của phiên đang hoạt động sang một kênh được liên kết khác. Xem Neo kênh để biết cách thiết lập và khắc phục sự cố. Được tạo từ các plugin kênh hỗ trợ lệnh gốc:
  • /dock-discord (bí danh: /dock_discord)
  • /dock-mattermost (bí danh: /dock_mattermost)
  • /dock-slack (bí danh: /dock_slack)
  • /dock-telegram (bí danh: /dock_telegram)
Lệnh neo kênh yêu cầu session.identityLinks. Người gửi nguồn và đối tượng ngang hàng đích phải thuộc cùng một nhóm danh tính.

Lệnh plugin đi kèm

Chỉ dành cho QQBot: /bot-ping, /bot-version, /bot-help, /bot-upgrade, /bot-logs

Lệnh skill

Các skill mà người dùng có thể gọi được cung cấp dưới dạng lệnh dấu gạch chéo:
  • /skill <name> [input] luôn hoạt động như điểm vào chung.
  • Skills có thể đăng ký làm lệnh trực tiếp (ví dụ: /prose cho OpenProse).
  • Việc đăng ký lệnh skill gốc được kiểm soát bởi commands.nativeSkillschannels.<provider>.commands.nativeSkills.
  • Tên được chuẩn hóa thành a-z0-9_ (tối đa 32 ký tự); tên trùng nhau sẽ nhận hậu tố số.
Theo mặc định, lệnh skill được chuyển đến mô hình như một yêu cầu thông thường.Skills có thể khai báo command-dispatch: tool để chuyển trực tiếp đến một công cụ (mang tính xác định, không có sự tham gia của mô hình). Ví dụ: /prose (plugin OpenProse) — xem OpenProse.
Discord sử dụng tính năng tự động hoàn thành cho các tùy chọn động và menu nút khi các đối số bắt buộc bị bỏ qua. Telegram và Slack hiển thị menu nút cho các lệnh có lựa chọn. Các lựa chọn động được phân giải theo mô hình của phiên đích, vì vậy các tùy chọn dành riêng cho mô hình như các mức /think tuân theo giá trị ghi đè /model của phiên.

/tools: tác tử có thể sử dụng gì ngay lúc này

/tools trả lời một câu hỏi về runtime: tác tử này có thể sử dụng gì ngay lúc này trong cuộc trò chuyện này — không phải danh mục cấu hình tĩnh.
Kết quả có phạm vi theo phiên. Việc thay đổi tác tử, kênh, luồng, quyền của người gửi hoặc mô hình có thể thay đổi kết quả. Để chỉnh sửa hồ sơ và giá trị ghi đè, hãy sử dụng bảng Công cụ trong Giao diện điều khiển hoặc các bề mặt cấu hình.

/model: lựa chọn mô hình

Trên Discord, /model/models mở một trình chọn tương tác có danh sách thả xuống cho nhà cung cấp và mô hình. Trình chọn tuân theo agents.defaults.modelPolicy.allow, bao gồm các mục provider/*. Khi không có danh sách cho phép rõ ràng, các mục mô hình và bí danh không hạn chế việc lựa chọn.

/config: ghi cấu hình trên đĩa

Chỉ dành cho chủ sở hữu. Bị tắt theo mặc định — bật bằng commands.config: true.
Cấu hình được xác thực trước khi ghi. Các thay đổi không hợp lệ sẽ bị từ chối. Các cập nhật /config được duy trì qua các lần khởi động lại.

/mcp: cấu hình máy chủ MCP

Chỉ dành cho chủ sở hữu. Bị tắt theo mặc định — bật bằng commands.mcp: true.
/mcp lưu cấu hình trong cấu hình OpenClaw, không phải trong phần cài đặt dự án của tác tử nhúng. /mcp show che các trường chứa thông tin xác thực, giá trị của các cờ thông tin xác thực được nhận diện và các đối số có dạng bí mật đã biết. Khi chạy từ một nhóm, cấu hình được gửi riêng cho chủ sở hữu; nếu không có tuyến riêng tư nào đến chủ sở hữu, lệnh sẽ từ chối an toàn và yêu cầu chủ sở hữu thử lại từ cuộc trò chuyện trực tiếp.

/debug: giá trị ghi đè chỉ dành cho runtime

Chỉ dành cho chủ sở hữu. Bị tắt theo mặc định — bật bằng commands.debug: true. Giá trị ghi đè áp dụng ngay lập tức cho các lần đọc cấu hình mới nhưng không ghi vào đĩa.

/plugins: quản lý plugin

Chỉ chủ sở hữu được phép ghi. Bị tắt theo mặc định — bật bằng commands.plugins: true.
/plugins enable|disable cập nhật cấu hình plugin và tải lại nóng runtime plugin của Gateway cho các lượt tác tử mới. /plugins install tự động khởi động lại các Gateway được quản lý vì các mô-đun nguồn của plugin đã thay đổi. Việc cài đặt từ ClawHub đáng tin cậy và danh mục chính thức không cần xác nhận bổ sung. Các nguồn npm, git, kho lưu trữ, npm-pack: và đường dẫn cục bộ tùy ý sẽ hiển thị cảnh báo nguồn gốc và yêu cầu --force ở cuối sau khi bạn review nguồn. Cờ này xác nhận nguồn và cho phép thay thế một bản cài đặt hiện có; nó không bỏ qua security.installPolicy hoặc các kiểm tra bảo mật của trình cài đặt. Các bản phát hành ClawHub có cảnh báo rủi ro vẫn yêu cầu cờ --acknowledge-clawhub-risk riêng biệt, chỉ dùng trong shell. Các bản cài đặt từ marketplace, được liên kết và được ghim cũng vẫn chỉ dùng trong shell.

/trace: đầu ra theo dõi plugin

/trace hiển thị các dòng theo dõi/gỡ lỗi plugin có phạm vi theo phiên mà không cần chế độ chi tiết đầy đủ. Nó không thay thế /debug (giá trị ghi đè runtime) hoặc /verbose (đầu ra công cụ thông thường).

/btw: câu hỏi phụ

/btw là câu hỏi phụ nhanh về ngữ cảnh phiên hiện tại. Bí danh: /side.
Không giống một tin nhắn thông thường:
  • Sử dụng phiên hiện tại làm ngữ cảnh nền.
  • Trong các phiên bộ khung Codex, chạy dưới dạng một luồng phụ Codex tạm thời.
  • Không thay đổi ngữ cảnh phiên trong tương lai.
  • Không được ghi vào lịch sử bản chép lời.
Xem Câu hỏi phụ BTW để biết toàn bộ hành vi.

Ghi chú về bề mặt

  • Lệnh văn bản: chạy trong phiên trò chuyện thông thường (tin nhắn trực tiếp dùng chung main, các nhóm có phiên riêng).
  • Lệnh Discord gốc: agent:<agentId>:discord:slash:<userId>
  • Lệnh Slack gốc: agent:<agentId>:slack:slash:<userId> (có thể cấu hình tiền tố qua channels.slack.slashCommand.sessionPrefix)
  • Lệnh Telegram gốc: telegram:slash:<userId> (nhắm đến phiên trò chuyện qua CommandTargetSessionKey)
  • /login codex chỉ gửi mã ghép đôi thiết bị thông qua cuộc trò chuyện riêng tư hoặc các tuyến phản hồi của Giao diện web. Các lệnh gọi trong nhóm/chủ đề Telegram yêu cầu chủ sở hữu nhắn tin trực tiếp cho bot.
  • /stop nhắm đến phiên trò chuyện đang hoạt động để hủy lượt chạy hiện tại.
channels.slack.slashCommand hỗ trợ một lệnh duy nhất theo kiểu /openclaw. Với commands.native: true, hãy tạo một lệnh slash Slack cho mỗi lệnh tích hợp sẵn. Đăng ký /agentstatus (không phải /status) vì Slack dành riêng /status. Văn bản /status vẫn hoạt động trong tin nhắn Slack.
  • Các tin nhắn chỉ chứa lệnh từ người gửi trong danh sách cho phép được xử lý ngay lập tức (bỏ qua hàng đợi + mô hình).
  • Các lối tắt nội tuyến (/help, /commands, /status, /whoami) cũng hoạt động khi được nhúng trong tin nhắn thông thường và sẽ bị loại bỏ trước khi mô hình nhận phần văn bản còn lại.
  • Các tin nhắn chỉ chứa lệnh nhưng không được cấp quyền sẽ bị bỏ qua mà không có thông báo; các token /... nội tuyến được xem là văn bản thuần túy.
  • Các lệnh chấp nhận một : tùy chọn giữa lệnh và các đối số (/think: high, /send: on).
  • /new <model> chấp nhận bí danh mô hình, provider/model hoặc tên nhà cung cấp (khớp gần đúng); nếu không có kết quả khớp, văn bản được xem là nội dung tin nhắn.
  • /allowlist add|remove yêu cầu commands.config: true và tuân theo configWrites của kênh.

Mức sử dụng và trạng thái của nhà cung cấp

  • Mức sử dụng/hạn mức của nhà cung cấp (ví dụ: “Claude còn 80%”) hiển thị trong /status đối với nhà cung cấp của mô hình hiện tại khi tính năng theo dõi mức sử dụng được bật.
  • Các dòng token/bộ nhớ đệm trong /status có thể dùng mục mức sử dụng mới nhất trong bản ghi phiên làm phương án dự phòng khi ảnh chụp nhanh của phiên trực tiếp có ít dữ liệu.
  • Môi trường thực thi và thời gian chạy: /status báo cáo Execution cho đường dẫn sandbox có hiệu lực và Runtime cho biết thành phần đang chạy phiên: OpenClaw Default, OpenAI Codex, một backend CLI hoặc một backend ACP.
  • Token/chi phí theo từng phản hồi: được kiểm soát bởi /usage off|tokens|full.
  • /model status liên quan đến mô hình/xác thực/điểm cuối, không phải mức sử dụng.

Liên quan

Skills

Cách đăng ký và kiểm soát quyền truy cập các lệnh slash của skill.

Tạo skill

Xây dựng một skill đăng ký lệnh slash riêng.

BTW

Đặt câu hỏi phụ mà không thay đổi ngữ cảnh phiên.

Điều hướng

Hướng dẫn tác tử trong khi đang chạy bằng /steer.