link: https://x.com/omarsar0/status/2115464874595656166 category: x-tips source: X @omarsar0 author: Jay update: 2026-10-30 repo: https://github.com/typesafe-ai/skills


决策模型做研究分流:Drex Max vs Jev 1.14 的实测与生产化预告 · 干货攻略

  • 链接(本次原帖): https://x.com/omarsar0/status/2115464874595656166
  • 原帖附链落地: https://x.com/omarsar0/status/2113296402289676594 (X 长文《Decision Models for Research Triage》,2026-10-22)
  • 分类: x-tips
  • 来源: X @omarsar0(elvis,DAIR.AI)
  • 作者: Jay
  • 更新: 2026-10-30
  • 仓库: https://github.com/typesafe-ai/skills (TypeSafe 官方 Agent Skill 仓库,由 docs.typesafe.ai 官方文档给出;Nace/Drex Max 侧本次未找到可确认的主仓库)
  • 同源条目: x-tip-2113297633737691572.md(同一篇长文的推荐帖,内容同源;本篇补 2026-10-28 的后续预告与定价校正)

这是什么

先说清原帖本身:2026-10-28 23:25(Asia/Shanghai)@omarsar0 只发了一句预告——

Will share my results on how it's doing on my research tasks later in the week: https://t.co/vF0P5MmDiA

这句话本身没有模型名、任务、指标、任何数字,不能当干货读。 我按原帖给的唯一链接追下去:t.co 落地到他自己 2026-10-22 发的 X 长文《Decision Models for Research Triage》,才是有干货的那一篇。所以本篇的技术内容全部出自那篇长文(以及它引用的两家官方文档),没有从别的推文嫁接任何数字。

长文讲的是一件很具体的事:用「决策模型」(decision model)给研究论文分流。

决策模型不是聊天模型,它不生成文本,而是直接吐一个带概率的类型化答案——一个 0–1 的 yes/no 概率、一个限定集合里的选项、或一个分数。因为输出是结构化概率而不是需要解析的自然语言,它适合放在每个请求前面做「分流 / 校验 / 路由」这类判断:便宜、快、不用写解析器。

任务来自 DAIR.AI 的论文库:几千篇 AI 论文,要归入 Harness Engineering(提示、上下文、记忆、工具、agent loop、多 agent 这类围绕模型的脚手架)和 Self-Improving Agents(通过循环让自身权重/提示/记忆/技能/代码产生持久改进的 agent)两个阅读合集。判断一篇论文属于哪个合集,现实中要人读摘要和元数据。

原帖的实验设计(长文口径): - 先人工标注 250 篇,且在看到模型预测之前标完; - 模型只看标题 + 摘要,对每个合集回答一个 yes/no 问题并给置信度; - 101 篇用于给「每个模型 × 每个合集」分别选一个决策阈值(按 F1 选,兼顾精确率与召回率),阈值选定后固定不变; - 剩下 149 篇作为独立测试集。

结果(149 篇测试集):

指标 Drex Max Jev 1.14
两个标签全对 76.5% 74.5%
5 次重复运行平均 78.1% 74.9%
Harness Engineering 排序 AUROC 0.924 0.907

作者结论:Drex Max 更适合他们的场景,已在规划生产化投入;同时他反复强调这是小规模标注的初步探索,阈值调优重要,但标注集质量同样重要,需要新标注的论文做更强测试。10-28 那条预告帖说的就是这件事的下一阶段——把这个决策模型接到他自己的真实研究任务上,再分享结果。


核验来源

