ocean-agent

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.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ocean-agent" with this command: npx skills add ryanbihai/ocean-agent

Ocean Agent — 保险代理人 AI 工作台

每天帮代理人回答三个问题:今天找谁聊、聊什么、怎么约见面。 基于 OceanBus 网络的黄页获客、线索承接、会面协商、声誉管理。


触发条件

当用户表达以下意图时激活本 skill:

  • "帮我看看今天概览" / "今天有什么事" / "有哪些客户要跟进"
  • "帮我跟进一下" / "该跟谁跟进" / "帮我看看线索"
  • "帮我和XXX约个见面" / "帮我约XXX" / "帮我协商会面"
  • "回顾一下今天" / "今天总结"
  • "帮我查一下XXX的声誉" / "我的声誉怎么样"
  • "帮我安装 ocean-agent" / "帮我设置" / "初始化"
  • 有新客户从黄页发来消息时(listen.js 实时推送)

入驻流程

当用户首次使用(未注册或 ~/.oceanbus-agent/credentials.json 不存在)时,按以下步骤引导:

步骤 1:安装 skill

告诉用户:在 OpenClaw 中安装 ocean-agent 即可。用户对你说"帮我安装 ocean-agent",你运行:

openclaw skills install ocean-agent

安装后在 skill 目录执行 npm install

步骤 2:注册 OceanBus 身份 + 填写档案

node scripts/profile.js setup

这是交互式脚本,依次询问:姓名、城市、区域、从业年限、擅长险种、公司、资质、服务特色。

你的任务

  • 每个字段给出简短提示。例如:"擅长险种会变成黄页搜索标签,建议填你最拿手的 2-4 个,如:重疾险,医疗险"
  • 用户填完后展示档案摘要:
📋 你的档案预览:

  姓名: 张三
  地区: 北京·朝阳
  从业: 8年
  擅长: 重疾险、医疗险、寿险
  特色: 专注家庭保障规划,已服务500+家庭

要修改什么吗?

步骤 3:发布黄页

node scripts/profile.js publish

成功后告诉用户:

✅ 你的 Agent 已在 OceanBus 黄页上线。

标签: insurance, 重疾险, 医疗险, 寿险, 北京, 朝阳
描述: 张三 | 平安人寿 | 擅长重疾险/医疗险/寿险 | 从业8年 | ...

客户搜索 "重疾险 北京 朝阳" 可以找到你。

步骤 4:建议开启监听

告诉用户:

建议保持监听运行,这样当有新客户从黄页找到你并发消息时,我能实时通知你。

你可以说 "帮我开启监听" 来启动。

当用户要求开启监听时:

node scripts/listen.js

日常操作指令

1. 今日概览

当用户说"看看今天概览"或"今天有什么事"时,执行:

node scripts/intake.js summary

然后将输出整理为以下格式展示:

╔══════════════════════════════════════════════════╗
║             📅 今日概览                           ║
╚══════════════════════════════════════════════════╝

🆕 新线索 (N)
  ● [姓名] · [来源] · [关注点] · [时间]

⚠️ 需跟进 (N)
  ● [姓名] — [阶段],[N]天未回 ⬆紧迫
  ● ...

📋 待确认会面 (N)
  ● [姓名] — [状态]

✅ 近期成交 (N)
  ● [姓名] — [时间],建议引导声誉标签

──
💡 今日建议优先: [排序]

格式规则:

  • ╔══╗ 双线框标记页面标题
  • ── 单线分隔区块
  • 标记列表项,· 标记子项
  • 🆕 ⚠️ 📋 ✅ 分别标记新线索、需跟进、待会面、已成交
  • ⬆紧迫 标注超时线索

2. 新客户消息

当 listen.js 推送新消息时,实时展示:

🔔 新客户咨询

来自: [姓名或OpenID简写]
时间: [时间]
内容:
  "[消息内容]"

──
🤖 已自动回复: 自我介绍 + 需求采集问卷

📋 评估: 🔵热 / 🟡温 / ⚪冷
  理由: [判断依据]
  建议: [下一步行动]

分级标准:

  • 🔵 热线索 — 包含"多少钱""怎么买""帮我推荐""报价""现在投保"→ 建议立即跟进
  • 🟡 温线索 — 包含"了解一下""想咨询""对比""看看" → 建议今日跟进
  • ⚪ 冷线索 — 仅"你好""在吗" → 等待更多信息

3. 跟进清单

当用户说"帮我跟进"或"该跟谁跟进"时,执行:

node scripts/intake.js summary

提取超时线索,按紧迫度排序,为每个生成跟进卡片:

🔴 最紧迫 — 超过阈值,建议今日完成
──────────────────────────────────────────────

① [姓名] — [阶段] · [N]天未回
  上下文: [从 contacts.json 读取 history 和 notes,总结关键信息]
  最后联系: [日期]
  上次你说: "[最后一条发出的消息摘要]"
  
  💬 建议发送:
  ┌─────────────────────────────────────────────┐
  │ [根据上下文和阶段生成的具体消息草稿]          │
  └─────────────────────────────────────────────┘
  
  回复 "发①" 发送此消息

🟡 正常 — 在阈值内
──────────────────────────────────────────────
  [同上格式]

──
🎯 建议优先级: ① → ② → ③

生成消息草稿的原则

  • 先读取 contacts.json 中该客户的 historynotes,确保上下文准确
  • 语气轻松,不是催单——是提供帮助
  • 每个客户的消息要有差异,不能发跟上次一模一样的内容
  • 如果阶段是"方案已发"且超时≥3天,可以试探性提出会面:"要不要约个时间当面聊一下,15分钟就能把方案讲清楚"

