Agent 发送
openclaw agent 从命令行运行单个 agent 轮次,无需入站聊天消息。可用于脚本化工作流、测试和编程式交付。完整标志和行为参考:Agent CLI 参考。
对于需要自行管理设置、清理、输出呈现和进程状态的严格、临时性 CI 或编码自动化,请使用 openclaw agent exec。
快速开始¶
1. 运行一个简单的 agent 轮次
通过 Gateway 发送消息并打印回复。
2. 从文件发送多行提示
将有效的 UTF-8 文件读取为 agent 消息正文。
3. 指定特定的 agent 或会话
# Target a specific agent
openclaw agent --agent ops --message "Summarize logs"
# Target a phone number (derives session key)
openclaw agent --to +15555550123 --message "Status update"
# Reuse an existing session
openclaw agent --session-id abc123 --message "Continue the task"
# Target an exact session key
openclaw agent --session-key agent:ops:incident-42 --message "Summarize status"
4. 将回复投递到频道
# Deliver to WhatsApp (default channel)
openclaw agent --to +15555550123 --message "Report ready" --deliver
# Deliver to Slack
openclaw agent --agent ops --message "Generate report" \
--deliver --reply-channel slack --reply-to "#reports"
标志¶
| 标志 | 描述 |
|---|---|
--message <text> |
要发送的内联消息 |
--message-file <path> |
从有效的 UTF-8 文件中读取消息(最大 4 MiB) |
--to <dest> |
从目标(电话号码、聊天 ID)派生会话密钥 |
--session-key <key> |
使用显式会话密钥 |
--agent <id> |
指定已配置的 agent(使用其 main 会话) |
--session-id <id> |
按 ID 复用现有会话 |
--model <id> |
为本次运行覆盖模型(provider/model 或模型 ID) |
--local |
强制使用本地嵌入式运行时(跳过 Gateway) |
--deliver |
将回复发送到聊天频道 |
--channel <name> |
投递频道;与 --agent + --to 一起使用时,也适用于 DM 作用域 |
--reply-to <target> |
覆盖投递目标 |
--reply-channel <name> |
覆盖投递频道 |
--reply-account <id> |
覆盖投递账户 ID |
--thinking <level> |
为所选模型配置文件设置思考级别 |
--verbose <on\|full\|off> |
持久化会话的详细级别(full 还记录工具输出) |
--timeout <seconds> |
覆盖 agent 超时(默认 600,或配置值) |
--json |
输出结构化 JSON |
行为¶
- 默认情况下,CLI 会通过 Gateway 运行。添加
--local可强制在当前机器上使用嵌入式运行时。 - 必须且只能传入
--message或--message-file之一。文件消息会在移除可选的 UTF-8 BOM 后保留多行内容。大于 4 MiB 的文件会在分发前被拒绝。 - 在短暂的握手重试之后,如果 Gateway 超时或连接关闭,命令将失败并在 stderr 中给出提示;CLI 绝不会静默地在嵌入式运行时中重跑该轮次。Gateway 可能仍会完成已接受的轮次,因此在重试或使用
--local重跑之前,请确认 Gateway 和会话状态。 - 会话选择:
--to派生会话密钥(群组/频道目标保持隔离;直接聊天归并为main)。当--agent、--channel和--to一起使用时,路由遵循该频道的规范接收者和session.dmScope。稳定的纯出站身份使用由提供方拥有的会话,与 agent 的主会话隔离。 --session-key选择一个显式键。以 agent 为前缀的键必须使用agent:<agent-id>:<session-key>格式,并且当同时提供两者时,--agent必须与该 agent ID 匹配。未加前缀的非哨兵键在提供--agent时作用域限定到该 agent;例如,--agent ops --session-key incident-42路由到agent:ops:incident-42。如果不提供--agent,未加前缀的非哨兵键作用域限定到已配置的默认 agent。仅当未提供--agent时,字面量global和unknown才保持无作用域。--reply-channel和--reply-account仅影响投递。- 思考级别和详细级别标志会持久化到会话存储中。
- 输出:默认纯文本,或使用
--json输出结构化数据负载和元数据。 - 使用
--json --deliver时,JSON 会包含已发送、已抑制、部分发送和失败发送的投递状态。参见 JSON 投递状态。
示例¶
# Simple turn with JSON output
openclaw agent --to +15555550123 --message "Trace logs" --verbose on --json
# Turn with a model override
openclaw agent --agent ops --model openai/gpt-5.4 --message "Summarize logs"
# Turn with thinking level
openclaw agent --session-id 1234 --message "Summarize inbox" --thinking medium
# Multiline prompt from a file
openclaw agent --agent ops --message-file ./task.md
# Exact session key
openclaw agent --session-key agent:ops:incident-42 --message "Summarize status"
# Bare key scoped to an agent
openclaw agent --agent ops --session-key incident-42 --message "Summarize status"
# Deliver to a different channel than the session
openclaw agent --agent ops --message "Alert" --deliver --reply-channel telegram --reply-to "@admin"
相关¶
完整的 openclaw agent 标志和选项参考。
后台子代理生成。
会话键如何工作,以及 --to、--agent 和 --session-id 如何解析它们。
按频道划分的 react 操作表情符号反应语义。
在代理会话中使用的原生命令目录。
可通过 ACP 访问的外部代理。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw