"dependencies": {
"SELF_ESTEEM": ">= 60",
"social_skills.basic": "^1.0.0",
"profile.photo_quality": ">= 7/10"
}
API核心概念(类比"API 请求前置校验")
本阶段核心是建立对方对你的基础兴趣位,类比 API Gateway 在转发请求前的 rate_limit + auth + signature_verify。目标不是"聊出感情",而是验证双方是否有最低限度的互动意愿,并为首次见面收集 1-2 个可用话题锚点。
- 输入签名: 对方愿意用带信息量的内容回复(非 "嗯" "哈哈" 可判定为有效)
- 边界条件: 单次对话不超过 8 轮有效交互,每日消息频率不超过 2 次
- 成功判定: 对方主动提及私人话题或发布带情绪的内容
Logic实现原理(状态流转)
[陌生态] → 触发: 首次消息引起对方好奇心 → [试探态] [试探态] → 触发: 对方回复含个人信息 (≥2 句) → [建立态] [建立态] → 触发: 对方主动问你问题或分享日常 → [邀约准备态] [邀约准备态] → 触发: 双方话题中出现可落地场景 (都喜欢咖啡/都想去看展) → [初次见面] 异常分支: [陌生态] --对方无回复--> [丢弃态] (1次无回复视为请求超时,≥2次停止重试) [试探态] --对方只回"嗯/哈哈"--> 触发: 话题钩子失效,更换话题或放弃
Risk注意事项(编译警告/运行时风险)
- NPE 空指针风险 — 查户口式提问 ("你哪里人? 你多大? 你做什么工作?")。对方直接断连,因为这是 HR 面试不是社交。类比: 未初始化对象就调用方法抛出 NullPointerException。
- DOS 拒绝服务风险 — 连续发消息对方不回还继续发。类比: 对 server 发送过多请求触发 rate limit 封禁。
- Stack Overflow 栈溢出 — 一条消息叠 3 层含义 + 5 个话题点,对方处理不过来直接关闭。
- Cache Poisoning 缓存污染 — 在没见面之前就把自己包装成完美人设,见面即 crash。类比: 返回错误数据存入对方脑中的缓存。
MVCE实操案例(最小可复现示例)
当前状态: [陌生态],刚加上好友
// 不要说 "你好" / "在吗",这是 ping 不是钩子 // hook 函数需要携带具体观察 + 轻量问题 function breakIce(profile) { const hook = profile.lastPosts .filter(p => p.hasCat || p.hasCoffee)[0]; // 选对方最可能在意的点 return `你家那只三花表情管理有点不到位啊,看起来不太欢迎新访客的样子 😂`; }
// 错误处理: 问 "为什么不早说?" / 试图辩解 "我没那个意思啊" / 继续发消息。
// 底层逻辑: 对方已经触发了 BOUNDARY_CONST 的过滤条件,你的 response 必须显示 respect 常量为 true。任何 pushback 都会被判定为安全威胁。
当前状态: [邀约准备态]
// 邀约函数签名: provideOption + setTimeWindow + leaveBackdoor // 错误签名: "有空出来玩吗?" — 没有选项=对方无法决策,几乎必被拒绝 function proposeMeetup(topic) { return [ `你说过想去的那家盐面包店,我下周六和周日下午都有空,`, `哪个时间段你比较方便? `, `如果都不行的话你说个你有空的时间也行` // leaveBackdoor: 不把对方逼死 ].join(""); }
"我这边 X 月 X 日下午和 X 月 X 日上午确定有空,这两个时间之一,定一个就好"
// 仍然推迟 = 进入 [丢弃态],停止投入。沉没成本谬误在这里的杀伤力极大。