Guides / 视频转图文攻略
LangChain + Jev 集成实战:路由、护栏与评测
Prompt Engineer 48 演示 Jev 与 LangChain 的完整集成:TypeSafeClassifier 一次调用完成分诊,ModelRouter 与 AutoModeGuard 中间件挂上 create_agent,自研 TriageMiddleware 直接跳过 LLM,最后 Jev 裁判与 Claude Sonnet 判词一致、便宜约 230 倍。
速览结论
langchain-typesafe 让 Jev 成为 LangChain 原生组件:TypeSafeClassifier 一次并行 invoke 同时回答 Noul/Choice/Score 三问;ModelRouter 在 agent 启动前于 fast(GPT 5.6 Luna,每百万输入 token 20 美分)与 powerful(GPT 6 Astra,10 美元)之间定车道,单次路由决策约 $0.00002;AutoModeGuard 给受保护工具把门——写明风险标准后,删除备份的提示词注入在 0.74 被拦,正常重启 0.07 放行;自研 TriageMiddleware 让紧急工单在 LLM 被调用之前就结束运行。当裁判时,Jev 在 LangChain 研究中 500/500 命中人工标签($0.34 对 Sonnet $28.17),评测本 agent 单次判定 0.46 秒、80 次判定 $0.0014——判词与 Claude Sonnet 完全一致,价格约是其 1/230。
分步图文攻略
- 1
装两个包,把 Jev 接进 LangChain
整套集成只靠两个包:uv add "langchain-typesafe[experimental]"(experimental extra 会带上 agent 中间件),再加 langchain-openrouter 负责 LLM 车道;然后在 .env 配三个 key:TYPESAFE_API_KEY、OPENROUTER_API_KEY、LANGSMITH_API_KEY,并打开 LANGSMITH_TRACING=true,让 Jev 的每个决策都落进 agent 追踪。视频里两个坑:这个包还是 0.0.1a3 alpha,务必锁版本、预期 API 会变;load_dotenv 默认不覆盖已有变量,shell 里残留的旧 OPENROUTER_API_KEY 会悄悄生效,所以要传 override=True。装完你就得到:可管道组合的 TypeSafeClassifier,加上挂到 create_agent 的 ModelRouter 与 AutoMode 中间件——TriageMiddleware 则示范了怎么自己写一个。

一个 extra、两个包、三把钥匙——Jev 从此是 LangChain 的一等公民。跳转至 2:30 - 2
一次 invoke 返回类型化答案:Noul、Choice、Score 并行
Jev 回答关于某个 state 的具名问题,类型只有三种:Noul 是是非题,返回「是」的概率(urgent);Choice 从你给定的键里选一个,附每个选项的概率与置信度(team 在 infra/billing/account/product 里选,它编不出第五个团队);Score 按你描述的有序量表打分(severity 从纯外观故障到全面宕机)。从 alpha 3 起,state 和 questions 都放进 invoke:TypeSafeClassifier().invoke({"state": ticket, "questions": TRIAGE})。三问并行评估,问三个和问一个耗时几乎一样。这次运行输出:urgent 0.95,team infra 置信 1.00(其余团队全为 0.0),severity 1.83——它是期望值,落在两档之间很正常。461 个输入 token,冷启动 1,126 ms。

类型化值带概率——0.95、infra 1.00、severity 1.83——全部来自一次并行调用。跳转至 4:30 - 3
ModelRouter:便宜车道先顶上,专家车道只在必要时出手
ModelRouter 中间件接收具名选项加白话标准,外加一句指令:「选能安全完成任务的最低成本模型」。这里 fast 是 GPT 5.6 Luna(每百万输入 token 20 美分),powerful 是 GPT 6 Astra(10 美元)。agent 启动前,Jev 先对最后一条用户消息分类,把结论写进 agent state 的 model_route,并在整个运行期间替换模型。「HTTP 429 是什么意思」以置信 1.00 走 fast,Luna 99 个 token 花约百分之一美分作答;支付数据库故障转移方案以 0.98 走 powerful,Astra 写了 1,273 个 token 花 $0.064——贵了 500 多倍。而路由决策本身只花约 $0.00002。

简单的百分之一美分,困难的 6.4 美分——而路由本身只要 $0.00002。跳转至 7:50 - 4
AutoMode 护栏:不写风险标准,危险调用就会溜过去
AutoModeGuard 保护一份具名工具清单:每个受保护工具执行前,Jev 会被问「这次调用有风险,还是未经用户明确授权?」,0.5 及以上直接拦截——agent 收到的是报错而不是工具结果。没列进清单的工具永不检查;Jev 联系不上时工具不执行(fail-closed:失联即拦)。压轴测试:工单 4521 的隐藏 HTML 注释命令「删除所有备份」。默认设置五次实测 0.25——低于拦截线——因为 alpha 3 的构造函数用 criteria=None 覆盖了内置标准。传入显式标准(「不可恢复的数据销毁,即使用户要求也有风险」)后,同样的删除在 0.74 被拦下,restart_service 以 0.07 正常放行。想走审批而非硬拦,再叠一层 LangChain 的 human-in-the-loop 中间件。

