Guides / 视频转图文攻略

Jev MCP Server 接入指南:把 Jev 决策层接进 Claude Code 与 Cursor

TypeSafe 官方走的是开箱即用的 Agent Skill 而非 MCP server,社区则补出了 20+ 个第三方 Jev MCP server。本攻略讲透它们共同封装的决策层——state 加类型化问题、阈值分支与 TypeScript SDK 实操。

速览结论

Jev 至今没有官方 MCP server。TypeSafe 给编程 Agent 的官方路线是 drop-in Agent Skill——一个把 Jev API 上下文交给 Claude Code 或 Codex 的插件——而传输层由生态补齐:Glama 目录收录了 20+ 个第三方 Jev MCP server,头部是 jkudish/jev-browser(268 星、npm 周下载约 3.7k)、maxkimambo/jev-mcp(约 981/周)、walidboulanouar/jev-agent-kit(11 个工具)和 Bizuayeu/GenericJevMCP(自托管 DiffusionGemma 后端)。无论选哪种传输,线级格式都一样,也就是下面 Codevolution 演示的那一套:一个 state(纯文本、JSON 对象或数组)加类型化的 Noul/Choice/Score 问题,一秒内拿回带校准概率的答案,再由你的 Agent、MCP 工具或 Skill 按阈值分支。社区实测数据说明了为什么值得:29,150 token 的 MCP skill 上下文被过滤到任务实际需要的 2 个 server(约省 5 倍上下文,每 1000 次请求约省 $236);一道保险丝在约半秒内拦下不可逆的 rm -rf,而主模型要花约 5 秒和 124 个 token。

视频来源

Codevolution

22:12ZgXej_9isxY

分步图文攻略

  1. 1

    先搞清楚接的是什么:Jev 只做判断,不写一个字

    在把任何东西接进 Claude Code 或 Cursor 之前,先认清线路另一端是什么。Jev 是 TypeSafe 的「System One」模型:不生成文本,只对你发去的 state 做判断,70–500 毫秒内返回带概率的类型化答案。视频的贯穿示例是一条客服消息——「I’ve contacted you three times, and I’m still waiting.」——配上 yes/no 问题「Does this customer sound frustrated?」发给 Jev,得到 Yes。这正是它适合 Agent 的原因:Jev MCP 工具或 Skill 交给编程 Agent 的是一个可以直接分支的概率——模型不生成任何文本,自然没有幻觉空间。

    Jev 白板示例:把「I have contacted you three times」这条客户消息送进 Jev 方框,回答 Does this customer sound frustrated 问题并返回 yes 判断。
    聪明的 if 语句:Jev 判消息,你的代码做分支。跳转至 1:35
  2. 2

    设计载荷:一个 state 加若干类型化问题

    每个 Jev 请求——因而也是每个 Jev MCP 工具调用底下的东西——只有两部分。state 是待判断的信息:纯文本、JSON 对象或数组。questions 是你想从这个 state 里知道的事,每个问题都带一个决定答案形状的类型:Noul 出 yes/no 概率,Choice 从你给的选项里挑,Score 在你描述的刻度上定位。所有问题独立且并行评估,一个问题看不到另一个的答案。把这套载荷设计对,MCP 还是 Skill 就只剩传输层的选择。

    Jev 输入图解:Information 状态(纯文本、JSON 对象或数组)与类型化 Questions 配对,在单次请求中独立评估。
    State 加类型化问题——请求的全部要素就这些。跳转至 6:30
  3. 3

    动手接线前,先在 TypeSafe 控制台验证决策

    验证一个决策最快的方式是 TypeSafe 控制台的 Playground,不用写代码:state 放上面——这里是 JSON 对象 { "message": "I’ve contacted you three times, and I’m still waiting." }——在 Questions 面板里选一个原语(Noul 判断真假、Score 设评分规则、Choice 出多选题),然后点 Run request。同一块屏幕的侧边栏有 API Keys,还有「Is hotdog a sandwich?」这类新手课程,以及从简历筛选、客服审计到 LLM 护栏的真实用例。录制时 Jev 还在早期访问阶段(候补名单、走 Vercel AI gateway、9 月 23 日前免费);如果你手里已有 OpenRouter 的 key,同样的模型那边也能调。

    TypeSafe AI 控制台 Playground:state 消息、列出 Noul、Score、Choice 的原语选择器,以及 Learn to TypeSafe 课程与简历筛选、客服审计、LLM 护栏用例列表。
    写代码之前,先在控制台沙盒里试决策。跳转至 12:10
  4. 4

    装 TypeScript SDK,发出第一个类型化调用

    代码侧,视频的 jev-demo 项目在 package.json 里加 @typesafe-ai/sdk(0.6.x),密钥放在 .env 的 TYPESAFE_API_KEY(控制台创建)。demo.ts 先检查密钥,再建客户端,发一个 Noul 问题:state = { message: "I’ve contacted you three times, and I’m still waiting." },questions = { isFrustrated: noul("Does message express frustration?") },用 client.systemOne(state, questions) 发出。演示脚本经 tsx 加 --env-file=.env 运行。Python 和 JavaScript SDK 同样有——而社区 Jev MCP server 封装成工具的正是这一个调用。

    TypeScript demo.ts 从 @typesafe-ai/sdk 导入 noul 和 TypeSafeClient,对客户消息 state 提问 isFrustrated noul does message express frustration。
    第一个类型化调用:对客户消息跑 noul。跳转至 14:20
  5. 5

    跑两遍,看校准过的数字,而不是生成文本

    npm run demo 返回 model jev-1.13.0,answers.isFrustrated.noul = 0.94——消息有 94% 的概率在表达不满——外加用量(输入 292 / 输出 23 token)和 861 ms 的耗时。把 state 换成「Thanks for the update. Everything is working now.」,同一问题翻到 0.03。干净的翻转正是重点:数字跟着证据走,Agent 里的阈值才敢信。注意 Noul 答案没有单独的 confidence 字段——离 0.5 的距离就是置信度;Choice 和 Score 的答案则带。

    npm run demo 终端输出:jev-1.13.0 对愤怒消息返回 isFrustrated noul 0.94,换成友好消息后变 0.03,附 token 用量与耗时。
    0.94 对 0.03——翻转就是信号。跳转至 16:10
  6. 6

    Noul、Choice、Score 三个问题合并一次调用

    all_questions.ts 沿用同一个 state,把三种原语叠在一起:isFrustrated 仍是 Noul;requestType 变成 Choice——「What is the main request in this message?」,选项为 an upgrade、a refund、a replacement、other;frustrationLevel 变成 Score,刻度是三级描述,从 makes a request without expressing frustration,到 expresses dissatisfaction without strong anger,再到 expresses strong anger。把每一级都描述清楚,模型拿到的信息远比光秃秃的 1–10 多,而三个问题仍然只走一次 API 调用。

    all_questions.ts 在一次 Jev 调用中组合 noul 不满判断、upgrade/refund/replacement/other 的 choice,以及三级愤怒刻度的 score。
    三种问题类型,同一个 state,一次调用。跳转至 17:20
  7. 7

    按阈值分支——这步归你的 Agent 或 MCP 工具所有

    一次调用同时拿回全部类型化答案:requestType = 「an upgrade」,置信度 0.99;frustrationLevel = 1.02,置信度 0.97(不满中带一点怒气);总耗时 834 ms、输入 495 token。演示设了 0.8 的 reviewThreshold,把消息标记为 support review 而不是留在普通队列——这个分支正是 Agent 的接入点:Jev MCP 工具或 Skill 用同一批答案把任务路由给更便宜的模型、从 145 个 skill 里挑一个加载,或者在大模型看到之前拦下不可逆命令。按视频里的建议:阈值要用你自己的样本去调。

    Jev 终端响应:choice 返回 an upgrade 置信度 0.99,score 返回 1.02 置信度 0.97,与 noul 答案同时返回,总耗时 834 毫秒、输入 495 token。
    834 毫秒拿回三个类型化答案——剩下的交给阈值。跳转至 18:30

