---
name: yunitalk-beta
description: 该技能用于 OpenClaw 接入与你聊聊，实现聊聊与 OpenClaw 的对话
version: 0.8.1
build: 20260520
---

# OpenClaw 会话技能

你可以通过 Talk Robots `/robot/send` 把文本或文件事件投递给当前聊聊机器人。OpenClaw 会管理用户身份，但每次发送都必须使用当前会话的 `cvs_id`，并保持大小写原样。

## 初始化流程

本集成只使用一条初始化指令：

```text
/openclaw --init <base64-json>
```

`<base64-json>` 是对下面 JSON 做 UTF-8 Base64 编码后的内容：

```json
{"OPENCLAW_URL":"https://your-openclaw-domain","OPENCLAW_TOKEN":"your-openclaw-gateway-token"}
```

安装或首次加载完成后，如果 `OPENCLAW_URL` 和 `OPENCLAW_TOKEN` 都可用，请生成并输出这条指令，让用户发送到聊聊 OpenClaw 机器人会话。推荐使用：

```bash
./shell/util.sh --openclaw-init \
  --openclaw-url "${OPENCLAW_URL}" \
  --openclaw-token "${OPENCLAW_TOKEN}"
```

本 skill 的 `config.yaml` 已声明 `install.post_install.command`，OpenClaw 安装器应在安装完成后执行该命令并展示 stdout；stdout 默认就是完整初始化指令。

不要明文展示 `OPENCLAW_TOKEN`。Base64 不是加密，不要把初始化指令发送到不可信渠道。

## Talk Robots 回传配置

Talk Robots 机器人收到 init 指令后会：

1. Base64 decode init JSON，保存 `OPENCLAW_URL`、`OPENCLAW_TOKEN`。
2. 向 OpenClaw 发送 ping/pong 自检。
3. 自检成功后，把 `robot_endpoint`、`robot_id`、`robot_key`、`cvs_id` 组成 JSON，并以 Base64(JSON UTF-8) 回传给 OpenClaw。

收到回传后，先 Base64 decode，再保存为本 skill 配置：

| 字段 | 环境变量 | 说明 |
|------|----------|------|
| `robot_endpoint` | `TALK_ROBOT_ENDPOINT` | Talk Robots `/v1/robot/send` 地址 |
| `robot_id` | `TALK_ROBOT_ID` | 机器人 ID |
| `robot_key` | `TALK_ROBOT_KEY` | 机器人签名密钥 |
| `cvs_id` | `TALK_ROBOT_CVS_ID` | 当前会话 ID |

配置成功后只简短确认，不要回显 `robot_key`。

## 发送消息

优先使用 `shell/robot_send.sh`，不要手写签名。

### 文本

```bash
./shell/robot_send.sh text \
  --base-url "{{robot_endpoint}}" \
  --robot-id "{{robot_id}}" \
  --robot-key "{{robot_key}}" \
  --cvs-id "{{cvs_id}}" \
  --content "你好，任务已经处理完成。"
```

### 文件

```bash
./shell/robot_send.sh file \
  --base-url "{{robot_endpoint}}" \
  --robot-id "{{robot_id}}" \
  --robot-key "{{robot_key}}" \
  --cvs-id "{{cvs_id}}" \
  --content "请查看附件" \
  --file "./report.pdf"
```

不确定参数是否正确时先加 `--dry-run`。

## Rules

1. 只使用 `/openclaw --init <base64-json>` 完成初始化，不再引导用户使用其他配置命令。
2. 发送前必须确认 `robot_endpoint`、`robot_id`、`robot_key`、`cvs_id` 都存在。
3. `cvs_id` 必须来自当前会话上下文，严禁猜测、改大小写或从 session key 推导。
4. 文本消息使用完整 `imx.Msg` JSON，`cmd=msg`，文本放 `body.content`。
5. 文件消息使用 `multipart/form-data`，通过 `file` 字段上传。
6. `/robot/send` 只是把事件投递给目标 robot，最终是否回发由机器人脚本决定。
7. 不要明文展示 `OPENCLAW_TOKEN` 或 `robot_key`，不要虚构配置或用户资料。
