order-agent 智能订单处理
v1.0.1智能订单处理助手,帮助用户快速创建WMS发货单。 当用户请求以下操作时使用: 1. 采购/下单/创建发货单(如"帮我采购一本书"、"帮我下单") 2. 批量处理订单(如"帮我完成这个表格中所有订单的发货") 3. 从Excel/CSV文件导入订单 支持从标准格式的Excel表格中提取:商品名称、数量、ISBN、收...
Security Scan
OpenClaw
Suspicious
medium confidencePurpose & Capability
技能名与描述(解析 Excel、查询商品、创建 WMS 发货单)与代码实现基本一致:脚本提供查询和下单能力。但代码中硬编码了外部后端地址(例如 BASE_URL=https://aifx.tushu.cloud/prod-api/dispatch 和 WMS_API_URL=https://wms.example.com/api/v1/shipment/create),且 README 在不同地方又提及默认 http://localhost:9303,这些不一致未在元数据或 SKILL.md 中解释,令人怀疑作者期望将请求发向哪个服务。
Instruction Scope
SKILL.md 指示运行本地 Python 脚本去解析本地 Excel 并调用后端 API。脚本会收集并发送包含收件人姓名、电话、地址等个人信息和订单明细到代码中指定的外部域(aifx.tushu.cloud、wms.example.com)。SKILL.md/README 没有明确说明这些第三方域名的所有者或隐私/合规策略,且未声明当脚本默认指向这些服务时会发送哪些敏感字段,存在数据外传(PII)风险。
Install Mechanism
技能为 instruction-only 并附带 Python 脚本,没有 install spec(不会自动写入磁盘除非安装者手动运行)。脚本依赖 pandas、requests 等第三方库,但缺少依赖声明或安装说明(仅提到 Python 3.7+)。这会导致运行失败或用户自行安装依赖;从安全角度,未声明依赖不是直接恶意,但降低可审计性与运行可预测性。
Credentials
元数据未声明任何需要的环境变量或凭据,但脚本通过常量或命令行参数接收 API URL 与 API Key(WMS_API_KEY、--api-key 等)。默认常量为空字符串,脚本仍会发送请求(可能无认证头),这说明凭据处理不明确。更重要的是,代码会把用户提供的 PII 发到未说明或未验证的第三方域,且没有在 SKILL.md 中要求或解释应如何安全配置凭据(例如用环境变量、安全存储等)。
Persistence & Privilege
技能没有设置 always:true,也不尝试修改系统或其它技能配置。它只是包含可执行脚本并依赖运行时手动/自动调用,权限范围有限。
What to consider before installing
在考虑安装或使用此技能前请注意:
- 核实后端地址与信任度:脚本将订单和收件人信息发送到代码中硬编码的域(例如 aifx.tushu.cloud、wms.example.com)。如果这些不是你自己的受信任服务,可能会泄露客户敏感数据。优先将 BASE_URL/WMS_API_URL 改为你自己的 WMS 后端并验证 TLS/证书。
- 配置凭据与隐私:尽量不要把 API Key 写到脚本常量里。使用受控的环境变量或安全凭据存储,确保请求带有正确的认证头,避免匿名将 PII 发送到第三方。
- 代码审计与测试:在生产环境使用前,手动审查并运行脚本于隔离环境(沙箱)进行端到端测试,确认请求目标与内容恰当。检查并安装所需依赖(pandas、requests)。
- 注意文档不一致性:README 提到默认本地服务,但脚本指向远端域,说明作者或发布者可能未同步文档,安装前咨询作者或在本地替换为受控服务。
- 如果你不能验证或信任目标服务,避免在含真实客户信息的文件上运行;可以用模拟数据或私有测试 WMS 进行验证。Like a lobster shell, security has layers — review code before you run it.
latestordershippingwms
Order Agent - 智能订单处理
功能概述
- 商品查询: 根据书名/ISBN查询商品详情(库存、价格等)
- 单品下单: 用户提供商品信息,快速创建发货单
- 批量下单: 解析Excel表格,批量创建发货单
- 订单确认: 下单前展示订单详情,确认后执行
使用流程
1. 查询商品信息(必做)
先查询商品,获取商品详情:
python3 scripts/order_api.py query --book-name "红楼梦"
商品返回字段说明:
| 字段 | 说明 | 用于下单 |
|---|---|---|
| bookName | 书名 | ✓ --book-name |
| productName | 产品名称 | ✓ --product-name |
| productCode | 货号 | ✓ --product-code |
| stockId | 库存ID | ✓ --stock-id |
| stockName | 库存名称 | ✓ --stock-name |
| isbn | ISBN | ✓ --isbn |
| wholesalePrice | 批发价 | 参考 |
| makePrice | 制作价格 | ✓ --make-price |
| author | 作者 | 参考 |
| press | 出版社 | 参考 |
| stayOutboundCount | 库存数量 | 参考 |
2. 创建订单
使用商品查询返回的字段创建订单:
python3 scripts/order_api.py create \
--name "张三" \
--phone "13800138000" \
--province "北京市" \
--city "北京市" \
--district "朝阳区" \
--detail "建国路88号SOHO现代城" \
--book-name "名师教你读经典《红楼梦》" \
--stock-id 13048 \
--stock-name "库书邦" \
--isbn "9787545919547" \
--buy-count 1
3. 返回结果
返回订单号和详情链接
API 接口说明
商品查询接口
- URL:
POST /goods/queryGoods - 请求体:
{
"bookName": "红楼梦",
"isbn": "9787545919547",
"pageNum": 1,
"pageSize": 20
}
- 响应示例:
{
"code": 200,
"data": [
{
"productName": "名师教你读经典《红楼梦》",
"productCode": "1849866049445462016",
"img": "/source/wenxuanBook/20220930/DoiBcQLV.png",
"isbn": "9787545919547",
"bookName": "名师教你读经典《红楼梦》",
"wholesalePrice": 6.26,
"makePrice": 28.0,
"stockName": "库书邦",
"stockId": 13048,
"stayOutboundCount": 7319,
"stockType": 1,
"author": "【清】曹雪芹 著",
"press": "鹭江出版社",
"wholesaleDiscount": 0.22
}
]
}
创建订单接口
- URL:
POST /order/createOrder - 请求体:
{
"shopOrder": {
"name": "张三",
"phone": "13800138000",
"province": "北京市",
"city": "北京市",
"district": "朝阳区",
"detail": "建国路88号SOHO现代城",
"countrysideName": "",
"remark": "",
"orderSource": 15,
"orderSort": 1,
"initOrderNum": ""
},
"orderInfoList": [
{
"productName": "名师教你读经典《红楼梦》",
"productCode": "1849866049445462016",
"bookName": "名师教你读经典《红楼梦》",
"isbn": "9787545919547",
"stockName": "库书邦",
"stockId": 13048,
"buyCount": 1,
"author": "【清】曹雪芹 著",
"press": "鹭江出版社",
"makePrice": 28.0
}
]
}
- 响应:
{
"code": 200,
"data": {
"orderNum": "ORDER123456",
"detailUrl": "https://xxx.com/order/ORDER123456"
},
"msg": "success"
}
Scripts
order_api.py
主脚本,支持两个子命令:
查询商品:
python3 scripts/order_api.py query --book-name "红楼梦"
python3 scripts/order_api.py query --isbn "9787545919547"
创建订单:(必须先查询商品,获取stockId和stockName)
python3 scripts/order_api.py create \
--name "张三" \
--phone "13800138000" \
--province "北京市" \
--city "北京市" \
--district "朝阳区" \
--detail "建国路88号" \
--book-name "名师教你读经典《红楼梦》" \
--stock-id 13048 \
--stock-name "库书邦" \
--isbn "9787545919547" \
--buy-count 1 \
--make-price 28.0
错误处理
- 网络超时: 已设置120秒超时
- 校验失败: 提示具体字段问题
- API返回失败: 展示错误信息,允许用户修改重试
配置说明
后端 API 地址和超时在脚本中配置:
BASE_URL = "https://aifx.tushu.cloud/prod-api/dispatch"
TIMEOUT = 120 # 查询接口较慢,设置120秒
如需修改,编辑 scripts/order_api.py 中的配置变量。
Comments
Loading comments...
