
🚩 2026 年「术哥无界」系列实战文档 X 篇原创计划 第 57 篇,OpenClaw 最佳实战「2026」系列第 27 篇 大家好,欢迎来到 术哥无界 | ShugeX | 运维有术。 我是术哥,一名专注于 AI 编程、AI 智能体、Agent Skills、MCP、云原生、AIOps、Milvus 向量数据库的技术实践者与开源布道者! Talk is cheap, let's explore。无界探索,有术而行。

图 1:OpenClaw Agent Send - 30+ 平台消息自动化
你在用飞书、Telegram、Slack 这些工具时,可能遇到过这些情况:
这些问题的根源是同一个:没有一个统一的命令行接口来操作多平台消息。
OpenClaw Agent Send 用一个 CLI 命令解决了这个问题——openclaw agent --message "你的消息" 一条命令,就能通过 AI 发送消息到飞书、Telegram、Slack 等 30+ 平台。
OpenClaw Agent Send 是 OpenClaw 项目提供的一组命令行工具,让你能通过 CLI 与 AI 助手交互,并把消息投递到各种通信平台。
先说清楚一件事:Agent Send 不是独立产品,而是 OpenClaw 的功能模块。OpenClaw 本身是一个本地优先的个人 AI 助手,目前在 GitHub 上有 322k+ Stars,是开源领域最热门的 AI 助手项目之一。
Agent Send 解决的核心问题是:把 AI 能力接入你已经在用的通信工具。
不管是飞书群聊、Telegram 私聊,还是 Slack 频道,都能通过命令行触发 AI 回复。这对于自动化脚本、CI/CD 流程、定时任务来说,简直是刚需。
多平台支持:WhatsApp、Telegram、Slack、Discord、飞书(Feishu/Lark)、Signal、iMessage、Microsoft Teams、Matrix 等 30+ 平台。
本地运行:数据不离开你的设备,隐私完全可控。
命令行驱动:不用写 API 调用代码,直接用命令行发消息。
在动手之前,先搞清楚三个概念的关系:Session、Agent、Channel。
Session 是对话的容器。每个 Session 有唯一的 sessionKey,比如 agent:main:feishu:group:123456。
Session 保存了:
当你用 --session-id 参数时,Agent 会复用现有会话,而不是创建新的。这对于保持上下文连贯性很重要。
Agent 是执行任务的 AI 实体。OpenClaw 支持配置多个隔离的 Agent,每个有自己的工作空间和配置。
典型配置:
{
agents: {
list: [
{ id: "main" },
{
id: "ops",
workspace: "/home/user/ops-workspace",
},
],
},
}
用 --agent ops 就能指定使用哪个 Agent 处理消息。
Channel 是消息的出入口。飞书是 Channel,Telegram 是 Channel,Slack 也是 Channel。
Agent Send 的核心价值就是:屏蔽不同 Channel 的 API 差异,让你用统一的命令行接口操作所有平台。
以飞书为例,配置好 Channel 后,Agent 就能通过 WebSocket 长连接接收消息,也能把回复发回飞书群聊或私聊。

图 2:Session、Agent、Channel 三层架构关系
openclaw agent --message "帮我总结一下今天的日志"
这条命令会:
# 发送到指定手机号(需要配置对应的 Channel)
openclaw agent --to +15555550123 --message "status update"
# 使用指定的 Agent
openclaw agent --agent ops --message "Summarize logs"
# 复用已有会话
openclaw agent --session-id 1234 --message "继续上次的任务"
参数 | 说明 | 示例 |
|---|---|---|
--message | 消息内容(必需) | --message "hello" |
--to | 目标地址 | --to +15555550123 |
--agent | 指定 Agent | --agent ops |
--session-id | 复用会话 | --session-id 1234 |
--deliver | 发送回复到渠道 | --deliver |
--reply-channel | 回复渠道 | --reply-channel feishu |
--reply-to | 回复目标 | --reply-to "#reports" |
--thinking | 思考级别 | --thinking medium |
--verbose | 详细程度 | --verbose on |
--timeout | 超时时间(秒) | --timeout 60 |
--json | JSON 格式输出 | --json |

