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. 评估时报告两件事
- 固定阈值后的测试集准确率(原帖口径:两个标签全对的比例),并多次重复看均值与波动(76.5% vs 五次平均 78.1% 说明单次有噪声);
- 排序能力(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 那条预告帖承诺的下一阶段(接到真实研究任务上的表现)到发稿时还没出,别替它编数字。