本次实际读取的来源: 1. 原帖 oEmbed(官方接口):https://publish.twitter.com/oembed?url=https://x.com/omarsar0/status/2115464874595656166 — 确认预告帖全文与发布日(October 28, 2026)。 2. t.co 链路解析:https://t.co/vF0P5MmDiA → https://x.com/omarsar0/status/2113296402289676594 → 该帖 t.co → https://x.com/i/article/2113280256119312384(X 长文)。 3. 长文正文(经 r.jina.ai 读取 status 页):https://x.com/omarsar0/status/2113296402289676594 — 所有实验数字(250/101/149、76.5%/74.5%、78.1%/74.9%、AUROC 0.924/0.907)均出自此处。 4. Nace 官方文档「Drex Max」:https://console.nace.ai/docs/drex/guides/drex-max 5. Nace 官方文档「Pricing」:https://console.nace.ai/docs/drex/reference/pricing 6. TypeSafe 官方文档「Noul」:https://docs.typesafe.ai/primitives/noul.md 7. 一次交叉搜索(Tavily),用于取 TypeSafe 官方 models 页的 Jev 1.14 价目与上下文长度:https://docs.typesafe.ai/models

官方文档核对结果(重要,与旧条目有出入):

项 官方原文 状态
Drex Max 模型 ID drex-max(原始版)与 drex-max-v1.1 是两个独立版本,各自算力、同价 ✅ 官方
drex-latest 不指向上面任何一个;请求不写 model 会由 drex-v2.0 应答 ✅ 官方
Drex Max 计价 $0.03 / 百万输入 token,输出 token 不计费 ✅ 官方 pricing 页
(校正)旧条目写的 $0.06 官方 pricing 页现为:drex-max $0.03、drex-max-v1.1 $0.03、drex-v2.0 $0.06、drex-v1.5 $0.05 ⚠️ 旧条目 $0.06 对应的是 v2.0,本次已按官方现行价目改正
Drex Max 限额 每请求最多 512 题、choice 选项/score 档位各 255、请求体 4 MiB、图片最多 8 张、单图 16 MiB、总图片 32 MiB、单图 4000 万像素 ✅ 官方
超限行为 422 invalid_request_error;评估超时 529 overloaded;失败请求不计费 ✅ 官方
媒体位置 图片必须放 images 数组;放进 state/questions 直接 422 ✅ 官方
类型安全侧 Noul 答案就是那个 0–1 概率本身,没有单独的 confidence 字段;choice/score 才有 probabilities+confidence ✅ 官方
类型安全端点/SDK POST https://api.typesafe.ai/v1/systemone,Python SDK typesafe_sdk ✅ 官方
Jev 1.14 模型 ID jev-1.14.0,2026-10-14 起可用,$42/十亿输入 token(= $0.042/百万),输出免费,上下文 64k/请求、32k/题 ✅ 官方 models 页(经一次交叉搜索取得)

明确的不确定处: - 原帖没有披露两个模型各自的 API 路径细节、版本如何固定、单价如何比较,所以「Drex Max 更准」只能理解为在这一任务、这一提示、这一标注集下的结论,不是通用能力排名。 - 10-28 预告帖承诺的「在研究任务上的结果」截至本文写作时尚未发布,本篇不替它预测任何数字。 - 长文未给出第二个合集(Self-Improving Agents)的 AUROC,只有 Harness Engineering 一项。 - Nace/Drex Max 未找到官方主仓库;仓库字段只填 TypeSafe 官方 Agent Skill 仓库。


上手步骤

1. 先把判断写成「可判定的 yes/no」,并写清边界

原帖两问的措辞可直接借用(模型只看标题+摘要):

Question 1. Is this paper mainly about the harness around a model,
such as its prompts, context, memory, tools, agent loops, or multi-agent setup?

Question 2. Is this paper mainly about an agent that improves itself through a loop
that makes lasting changes to its weights, prompts, memory, skills, or code?

TypeSafe 的 noul 支持 criteria,用 true/false 描述「什么算 yes / 什么算 no」——在调阈值之前就把边界写进问题里,这是原帖明确强调的经验。

2. 收集标注集,并且刻意放边界样本

  • 先人工标一批,且在看到模型预测前标完,避免事后凑标签;
  • 原帖建议把边界样本也放进标注集,边界越清楚,阈值越稳;
  • 切分:一份专门选阈值(101 篇),另一份完全独立的测试集(149 篇)做评估。

3. 调阈值:按错误代价选,选完就固定

