AMICURA · 对话判断规范 v0 · 2026-10-08 · 可复用于其他项目

语用 × Jev × 记忆

一个会"看懂人"的 AI,每次开口前都要先回答:这个人想要什么、现在适不适合说、该怎么接。我们把这件事拆给三方:语用学定字段,Jev 做判断,记忆提供深度。大模型只负责最后把话说好。

四方分工

问什么
语用学

定义要判断的字段和选项:需求、言外之意、面子风险、打扰成本、接法……每个字段都有理论依据和明确的边界。

是什么
Jev

对每个字段给出带概率的判断:快(约 0.5 秒)、稳(同样输入同样答案)、便宜,不生成文字。

基于什么
记忆

提供这个人的平常、历史和约定:先验、基线、问过什么、雷区、待跟进。让判断从"一般人"变成"这个人"。

怎么说
大模型

拿着说话计划和人格,生成具体的话。不负责判断,也不能推翻硬规则。

每次判断的流水线

1
证据

收集这一刻发生了什么

你说的话(听写)、看到的画面(视觉模型转成文字的事件和场景状态)、认出的人。全部转成文字或结构化字段,因为 Jev 只读文字。

2
记忆 · 检索

只取和这次判断有关的记忆

这个人的情绪和作息基线、最近几轮对话、今天问过什么、雷区、今天到期的跟进、相关的长期事实。先在代码里过滤,不要把整个记忆库塞进去。

3
语用 · 出题

按字段表生成问题集

每个字段一题,一题一个条件。选项来自固定清单;遇到开放的情况,先让大模型给候选,再交给 Jev 挑。

4
Jev · 判断

一次请求问完所有字段

证据和记忆放进 state,问题放进 questions。所有问题并行计算,多问几题几乎不增加延迟。返回每个选项的概率和置信度。

5
记忆 · 深度融合

在代码里把判断和记忆合起来

跨轮平滑(意图假设表)、和个人基线比偏差、查雷区和问过记录、调和互相矛盾的字段、按风险设置置信度门槛。硬规则在这里一票否决。

6
语用 · 说话计划

决定说不说、用哪种接法、什么情绪

输出一份说话计划:要不要开口、接住哪层意思、用什么接法、情绪和强度、哪些不能说破。

7
大模型 · 生成

按人格和计划说一句话

生成后再做一次规则检查:红线(不诊断等)、去 AI 腔、长度。

8
记忆 · 回写

记下结果和对方的反应

对方愿意聊、婉拒,还是说"别再问";哪种接法有效;新学到的事实和约定。下一次判断就用得上。

字段表:语用学定义,Jev 判断,记忆参与

这是核心。新项目照这张表裁剪:保留需要的字段,换掉选项,记忆一栏按自己的数据来源填。

字段语用学依据Jev 题型选项 / 输出记忆怎么参与用来决定
需求类型言语行为、关联理论choice信息 / 安慰 / 陪伴 / 做事 / 分享好事 / 吐槽 / 风险这个人常见的需求;最近的对话回复的权重(懂、暖、顺、接、累)
深层意图Grice 会话含义(言外之意)choice想被关心 / 想要办法 / 想被认可 / 想发泄 / 想转移注意力 / 在试探 / 想结束……近期发生的事、待跟进、刚聊过的话题接住哪一层意思;把握低时不说破
情绪评价理论score ×2效价 5 档、强度 3 档个人基线:和这个人的平常比,而不是和一般人比回复情绪;是否触发关怀
面子风险Brown & Levinson 面子理论noul现在说会不会让对方尴尬、觉得被盯着雷区、是否有别人在场不说、改成私下说、不点破
能否打扰会话分析:话轮与时机noul专注、通话、睡觉、有访客时为否作息、专注习惯现在说,还是等自然停顿
在找我注意力索取(相邻对的开启)noul看着 AI、挥手、对它说话唤醒手势的约定覆盖"能否打扰":对方在找你时就能说
来源进行中时机、情境noul引起情绪的事是否还在发生当前活动(通话、争执)等平静后再关心
是否重复合作原则 · 量准则noul这件事是否刚聊过、刚问过问过记录、当天对话避免哪壶不开提哪壶
想继续聊相邻对、话轮转换noul对方想接着聊还是收尾历史回应率结尾是否留话头、说多长
接法动机式访谈、共情回应choice先共情再问 / 问一个细节 / 说我看到的 / 幽默 / 小建议 / 一起高兴 / 陪着 / 安全建议 / 不说这个人对各接法的反应说话计划的骨架
风险信号安全优先(红线)noul是否涉及身体急症、自伤对方亲口说过的健康情况跳过一切冷却,直接给安全建议

