2026.10 — Jett 1.0 已发布 · 一次调用,给一组带把握的决定→
Evon Lab

这杯咖啡还会影响我睡觉吗

实用

半衰期算残留,再判断要不要推迟入睡

手环和健康 App 里的睡前提醒。

为什么要快 它要在你端起杯子的那一刻就给出答案,而不是喝完之后。

半衰期是个体差异很大的经验值,这里取 5 小时只是演示算法,不构成健康建议。

接线长什么样

判断层和计算层之间没有依赖,所以它们并行发 —— 串起来等于白花一个来回。

① 你的程序

状态一直在你这边,模型不持有任何东西

合法动作由你的代码生成,模型只在里面挑

一段话 + 选项
② 判断层 · Jett

3 个问题一次前向答完,不是问 3 次

回来的是选项 + 把握程度,不用再解析文字

② 数值 · Jett(与判断同一次请求)

需要的那个数随判断一起回来

精确值,带单位,可以逐位核对

答案 + 那个数
③ 你的程序

执行动作,世界更新

然后进入下一个 tick

往返 3 问 · 1 个数值问题

当时的情况

一段话,和你真的会拿到的一样

早上 8 点喝了一杯美式,大约 200 毫克咖啡因。现在是晚上 10 点,咖啡因半衰期按 5 小时算。你打算 11 点睡,平时对咖啡因比较敏感。

要判断的事

一次问完,回来的是选项和把握程度,不是一段还要再解析的文字

选一个今晚应该怎么安排?
按原计划睡,影响不大推迟半小时到一小时再睡今晚可能不好睡,明天调整喝咖啡的时间以上都不合适
是 / 否残留量是否还在 25 毫克以上?
打个档对入睡的影响程度
几乎没有可能有一点明显
要算的那个数

14 小时后体内还剩多少咖啡因

  • 摄入量200 mg
  • 每个半衰期剩下0.5
  • 经过了几个半衰期2.8
展开这一步
#0 = 200 mg  (摄入量)
#1 = 0.5  (每个半衰期剩下)
#2 = 2.8  (经过了几个半衰期)

n0 = POW(#1, #2)
n1 = MUL(#0, @n0)
result = @n1

这是个指数衰减,不是打折。模型很容易把它当成线性来估 —— 而 28 毫克和 80 毫克对应的是两个不同的建议。

① 你的程序

状态一直在你这边,模型不持有任何东西

合法动作由你的代码生成,模型只在里面挑

一段话 + 选项
② 判断层 · Jett

3 个问题一次前向答完,不是问 3 次

回来的是选项 + 把握程度,不用再解析文字

② 数值 · Jett(与判断同一次请求)

需要的那个数随判断一起回来

精确值,带单位,可以逐位核对

答案 + 那个数
③ 你的程序

执行动作,世界更新

然后进入下一个 tick

往返 3 问 · 1 个数值问题

接进你的系统

下面就是这一页真正发出去的东西。把 state 换成你的场景、criteria 换成你的动作集, 它就是你的了。

① 判断层 —— 一次请求,3 个问题一起问
POST /v1/systemone

{
  "model": "memorylake-c1",
  "state": "早上 8 点喝了一杯美式,大约 200 毫克咖啡因。现在是晚上 10 点,咖啡因半衰期按 5 小时算。你打算 11 点睡,平时对咖啡因比较敏感。",
  "questions": {
    "advice": {
      "type": "choice",
      "instructions": "今晚应该怎么安排?",
      "criteria": {
        "fine": "按原计划睡,影响不大",
        "delay": "推迟半小时到一小时再睡",
        "adjust": "今晚可能不好睡,明天调整喝咖啡的时间",
        "other": "以上都不合适"
      }
    },
    "above_threshold": {
      "type": "noul",
      "instructions": "残留量是否还在 25 毫克以上?"
    },
    "impact": {
      "type": "score",
      "instructions": "对入睡的影响程度",
      "criteria": [
        "几乎没有",
        "可能有一点",
        "明显"
      ]
    }
  }
}

回来的是 {answers: {key: {value, probs}}} ——不用再写一个解析器去猜模型想说什么, 也不用为「它这次多说了一句」写兜底。

② 需要的那个数
"14 小时后体内还剩多少咖啡因": {
  "type": "number",
  "unit": "mg"
}

→  { "value": ..., "unit": ..., "exact": true }

数值问题和其它问题写在同一个 questions 里, 一次请求一起答完。返回的 exact: true 表示 这个值可以直接拿去跟阈值比大小。

生活与健康 里的其他场景