决策模型给的是概率,阈值由你定。原帖用 F1 选(平衡精确率与召回率),选完固定再上测试集,并提醒:该按哪种错误更贵来选,漏判一篇好论文 vs 误收一篇坏论文权重不同,别照抄 F1。TypeSafe 官方给的起步建议是 0.7 / 0.3,中间值走人工。

4. 调 API(Drex Max 官方示例)

curl https://console.nace.ai/v1/systemone \
 -H "Authorization: Bearer $NACE_API_KEY" \
 -H "Content-Type: application/json" \
 -d '{
 "model": "drex-max",
 "state": "My parcel arrived with the box crushed and the lamp inside cracked. I want a new one.",
 "questions": {
 "damaged": { "type": "noul", "instructions": "Did the item arrive damaged?" },
 "intent": {
 "type": "choice",
 "instructions": "What does the customer want?",
 "criteria": { "refund": "Money back", "replace": "A new item", "info": "Information only" }
 }
 }
 }'

要点:显式写 model(drex-max 或 drex-max-v1.1,别用 drex-latest,不写会落到 v2.0);响应 answers 按请求顺序给出,带 usage、evaluation_time_ms、request_id;论文分类只传文本即可,别把媒体塞进 state/questions。

5. 调 API(Jev 官方示例)

from typesafe_sdk import Noul, NoulCriteria, TypeSafeClient

with TypeSafeClient() as client:
    response = client.system_one(
        model="jev-latest",
        state="I have asked three times now. Can I please just talk to a real person?",
        questions={
            "is_human_escalation": Noul(
                instructions="Is the customer asking for a human agent?",
            ),
            "is_repeat_contact": Noul(
                instructions="Has the customer contacted support about this before?",
                criteria=NoulCriteria(
                    true="Mentions a prior attempt, ticket, or that they have asked before",
                    false="No sign of any previous contact",
                ),
            ),
        },
    )
    print(response.answers["is_human_escalation"].noul)

要点:端点 POST https://api.typesafe.ai/v1/systemone,key 在 console.typesafe.ai/keys 取,SDK 包名 typesafe-sdk;生产环境钉版本(如 jev-1.14.0),否则模型一升级、你调好的阈值就漂移。

6. 评估时报告两件事

  1. 固定阈值后的测试集准确率(原帖口径:两个标签全对的比例),并多次重复看均值与波动(76.5% vs 五次平均 78.1% 说明单次有噪声);
  2. 排序能力(AUROC),用来判断「分数能不能用来排序」而不只是分对错。

适用边界

适合:规则明确可判定、能拿出人工标注集的分流任务(论文归类、工单分派、文档审核、LLM 输出校验);需要高频低成本判断的流水线前端环节;需要读图的判断(Drex Max 是 Drex 系列里唯一读图的,且 drex-max/drex-max-v1.1 两个版本都支持)。

不适合 / 需谨慎: - 规则模糊时不要用——原帖核心结论就是「问题定义清晰」是前提; - 别当通用能力排名:2 个百分点的差距来自 149 篇、单一提示、单一标注口径,作者自称探索性工作;换任务换标注集,排序很可能变; - 标注集质量是天花板,少量标签 + 早期开发用的论文 = 弱结论; - Drex Max 不是「最新版」:drex-latest 不指向它,不写 model 落到 drex-v2.0(v2.0 也更贵,$0.06/百万); - 长 state + 多图 + 多题容易 422:超过限额返回 422,超评估超时返回 529,长 state 时官方建议少发几题; - 多模态不便宜:图片按输入 token 计费,base64 内联还挤占 4 MiB 请求体上限,大图走上传(上传免费)。


一句话结论

这组帖子真正值钱的不是「Drex Max 比 Jev 强 2 个点」,而是一套可复制的决策模型落地流程:把问题写成可判定的 noul → 用先标好的样本调阈值(按错误代价选)→ 阈值固定后在独立测试集上评(准确率 + AUROC)→ 边界样本一定放进标注集。Drex Max 76.5% vs Jev 1.14 74.5% 只说明在这套流程和这个任务上前者略优。10-28 那条预告帖承诺的下一阶段(接到真实研究任务上的表现)到发稿时还没出,别替它编数字。