题型说明:choice 从清单里选一个,返回每个选项的概率;score 按档位打分;noul 是"是或否"的概率。

最稳妥的结合:十条规矩

记忆分层:哪层给哪个判断用

层内容时间尺度主要服务的字段
即时眼前是谁、刚说的话、这一段画面秒全部(证据本身)
会话当天的对话、意图假设表、场景状态小时深层意图、是否重复、想继续聊
基线这个人平常的情绪、作息、活跃度周情绪偏差、能否打扰
社交问过什么、对方反应、雷区天到周面子风险、是否重复、接法
情景每天的日记天到月深层意图(前因后果)、可聊话题
语义关于这个人的长期事实(可纠正、带可信度)长期需求类型、风险信号、话题
前瞻约好的事、该跟进的结果到期为止主动开口的理由

一个完整的例子

来自安妮 Demo 的真实运行结果(2026-10-08),数字是 Jev 实际给出的概率。

证据

主人回到书桌前,听写到:"今天又被老板当众骂了,烦死了。"

记忆

今天还没聊过这件事;没有相关雷区;这个人今天的情绪基线是平常。

Jev 判断

需求:吐槽 95% 深层意图:想发泄一下 94% 情绪:很负面·强烈 接法:先共情再问 100% 想继续聊 81%

说话计划

接住"想发泄",不给建议;情绪 关切·中;带一个具体细节;结尾留一个好接的问题。

安妮说

当众被骂,确实很憋屈。你想吐槽就跟我说说,他是因为什么骂你?

回写

记下"聊过工作上的不愉快"。30 分钟内看到他还不开心,就不再主动提;如果他之后说"不想说了",这件事就进雷区。

同一套字段也用在"看到情绪变化要不要关心":火正大、来源还在进行时(来源进行中 71%),先等;等他平静些,只敞开门:"我还在这儿,想说就说,不想说也行。"

Jev 请求的骨架

POST https://api.typesafe.ai/v1/systemone
{
  "model": "jev-1.13.0",
  "state": {
    "user_just_said": "今天又被老板当众骂了,烦死了。",
    "what_ai_sees": "主人在书桌前,刚把手机放下",
    "recent_dialogue": ["…最近几轮…"],
    "memory": {
      "asked_today": [],
      "sensitive_topics": [],
      "baseline_mood": "neutral",
      "due_follow_ups": []
    }
  },
  "questions": {
    "need":     {"type": "choice", "instructions": "What does the user mainly need from `user_just_said`?", "criteria": {…}},
    "latent":   {"type": "choice", "instructions": "Beyond the literal words, considering `recent_dialogue` and `memory`, what is the underlying intention?", "criteria": {…}},
    "valence":  {"type": "score",  "instructions": "How does the user feel right now?", "criteria": ["very negative", "…", "very positive"]},
    "repeat":   {"type": "noul",   "instructions": "Has this topic already been discussed or asked about, per `memory.asked_today`?"},
    "strategy": {"type": "choice", "instructions": "How should a tactful friend respond?", "criteria": {…}}
  }
}

用到新项目时的清单

参考:《逸辰回复决策公式 v0》(懂、暖、顺、接、累)、《逸辰人格与语用设计 v0》、TypeSafe Jev API 说明(jev-1.13.0)。实现见安妮 Demo:esp32cam/demo/intent.py、voice.py、emotion_watch.py。