openclaw agent
Chạy một lượt agent thông qua Gateway. Chuyển sang agent nhúng nếu yêu cầu Gateway thất bại; truyền --local để buộc thực thi nhúng ngay từ đầu.
Truyền ít nhất một bộ chọn phiên: --to, --session-key, --session-id hoặc --agent.
Liên quan: Công cụ gửi của agent
Tùy chọn
-m, --message <text>: nội dung thông điệp--message-file <path>: đọc nội dung thông điệp từ tệp UTF-8-t, --to <dest>: người nhận dùng để suy ra khóa phiên--session-key <key>: khóa phiên tường minh dùng để định tuyến--session-id <id>: mã định danh phiên tường minh--agent <id>: mã định danh agent; ghi đè các liên kết định tuyến--model <id>: ghi đè mô hình cho lượt chạy này (provider/modelhoặc mã định danh mô hình)--thinking <level>: mức suy luận của agent (off,minimal,low,medium,high, cùng các mức tùy chỉnh được nhà cung cấp hỗ trợ nhưxhigh,adaptivehoặcmax)--verbose <on|off>: duy trì mức chi tiết cho phiên--channel <channel>: kênh phân phối; bỏ qua để dùng kênh phiên chính--reply-to <target>: ghi đè đích phân phối--reply-channel <channel>: ghi đè kênh phân phối--reply-account <id>: ghi đè tài khoản phân phối--local: chạy trực tiếp agent nhúng (sau khi tải trước sổ đăng ký Plugin)--deliver: gửi phản hồi trở lại kênh/đích đã chọn--timeout <seconds>: ghi đè thời hạn lượt agent của lệnh này (mặc định 600 hoặcagents.defaults.timeoutSeconds);0vô hiệu hóa thời hạn tổng thể. Giá trị dự phòng 600 giây thuộc về lệnh CLI này, không phải các lượt Gateway thông thường vốn có giá trị mặc định là 48 giờ.--json: xuất JSON
Ví dụ
Ghi chú
- Chỉ truyền đúng một trong
--messagehoặc--message-file.--message-fileloại bỏ BOM UTF-8 ở đầu và giữ nguyên nội dung nhiều dòng; tùy chọn này từ chối các tệp không phải UTF-8 hợp lệ. Các tệp lớn hơn 4 MiB bị từ chối trước khi gửi đi. - Không thể chạy các lệnh gạch chéo (ví dụ
/compact) thông qua--message. CLI từ chối chúng và hướng bạn đến lệnh chuyên dụng tương ứng (openclaw sessions compact <key>cho Compaction). --localvà các lượt chạy dự phòng nhúng chỉ dùng một lần: các tài nguyên loopback MCP đi kèm và các phiên stdio Claude đã khởi động sẵn được mở cho lượt chạy sẽ bị kết thúc sau phản hồi, vì vậy các lần gọi bằng tập lệnh không để lại tiến trình con cục bộ đang chạy. Thay vào đó, các lượt chạy dựa trên Gateway giữ tài nguyên loopback MCP do Gateway sở hữu trong tiến trình Gateway đang chạy.- Thực thi nhúng độc lập (
--localvà phương án dự phòng truyền tải) từ chối sử dụng lại phiên chính hiện có khi quá trình khôi phục sau khi khởi động lại đang chờ xử lý. Hãy chạy lượt này thông qua một Gateway hoạt động bình thường hoặc đặt lại tại đó bằng/newhoặc/reset; một tiến trình nhúng độc lập không thể phối hợp an toàn chủ thể sở hữu quá trình khôi phục đó với trình quét Gateway. - Khi dùng đồng thời
--agent,--channelvà--to, việc định tuyến phiên tuân theo người nhận chuẩn của kênh vàsession.dmScope. Các kênh có danh tính người nhận ổn định chỉ dành cho chiều gửi đi sẽ sử dụng một phiên do nhà cung cấp sở hữu, tách biệt với phiên chính của agent.--reply-channelvà--reply-accountchỉ ảnh hưởng đến việc phân phối. --session-keychọn một khóa phiên tường minh. Các khóa có tiền tố agent phải dùngagent:<agent-id>:<session-key>, và--agentphải khớp với mã định danh agent trong khóa khi cả hai đều được cung cấp. Các khóa thuần không phải sentinel được giới hạn trong--agentkhi được cung cấp, hoặc trong agent mặc định đã cấu hình nếu không; ví dụ,--agent ops --session-key incident-42định tuyến đếnagent:ops:incident-42. Các khóa chữglobalvàunknownchỉ giữ nguyên trạng thái không giới hạn phạm vi khi không cung cấp--agent.--jsondành riêng stdout cho phản hồi JSON; chẩn đoán từ Gateway, Plugin và phương án dự phòng nhúng được chuyển đến stderr để tập lệnh có thể phân tích trực tiếp stdout.- JSON dự phòng nhúng bao gồm
meta.transport: "embedded"vàmeta.fallbackFrom: "gateway"để tập lệnh có thể phát hiện một lượt chạy dự phòng. - Nếu Gateway chấp nhận một lượt chạy nhưng CLI hết thời gian chờ phản hồi cuối cùng, phương án dự phòng nhúng sẽ dùng mã định danh phiên/lượt chạy
gateway-fallback-*mới và báo cáometa.fallbackReason: "gateway_timeout"cùng các trường phiên dự phòng, thay vì cạnh tranh với bản ghi hội thoại do Gateway sở hữu hoặc âm thầm thay thế phiên ban đầu. SIGTERM/SIGINTngắt một yêu cầu dựa trên Gateway đang chờ; nếu Gateway đã chấp nhận lượt chạy, CLI cũng gửichat.abortcho mã định danh lượt chạy đó trước khi thoát.--localvà các lượt chạy dự phòng nhúng nhận cùng tín hiệu nhưng không gửichat.abort. Nếu khóa khử trùng lặp lượt chạy nội bộ đã có một lượt chạy đang hoạt động cho phiên này, phản hồi sẽ báo cáostatus: "in_flight"và CLI không dùng JSON sẽ in thông tin chẩn đoán ra stderr thay vì một phản hồi trống. Đối với các trình bao bọc cron/systemd bên ngoài, hãy duy trì một cơ chế dự phòng buộc kết thúc nhưtimeout -k 60 600 openclaw agent ...để trình giám sát có thể thu hồi tiến trình nếu quá trình tắt không thể hoàn tất các tác vụ đang chờ.- Khi lệnh này kích hoạt việc tạo lại
models.json, thông tin xác thực của nhà cung cấp do SecretRef quản lý được lưu dưới dạng dấu hiệu không chứa bí mật (ví dụ tên biến môi trường,secretref-env:ENV_VAR_NAMEhoặcsecretref-managed), tuyệt đối không phải văn bản thuần của bí mật đã phân giải. Các giá trị dấu hiệu được ghi từ ảnh chụp nhanh cấu hình nguồn đang hoạt động, không phải từ các giá trị bí mật đã phân giải trong thời gian chạy.
Trạng thái phân phối JSON
Với--json --deliver, phản hồi JSON của CLI bao gồm deliveryStatus ở cấp cao nhất để tập lệnh có thể phân biệt các lượt gửi đã phân phối, bị ngăn, thành công một phần và thất bại:
result.deliveryStatus.
deliveryStatus.status là một trong các giá trị sau:
Các trường phổ biến:
requested: luôn làtruekhi đối tượng tồn tại.attempted:truesau khi đường dẫn gửi bền vững đã chạy;falseđối với lỗi kiểm tra trước hoặc khi không có tải trọng hiển thị.succeeded:true,falsehoặc"partial";"partial"đi cùngstatus: "partial_failed".reason: lý do viết thường theo kiểu snake-case từ quá trình phân phối bền vững hoặc xác thực trước khi phân phối. Các giá trị đã biết gồmcancelled_by_message_sending_hook,no_visible_payload,no_visible_result,channel_resolved_to_internal,unknown_channel,invalid_delivery_targetvàno_delivery_target; các lượt gửi bền vững thất bại cũng có thể báo cáo giai đoạn đã thất bại. Hãy coi các giá trị không xác định là dữ liệu bất minh vì tập giá trị có thể mở rộng.resultCount: số lượng kết quả gửi qua kênh, khi có.sentBeforeError:truekhi lỗi một phần đã gửi ít nhất một tải trọng trước khi gặp lỗi.error:trueđối với các lượt gửi thất bại hoặc thất bại một phần.errorMessage: chỉ xuất hiện khi đã ghi nhận thông báo lỗi phân phối cơ sở. Các lỗi kiểm tra trước cóerror/reasonnhưng không cóerrorMessage.payloadOutcomes: kết quả tùy chọn cho từng tải trọng vớiindex,status,reason,resultCount,error,stage,sentBeforeErrorhoặc siêu dữ liệu hook khi có.