← 返回
未分类 Key

负一屏购物

用户在场/不在场购买skill
用户在场或不在场购买技能
atomicservice
未分类 clawhub v1.0.0 1 版本 100000 Key: 需要
★ 0
Stars
📥 340
下载
💾 0
安装
1
版本
#latest

概述

SEAP Shopping Skill

这是一个用于处理购物需求的 skill,支持用户在场购买和不在场预约购买两种场景。

触发条件

当用户对话中包含"买"字时,自动触发此 skill。

配置文件

配置文件位于 seap.config.json,包含以下配置项:

{
  "authCode": "your_auth_code_here",
  "addresses": [
    {
      "name": "收货人姓名",
      "phone": "135xxxxxxxx",
      "country": "CN",
      "province": "广东省",
      "city": "深圳市",
      "district": "龙岗区",
      "detail": "详细地址"
    }
  ],
  "autoPush": {
    "enabled": true,
    "channel": "webchat"
  }
}
  • authCode: 用于调用云侧接口传输的凭证
  • addresses: 收货地址列表,支持多个地址,每个地址包含姓名、电话、省市区及详细地址
  • autoPush: 自动推送配置,启用购买结果自动通知

依赖工具

依赖 scripts/seap-cli.js 执行相关命令。技能可在普通环境中运行,无需acpx运行时。

命令行工具

seap-cli.js 主要命令

  • search - 搜索商品
  • aipay - 执行购买(基于确认信息)

工作流程

执行命令进入skill目录

cd ~/.openclaw/workspace/skills/seap-shopping

场景一:用户在场购买

  1. 用户发送对话,例如"我想买一瓶红酒"
  2. 提取用户意图关键词原文为"queryGoodsIntention",当前商品数量为"quantity"
  3. 执行命令:

```bash

node scripts/seap-cli search --sessionId=${openclaw当前sessionId} --intent=${queryGoodsIntention} --format md

```

  1. ⚠️ 重要:将查询后的 markdown 通过对话信息返回所有商品数据并按顺序标号,供用户进行选择
    • 必须显示搜索返回的全部商品,不得限制数量或只显示部分
    • 确保用户能看到所有可选商品
  2. 用户对话确认指定序号商品后,读取 ${openclaw当前sessionId}.json 文件对应序号的商品,获取商品 "skuId",从mercInfo的id字段中获取"mercInfoId"
  3. 地址确认对话
    • 系统自动从 seap.config.json 读取当前收货地址数据结构
    • 通过 OpenClaw 消息功能向用户显示当前地址:"当前收货地址:[地址],是否确认?(回复确认/修改:新地址)"
    • 用户确认地址或提供新地址
    • 如果用户修改地址,解析对应地址格式:'收货人姓名 收货人电话 国家 省份 市 区 详细地址',解析后按对应数据结构更新 seap.config.json 文件
  4. 购买确认
    • 生成确认文件 ${sessionId}_confirmed.json,包含商品和确认后的地址信息
  5. 执行购买命令:

```bash

node scripts/seap-cli aipay --sessionId=${openclaw当前sessionId} --skuId=${skuId} --quantity=${quantity} --mercInfoId=${mercInfoId}

```

  1. 文件清理
    • 购买成功后:自动清理 ${sessionId}_confirmed.json 确认文件
    • 保留 ${sessionId}.json 作为最终购买结果
  2. 将购买后的结果信息返回给用户进行提示,根据 success 区分"购买成功"或"购买失败"

场景二:用户不在场购买

  1. 用户发起预约购买:"三十分钟后帮我买一瓶红酒" 或 "1分钟后帮我买一瓶红酒"

提取用户意图关键词原文为"queryGoodsIntention",当前商品数量为"quantity"

  1. 搜索商品:

执行命令

```bash

node scripts/seap-cli search --sessionId=${sessionId} --intent=${queryGoodsIntention} --format md

```

  1. ⚠️ 重要用户选择商品:将查询后的 markdown 通过对话信息返回所有商品数据并按顺序标号,供用户进行选择
    • 必须显示搜索返回的全部商品,不得限制数量或只显示部分
    • 确保用户能看到所有可选商品
    • 系统显示带序号的商品列表
  1. 用户回复序号(如"1")选择商品,系统读取 ${sessionId}.json 文件获取对应商品信息,获取商品 "skuId",从mercInfo的id字段中获取"mercInfoId"
  1. 地址确认对话
    • 系统自动从 seap.config.json 读取当前收货地址数据结构
    • 通过 OpenClaw 消息功能向用户显示当前地址:"当前收货地址:[地址],是否确认?(回复确认/修改:新地址)"
    • 用户确认地址或提供新地址
    • 如果用户修改地址,解析对应地址格式:'收货人姓名 收货人电话 国家 省份 市 区 详细地址',解析后按对应数据结构更新 seap.config.json 文件
  1. 购买确认
    • 生成确认文件 ${sessionId}_confirmed.json,包含商品和确认后的地址信息
  1. 🔧 购买时间确认

# 步骤1:确认购买时间

系统解析用户原始时间表达式(如"1分钟后")

计算确切的执行时间戳

# 步骤2:发送确认消息

"⏰ 购买时间确认

您选择的商品:[商品名称]

