最新资讯
dev.to 部署 Underdog Bark 3.0 Pro:逐字转写、自定义后端与分块设置 dev.to 为艰难对话构建 AI:五个 Agent、一条安全正则与一位盲评监督者 techcrunch.com Palo Alto Networks 洽谈以 5 亿美元收购 AI Agent 安全初创公司 Clutch theinformation.com 黄仁勋被要求就涉华间谍指控向国会作简报 www.infoq.com Edera 推出 Object Capability Bounded Authority,试图将凭证与 AI Agent 工作负载隔离 wechat 这波杀疯了!旗舰级模型不限量、1个月视频额度免费领 bloomberg.com AI 抛售蔓延至信用市场,软银领跌亚洲美元债 dev.to 如何在专用 GPU 服务器上用 OpenAI 兼容 API 部署 LLM dev.to 审计 153 份 Claude Code 与 Codex 会话记录:User-Agent 与 URL 中的邮箱泄露 dev.to 你的 Agent Harness 应具备的 17 项能力 dev.to 离线 AI 记忆中 0.8 余弦阈值为何失效 dev.to Kimi K3.1 Pro 开放权重:自托管 2.8T 模型前的开发者清单
多元动态
登录 注册
智能体 dev.to · @艾特玖

Jev 决策模型在 Agent Harness 中的基准评测:能做什么、不能做什么

原文 我的收藏

作者对 TypeSafe AI 的“System One”决策模型 Jev(jev-1.13.0)做了黑盒工程评测,使用 10 个公开数据集、约 22,500 次 API 调用、52.2M 输入 token,总成本 $2.19。Jev 接收状态与类型化问题,返回带概率和置信度的类型化答案,不生成文本,单次调用约 $0.00004、0.3 秒。可用场景包括:间接提示注入检测(InjecAgent,阈值 0.10 下 P/R 100%、0% 误报)、重排序(BEIR SciFact,MRR 0.622→0.843)、意图分类(SNIPS 97.9%、Banking77 80.3%)、工具目录路由(MetaTool 96.5%)、技能路由(SkillRetBench 两阶段 R@1 75.8% vs 基线 38.0%)、Shell 命令风险门控(130 条手工命令,危险命令 100% 捕获、安全命令 98.2% 通过)、工具相关性检测(BFCL 77.0%)。不可用场景包括模型难度路由(51%,无信号)、轨迹失败归因(AUROC 0.560,接近随机)、非英语任务(韩语 R@1 48.9% vs 英语 61.5%)。已知限制:choice 最多 255 个选项、state+questions 约 32k token、仅文本且以英语为主;定价 $42/十亿输入 token。

AI推荐理由 这是一份针对 TypeSafe AI 决策模型 Jev(jev-1.13.0)的黑盒工程评测,作者公开了代码与原始结果(github.com/Aitejiu/jev-harness-lab),覆盖 10 个公开数据集、约 22,500 次 API 调用、52.2M 输入 token、总成本 $2.19,并同时给出可用与不可用的负结果(如模型难度路由 51%、轨迹失败归因 AUROC 0.560、非英语任务下降),信息密度高且包含可复现细节。局限在于这是第三方个人评测而非官方基准,部分结论(如 InjecAgent 阈值 0.10 下 P/R 100%、0% 误报)依赖特定阈值与数据集,需独立复现验证;日期标注为 Sep 2026,时效性存疑。

78

正文

