Back to skills
SKILL.md
Ocean Agent
ASecurityOceanBus-powered AI workbench for insurance agents. Use when agents need Yellow Pages lead generation, customer intake and triage, follow-up reminders with draft messages, A2A meeting negotiation, and OceanBus reputation management. Zero server deployment. npm install oceanbus.
- 11 stars
- 0 votes
- 0 copies
- 0 views
- Added September 10, 2026
Works with
Security analysis
92/100- Installs packages at runtime which could introduce malicious dependencies
npx -y skills add luokai0/ai-agent-skills-by-luo-kai --skill ocean-agent --agent claude-codeAre you the author of Ocean Agent?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/luokai0-ocean-agent)---
name: ocean-agent
description: OceanBus-powered AI workbench for insurance agents. Use when agents need Yellow Pages lead generation, customer intake and triage, follow-up reminders with draft messages, A2A meeting negotiation, and OceanBus reputation management. Zero server deployment. npm install oceanbus.
version: 1.0.4
metadata:
openclaw:
requires:
bins:
- node
emoji: "🌊"
homepage: https://github.com/ryanbihai/ocean-agent
envVars:
- name: OCEANBUS_BASE_URL
required: false
description: OceanBus L0 API 端点,默认使用公共测试服务器。
---
# Ocean Agent — 保险代理人 AI 工作台
每天帮代理人回答三个问题:**今天找谁聊、聊什么、怎么约见面。** 基于 OceanBus 网络的黄页获客、线索承接、会面协商、声誉管理。
---
## 触发条件
当用户表达以下意图时激活本 skill:
- "帮我看看今天概览" / "今天有什么事" / "有哪些客户要跟进"
- "帮我跟进一下" / "该跟谁跟进" / "帮我看看线索"
- "帮我和XXX约个见面" / "帮我约XXX" / "帮我协商会面"
- "回顾一下今天" / "今天总结"
- "帮我查一下XXX的声誉" / "我的声誉怎么样"
- "帮我安装 ocean-agent" / "帮我设置" / "初始化"
- 有新客户从黄页发来消息时(listen.js 实时推送)
---
## 入驻流程
当用户首次使用(未注册或 `~/.oceanbus-agent/credentials.json` 不存在)时,先展示欢迎语,再按步骤引导。
### 欢迎语
安装完成后,首先展示:
```
🌊 欢迎使用 Ocean Agent!
从现在开始,你的 Agent 在 OceanBus 黄页上 24 小时帮你获客。
客户搜索"重疾险 北京"就能找到你。找到之后,Agent 自动帮你承接、
采集需求、跟进提醒,该见面了还能帮你跟客户 Agent 协商时间地点。
现在花 2 分钟完成入驻,你的 Agent 就上线了。
准备好了吗?我先帮你注册 OceanBus 身份。
```
然后立即进入步骤 1。
### 步骤 1:安装 skill
告诉用户:在 OpenClaw 中安装 ocean-agent 即可。用户对你说"帮我安装 ocean-agent",你运行:
```
openclaw skills install ocean-agent
```
安装后在 skill 目录执行 `npm install`。
### 步骤 2:注册 OceanBus 身份 + 填写档案
```bash
node scripts/profile.js setup
```
这是交互式脚本,依次询问:姓名、城市、区域、从业年限、擅长险种、公司、资质、服务特色。
**你的任务**:
- 每个字段给出简短提示。例如:*"擅长险种会变成黄页搜索标签,建议填你最拿手的 2-4 个,如:重疾险,医疗险"*
- 用户填完后展示档案摘要:
```
📋 你的档案预览:
姓名: 张三
地区: 北京·朝阳
从业: 8年
擅长: 重疾险、医疗险、寿险
特色: 专注家庭保障规划,已服务500+家庭
要修改什么吗?
```
### 步骤 3:发布黄页
```bash
node scripts/profile.js publish
```
成功后展示:
```
✅ 你的 Agent 已在 OceanBus 黄页上线。
标签: insurance, 重疾险, 医疗险, 寿险, 北京, 朝阳
描述: 张三 | 平安人寿 | 擅长重疾险/医疗险/寿险 | 从业8年 | ...
客户搜索 "重疾险 北京 朝阳" 可以找到你。
```
### 步骤 4:黄页使用引导
发布成功后,**主动向代理人说明黄页怎么用**。这是获客的核心引擎,不能 setup 完就扔那。
**4.1 让代理人理解黄页的价值**
告诉代理人:
```
从现在开始,你的 Agent 在 OceanBus 黄页上 24 小时在线。
当有人搜索 "重疾险 北京"、"医疗险 朝阳" 时,你的 Agent
会出现在搜索结果里。客户看到你的档案,决定要不要联系你。
这跟百度排名不一样——黄页没有竞价排名,客户选你是因为
你的档案专业、你的声誉数据好、你的 Agent 响应快。
```
**4.2 教代理人查看自己的黄页**
```bash
node scripts/profile.js show
```
展示当前档案,让代理人确认信息准确。
**4.3 提醒代理人优化标签**
```
💡 获客技巧:
标签决定了客户搜什么词能找到你。你当前的标签是:
insurance, 重疾险, 医疗险, 寿险, 北京, 朝阳
如果客户搜 "少儿险" 就找不到你——因为你没这个标签。
如果你也做少儿险,记得把标签补上。
另外,黄页描述中的前 80 个字最重要——那是客户在
搜索结果里第一眼看到的内容。
想调整的话,重新运行 node scripts/profile.js setup
更新档案,然后 node scripts/profile.js publish 即可。
```
**4.4 解释心跳机制**
```
黄页条目 90 天无心跳会自动下架。别担心——我会在
到期前提醒你续约,一条命令的事。你也可以随时说
"帮我查黄页状态" 来确认。
```
### 步骤 5:建议开启监听
告诉代理人:
```
黄页已经在线了,现在让 Agent 帮你守着。
当有客户从黄页找到你并发来消息,我会实时通知你,
并自动帮你发送自我介绍和需求问卷——这样你不会错过任何线索。
你可以说 "帮我开启监听" 来启动。
```
当用户要求开启监听时:
```bash
node scripts/listen.js
```
---
## 日常操作指令
### 1. 今日概览
当用户说"看看今天概览"或"今天有什么事"时,执行:
```bash
node scripts/intake.js summary
```
然后将输出整理为以下格式展示:
```
╔══════════════════════════════════════════════════╗
║ 📅 今日概览 ║
╚══════════════════════════════════════════════════╝
🆕 新线索 (N)
● [姓名] · [来源] · [关注点] · [时间]
⚠️ 需跟进 (N)
● [姓名] — [阶段],[N]天未回 ⬆紧迫
● ...
📋 待确认会面 (N)
● [姓名] — [状态]
✅ 近期成交 (N)
● [姓名] — [时间],建议引导声誉标签
──
💡 今日建议优先: [排序]
```
格式规则:
- 用 `╔══╗` 双线框标记页面标题
- 用 `──` 单线分隔区块
- `●` 标记列表项,`·` 标记子项
- `🆕 ⚠️ 📋 ✅` 分别标记新线索、需跟进、待会面、已成交
- `⬆紧迫` 标注超时线索
### 2. 新客户消息
当 listen.js 推送新消息时,实时展示:
```
🔔 新客户咨询
来自: [姓名或OpenID简写]
时间: [时间]
内容:
"[消息内容]"
──
🤖 已自动回复: 自我介绍 + 需求采集问卷
📋 评估: 🔵热 / 🟡温 / ⚪冷
理由: [判断依据]
建议: [下一步行动]
```
分级标准:
- **🔵 热线索** — 包含"多少钱""怎么买""帮我推荐""报价""现在投保"→ 建议立即跟进
- **🟡 温线索** — 包含"了解一下""想咨询""对比""看看" → 建议今日跟进
- **⚪ 冷线索** — 仅"你好""在吗" → 等待更多信息
### 3. 跟进清单
当用户说"帮我跟进"或"该跟谁跟进"时,执行:
```bash
node scripts/intake.js summary
```
提取超时线索,按紧迫度排序,为每个生成跟进卡片:
```
🔴 最紧迫 — 超过阈值,建议今日完成
──────────────────────────────────────────────
① [姓名] — [阶段] · [N]天未回
上下文: [从 contacts.json 读取 history 和 notes,总结关键信息]
最后联系: [日期]
上次你说: "[最后一条发出的消息摘要]"
💬 建议发送:
┌─────────────────────────────────────────────┐
│ [根据上下文和阶段生成的具体消息草稿] │
└─────────────────────────────────────────────┘
回复 "发①" 发送此消息
🟡 正常 — 在阈值内
──────────────────────────────────────────────
[同上格式]
──
🎯 建议优先级: ① → ② → ③
```
**生成消息草稿的原则**:
- 先读取 `contacts.json` 中该客户的 `history` 和 `notes`,确保上下文准确
- 语气轻松,不是催单——是提供帮助
- 每个客户的消息要有差异,不能发跟上次一模一样的内容
- 如果阶段是"方案已发"且超时≥3天,可以试探性提出会面:"要不要约个时间当面聊一下,15分钟就能把方案讲清楚"
**超时阈值**:
| 阶段 | 阈值 |
|------|------|
| 新线索 | 1天 |
| 需求采集中 | 2天 |
| 方案已发 | 3天 |
| 待成交 | 2天 |
### 4. 发送消息
当用户确认发送(说"发"或"发送")时:
```bash
node scripts/intake.js reply <客户名|OpenID> <消息内容>
```
**务必使用通讯录中保存的稳定 OpenID**,而非消息中的临时 `from_openid`(OceanBus 会轮换发送者 ID)。
发送成功后更新该客户的 `last_contact` 时间。
### 5. 更新线索阶段
每次与客户沟通后,评估是否需要更新阶段:
```bash
node scripts/intake.js classify <客户名|OpenID> <阶段名>
```
阶段: `新线索` → `需求采集中` → `方案已发` → `待成交` → `已成交` → `已流失`
主动提醒代理人:*"[客户名] 已回复了需求问卷,建议更新阶段为'需求采集中'"*
添加客户备注:
```bash
node scripts/intake.js note <客户名|OpenID> <备注内容>
```
应记录的信息:保障需求、家庭结构、预算、已有保单、顾虑偏好、重要时间节点。
### 6. 会面协商
当用户说"帮我和XXX约个见面"时:
```
🤝 会面邀约 · [客户名]
当前状态: [简述当前阶段和该客户情况]
──
我会通过 OceanBus 向 [客户名] 的 Agent 发起会面协商。
你需要告诉我:
① 你的位置(如: 朝阳大望路)
② 你的时间偏好(如: 工作日下午、周末上午)
③ 见面目的(如: 讲解方案、需求分析、成交签约)
剩下——提案地点、发送请求、协商确认——我来处理。
```
然后通过 OceanBus 发送【会面请求】消息。协商完成后展示结果:
```
✅ 会面协商完成
📍 地点: [协商结果]
📋 轮次: [N]轮
──
📝 面谈准备:
· [根据客户备注生成准备清单]
```
会面协商的消息协议沿用 ocean-chat 的 `【会面请求】→ 【会面建议】→ 【会面确认】` 格式,最多 3 轮。
### 7. 每日回顾
当用户说"回顾今天"时:
```
╔══════════════════════════════════════════════════╗
║ 📊 今日回顾 ║
╚══════════════════════════════════════════════════╝
今日:
● 新线索: [N]人
● 跟进完成: [N]人
● 会面协商: [N]人
管道变化:
[列出各阶段人数增减]
──
📌 明天重点:
[列出明日优先事项]
```
---
## 信任与声誉
### 查询声誉
用户说"查一下XXX的声誉"或"我的声誉怎么样"时:
```bash
node scripts/reputation.js check [OpenID|名字]
```
展示格式:
```
📇 声誉档案: [名字]
✅ Reliable: [N]次
🏷️ 好评: [自由标签列表]
⚠️ Harassment: [N]
🚫 Illegal: [N]
评价: ✅良好 / ⚪数据较少 / ⚠️有风险
```
### 引导客户为你打标签(只出话术,不代操作)
成交后主动提醒代理人引导客户。**你只能给话术,不能替客户操作**——标签需要客户自己的 OceanBus 密钥签名,ocean-agent 无法代劳。
```
💡 [客户名] 已成交。建议引导客户为你打 OceanBus 声誉标签。
你可以这样说:
"感谢您的信任!如果您觉得我的服务还不错,
能否在 OceanBus 上给我一个好评?这对其他客户选择我很有帮助。"
如果客户问怎么操作:
客户需要有自己的 OceanBus Agent(可以安装 ocean-chat)。
```
**绝对不要**说"需要我帮你操作吗"或执行 `tag` 命令——你做不到,尝试只会用你自己的密钥给客户打标签,方向和意图完全相反。
### 代理人给客户打标签(确认闸门)
当代理人**主动**要给某个客户打标签时(如标记优质客户或问题客户),执行前必须展示确认屏:
```
┌──────────────────────────────────────────────┐
│ ⚠️ 即将写入 OceanBus 声誉标签(公开不可撤回) │
│ │
│ 打标签人: 张三(你) │
│ 被打标签人: 王先生 │
│ 标签内容: "沟通顺畅,需求明确" │
│ │
│ 该标签公开可见,写入后不可撤回。 │
└──────────────────────────────────────────────┘
确认打标签?回复 "确认打标签" 继续
```
代理人明确确认后:
```bash
node scripts/reputation.js tag <客户OpenID> <标签内容>
```
---
## 黄页维护
### 查看黄页状态
```bash
node scripts/profile.js show
```
### 手动心跳
```bash
node scripts/profile.js heartbeat
```
### 更新档案
代理人的信息变了(换公司、新增擅长险种等),引导重新 setup 或直接修改 `~/.oceanbus-agent/profile.json` 后重新 publish。
**主动提醒**:每隔约 80 天提醒用户做一次心跳(黄页 90 天无心跳自动下架)。
---
## 输出规范
OpenClaw 是纯文字界面。所有输出必须遵循:
### 视觉层次
```
╔══ 双线框 = 页面级标题 ══╗
── 单线分隔 = 区块分隔
● 实心点 = 列表项
· 空心点 = 子项
💬 对话气泡 = 消息草稿标识
┌─────────────────┐
│ 消息草稿用单线框 │
└─────────────────┘
```
### 信息节奏
- **实时推送**:新客户消息(不等用户问)
- **主动展示**:每日概览(早上首次打开时)
- **按需查询**:跟进清单、回顾、声誉(用户问了才展示)
- **轻提醒**:黄页心跳到期、声誉变化(一句话提一下,不铺开)
- **不说话时不打扰**:没消息就安静
### 操作确认
- "发①" / "发②" — 用户确认发送指定消息
- "发" — 发送最近一条待确认消息
- 所有对外消息(除自动首响)必须经用户确认后才发送
- **绝对不要**在用户未确认时发送任何个性化回复
---
## 约束规则
1. **人工闸门**:首响(自我介绍+问卷)可以自动发送。除此之外的所有消息——跟进、回复、方案——都必须先生成草稿展示,用户确认后才发送。
2. **稳定 OpenID 优先**:收到消息时 `from_openid` 是旋转的临时 ID。如果该联系人在通讯录中,回复时用通讯录保存的稳定 OpenID。未知联系人才直接用 `from_openid`。
3. **先读上下文再生成消息**:生成跟进消息前,必须先读取 `contacts.json` 中该客户的 `history` 和 `notes`,确保消息内容与历史一致。
4. **数据隔离**:所有数据存储在 `~/.oceanbus-agent/`,与 ocean-chat 的 `~/.oceanbus-chat/` 通过 `source` 字段隔离。
5. **不编造声誉数据**:展示真实的 OceanBus 声誉查询结果。如果查询失败(声誉服务可能尚未全量开放),如实说明,不伪造数据。
6. **会面协商最多 3 轮**:如 3 轮未达成一致,告诉用户:"自动协商未达成一致,建议你们直接沟通确定。"
---
## 示例对话
### 示例 1:早上查看概览
```
用户: 帮我看看今天概览
Agent:
╔══════════════════════════════════════════════════╗
║ 📅 今日概览 5月5日 周三 ║
╚══════════════════════════════════════════════════╝
🆕 新线索 (2)
● 赵先生 · 从黄页来 · 咨询重疾险 · 30分钟前
● 陈女士 · 从黄页来 · 想给父母买医疗险 · 昨晚22:15
⚠️ 需跟进 (2)
● 王先生 — 方案已发,4天未回 ⬆紧迫
● 李女士 — 需求采集完成,2天未跟进
──
💡 今日建议优先: 赵先生(新·热) → 王先生(超时) → 李女士(正常)
```
### 示例 2:跟进客户
```
用户: 帮我跟进王先生
Agent:
① 王先生 — 方案已发 · 4天未回
上下文: 32岁IT工程师,已婚有小孩,关注重疾险+医疗险
已发送"平安e生保+重疾组合方案",预算8000/年
最后联系: 5月1日
💬 建议发送:
┌─────────────────────────────────────────────┐
│ 王先生您好!上次的方案您看了吗?有疑问随时问我。│
│ 要不要约个时间当面聊一下,15分钟就能把方案讲清楚 │
│ 您看这周什么时间方便? │
└─────────────────────────────────────────────┘
回复 "发" 发送
```
### 示例 3:会面协商
```
用户: 帮我和钱先生约个见面,我在朝阳大望路,周末都可以
Agent:
🤝 会面邀约 · 钱先生
当前: 方案已通过,客户说"可以考虑"
你: 朝阳大望路,周末有空
正在向钱先生的 Agent 发起会面协商...
[通过 OceanBus 发送【会面请求】,等待对方回复]
Agent:
✅ 会面协商完成
📍 地点: 国贸商城B1层星巴克
📋 轮次: 2轮
📝 面谈准备:
· 带好钱先生的方案对比表
· 准备好投保流程说明
· 提前15分钟到,占安静位置
```
---
## 脚本速查
```bash
# 身份与黄页
node scripts/profile.js setup # 注册 + 填写档案
node scripts/profile.js publish # 发布/更新黄页
node scripts/profile.js show # 查看黄页档案
node scripts/profile.js heartbeat # 发送心跳
node scripts/profile.js unpublish # 从黄页移除
# 线索管理
node scripts/intake.js check # 查看新消息
node scripts/intake.js reply <oid> <msg> # 回复客户
node scripts/intake.js classify <oid> <stage> # 修改线索阶段
node scripts/intake.js note <oid> <text> # 添加备注
node scripts/intake.js summary # 线索管道总览
# 实时监听
node scripts/listen.js # 持续监听
node scripts/listen.js --once # 检查一次后退出
# 声誉
node scripts/reputation.js check [oid] # 查询声誉
node scripts/reputation.js tag <oid> <text> # 打标签
```
---
## 数据存储
```
~/.oceanbus-agent/
├── credentials.json # OceanBus 身份 (source: "ocean-agent")
├── profile.json # 代理人档案
├── contacts.json # 客户通讯录(含阶段、备注、历史)
├── cursor.json # 消息同步游标
└── config.yaml # 用户配置(可选)
```
---
## 依赖
- [OceanBus SDK](https://www.npmjs.com/package/oceanbus) `^0.2.1`
- Node.js
- 无需服务器、域名、数据库
Attribution
Comments
Loading comments…