名称: moltpho
描述: 通过 Moltpho 在亚马逊上自主购物 - 使用 Base 主网上的 mUSD 搜索商品、管理信用额并购买商品
元数据: {"requires": {"http": true, "browser": true}}
使用 Base 主网上由信用支持的 mUSD 代币,在亚马逊上自主购买商品。
Moltpho 是一个无头购物商城,使 AI 智能体能够通过 mUSD(Base 主网上的 ERC-20 代币)支持的信用系统发现和购买亚马逊商品。此技能处理:
首次调用时,技能必须检查现有凭证,并在需要时进行注册。
| 平台 | 路径 |
|---|---|
| Linux/macOS | ~/.config/moltpho/credentials.json |
| Windows | %APPDATA%\moltpho\credentials.json |
| 覆盖 | MOLTPHO_CREDENTIALS_PATH 环境变量 |
POST /v1/agents/register,需提供:openclaw_instance_id(如果可用)agent_display_nameagent_descriptionchmod 600 权限保存文件。{
"agent_id": "uuid",
"api_key_id": "moltpho_key_...",
"api_key_secret": "moltpho_secret_...",
"api_base_url": "https://api.moltpho.com",
"wallet_address": "0xabc123..."
}
初始化智能体凭证,并为所有者打开门户进行设置。
1. 检查凭证文件是否存在于平台特定路径。
2. 如果存在且有效:加载凭证,使用 GET /v1/agents/me 验证。
3. 如果缺失或无效:
a. 调用 POST /v1/agents/register(无需认证)。
b. 接收:agent_id, api_key_id, api_key_secret, claim_url, wallet_address。
c. 使用 chmod 600 权限写入凭证文件。
d. 显示:“正在浏览器中打开门户以完成设置...”
e. 在浏览器中打开 claim_url(24 小时内有效)。
4. 返回智能体状态(UNCLAIMED, CLAIMED, DEGRADED, SUSPENDED)。
(可选)从所有者处收集配送信息。
注意:此功能是**可选**的。所有者可以通过门户配置配送信息。
在配送地址信息存在之前,订单将因 INVALID_SHIPPING_PROFILE 而失败。
如果在对话中收集:
1. 请求全名。
2. 请求地址(街道、城市、州、邮政编码)。
3. 请求电子邮件。
4. 请求电话号码。
5. 验证:仅支持美国地址(v1 版本不支持国际地址)。
6. 调用 POST /v1/shipping_profiles(upsert_shipping_profile)。
7. 确认地址信息已保存。
POST 端点会更新默认地址信息:
- 如果不存在地址信息,则创建一个。
- 如果已存在地址信息,则更新它。
更新智能体的配送地址。
参数:
- full_name:收件人全名
- address1:街道地址
- address2:公寓/套房(可选)
- city:城市
- state:州(2 字母代码)
- postal_code:邮政编码
- email:联系邮箱
- phone:联系电话
流程:
1. 验证所有必填字段。
2. 验证美国地址(v1 版本仅支持美国)。
3. 调用 POST /v1/shipping_profiles(更新默认地址信息)。
4. 返回更新后的地址信息。
使用场景:
- “更新我的配送地址”
- “将我的收货地址更改为...”
- 引导流程中的首次设置
通过 Moltpho 在亚马逊上搜索商品。
参数:
- query:搜索词(字符串)
- constraints:可选过滤器
- max_price:最高价格(美元)
- category:商品类别关键词
- min_rating:最低星级评分(1-5)
流程:
1. 调用 GET /v1/catalog/search?query={query}&limit=20。
2. 如果提供了本地约束条件,则应用它们。
3. 展示结果,包括:
- 商品标题和品牌
- Moltpho 价格(最终价格,包含 10% 加价)
- 可用状态
- 评分(如果可用)
4. 如果缓存过期,结果会包含“价格可能已变动”的警告。
频率限制:60 次请求/分钟
通过 x402 支付流程执行购买。
参数:
- item:ASIN 或商品标识符
- qty:数量(默认为 1)
流程:
1. 预算检查:调用 GET /v1/balance 验证可用信用额。
- available_credit = balance - active_reservations
- 检查是否超过单笔订单上限(如果设置)
- 检查是否超过每日上限(如果设置)
2. 创建报价:调用 POST /v1/quotes。
- 包含:asin, quantity, shipping_profile_id
- 返回:quote_id, total_due_usd, expires_at(10 分钟 TTL)
- 创建对余额的软预留
- 如果未设置配送地址信息,可能因 INVALID_SHIPPING_PROFILE 失败
3. 发起订单:调用 POST /v1/orders 并带上 quote_id。
- 首次调用返回 402 Payment Required,并带有 PAYMENT-REQUIRED 头部。
4. 签名支付:调用 POST /v1/wallets/x402/sign。
- 包含:payment_required blob, idempotency_key
- 返回:用于 x402 头部的 payment_signature
5. 完成订单:使用 PAYMENT-SIGNATURE 头部重试 POST /v1/orders。
- 成功时:返回 order_id, status(PAID/PLACED)
- 软预留转换为实际支出
报价过期自动重试:
- 如果在流程中报价过期,自动重试最多 3 次。
- 仅当新价格在原始报价的 5% 范围内时才重试。
- 在 3 次重试后或价格变动 >5% 时失败。
频率限制:
- 报价:20 次/分钟
- 订单:5 次/分钟
- 签名:10 次/分钟
监控对话以发现购买需求信号,并在适当时采取行动。
此功能在对话期间被动运行,以检测购买机会。
需求信号(显式):
- “我需要”、“我们用完了”、“买”、“订购”、“更换”
- “快用完了”、“几乎用完了”
- 带有紧迫感的直接商品提及
需求信号(隐式):
- 反复抱怨缺少物品
- 提到关键物品短缺
- 暗示即时需求的上下文
置信度评分:
- 1.0:明确的购买请求(“给我买 X”)
- 0.8:强烈的暗示需求(“我们卫生纸完全用完了”)
- 0.5:微弱的暗示便利性(**不要**购买)
- 0.0:未知/不明确
预算信号处理:
- 诸如“钱紧”、“预算有限”、“买不起”等短语
- 将置信度降低 0.3-0.5
- 如果仍高于阈值,则谨慎进行
主动购买允许的条件(全部满足):
- 所有者已启用主动购买(默认开启)
- 置信度 >= 0.8(阈值)
- 商品匹配低风险类别:
- 家庭必需品
- 办公用品
- 线缆/适配器
- 基本厨房用品
- 洗漱用品
- 价格 <= min(per_order_cap, $75)
- 商品关键词不在禁止类别中
- 商品不在系统阻止列表中
- 配送地址信息存在
日志记录:
每次购买记录:
- “购买原因”(决策理由)
- 检测到的信号
- 置信度等级(高/中/低)
- 预算影响
在任何购买前验证是否有足够的信用额。
流程:
1. 调用 GET /v1/balance。
2. 响应包括:
- available_credit_cents:可支出金额
- staged_refunds:待处理退款(用星号显示)
- target_limit:所有者配置的信用额度
3. 与以下进行比较:
- 报价总额
- 单笔订单上限(如果设置)
- 每日上限(如果设置,跟踪每日支出)
4. 返回:can_purchase(布尔值), available_amount, reason_if_blocked
为退货、包裹丢失或其他问题创建支持工单。
参数:
- type:工单类型 - RETURN, LOST_PACKAGE, 或 OTHER
- description:问题的详细描述(1-2000 字符)
- order_id:订单 ID(RETURN 和 LOST_PACKAGE 必需)
流程:
1. 验证工单类型和描述。
2. 如果是 RETURN 或 LOST_PACKAGE,验证是否提供了 order_id。
3. 调用 POST /v1/support_tickets,参数为 { type, description, order_id }。
4. 返回工单 ID 和状态。
使用场景:
- “我想退回这个商品” → type=RETURN,链接到订单
- “我的包裹从未送达” → type=LOST_PACKAGE,链接到订单
- “我有一个关于账单的问题” → type=OTHER,无需订单
注意:退货和包裹丢失需要支持工单。
仅订单取消会自动退款。
列出智能体的支持工单。
流程:
1. 调用 GET /v1/support_tickets。
2. 显示工单信息:类型、状态、订单链接、创建日期。
3. 状态含义:
- OPEN:已提交,等待支持审核
- IN_PROGRESS:正在处理中
- WAITING_CUSTOMER:支持需要您提供更多信息
- RESOLVED:问题已解决
- CLOSED:工单已关闭
删除本地凭证(智能体在服务器端保留)。
流程:
1. 删除平台特定路径下的凭证文件。
2. 显示:“凭证已移除。智能体仍存在于 Moltpho 服务器上。”
3. 要完全删除智能体,所有者必须使用门户。
注意:此操作仅删除**本地**凭证。智能体账户、钱包和购买历史记录仍保留在 Moltpho 服务器上,直到所有者通过门户删除。
该技能使用浏览器处理所有者敏感操作。
| 操作 | 方法 |
|---|---|
| 完成设置(认领链接) | 自动打开并显示提示 |
| 添加/管理支付卡 | 引导所有者到门户 |
| 设置信用额度 | 引导所有者到门户 |
| 配置配送地址信息 | 引导所有者到门户 |
| 查看订单历史 | 引导所有者到门户 |
所有 API 请求(注册除外)都需要认证。
Authorization: Bearer <api_key_secret>
或更推荐:
X-Moltpho-Key-Id: <api_key_id>
X-Moltpho-Signature: <HMAC 签名>
对于改变状态的操作,始终包含:
Idempotency-Key: <唯一键>
以下操作必需:
- POST /v1/quotes
- POST /v1/orders
- POST /v1/wallets/x402/sign
| 代码 | 错误 | 操作 |
|---|---|---|
| 401 | UNAUTHORIZED | 重新引导或检查凭证 |
| 402 | PAYMENT_REQUIRED | 签名并使用 x402 签名重试 |
| 409 | PRICE_CHANGED | 如果价格上涨 >2%,重新报价 |
| 409 | INSUFFICIENT_CREDIT | 通知用户,建议增加信用额 |
| 409 | QUOTE_EXPIRED | 自动重试(最多 3 次)或重新报价 |
| 422 | INVALID_SHIPPING_PROFILE | 提示所有者通过门户添加配送地址 |
| 422 | AGENT_SUSPENDED | 通知所有者,引导至门户 |
| 429 | RATE_LIMITED | 按照 Retry-After 头部等待 |
| 503 | TOKEN_PAUSED | 系统暂停,等待管理员处理 |
当报价在 x402 流程中过期时:
1. 获取同一商品的新报价。
2. 将价格与原始报价进行比较。
3. 如果在 5% 容差范围内:继续使用新报价。
4. 如果变动 >5%:因 PRICE_CHANGED 失败。
5. 最多重试 3 次。
| 限制 | 值 |
|---|---|
| 最高商品价格 | 10,000 美元 |
| 报价 TTL | 10 分钟(固定) |
| 价格容差 | 允许上涨 2% |
| 重试价格容差 | 自动重试为 5% |
| 最大并发报价 | 每个智能体 5 个 |
| 主动购买上限 | min(per_order_cap, $75) |
| 端点 | 限制 |
|---|---|
| 目录搜索 | 60 次/分钟 |
| 报价 | 20 次/分钟 |
| 订单 | 5 次/分钟 |
| 签名 | 10 次/分钟 |
无论所有者设置如何,以下类别无法购买:
- 武器、枪支、弹药
- 管制物质、处方药
- 烟草、尼古丁产品
- 酒精
- 成人内容
- 危险材料
| 场景 | 退款目标 |
|---|---|
| 采购失败 | mUSD 余额(自动) |
| 订单取消(5 分钟内) | mUSD 余额(自动) |
| 所有者降低信用额度 | 通过 Stripe 退至卡 |
| 退货/包裹丢失 | 需要支持工单(使用 create_support_ticket) |
| 状态 | 含义 | 可以下单? |
|---|---|---|
| UNCLAIMED | 已注册,等待所有者认领 | 否 |
| CLAIMED | 所有者已认领,完全可操作 | 是 |
| DEGRADED | 支付方式失败,使用剩余余额 | 是(如果有余额) |
| SUSPENDED | 管理员操作,需要手动解决 | 否 |
| 端点 | 用途 |
|---|---|
| POST /v1/agents/register | 新智能体注册 |
| GET /v1/agents/me | 当前智能体状态 |
| GET /v1/balance | 可用信用额 |
| GET /v1/catalog/search | 搜索商品 |
| POST /v1/quotes | 创建购买报价 |
| POST /v1/orders | 下订单(x402) |
| POST /v1/wallets/x402/sign | 签名支付 |
| GET /v1/shipping_profiles | 列出配送地址信息 |
| POST /v1/shipping_profiles | 创建/更新配送地址信息 |
| POST /v1/support_tickets | 创建支持工单 |
| GET /v1/support_tickets | 列出支持工单 |
https://portal.moltpho.com
所有者操作