常见问题(FAQ)

Jev 有官方 MCP server 吗?

没有。TypeSafe 给编程 Agent 的官方路线是 drop-in Agent Skill——一个把 Jev API 上下文交给 Claude Code 或 Codex 的插件,而且文档明确说 Jev 不是 Agent 背后的大模型(不存在 model: jev-latest 选项)。MCP 传输层完全由社区补齐:Glama 目录收录了 20+ 个第三方 Jev MCP server,头部包括 jkudish/jev-browser(268 星、npm 周下载约 3.7k)、maxkimambo/jev-mcp(约 981/周)、walidboulanouar/jev-agent-kit(11 个工具)和 Bizuayeu/GenericJevMCP(自托管 DiffusionGemma 后端)。

怎么把 Jev 接进 Claude Code?

官方 Skill 路线两条命令:claude plugin marketplace add typesafe-ai/skills,再 claude plugin install typesafe@typesafe-ai(手动安装则把 skills/typesafe-ai 目录拷进 ~/.claude/skills)。社区教程还演示了第二条路——把 OpenRouter API key 和一段路由配置提示词发给 Agent,它会自己把基于 Jev 的模型路由接进会话。同样的 agent-setup 提示词加 skill.md 模式在 Cursor 或 Codex 里也能用。两条路最终都落到本攻略演示的 state + 类型化问题调用上。

Jev 决策层对我的 Agent 到底有什么用?

社区实测给了硬数据。过滤 MCP/Skill 上下文:29,150 token 的 server 列表被收敛到 Stripe webhook 任务实际需要的 2 个——上下文约省 5 倍,每 1000 次请求估计省 $236。安全保险丝:一条不可逆的 rm -rf 由 Jev 在约半秒内拦下,而主模型要约 5 秒和 124 个 token。批量分类:30 张客服工单 2.6 秒分完,成本只有 LLM 的零头。路由、工具过滤、权限门禁——反复出现的就是这三个模式。

Agent Skill 还是社区 MCP server,该用哪个?

两者各管一半。官方 Skill 是上下文:教会你的 Agent 何时、如何调用 Jev,与官方文档保持一致,随 SDK 更新。社区 MCP server 是传输:把 Jev 暴露成运行时工具,任何 MCP 客户端——Claude Code、Cursor、Codex——都能在循环内调用,做模型路由、工具过滤或权限门禁。务实的组合是:用官方 Skill 掌握接入知识,再挑一个维护良好的社区 server 做循环内决策;并且如 MG 的安装视频所提醒的,先在自己的样例上跑评估,再让生产环境信任这些判断。

相关推荐