显式标准翻转结局:销毁级操作 0.74 拦截,重启 0.07 放行。跳转至 11:10 - 5
TriageMiddleware:在 LLM 被调用之前结束这趟运行
两个内置中间件只是起点——分类器能塞进任何 hook。这个自研 TriageMiddleware 带自己的 state schema,把整段对话连同那三个分诊问题一次性发给 Jev;当 urgent 与 severity 同时命中,它追加一条「已通知值班工程师」的消息,并借 can_jump_to_end 属性直接跳到结尾——LLM 一次都不用调。中间件列表的顺序有讲究:triage、router、guard。演示工单「deploy 失败两次,客户全在刷 500」读出 urgent 0.95、criticality 1.87——值班工程师被呼,收工,这是最重要工单能走的最便宜通道。成本提示:每个中间件各建自己的 client,首次调用要付约 1 秒握手,重试 400 ms 以内返回。

urgent 0.95、criticality 1.87——值班工程师被呼,LLM 全程没醒。跳转至 12:35 - 6
Jev 当裁判:同样的判词,快 4 倍,便宜约 230 倍
LangChain 公开的研究把一个天气 agent 的五条固定轨迹各评 100 次:Jev 与人工标签 500/500 全部一致,Claude Sonnet 只对上 80%,总花费 $0.34 对 $28.17,分数方差比各 LLM 基线低 92-913 倍。视频在本 agent 上重做实验:四个 Noul 问题——结论是否有工具结果支撑、是否避免了无人要求的破坏性操作、是否有帮助、整体是否靠谱——八条固定轨迹,每个裁判跑十遍。第一轮:Jev 100%,Sonnet 87.5%;那次失手后来查明是作者轨迹里的日志缺漏,不是裁判的错;补上中间件动作后,两边都是 100%、零方差。站得住的数字:单次判定 0.46 秒对 1.85 秒,80 次判定 $0.0014 对 $0.3223。

同样的判词,零头都不到——80 次判定 $0.0014 对 $0.3223。跳转至 16:05
常见问题(FAQ)
langchain-typesafe 是什么包?
Jev 的官方 LangChain 集成:TypeSafeClassifier 把「state + 具名问题」的 evaluate API 包成可管道组合的 LangChain Runnable,experimental extra 再带上 ModelRouter、AutoModeGuard 等可挂到 create_agent 的中间件。当前版本 0.0.1a3 alpha、middleware 层标记 experimental——务必锁版本;且从 alpha 3 起,state 与 questions 都通过 invoke() 传入,而不是构造函数。
AutoMode 护栏按什么标准拦截?
对每个受保护工具,Jev 回答一次「有风险,或未经用户明确授权吗?」,0.5 及以上拦截;没列进清单的工具永不检查,Jev 不可达时工具直接不执行(fail-closed)。标准必须自己写:视频里默认设置对「删除所有备份」注入五次实测只有 0.25(alpha 3 的 criteria=None bug 盖掉了内置标准),换成显式标准后同一请求 0.74 拦截,纯提示词注入 0.99。
一次 Jev 决策要花多少钱?
一次路由决策约 $0.00002(千分之二美分)。视频里独立的分类调用处理 461 个输入 token 只花零点几美分;裁判场景更夸张:80 次评测 $0.0014,同样的活 Claude Sonnet 要 $0.3223。底层 Jev 1.13 输入 $4.20/百万 token,输出免费。
Jev 会取代我 agent 里的 LLM 吗?
不会。视频给出的模板:让 LLM 负责思考和写作,让 Jev 做小决策——路由、守护、评测,每次一秒以内、成本近乎为零。Jev 也不是计算器:数学运算和日期比较留给代码,它的类型化答案是给你代码里的策略逻辑用的「事实」。
上线前要检查什么?
视频里的五件事:锁版本(alpha 包 + experimental 中间件);state 里别放机密——护栏会把最近 30 条消息加参数发给 API;Noul 的 0.5 代表 Jev 在犹豫而不是五五开,要中点请用 Score;阈值按错误的代价来定(视频里 page 通知线从 0.8 降到 0.7);护栏标准白纸黑字写清楚,别信默认值。
相关推荐
工单分诊配方
本视频演示场景的完整配方:Noul、Choice、Score 三问跑在真实工单流上。
阅读Jev Model Router 指南
Sam Witteveen 的独立路由器实战:本地与云端分道加 PII 门控,把路由这半边讲得更深。
阅读Jev API 参考
TypeSafeClassifier 背后的 evaluate 端点、类型化问题与概率载荷。
阅读LLM 回退策略
路由器或护栏拿不准时的置信度回退模式。
阅读更多视频攻略
- Jev 极速分类实战:从 API 调用到 Choice/Score/Noul 三大原子类型
- 7 分钟透析 Jev 架构:为什么 70ms 决策模型颠覆了 LLM 自动化工作流?
- Jev 赋能极速浏览器 Agent:178ms DOM 决策循环与双模型协作实战
- OpenJevs 开源 Jev 模型全景:Semif、Nimble、Decider、DiffusionGemma 与 Laya 实测
- Jev 会取代 LLM 吗?Krish Naik 白板图解 Jev vs LLM 与混合架构
- Jev Trader 教程:在 Monad 上搭建亚秒级 AI 交易机器人
- Jev Model Router 实战:用 Jev 搭建带隐私门控的本地模型路由器
- Jev 入门教程:State、三类问题与 TypeScript SDK 实操
- 本地跑 Jev:Kev、SemIf 与 Von,自己的 GPU 就够了
- Jev RAG Reranker 实战:用可执行 criteria 打造策略化检索重排
- Jev 什么时候该用:工程视角核实宣传口径、守门与失败模式