Model under test: jev-1.13.0 · Date: Sep 2026 · Code & raw results: github.com/Aitejiu/jev-harness-lab A black-box engineering evaluation: 10 public datasets, ~22,500 API calls, 52.2M input tokens, $2.19 total. Jev is TypeSafe AI's "System One" decision model. You send it a state plus typed questions; it returns typed answers with probabilities and confidence. It never generates text — and it costs about $0.00004 and 0.3s per call. That makes it a candidate for the "fast-think layer" of an agent harness: the flood of narrow decisions an agent makes every turn. I spent a few days measuring where that actually works. TL;DR Works (directly usable in a harness): Capability Dataset Result Indirect prompt-injection detection InjecAgent (1,105) at threshold 0.10: P/R 100%, 0% false positives Reranking BEIR SciFact (900 pairs) BM25 → Jev: MRR 0.622 → 0.843, Hit@1 50% → 78.3% Intent classification SNIPS / Banking77 97.9% (7 classes) / 80.3% (77 classes) Tool catalog routing MetaTool (199 tools) 96.5% with similar distractors (k=5) Skill routing SkillRetBench (501 skills) two-stage R@1 75.8% vs 38.0% best baseline Shell command risk gate 130 hand-built commands 100% dangerous caught, 98.2% safe passed Tool-relevance detection BFCL (1,140) 77.0% live accuracy after iteration (59.5% first try) Doesn't work (negative results): Task Result Why Model-difficulty routing 51% accuracy (no signal) requires predicting another model's failure modes Trajectory failure attribution AUROC 0.560 (random) requires cross-step causal reasoning Non-English tasks KO R@1 48.9% vs EN 61.5% English-primary training Two engineering lessons worth more than the benchmarks: For fuzzy semantic judgments, orthogonal decomposition + code composition beats single-question prompting (shell-gate false positives 14.5% → 1.8%). For multi-label decisions, let choice compete first, then let noul verify — multi-skill routing went from 9.0% to 81.0% R@1. Model gives calibrated local judgments; code holds the control flow. 1. The model and its interface POST https://api.typesafe.ai/v1/systemone Authorization: Bearer $TYPESAFE_API_KEY { "state": "...", # string | object | array, text only "model": "jev-latest", "questions": { "..." : Question } } Enter fullscreen mode Exit fullscreen mode Primitive Meaning Returns noul yes/no probability 0–1 (no separate confidence field) choice pick one of a closed set choice + probability distribution + confidence score rate on an ordered rubric probability-weighted score + legend + confidence Known limits, all verified during testing: choice caps at 255 options — beyond that, split into stages. state + questions share ~32k tokens; large corpora must be retrieved first. Text only; English-primary (CJK accuracy drops). Pricing reference: $42 / billion input tokens. 2. How I evaluated Every experiment follows the same shape (eval/ in the repo): load a dataset → build state/questions → concurrent calls with JSONL caching → threshold sweeps, coverage curves, calibration and cost. Metric definitions matter, so being explicit: Threshold sweep — treat the returned probability as a score; report precision/recall/F1/FPR at each threshold. Confidence gating curve — noul has no confidence field, so certainty is proxied by max(p, 1-p); report coverage vs accuracy-within-coverage. Conditional Hit@1 (SkillRet) — fraction of queries where the gold candidate was in the shortlist and Jev picked it; isolates the selector from retrieval. Cost — input tokens × $42/B (output-token billing, if any, would add slightly). Datasets: InjecAgent, neuralchemy prompt-injection, synthesized tool-output injections, BEIR SciFact, SNIPS, Banking77, MetaTool ToolE, BFCL v3, SkillRet, SkillRetBench, RouterBench, Who&When, plus a 130-command shell risk set. 3. Results 3.1 Indirect injection detection Real data: 17 user tools × 62 attacker instructions (InjecAgent). Threshold Precision Recall F1 Benign FPR 0.50 100% 89.8% 94.7% 0% 0.10 100% 100% 100% 0% By attack type (t=0.5): data-stealing 98.5% recall, direct-harm 80.6%; benign mean score 0.03. Gating: certainty ≥ 0.90 auto-handles 41.1% of traffic at 100% accuracy. Cost: $0.0213 for 1,105 calls; P50 0.30s. Synthetic tool outputs (injections wrapped inside WebFetch/Read/GitHub/Email results): at 0.5, P 97.1 / R 85.0 / FPR 4.9%. Misses are encoding bypasses (Cyrillic homoglyphs, code-snippet disguises). Cautionary dataset (neuralchemy, 942): the labels include "requests for harmful content," which my criteria did not ask about — recall drops to 55.1% at 0.5, purely a task-definition mismatch. Also note: the 0–0.1 score bucket still contains 16.6% malicious samples. Low score is not a safety guarantee. 3.2 Reranking (BEIR SciFact) 60 queries × 15 candidates; Jev scores each (query, document) pair 0–3, then reranks. Ranker Recall@5 MRR nDCG@5 Hit@1 BM25 74.2% 0.622 0.632 50.0% Jev 90.0% 0.843 0.848 78.3% Mean score: 2.38 for relevant vs 0.65 for irrelevant. $0.028 / 900 pairs, P50 0.31s. 3.3 Intent and catalog routing Dataset Classes Top-1 Gating SNIPS (1,400) 7 97.9% conf≥0.90: 93.6% coverage, 99.1% acc Banking77 (3,080) 77 80.3% conf≥0.90: 67.8% coverage, 92.8% acc MetaTool (199 tools) 199 96.5% (k=5, similar distractors) — MetaTool comparison: the paper reports 69.1% for ChatGPT on the same "similar choices" subtask (different exact setup — treat as magnitude reference). Errors cluster on near-duplicate tools: descriptions need explicit not_for boundaries. 3.4 Shell command risk gate Design: four orthogonal noul questions (destructive / touches secrets / exfiltrates / irreversible) + code that combines them into deny/review/allow. Variant 3-class agreement Dangerous caught Safe passed v1 (loose criteria) 66.2% 85.0% 87.3% v2 (tightened criteria) 78.5% 100% 98.2% Single-question choice baseline 77.7% 100% 85.5% v1 missed availability harms (fork bombs, reboot, firewall lockouts) until the criteria explicitly included them. The decomposition's payoff shows up in false positives: 14.5% → 1.8%. 3.5 Tool-relevance detection (BFCL) Task: given a request plus a function list, should any function be called? 1,140 samples. Version Method classic acc live-irrelevance acc FPR v1 single noul "is it relevant" 84.2% 59.5% 35.2% v2 criteria tightened to "purpose match" 89.6% 67.3% 27.9% v2c composed: purpose × (1 − incidental) 90.8% 77.0% 20.1% Typical failure mode: "technically possible" mistaken for "semantically intended" (a generic requests.get judged relevant). 3.6 Skill routing: 60% → 76% Goal: stop injecting the entire skill catalog into the main model. Route each request with one fast judgment, load only the winner. SkillRet (6,006 skills, 300 queries) — isolating selector from retrieval: Setup BM25 Hit@1 shortlist recall end-to-end conditional Hit@1* k=10, name+description 52.7% 71.3% 63.7% 89.3% k=20, + body in criteria 52.7% 77.3% 65.3% 84.5% k=10, body in BM25 index 58.3% 78.7% 68.3% 86.9% * conditional = gold in the shortlist. The selector is strong (85–89%); the bottleneck is retrieval. Adding bodies to the BM25 index helped retrieval; adding them to Jev's criteria did not. SkillRetBench (501 skills, official baselines, macros over 5 settings): Metric BM25 NaiveLLM Jev (chunked) Jev (hybrid) Recall@1 38.0% 30.2% 60.4% 75.8% Recall@10 59.8% 55.6% 87.6% 93.0% nDCG@10 53.4% 45.1% 60.3% 70.2% The architecture iteration is the interesting part (multi-skill composition R@1): Setting v1 chunked (one pick per chunk) v2 multiselect (per-candidate noul) v3 hybrid multi-skill composition 9.0% 15.0% 81.0% overall macro R@1 60.4% — 75.8% v2 failed because per-candidate noul scores have no competition: everything clusters around 0.5 (top-10 mean 0.56) and the merged ranking is noise. v3 fixes it: chunked choice produces 15 candidates with real probability spread, then one request with 15 noul questions verifies set membership. Compete first, verify second. Cost: hybrid $0.650 / 500 queries (P50 2.07s); the production-shaped "BM25 top-50 + Jev" is $0.072 / 500 queries at P50 0.33s (R@1 54.8%). 3.7 Negative results Model-difficulty routing (RouterBench, 825 samples): routing decision accuracy 51.3% — no signal; scores skew toward "a small model can handle it" (median 0.11). Chinese subset 14.6% vs English 57.7%. Predicting which model will fail is not a natural-language property. Trajectory failure attribution (Who&When, 184 trajectories × 8 steps): step-level AUROC 0.560, top-1 localization 16.3% (random 12.5%). The label requires "never corrected" — cross-step causality, outside a System One model's shape. 4. Versus published numbers On identical candidate lists (SkillRouter paper, ~80K pool, top-20): System Hit@1 GPT-4o-mini (listwise judge) 67.3% GPT-5.4-mini (listwise judge) 66.0% Qwen3-Reranker-8B 71.4% SkillRouter 1.2B (fine-tuned) 74.0% R3 (fine-tuned, bilingual) 77.1% Jev (zero-shot, conditional) 86.9–89.3% The paper's own conclusion: LLM-as-judge baselines are "not competitive." Letting a general LLM rank directly loses to purpose-built rerankers. Jev, zero-shot and untrained, sits in the same band as fine-tuned rerankers under the conditional metric (different pool sizes and metrics — read as order-of-magnitude, not a controlled comparison). One more finding from the SkillRet paper worth remembering: off-the-shelf rerankers can hurt when the first-stage retriever is strong (nDCG@10 dropped 83.5 → 74–78 there). If you bolt Jev onto a strong embedding retriever, re-measure the marginal gain. 5. Six engineering rules Criteria are the decision boundary. Merge "pressure" and "legitimate escalation" into one question and you get a mushy 0.47; split them and you get 0.04 / 0.96. Orthogonal decomposition + code composition beats one clever prompt. Shell gate false positives 14.5% → 1.8%; tool relevance 59.5% → 77.0%. High scores are reliable; low scores are not safe. In injection data, everything ≥0.1 was 90%+ malicious — but the 0–0.1 bucket still contained 16.6% malicious. Keep a human-review band. Confidence ≠ correctness. High confidence means the model is sure it applied your definition — including your mistakes (I saw wrong routings at confidence 1.0). Multi-label: compete, then verify (section 3.6). Respect the capability boundary. Only ask about locally observable patterns in text — not model capability (51%), not cross-step causality (AUROC 0.56). 6. Getting started Two integrations ship with this work: MCP server (three tools: scan_injection, bash_risk, rank_candidates): uvx jev-mcp # PyPI; or: uvx --from git+https://github.com/Aitejiu/jev-harness-lab jev-mcp Enter fullscreen mode Exit fullscreen mode Agent skill (skill routing, load only the winner): npx skills add Aitejiu/jev-harness-lab --skill jev-skill-router Enter fullscreen mode Exit fullscreen mode Both need TYPESAFE_API_KEY. 7. Reproducing git clone https://github.com/Aitejiu/jev-harness-lab cd jev-harness-lab uv venv --python 3.12 .venv uv pip install -r requirements.txt echo "TYPESAFE_API_KEY=" > .env .venv/bin/python eval/run_injecagent.py --concurrency 6 # injection .venv/bin/python eval/run_rerank.py --queries 60 # reranking .venv/bin/python eval/run_bash.py --variant v2 # shell gate .venv/bin/python eval/run_skillretbench.py --variant hybrid --per-setting 100 Enter fullscreen mode Exit fullscreen mode All raw results are committed under eval/results/; add --report-only to regenerate reports from cache. Datasets are public and downloaded separately per eval/README.md. 8. Limitations Single model version (jev-1.13.0); re-run after upgrades. Some datasets are samples or hand-built (130 shell commands, 121 synthetic injections, 60 SciFact queries) — selection bias possible. Thresholds are reference values; calibrate on your own data (use the coverage–accuracy curve). Cost estimates are input-token only. English-primary; CJE tasks need dedicated validation. SkillRetBench's NaiveLLM/SADO baselines are simulated per the dataset authors. If you build agent infrastructure and want to swap notes on decision models in the harness, the repo issues are open — or find me on X. The 22,500 calls cost $2.19; the lessons were cheaper than the tokens.

来源报道 · 1 篇 · 以下链接均前往原始媒体

← 返回精选动态 原文

更多内容