预计购买时间:[时间表达式] (约[具体时间])

请确认是否继续预约购买:

  • 确认预约购买
  • 或者修改购买时间
  • 或者取消购买"

# 步骤3:等待用户确认

用户回复确认、修改时间或取消

# 步骤4:处理用户选择

  • 确认:创建定时任务,系统将在指定时间自动购买
  • 修改:重新开始预约流程
  • 取消:清理临时文件,结束流程
  1. 🔧 创建定时购买任务

系统解析用户原始时间表达式(如"1分钟后")计算确切的执行时间戳,自动创建 OpenClaw cron 任务

任务配置:

{

"name": "预约购买 - [商品名称]",

"schedule": {

"kind": "at",

"at": "[ISO格式的执行时间]"

},

"payload": {

"kind": "agentTurn",

"message": "你正在执行一个定时购买任务。

任务信息:

  • 商品SKU: ${skuId}
  • 原始会话: ${原sessionKey}

请按以下步骤完成购买并推送结果:

  1. 执行购买命令:

node scripts/seap-cli aipay --sessionId=${原sessionKey} --skuId=${skuId} --quantity=${quantity} --mercInfoId=${mercInfoId}

  1. 读取购买结果:

从 ${原sessionKey}.json 文件读取购买结果

  1. 推送结果到原会话:

使用 sessions_send 将购买结果发送到原始会话

  1. 清理临时文件(如果有)",

"timeoutSeconds": 120

},

"sessionTarget": "current",

"deleteAfterRun": true,

"delivery": {

"mode": "announce"

}

}

# ⚠️ 重要说明:

# 1. delivery.mode 必须设置为 "announce" 或 "webhook" 以便推送结果

# 2. payload 中的 message 必须包含完整的结果推送逻辑

# 3. 必须使用 sessions_send 工具将结果推送到原会话

9.提示用户任务已创建

"✅ 预约购买任务已创建!

📦 商品信息

  • 名称:[商品名称]
  • 价格:¥[价格]
  • SKU:[SKU]

📍 收货地址

[收货地址]

执行时间

[时间表达式] (约[具体时间])

系统将在指定时间自动执行购买,并将结果通知您。"

```

  1. 定时任务自动执行
    • 到达指定时间后,OpenClaw自动在当前会话中执行任务
    • Agent在当前会话中执行购买命令(使用 aipay)
    • Agent读取购买结果(从 ${sessionKey}.json)
  1. 🔧 购买结果自动推送(Agent在当前会话中执行)

由于使用 sessionTarget="current",购买结果会自动显示在当前会话

无需手动使用 sessions_send 推送结果

Agent只需执行购买命令,结果会自动呈现给用户

# 步骤1:定时任务触发购买

系统自动执行执行命令

```bash

node scripts/seap-cli aipay --sessionId=${原sessionKey} --skuId=${skuId} --quantity=${quantity} --mercInfoId=${mercInfoId}

```

# 步骤2:生成完整购买结果

{

"sessionId": "${sessionId}",

"skuId": "[商品SKU]",

"productName": "[商品名称]",

"productPrice": [价格],

"orderId": "[生成的订单号]",

"success": [布尔值],

"address": "[收货地址]",

"executedAt": "[执行时间]",

"executionType": "scheduled"

}

# 步骤3:保存购买结果

更新 ${sessionId}.json 文件,包含完整的购买信息

# 步骤4:自动生成结果消息

生成用户友好的通知消息:

"✅ 预约购买任务已完成!

📦 商品信息

  • 名称:[商品名称]
  • 价格:¥[价格]
  • SKU:[SKU]

📋 订单信息

  • 订单号:[订单号]
  • 状态:[成功/失败]

📍 收货地址

[收货地址]

完成时间

[完成时间]

💡 这是您的预约购买结果。"

# 步骤5:推送结果至原会话

使用 sessions_send 将结果发送到用户的原始会话

确保用户能够立即收到购买完成通知

# 步骤7:清理临时文件

购买完成后清理临时文件:

  • 删除 ${sessionId}_task.json
  • 删除 ${sessionId}_confirmed.json
  • 保留 ${sessionId}.json 作为购买记录

📊 状态管理

  • ${sessionId}.json - 保存搜索结果和最终购买结果
  • ${sessionId}_confirmed.json - 临时保存购买确认信息(执行后清理)
  • ${sessionId}_cron.json - 保存定时任务配置(执行后清理)
  • ${sessionId}_task.json - 保存预约购买任务配置(执行后清理)

预期效果

  1. 无缝体验:用户确认购买后,系统自动处理后续所有流程
  2. 准时执行:定时任务确保在指定时间自动执行购买
  3. 实时通知:购买完成后立即推送详细结果
  4. 可靠管理:完整的任务生命周期和错误处理机制

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-07 11:11 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

security-compliance

Skill Vetter

spclaudehome
AI智能体技能安全预审工具。安装ClawdHub、GitHub等来源技能前,检查风险信号、权限范围及可疑模式。
★ 1,212 📥 266,268
ai-intelligence

self-improving agent

pskoett
捕获经验教训、错误和纠正,以实现持续改进。使用时机:(1)命令或操作意外失败;(2)用户纠正……
★ 4,058 📥 796,991
developer-tools

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 668 📥 323,898