248 lines
5.7 KiB
Markdown
248 lines
5.7 KiB
Markdown
|
|
---
|
|||
|
|
name: channel_message
|
|||
|
|
description: Use this skill to proactively send a one-way message to a user/session/channel, usually only when the user explicitly asks to send to a channel/session or when proactive notification is needed. First query sessions with copaw chats list, then push with copaw channels send. | 当需要主动向用户/会话/频道单向推送消息时使用,通常仅在用户明确要求发往某个 channel / 会话,或需要主动通知时使用;先用 copaw chats list 查 session,再用 copaw channels send 推送
|
|||
|
|
metadata: { "builtin_skill_version": "1.0", "copaw": { "emoji": "📤" } }
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Channel Message(频道消息推送)
|
|||
|
|
|
|||
|
|
## 什么时候用
|
|||
|
|
|
|||
|
|
通常只有在**用户明确要求向某个 channel / 会话发送消息**,或你需要**主动推送通知**(如任务完成、提醒、告警)时,使用本 skill。
|
|||
|
|
这是**单向发送**,**不会返回回复**。
|
|||
|
|
|
|||
|
|
### 应该使用
|
|||
|
|
- 用户明确要求发往某个 channel / 会话
|
|||
|
|
- 任务完成后主动通知用户
|
|||
|
|
- 定时提醒、告警、状态更新
|
|||
|
|
- 将异步结果推送回某个已有会话
|
|||
|
|
- 用户明确要求"处理完后通知我"
|
|||
|
|
|
|||
|
|
### 不应使用
|
|||
|
|
- 如果只是当前会话中的正常回复,**不要使用 `copaw channels send`**
|
|||
|
|
- 需要和用户进行双向对话并立即等待回复
|
|||
|
|
- 还不知道目标 session 是哪个
|
|||
|
|
- 想当然猜测 `target-user` 或 `target-session`
|
|||
|
|
|
|||
|
|
## 决策规则
|
|||
|
|
|
|||
|
|
1. **通常只有在用户明确要求发往某个 channel / 会话,或需要主动通知时才使用**
|
|||
|
|
2. **发送前必须先查 session**
|
|||
|
|
3. **不要猜 `target-user` 和 `target-session`**
|
|||
|
|
4. **如果查到多个 session,优先使用最近活跃的**
|
|||
|
|
5. **`channel send` 是单向推送,不会返回用户回复**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 最常用命令
|
|||
|
|
|
|||
|
|
### 1) 先查询可用 sessions
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
copaw chats list --agent-id <your_agent> --channel <channel>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
也可以按用户筛选:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
copaw chats list --agent-id <your_agent> --user-id <user_id>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2) 发送消息
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
copaw channels send \
|
|||
|
|
--agent-id <your_agent> \
|
|||
|
|
--channel <channel> \
|
|||
|
|
--target-user <user_id> \
|
|||
|
|
--target-session <session_id> \
|
|||
|
|
--text "..."
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 最小工作流
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
1. 判断:是否为用户明确要求发送,或是否需要主动通知
|
|||
|
|
2. copaw chats list 查询目标 session
|
|||
|
|
3. 从结果中获取 user_id 和 session_id
|
|||
|
|
4. 若有多个 session,优先选最近活跃的
|
|||
|
|
5. copaw channels send 发送消息
|
|||
|
|
6. 结束(无回复)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 关键规则
|
|||
|
|
|
|||
|
|
### 必填参数
|
|||
|
|
|
|||
|
|
`copaw channels send` 必须同时提供:
|
|||
|
|
- `--agent-id`
|
|||
|
|
- `--channel`
|
|||
|
|
- `--target-user`
|
|||
|
|
- `--target-session`
|
|||
|
|
- `--text`
|
|||
|
|
|
|||
|
|
### 必须先查询
|
|||
|
|
|
|||
|
|
发送前先执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
copaw chats list --agent-id <your_agent> --channel <channel>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
从结果中获取:
|
|||
|
|
- `user_id` → `--target-user`
|
|||
|
|
- `session_id` → `--target-session`
|
|||
|
|
|
|||
|
|
如果有多个候选 session,优先选择 `updated_at` 最近的会话。
|
|||
|
|
|
|||
|
|
### 单向推送
|
|||
|
|
|
|||
|
|
`copaw channels send` 只负责发送,不等待回复。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 简短示例
|
|||
|
|
|
|||
|
|
### 用户明确要求发往某个 channel
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
copaw chats list --agent-id notify_bot --channel feishu
|
|||
|
|
|
|||
|
|
copaw channels send \
|
|||
|
|
--agent-id notify_bot \
|
|||
|
|
--channel feishu \
|
|||
|
|
--target-user manager_id \
|
|||
|
|
--target-session manager_session \
|
|||
|
|
--text "周报已生成,请查收"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 任务完成通知
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
copaw chats list --agent-id task_bot --channel console
|
|||
|
|
|
|||
|
|
copaw channels send \
|
|||
|
|
--agent-id task_bot \
|
|||
|
|
--channel console \
|
|||
|
|
--target-user alice \
|
|||
|
|
--target-session alice_console_001 \
|
|||
|
|
--text "✅ 任务已完成"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 异步结果回推
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
copaw chats list --agent-id analyst_bot --user-id alice
|
|||
|
|
|
|||
|
|
copaw channels send \
|
|||
|
|
--agent-id analyst_bot \
|
|||
|
|
--channel console \
|
|||
|
|
--target-user alice \
|
|||
|
|
--target-session alice_console_001 \
|
|||
|
|
--text "数据分析已完成,结果已保存到 report.pdf"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 常见错误
|
|||
|
|
|
|||
|
|
### 错误 1:把正常回复当成 channel send
|
|||
|
|
|
|||
|
|
如果你正在当前会话里直接回复用户,不要使用 `copaw channels send`。
|
|||
|
|
|
|||
|
|
### 错误 2:没查 session 就直接发
|
|||
|
|
|
|||
|
|
不要猜 `target-user` 或 `target-session`,先执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
copaw chats list --agent-id <your_agent> --channel <channel>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 错误 3:缺少必填参数
|
|||
|
|
|
|||
|
|
`--agent-id`、`--channel`、`--target-user`、`--target-session`、`--text` 五个都必填。
|
|||
|
|
|
|||
|
|
### 错误 4:以为 send 会拿到回复
|
|||
|
|
|
|||
|
|
不会。它只是推送消息。
|
|||
|
|
|
|||
|
|
### 错误 5:用户有多个 session 时随便选一个
|
|||
|
|
|
|||
|
|
应优先选择最近活跃的 session。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 可选命令
|
|||
|
|
|
|||
|
|
### 查看所有会话
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
copaw chats list --agent-id <your_agent>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 查看某个用户的会话
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
copaw chats list --agent-id <your_agent> --user-id <user_id>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 查看可用频道
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
copaw channels list --agent-id <your_agent>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 与 Agent Chat 的区别
|
|||
|
|
|
|||
|
|
- **copaw agents chat**:发给其他 agent,双向,有回复
|
|||
|
|
- **copaw channels send**:发给用户/会话/频道,单向,无回复
|
|||
|
|
|
|||
|
|
**选择原则**:
|
|||
|
|
- 要找其他 agent 协作 → `copaw agents chat`
|
|||
|
|
- 要主动给用户推送消息 → `copaw channels send`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 完整参数说明
|
|||
|
|
|
|||
|
|
### copaw chats list
|
|||
|
|
|
|||
|
|
**必填参数**:
|
|||
|
|
- `--agent-id`:Agent ID
|
|||
|
|
|
|||
|
|
**可选参数**:
|
|||
|
|
- `--channel`:按频道筛选
|
|||
|
|
- `--user-id`:按用户筛选
|
|||
|
|
- `--base-url`:覆盖API地址
|
|||
|
|
|
|||
|
|
### copaw channels send
|
|||
|
|
|
|||
|
|
**必填参数**(5个):
|
|||
|
|
- `--agent-id`:发送方agent ID
|
|||
|
|
- `--channel`:目标频道(console/dingtalk/feishu/discord/imessage/qq/...)
|
|||
|
|
- `--target-user`:目标用户ID(从 `copaw chats list` 获取)
|
|||
|
|
- `--target-session`:目标会话ID(从 `copaw chats list` 获取)
|
|||
|
|
- `--text`:消息内容
|
|||
|
|
|
|||
|
|
**可选参数**:
|
|||
|
|
- `--base-url`:覆盖API地址
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 帮助信息
|
|||
|
|
|
|||
|
|
随时使用 `-h` 查看详细帮助:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
copaw channels -h
|
|||
|
|
copaw channels send -h
|
|||
|
|
copaw chats -h
|
|||
|
|
copaw chats list -h
|
|||
|
|
```
|