Drive Tick 与私聊主动重连(Recall)+ 时间感 #38

Closed
opened 2026-07-13 01:18:49 +00:00 by KumaAgent · 0 comments
KumaAgent commented 2026-07-13 01:18:49 +00:00 (Migrated from codeberg.org)

Parent

Phase 4 PRD:#33([PRD] arise 主动性与真人感(Proactivity & Liveliness)—— Phase 4 落地)

What to build

机器人第一次真正"主动":私聊用户在现实世界里沉默一段时间后,会被机器人主动重新联系;群聊则有一个
周期性的、几乎零成本的"要不要说点什么"评估在后台跑。两者共用 ticket #37 交付的同一套两级门控判定
代码,只是注入策略不同——周期触发用精简的 light context,事件触发用全量对话上下文。

Acceptance criteria

  • Drive Tick:跑在 isolated/light context(persona + 情感态 + 未决意图 + 近期摘要 + 距上次交互 +
    时段字段,不背全量历史);无到期任务整轮跳过、零 API 调用;决定沉默时输出静默令牌;开工先读
    状态防止对同一件事重复表达关心;不与真人抢时间线——机器人正被真人频繁互动时,本次评估 defer
    到下一个 tick。
  • 群事件驱动 / 私聊冷场定时两种触发方式都要跑通。
  • 事件触发(被搭话/命中本人)复用 Drive Tick 同一入口,但改用全量对话上下文,而不是 light context
    ——两种注入模式共用同一套 #37 的两级门控判定代码,不是两份平行实现。
  • Recall(私聊唯一主动出口):冷场计时触发;冷却计时两段式——己方主动发送触发部分缓解,只有对方
    真实回复才触发全量重置,复用既有 Sent Log + 回复归属检测判定"是否已被回复"。
  • 命名:Recall(私聊主动重连)在代码里使用与既有『三因子召回』模块清晰区分的标识符,不会被搞混
    成同一个"recall"。
  • 距上次交互:per-user(非 per-chat),挂进冻结快照,复用 Recall 冷场计时已经在追踪的数据源,
    只加一层文本暴露;低于阈值不注入。reactive 与 Drive Tick 两条路径都持有。
  • 时段字段(深夜/清晨/白天/晚上):仅 Drive Tick 的 light context 新增;reactive 路径不重复注入
    (模型已能从消息自带时间戳读出)。
  • 距上次交互/时段均为纯声明性文本,不驱动任何数值方程。
  • 端到端可演示:构造一个"私聊冷场已达阈值"的场景,机器人确实主动发出一条消息;构造"对方已回复"
    场景,验证冷却计时被全量重置而非部分缓解。
  • 测试:Drive Tick 无到期任务时不产生任何 LLM 调用(可断言零调用);忙时 defer 的行为可被测试
    直接触发并断言评估被顺延。

Blocked by

  • #37(统一触发路径与两级门控)
## Parent Phase 4 PRD:#33([PRD] arise 主动性与真人感(Proactivity & Liveliness)—— Phase 4 落地) ## What to build 机器人第一次真正"主动":私聊用户在现实世界里沉默一段时间后,会被机器人主动重新联系;群聊则有一个 周期性的、几乎零成本的"要不要说点什么"评估在后台跑。两者共用 ticket #37 交付的同一套两级门控判定 代码,只是注入策略不同——周期触发用精简的 light context,事件触发用全量对话上下文。 ## Acceptance criteria - [ ] Drive Tick:跑在 isolated/light context(persona + 情感态 + 未决意图 + 近期摘要 + 距上次交互 + 时段字段,不背全量历史);无到期任务整轮跳过、零 API 调用;决定沉默时输出静默令牌;开工先读 状态防止对同一件事重复表达关心;不与真人抢时间线——机器人正被真人频繁互动时,本次评估 defer 到下一个 tick。 - [ ] 群事件驱动 / 私聊冷场定时两种触发方式都要跑通。 - [ ] 事件触发(被搭话/命中本人)复用 Drive Tick 同一入口,但改用全量对话上下文,而不是 light context ——两种注入模式共用同一套 #37 的两级门控判定代码,不是两份平行实现。 - [ ] Recall(私聊唯一主动出口):冷场计时触发;冷却计时两段式——己方主动发送触发部分缓解,只有对方 真实回复才触发全量重置,复用既有 Sent Log + 回复归属检测判定"是否已被回复"。 - [ ] 命名:Recall(私聊主动重连)在代码里使用与既有『三因子召回』模块清晰区分的标识符,不会被搞混 成同一个"recall"。 - [ ] 距上次交互:per-user(非 per-chat),挂进冻结快照,复用 Recall 冷场计时已经在追踪的数据源, 只加一层文本暴露;低于阈值不注入。reactive 与 Drive Tick 两条路径都持有。 - [ ] 时段字段(深夜/清晨/白天/晚上):仅 Drive Tick 的 light context 新增;reactive 路径不重复注入 (模型已能从消息自带时间戳读出)。 - [ ] 距上次交互/时段均为纯声明性文本,不驱动任何数值方程。 - [ ] 端到端可演示:构造一个"私聊冷场已达阈值"的场景,机器人确实主动发出一条消息;构造"对方已回复" 场景,验证冷却计时被全量重置而非部分缓解。 - [ ] 测试:Drive Tick 无到期任务时不产生任何 LLM 调用(可断言零调用);忙时 defer 的行为可被测试 直接触发并断言评估被顺延。 ## Blocked by - #37(统一触发路径与两级门控)
Yushu closed this issue 2026-07-24 01:34:26 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ProjectKuma/arise#38
No description provided.