@roll-agent/smart-reply-agent 1.2.1 → 1.2.2

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.
Files changed (2) hide show
  1. package/SKILL.md +17 -3
  2. package/package.json +1 -1
package/SKILL.md CHANGED
@@ -37,6 +37,13 @@ npm 包名:`@roll-agent/smart-reply-agent`
37
37
  1. 直接传完整绑定:`tenantId + recruiterBinding`
38
38
  2. 便利代理模式:`recruiterUsername`(smart-reply 会先调用 `POST /resolve-recruiter-binding` 解析出 `tenantId + recruiterBinding`)
39
39
 
40
+ 招聘场景调用约束:
41
+
42
+ - 调用前应先尝试从页面读取 `candidateInfo.communicationPosition`、`candidateInfo.expectedLocation`、`candidateInfo.expectedPosition`
43
+ - 能读到就如实透传;读不到就省略该字段
44
+ - `preferredBrand` 为可选页面信号:若 `browser-use-agent` 提取到的 `communicationPosition` 含连字符类分隔符(`-` / `-` / `—` / `–`),则取第一段透传;没有分隔符就省略该字段
45
+ - 严禁把通用岗位名(如“餐饮兼职服务员”“门店服务员”)或候选人现/前雇主公司名塞进 `preferredBrand`
46
+
40
47
  Minimal valid input 示例(代理模式):
41
48
 
42
49
  ```json
@@ -75,6 +82,7 @@ npm 包名:`@roll-agent/smart-reply-agent`
75
82
  - 实际回复生成、reply-policy、FactGate、ReplyGate、年龄校验都在云端执行
76
83
  - 返回的 `signedEnvelope` 为 v2 信封,已绑定 `tenantId + recruiterBinding + conversationId + candidateId`,供 `browser-use-agent.zhipin_send_reply` 本地验签后发送
77
84
  - 调用失败时抛 `ReplyAuthorityRequestError`,携带 `meta: {url, timeoutMs, requestId}` 与 `Error.cause` 链。通过 `roll run` 运行时 stderr 会展开 `cause: ...` 行用于定位;透传的 `x-request-id` 可跨服务端追踪
85
+ - `diagnostics.brandResolutionSource="none"`、`diagnostics.resolvedBrand=""`、`diagnostics.ageGate.status="unknown"` 都是合法服务端结果,不代表 tool 调用失败。是否补问用户或转人工,是 orch 层策略,不是本 Agent 的重试条件
78
86
 
79
87
  ## Environment Variables
80
88
 
@@ -88,11 +96,17 @@ npm 包名:`@roll-agent/smart-reply-agent`
88
96
 
89
97
  1. `browser-use-agent.zhipin_get_username()` → 获取当前 BOSS 账号 `username`
90
98
  2. `browser-use-agent` 读取候选人资料、聊天记录或当前页面上下文,并从 `zhipin_read_messages` / `zhipin_get_candidate_info` 获取 `conversationId + candidateId`
91
- 3. 调用 `smart-reply-agent.generate_reply(..., target)`:
99
+ 3. 调用前先尝试补齐页面信号:
100
+ - `candidateInfo.communicationPosition`
101
+ - `candidateInfo.expectedLocation`
102
+ - `candidateInfo.expectedPosition`
103
+ - `preferredBrand`:若 `browser-use-agent` 从 `communicationPosition` 里识别到“品牌-职位”格式,则透传第一段;否则保持缺省
104
+ - 如果读不到,保持缺省;不要用通用岗位名或候选人公司名冒充品牌
105
+ 4. 调用 `smart-reply-agent.generate_reply(..., target)`:
92
106
  - 直接模式:传 `target.tenantId + target.recruiterBinding`
93
107
  - 代理模式:只传 `target.recruiterUsername=username`,由 smart-reply 代调用 `POST /resolve-recruiter-binding`
94
- 4. `smart-reply-agent.generate_reply(..., target)` 获取 `suggestedReply + signedEnvelope`
95
- 5. `browser-use-agent.zhipin_send_reply(signedEnvelope)` 本地验签并校验 recruiter 绑定后发送
108
+ 5. `smart-reply-agent.generate_reply(..., target)` 获取 `suggestedReply + signedEnvelope`
109
+ 6. `browser-use-agent.zhipin_send_reply(signedEnvelope)` 本地验签并校验 recruiter 绑定后发送
96
110
 
97
111
  ## Recommended roll.config.yaml
98
112
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roll-agent/smart-reply-agent",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",