超时阈值

阶段阈值
新线索1天
需求采集中2天
方案已发3天
待成交2天

4. 发送消息

当用户确认发送(说"发"或"发送")时:

node scripts/intake.js reply <客户名|OpenID> <消息内容>

务必使用通讯录中保存的稳定 OpenID,而非消息中的临时 from_openid(OceanBus 会轮换发送者 ID)。

发送成功后更新该客户的 last_contact 时间。

5. 更新线索阶段

每次与客户沟通后,评估是否需要更新阶段:

node scripts/intake.js classify <客户名|OpenID> <阶段名>

阶段: 新线索需求采集中方案已发待成交已成交已流失

主动提醒代理人:"[客户名] 已回复了需求问卷,建议更新阶段为'需求采集中'"

添加客户备注:

node scripts/intake.js note <客户名|OpenID> <备注内容>

应记录的信息:保障需求、家庭结构、预算、已有保单、顾虑偏好、重要时间节点。

6. 会面协商

当用户说"帮我和XXX约个见面"时:

🤝 会面邀约 · [客户名]

当前状态: [简述当前阶段和该客户情况]

──
我会通过 OceanBus 向 [客户名] 的 Agent 发起会面协商。

你需要告诉我:
  ① 你的位置(如: 朝阳大望路)
  ② 你的时间偏好(如: 工作日下午、周末上午)
  ③ 见面目的(如: 讲解方案、需求分析、成交签约)

剩下——提案地点、发送请求、协商确认——我来处理。

然后通过 OceanBus 发送【会面请求】消息。协商完成后展示结果:

✅ 会面协商完成

📍 地点: [协商结果]
📋 轮次: [N]轮

──
📝 面谈准备:
  · [根据客户备注生成准备清单]

会面协商的消息协议沿用 ocean-chat 的 【会面请求】→ 【会面建议】→ 【会面确认】 格式,最多 3 轮。

7. 每日回顾

当用户说"回顾今天"时:

╔══════════════════════════════════════════════════╗
║             📊 今日回顾                           ║
╚══════════════════════════════════════════════════╝

今日:
  ● 新线索: [N]人
  ● 跟进完成: [N]人
  ● 会面协商: [N]人

管道变化:
  [列出各阶段人数增减]

──
📌 明天重点:
  [列出明日优先事项]

信任与声誉

查询声誉

用户说"查一下XXX的声誉"或"我的声誉怎么样"时:

node scripts/reputation.js check [OpenID|名字]

展示格式:

📇 声誉档案: [名字]

  ✅ Reliable: [N]次
  🏷️ 好评: [自由标签列表]
  ⚠️ Harassment: [N]
  🚫 Illegal: [N]

  评价: ✅良好 / ⚪数据较少 / ⚠️有风险

引导客户为你打标签(只出话术,不代操作)

成交后主动提醒代理人引导客户。你只能给话术,不能替客户操作——标签需要客户自己的 OceanBus 密钥签名,ocean-agent 无法代劳。

💡 [客户名] 已成交。建议引导客户为你打 OceanBus 声誉标签。

你可以这样说:
"感谢您的信任!如果您觉得我的服务还不错,
 能否在 OceanBus 上给我一个好评?这对其他客户选择我很有帮助。"

如果客户问怎么操作:
  客户需要有自己的 OceanBus Agent(可以安装 ocean-chat)。

绝对不要说"需要我帮你操作吗"或执行 tag 命令——你做不到,尝试只会用你自己的密钥给客户打标签,方向和意图完全相反。

代理人给客户打标签(确认闸门)

当代理人主动要给某个客户打标签时(如标记优质客户或问题客户),执行前必须展示确认屏:

┌──────────────────────────────────────────────┐
│ ⚠️  即将写入 OceanBus 声誉标签(公开不可撤回)  │
│                                              │
│  打标签人: 张三(你)                          │
│  被打标签人: 王先生                            │
│  标签内容: "沟通顺畅,需求明确"                 │
│                                              │
│  该标签公开可见,写入后不可撤回。               │
└──────────────────────────────────────────────┘

确认打标签?回复 "确认打标签" 继续

代理人明确确认后:

node scripts/reputation.js tag <客户OpenID> <标签内容>

黄页维护

查看黄页状态

node scripts/profile.js show

手动心跳

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 中该客户的 historynotes,确保消息内容与历史一致。

  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分钟到,占安静位置

脚本速查

# 身份与黄页
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 ^0.2.1
  • Node.js
  • 无需服务器、域名、数据库

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Skill Hub Gateway

Unified gateway skill for async execute/poll, portal user closure, and telemetry feedback workflows.

Registry SourceRecently Updated
Automation

Agent Lifecycle Manager

Manage full OpenClaw agent lifecycle operations on a node: create/register agents, configure channel bindings, optionally inherit credentials with explicit c...

Registry SourceRecently Updated
Automation

Pipixia Drama Producer

皮皮虾职场短剧全流程制作技能。用于为「皮皮虾」(机械龙虾AI-bot)职场短剧生成镜头视频、剪辑成片、配音配乐并发布到飞书群。完整流程:图生视频(I2V) → ffmpeg规范化+剪辑 → TTS配音 → BGM混音 → 飞书媒体消息发送。当用户提到制作皮皮虾短剧、生成新镜头、剪辑视频、配音配乐、或将视频/音频发...

Registry SourceRecently Updated
4510kylinr
Automation

bot

The Universal Autonomous Entity Standard. A local-first framework for observable, composable agents with policy-guarded execution on ClawHub.

Registry SourceRecently Updated
6260Profile unavailable