Files
Doomsday_Survival_Manual/active_skills/channel_message/SKILL.md

248 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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
```