图 3:手动发消息 vs 自动化发消息效率对比
通过 Gateway(默认):
本地运行(--local):
飞书(Feishu/Lark)是 OpenClaw 官方内置的 Channel,支持完整功能。下面通过实际案例演示如何配置和使用。
方法一:Onboarding 向导(推荐)
openclaw onboard
按提示选择飞书,输入 App ID 和 App Secret 即可。
方法二:CLI 配置
openclaw channels add # 选择 Feishu
如果需要更精细的控制,可以手动配置。
第一步:创建飞书应用
访问 https://open.feishu.cn/app,创建企业自建应用,获取 App ID 和 App Secret。
第二步:配置权限
在「权限管理」中添加以下权限:
{
"scopes": {
"tenant": [
"im:message",
"im:message:readonly",
"im:message:send_as_bot",
"im:resource"
]
}
}
第三步:启用机器人能力
在「应用能力」→「机器人」中启用。
第四步:配置事件订阅
选择「使用长连接接收事件」(WebSocket 方式,不需要公网 URL),添加事件: im.message.receive_v1。
第五步:更新配置文件
{
channels: {
feishu: {
enabled: true,
domain: "feishu", // 国际版用 "lark"
connectionMode: "websocket",
dmPolicy: "pairing",
groupPolicy: "open",
accounts: {
main: {
appId: "cli_xxx",
appSecret: "xxx",
botName: "AI Assistant",
typingIndicator: true,
resolveSenderNames: true,
},
},
},
},
}
第六步:发布应用
创建版本并提交审核,审核通过后即可使用。
飞书 Channel 支持细粒度的访问控制。
私聊策略(dmPolicy):
pairing(默认):需要配对码验证allowlist:仅允许白名单用户open:开放所有人群聊策略(groupPolicy):
open(默认):允许所有群allowlist:仅允许白名单群requireMention: true:需要 @ 提及才响应假设你需要每天早上 9 点在飞书群里发送日报提醒:
# 结合 crontab 使用
# 0 9 * * * /usr/local/bin/openclaw agent --message "今天是 $(date +%Y-%m-%d),请大家提交日报" --deliver --reply-channel feishu --reply-to "#daily-standup"
关键点:
--deliver:把回复发送到渠道--reply-channel feishu:指定飞书渠道--reply-to "#daily-standup":发送到指定群聊# 在 CI 脚本中
if [ $? -eq 0 ]; then
openclaw agent --message "✅ 构建成功:${BUILD_NAME}" --deliver --reply-channel feishu --reply-to "#ci-notifications"
else
openclaw agent --message "❌ 构建失败:${BUILD_NAME},请检查日志" --deliver --reply-channel feishu --reply-to "#ci-notifications"
fi
# 监控脚本检测到异常时
openclaw agent --agent ops --message "检测到服务器 CPU 使用率超过 90%,当前实例:${INSTANCE_ID},请分析原因并给出处理建议" --deliver --reply-channel feishu --reply-to "@zhangsan" --timeout 120
这里用了:
--agent ops:指定运维 Agent(可能有专门的工具和权限)--timeout 120:等待 2 分钟获取完整回复--reply-to "@zhangsan":发送给指定用户
图 4:从命令行到飞书消息投递的完整流程
OpenClaw 提供了一套 Session 工具,让不同的 Agent 可以相互通信。
可用工具:
工具 | 功能 |
|---|---|
sessions_list | 列出活动会话 |
sessions_history | 获取会话历史记录 |
sessions_send | 向另一个会话发送消息 |
sessions_spawn | 生成子 Agent 运行 |
sessions_send 用法:
{
"sessionKey": "agent:main:feishu:group:123456",
"message": "请处理这个任务",
"timeoutSeconds": 30
}
返回值取决于 timeoutSeconds:
timeoutSeconds = 0:异步执行,返回 { runId, status: "accepted" }timeoutSeconds > 0:同步等待,返回 { runId, status: "ok", reply }sessions_send 给 Agent B配置示例:
{
session: {
agentToAgent: {
maxPingPongTurns: 5,
},
},
}
{
agents: {
list: [
{ id: "main" },
{
id: "ops",
workspace: "/home/user/ops-workspace",
},
],
bindings: [
{
agentId: "main",
match: {
channel: "feishu",
peer: { kind: "direct", id: "ou_xxx" },
},
},
{
agentId: "ops",
match: {
channel: "feishu",
peer: { kind: "group", id: "oc_zzz" },
},
},
],
},
}
你可以限制某些场景下禁止 Agent 发送消息。
{
channels: {
feishu: {
sendPolicy: {
rules: [
{
match: { channel: "feishu", chatType: "group" },
action: "deny"
}
],
default: "allow"
}
}
}
}
这个配置会禁止 Agent 向飞书群聊主动发送消息。
敏感信息不要写进配置文件,用环境变量:
export FEISHU_APP_ID="cli_xxx"
export FEISHU_APP_SECRET="xxx"
配置文件里引用:
{
channels: {
feishu: {
accounts: {
main: {
appId: "${FEISHU_APP_ID}",
appSecret: "${FEISHU_APP_SECRET}",
},
},
},
},
}
--deliver 异步处理脚本中建议加上错误检查:
result=$(openclaw agent --message "$msg" --json --timeout 60)
if [ $? -ne 0 ]; then
echo "Agent Send 失败:$result"
exit 1
fi
开启 verbose 模式调试:
openclaw agent --message "test" --verbose full
飞书有消息长度限制,配置里可以设置:
{
channels: {
feishu: {
textChunkLimit: 2000, // 单条消息最大字符数
streaming: true, // 启用流式输出
blockStreaming: true, // 长消息分块发送
},
},
}
OpenClaw Agent Send 把多平台消息操作统一到一个命令行接口,对于需要自动化消息投递的场景非常实用。
几个关键点:
如果你的工作流里需要定时发消息、CI/CD 通知、运维告警,值得花时间配置一下。
相关资源
官方文档:https://docs.openclaw.ai
Agent Send 文档:https://docs.openclaw.ai/tools/agent-send
飞书集成文档:https://docs.openclaw.ai/channels/feishu
GitHub 仓库:https://github.com/openclaw/openclaw
好啦,谢谢你观看我的文章,如果喜欢可以点赞转发给需要的朋友,我们下一期再见!敬请期待!