amernet-ai-saas

TotalClaw 作者 totalclaw

通过 OpenClaw 将您的 AI SaaS 智能代理连接到任何消息通道(WhatsApp、Telegram、Slack、Discord、iMessage 等)

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~amernet-amernet-ai-saas
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~amernet-amernet-ai-saas/file -o amernet-amernet-ai-saas.md
## AI SaaS Chatbot

This skill forwards user messages to an AI SaaS chatbot and returns its response. It maintains conversation context per user by using their channel and user identifier as a session key.

### Required Configuration

These environment variables must be set in your `~/.openclaw/openclaw.json` under `skills.entries.amernet-ai-saas.env`:

| Variable | Description |
|---|---|
| `AI_SAAS_API_KEY` | Your API key from the portal (Settings → API Keys). Needs `all` permission. |
| `AI_SAAS_CHATBOT_ID` | The chatbot ID to route all messages to (copy from the Chatbots page). |
| `AI_SAAS_BASE_URL` | Base URL of your AI SaaS instance. Default: `https://saas.salesbay.ai` |

### Message Routing

When the user sends ANY message through any connected channel:

1. Identify the current channel name (e.g. `whatsapp`, `telegram`, `slack`, `discord`) and the user's identifier on that channel (phone number, user ID, or username).

2. Construct a `sender_id` combining both: `<channel>:<user_identifier>`
   - WhatsApp example: `whatsapp:+15551234567`
   - Telegram example: `telegram:123456789`
   - Slack example: `slack:U012AB3CD`
   - Discord example: `discord:123456789012345678`

3. Send a POST request to the chatbot API:

```
POST ${AI_SAAS_BASE_URL}/api/v1/chatbots/${AI_SAAS_CHATBOT_ID}/chat
Authorization: Bearer ${AI_SAAS_API_KEY}
Content-Type: application/json

{
  "sender_id": "<constructed sender_id>",
  "message": "<user message text>"
}
```

4. Parse `data.responses` from the JSON response. Return each item's `text` field as a separate message to the user. If multiple responses exist, send them in order.

5. If the API returns an error or is unreachable, reply: "Sorry, the AI assistant is temporarily unavailable. Please try again in a moment."

### Conversation Reset

If the user explicitly says "reset", "start over", "clear chat", or "/reset":

```
DELETE ${AI_SAAS_BASE_URL}/api/v1/chatbots/${AI_SAAS_CHATBOT_ID}/conversations/<sender_id>
Authorization: Bearer ${AI_SAAS_API_KEY}
```

Then confirm: "Conversation cleared. How can I help you?"

### Status Check

If the user says "/status" or "/ping":

```
GET ${AI_SAAS_BASE_URL}/api/v1/chatbots/${AI_SAAS_CHATBOT_ID}
Authorization: Bearer ${AI_SAAS_API_KEY}
```

Report the chatbot name and whether it is active.

---

## 中文说明

## AI SaaS Chatbot

此技能将用户消息转发给 AI SaaS 聊天机器人并返回其响应。它通过将用户的通道和用户标识符作为会话键,为每个用户维护对话上下文。

### 必需配置

以下环境变量必须在你的 `~/.openclaw/openclaw.json` 中的 `skills.entries.amernet-ai-saas.env` 下设置:

| 变量 | 描述 |
|---|---|
| `AI_SAAS_API_KEY` | 从门户获取的 API 密钥(Settings → API Keys)。需要 `all` 权限。 |
| `AI_SAAS_CHATBOT_ID` | 用于路由所有消息的聊天机器人 ID(从 Chatbots 页面复制)。 |
| `AI_SAAS_BASE_URL` | 你的 AI SaaS 实例的基础 URL。默认值:`https://saas.salesbay.ai` |

### 消息路由

当用户通过任意已连接通道发送任意消息时:

1. 识别当前通道名称(例如 `whatsapp`、`telegram`、`slack`、`discord`)以及用户在该通道上的标识符(电话号码、用户 ID 或用户名)。

2. 将两者组合构造出一个 `sender_id`:`<channel>:<user_identifier>`
   - WhatsApp 示例:`whatsapp:+15551234567`
   - Telegram 示例:`telegram:123456789`
   - Slack 示例:`slack:U012AB3CD`
   - Discord 示例:`discord:123456789012345678`

3. 向聊天机器人 API 发送 POST 请求:

```
POST ${AI_SAAS_BASE_URL}/api/v1/chatbots/${AI_SAAS_CHATBOT_ID}/chat
Authorization: Bearer ${AI_SAAS_API_KEY}
Content-Type: application/json

{
  "sender_id": "<constructed sender_id>",
  "message": "<user message text>"
}
```

4. 从 JSON 响应中解析 `data.responses`。将每一项的 `text` 字段作为独立消息返回给用户。如果存在多条响应,按顺序发送。

5. 如果 API 返回错误或无法访问,回复:"Sorry, the AI assistant is temporarily unavailable. Please try again in a moment."

### 对话重置

如果用户明确说出 "reset"、"start over"、"clear chat" 或 "/reset":

```
DELETE ${AI_SAAS_BASE_URL}/api/v1/chatbots/${AI_SAAS_CHATBOT_ID}/conversations/<sender_id>
Authorization: Bearer ${AI_SAAS_API_KEY}
```

然后确认:"Conversation cleared. How can I help you?"

### 状态检查

如果用户说 "/status" 或 "/ping":

```
GET ${AI_SAAS_BASE_URL}/api/v1/chatbots/${AI_SAAS_CHATBOT_ID}
Authorization: Bearer ${AI_SAAS_API_KEY}
```

报告聊天机器人名称及其是否处于活动状态。