@yixinkj/priority-buyer-alert-cli 0.1.43 → 0.1.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +222 -808
- package/launcher-core.js +1457 -0
- package/package.json +3 -2
- package/skill/SKILL.md +31 -5
- package/skills.json +2 -2
package/package.json
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yixinkj/priority-buyer-alert-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.44",
|
|
4
4
|
"description": "重点买家未回复预警独立启动器,只读扫描询盘并提醒,不发送任何消息。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"priority-buyer-alert": "index.js"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
|
-
"test": "node --test
|
|
10
|
+
"test": "node --test",
|
|
11
11
|
"prepack": "node scripts/sync-skill-assets.mjs",
|
|
12
12
|
"postpack": "node scripts/clean-skill-assets.mjs"
|
|
13
13
|
},
|
|
14
14
|
"files": [
|
|
15
15
|
"index.js",
|
|
16
|
+
"launcher-core.js",
|
|
16
17
|
"skills.json",
|
|
17
18
|
"skill"
|
|
18
19
|
],
|
package/skill/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: 哨兵预警-0812
|
|
3
3
|
description: 重点买家未回复预警。只读扫描阿里国际站询盘列表,挑出重点买家(金品店铺为 L2 及以上真实档;出口通店铺只有 L1+ 一个值,它是 L1–L4 的合集,必然包含 L1),判断买家最后一句是否超过 SLA 仍没有真人业务员回复,并输出中文预警清单;机器人自动接待不算人工回复。Use when 用户要求检查重点买家有没有超时未回复、查询盘超时提醒、看 L3/L4 有没有快凉的,或要求运行重点买家预警。
|
|
4
|
-
version: "0.1.
|
|
4
|
+
version: "0.1.44"
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# 重点买家预警
|
|
@@ -106,7 +106,8 @@ npx -y @yixinkj/priority-buyer-alert-cli@beta \
|
|
|
106
106
|
同样返回 `run_id`,用同一条 `--poll-run` 轮询到 `completed`,然后读 `artifacts.first_response`
|
|
107
107
|
(JSON Lines,每行一条)和 `artifacts.digest`(中文清单)。
|
|
108
108
|
|
|
109
|
-
-
|
|
109
|
+
- 窗口是**本地自然日**:只看今天 0 点之后创建的询盘,不是「此刻往前 24 小时」。业务员说的
|
|
110
|
+
「今天的新询盘」和这里的口径一致。
|
|
110
111
|
- `--limit 100`:本轮最多取多少条会话详情,默认 100。超出的如实记为未判定,不猜。
|
|
111
112
|
|
|
112
113
|
与预警的区别,不要混用:
|
|
@@ -114,16 +115,36 @@ npx -y @yixinkj/priority-buyer-alert-cli@beta \
|
|
|
114
115
|
| | 预警 | 首响扫描 |
|
|
115
116
|
| --- | --- | --- |
|
|
116
117
|
| 问的问题 | 谁在等、等了多久 | 哪些是刚进来的新询盘 |
|
|
117
|
-
| 时间口径 |
|
|
118
|
-
| 语义 | 事件流,冒泡一次就被水位压住 |
|
|
118
|
+
| 时间口径 | 末条消息时间,滚动窗口 | **询盘创建时间,本地自然日**(今天 0 点起) |
|
|
119
|
+
| 语义 | 事件流,冒泡一次就被水位压住 | 新询盘推送,同一条只推一次 |
|
|
119
120
|
| 等级白名单 | 生效,缺等级不冒泡 | **不生效**,等级只作附加信息输出 |
|
|
120
121
|
| 回复时限 | 生效,超过 SLA 才成立 | **不生效**,越快回越好 |
|
|
121
|
-
| 提醒水位 | `--mark` 会推进 |
|
|
122
|
+
| 提醒水位 | `--mark` 会推进 | `--mark` 会推进(与预警各用各的作用域) |
|
|
122
123
|
|
|
123
124
|
时间口径这一行是两者最容易混淆的地方。老询盘被群发、被买家追问之后末条消息很新,但它不是新
|
|
124
125
|
询盘;反过来刚建的询盘可能还没人说过话。首响扫描一律按创建时间取窗口,翻到创建时间越界就停止
|
|
125
126
|
翻页,因此窗口开大也不会成比例变慢。
|
|
126
127
|
|
|
128
|
+
### 同一条只推一次
|
|
129
|
+
|
|
130
|
+
新询盘推送过一次之后不再重复推,即使它仍然没人回。**买家又发了新消息才会再推一次**——
|
|
131
|
+
那时它已经不是「第一次回复」的场景了,交给首响 Skill 时它会看到 `alreadyDrafted` 为真。
|
|
132
|
+
|
|
133
|
+
因此清单里没有某条询盘,可能是「今天没有新询盘」,也可能是「都推过了」。摘要里的
|
|
134
|
+
`first_response_suppressed` 分开记着这两种情况,不要只看清单条数就下结论。
|
|
135
|
+
|
|
136
|
+
不带 `--mark` 的预演不推进水位,可以反复拉取看结果。
|
|
137
|
+
|
|
138
|
+
### 会话阶段:开场白该不该写,看这个
|
|
139
|
+
|
|
140
|
+
每条记录带 `thread_stage`,回答的是「这段对话到了哪个阶段」:
|
|
141
|
+
|
|
142
|
+
- `opening` 还在开场——消息不多,**或者久未联系后重新来问**(间隔超过 30 天)。两种都适合写开场白。
|
|
143
|
+
- `ongoing` 已经聊起来了,该写的是跟进。
|
|
144
|
+
- `unknown` 没取到详情,判不出来。
|
|
145
|
+
|
|
146
|
+
**这才是转给开场白 Skill 的判据,不要用 `first_response_pending`。** 后者只说明「我方有没有发过真人消息」:全是 AI 自动接待、来回二十条的会话它是 `yes`,那显然不该写开场白;买家几个月前问过、今天又来问的它是 `no`,那恰恰该写——中间隔了这么久,上一轮说过什么都不作数了。
|
|
147
|
+
|
|
127
148
|
每条记录的 `first_response_pending` 是三态:
|
|
128
149
|
|
|
129
150
|
- `yes` 首响待办:整条会话里我方一条真人消息都没发过。
|
|
@@ -151,6 +172,11 @@ npx -y @yixinkj/priority-buyer-alert-cli@beta \
|
|
|
151
172
|
这张卡里是买家这次的实际需求,起草第一次回复要用;`[RFQ求购单]` 前缀表示它是 RFQ 而不是
|
|
152
173
|
普通询盘,两者跟进方式不同。取不到卡片内容时退回 `[询盘卡片]` 标签,判定结果不受影响。
|
|
153
174
|
|
|
175
|
+
首响清单里除了这句摘要,还有结构化的 `last_buyer_card`:`quantity`、`product_moq`、
|
|
176
|
+
`product_unit_price`、`detail_requirement`(买家自己写的需求原文)。**把清单文件直接交给
|
|
177
|
+
首响 Skill**,它用 `--from-scan` 就能拿到这些,不必为同样的数据再开一次详情页——
|
|
178
|
+
两边调的本来就是同一个接口。没有卡片时该字段为空,首响 Skill 会自己回落去抓。
|
|
179
|
+
|
|
154
180
|
**`[物流地址]` 永远只有标签。** 卡里是买家的姓名、电话和详细住址,对判定零价值,不取内容。
|
|
155
181
|
看到这个标签只说明「买家发来了地址」,不要去别处找地址内容,也不要向用户复述。
|
|
156
182
|
|
package/skills.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"runtimeVersion": "0.1.
|
|
2
|
+
"runtimeVersion": "0.1.35",
|
|
3
3
|
"platforms": {
|
|
4
4
|
"darwin-arm64": {
|
|
5
5
|
"id": "mac-arm64",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"skill": {
|
|
25
25
|
"name": "哨兵预警-0812",
|
|
26
26
|
"id": "priority-buyer-alert",
|
|
27
|
-
"version": "0.1.
|
|
27
|
+
"version": "0.1.44",
|
|
28
28
|
"bin": "priority-buyer-alert-cli"
|
|
29
29
|
}
|
|
30
30
|
}
|