jev 代码
Jev,TypeSafe's System One分类器,作为克洛德代码,Codex,Pi和OpenCode内部的工具.
被打出标签,是/否检查,分数,以及有校准概率的排名,以几百毫秒计.
编码器整天做出小的分类决定:在这40个CI失败中,哪一个是 真实的,哪些文件回答了这个问题, 这个 PR 做它描述的,有多严重 每一个发现。 他们通常通过目击,写作 regex,或烧出一个前沿模型 呼叫每个项目.
杰维 是一个决定模型,而不是文本模型:您发送证据并输入 问题,它会用校正概率返回输入的答案, 永远不会出现. jev 代码 转弯 成为四位编码员和船只的一等工具 一种技能,在 以达到它.
┌──────────────┐ jev_classify / jev_check / ... ┌───────────┐ POST /v1/systemone ┌──────────────┐
│ Claude Code │ ───── MCP (stdio) ─────────────▶ │ │ ───────────────────▶ │ Jev, hosted │
│ Codex │ ───── MCP (stdio) ─────────────▶ │ jev-code │ │ on TypeSafe │
│ OpenCode │ ───── MCP (stdio) ─────────────▶ │ │ ◀─────────────────── │ OpenRouter │
│ Pi │ ───── native extension ────────▶ │ │ typed answers + │ or Vercel │
│ any shell │ ───── jev-code CLI ────────────▶ │ │ probabilities │ AI Gateway │
└──────────────┘ └───────────┘ └──────────────┘
你得到的东西
| 块 | 它会做什么 |
|---|---|
| 五个工具 | jev_classify, (中文(简体) ), jev_check, (中文(简体) ), jev_score, (中文(简体) ), jev_rank, (中文(简体) ), jev_ask名字相同,JSON也一样,在每一个绳子. |
| 一个技能 | skills/jev/SKILL.md 告诉代理在任务需要分类器时,如何写出好的课和问题,以及如何对答案采取行动. 根据TypeSafe官方技能改编的参考文献覆盖了将Jev建设成用户自己的代码. 跟着 代理技能 谱. |
| 一个命令设置 | jev-code setup 探测到Claude Code, Codex, Pi, 和OpenCode 在您的机器上, 将技能和工具都线入其中. |
| 国家行动倡议 | 同样的出击工具,所以技能仍然在没有注册工具的绳子上工作. |
快开始
1. 安装到您的代理中 (节点.js 20+):
npx -y @french-castle/jev-code@latest setup
它可以探测到机器上的绳子 并且每张都复制技术并登记 工具。 当您的 shell 中没有 API 密钥时, 它会要求一个右侧( 隐藏输入) 和哪个主机 它属于: TypeSafe, OpenRouter, Vercel AI Gateway, OpenAI, 或您的系统之一网关 本身,在这种情况下,它也要求提供网关的URL。 没有其他配置 .
添加带状名称以明确( A)setup claude codex pi opencode, (中文(简体) ), --project 要安装到
以当前仓库代替您的用户配置,或 --dry-run 先看计划.
最好把钥匙留在你环境中? 运行前导出它 setup,它被捡起来
没有急事。 Pi和CLI也是这样读的 所以 setup 打印要添加到您的行
粘贴密钥后 shell 配置文件 :
export TYPESAFE_API_KEY=... # TypeSafe direct: console.typesafe.ai/keys
export OPENROUTER_API_KEY=sk-or-... # OpenRouter: already set if you use it elsewhere
export AI_GATEWAY_API_KEY=vck_... # Vercel AI Gateway
2. 检查效果:
npx -y @french-castle/jev-code@latest doctor --live
3. 重新开始你的代理人 (或 /reload 请求需要分类器:
尝试上次 CI 运行中失败的测试 : 哪些是 flashy , 哪些是真正的 bug ?
代理装入 jev 技能,电话 jev_classify 与失败和类集
页:1 auto 并告诉你哪些是用手检查的.
打电话的样子
代理人发送原始证据及其所属类别:
{
"instructions": "Classify each test failure by its most likely root cause.",
"items": [
{ "id": "test_login_sso", "text": "TimeoutError: SSO callback not received within 10s (attempt 3/3)" },
{ "id": "test_price_rounding", "text": "AssertionError: expected 19.99, got 19.989999999" }
],
"classes": {
"infrastructure": "Network, database, or runner problems unrelated to the code; likely passes on re-run",
"assertion_bug": "The code produced a wrong value; deterministic and reproducible",
"other": "Cannot tell from the excerpt"
}
}
并获得一个标签, 完整的发行, 和决定 它可以分支:
{
"summary": { "items": 2, "auto": 2, "review": 0, "by_label": { "infrastructure": 1, "assertion_bug": 1 } },
"results": [
{ "id": "test_login_sso", "label": "infrastructure", "probability": 0.93, "margin": 0.88, "confidence": 0.9, "decision": "auto", "probabilities": { "infrastructure": 0.93, "assertion_bug": 0.05, "other": 0.02 } },
{ "id": "test_price_rounding", "label": "assertion_bug", "probability": 0.97, "margin": 0.95, "confidence": 0.95, "decision": "auto", "probabilities": { "infrastructure": 0.01, "assertion_bug": 0.97, "other": 0.02 } }
],
"thresholds": { "auto_accept": 0.85, "min_margin": 0.5 },
"model": "jev-latest",
"usage": { "input_tokens": 310, "output_tokens": 18 }
}
更多有效载荷 examples/ 和全员合同
skills/jev/references/tools.md。 。 。 .
工具
| 工具 | 什么时候问 | 带回来 |
|---|---|---|
jev_classify | 许多物品,你们各一个标签 | 标签、概率、边距、, decision: auto | review |
jev_check | 有/没有关于一件证据的问题 | 概率, verdict: yes | no | uncertain |
jev_score | 许多项目按一个定级( 高度、 优先级) | 得分、最近的关卡、信心、决定 |
jev_rank | 哪位候选人回答一个问题 | 每个候选人的关联性,分类,加 any_relevant |
jev_ask | 其他一切:一国的混合问题类型 | 原始系统一的答案 |
每个工具在花费 a 之前先验证本地输入( 形状、 重复 ID、 请求大小) 调用,将每个项目分批为一个请求,并返回根据您可以计算的阈值计算的决定 每一次通话都取消 政策留在你手中;Jev提供概率.
人均健康详情
克劳德代码
jev-code setup claude 复制技能到 ~/.claude/skills/jev/ 运行
claude mcp add --scope user jev -- npx -y @french-castle/[email protected] mcp。这些工具显示为
mcp__jev__jev_classify 和朋友;技能是: /jev。 。 。 .
偏好更新自己的插件吗 ? 这个寄存器也是 Claude 代码插件市场:
claude plugin marketplace add FrancoisChastel/jev-code
claude plugin install jev-code@jev-code
插件将技能捆绑( E)/jev-code:jev)和MCP服务器. 手动配置和
项目范围注释 : 文献/档案/密码。 。 。 .
代码
jev-code setup codex 复制技能到 ~/.agents/skills/jev/ (Codex的用户级技能)
目录,与 Pi 和 OpenCode 共享)并运行 codex mcp add jev -- npx -y @french-castle/[email protected] mcp。 。 。 .
没有 codex 二进制它附加一个 [mcp_servers.jev] 表格为 ~/.codex/config.toml
换句话说 举起手来 $jev细节 : 文献/档案/编码。 。 。 .
Pi
Pi没有MCP客户端,所以Jev-code也是一个 pi 软件包 谁
扩展注册 . jev-code setup pi 运行
pi install npm:@french-castle/jev-code 复制技能到 ~/.agents/skills/jev/运行
/reload 之后在PI内部。 细节 : 文件/档案/p.md。 。 。 .
打开代码
jev-code setup opencode 将本地 MCP 条目添加到 ~/.config/opencode/opencode.json (备份)
将技能复制到 ~/.agents/skills/jev/,读取 OpenCode。 一个本地人
自定义工具变体生活在 integrations/opencode/jev.ts。 。 。 .
细节 : 文件/档案/公开代码.md。 。 。 .
只有技能,任何代理
该技能是标准的代理技能目录,所以 技术。sh 安装器 为它所支持的70+代理工作:
npx skills add FrancoisChastel/jev-code --skill jev
与 MCP 服务器对等(npx -y @french-castle/[email protected] mcp在你的经纪人的MCP配置中,
或者让特工回到CLI.
国 际
jev-code setup [claude|codex|pi|opencode ...] [--project] [--dry-run] [--no-env] [--no-prompt]
jev-code doctor [--live] # which host and key are in use, what is installed
jev-code classify --input payload.json # same JSON as the tool
echo '{"state":"12 passed, 0 failed","checks":{"green":"Did every test pass?"}}' | jev-code check
jev-code rank --input candidates.json --pretty
jev-code mcp # what the harness configs launch
jev-code skill # path of the bundled skill
输出是JSON在stdout。 退出代码2表示使用或配置问题,1表示API失败.
升级
调用配置 启动一个固定命令, npx -y @french-castle/[email protected] mcp,所以一个经纪人
一旦该版本被缓存,就立即启动并下线工作,在你下面没有任何变化,直到
你决定 要升级, 请再次运行设置 @latest:它用新接针重新登记工具,
替换旧条目(亦通过 claude mcp 财务报告和审定财务报表 codex mcp),并刷新复制的文本
技术. doctor 显示每个注册的被绑定版本,并说何时重新运行设置.
npx -y @french-castle/jev-code@latest setup
安装用0.2.1或更早发射无锚命令。 npx 保留第一个版本 缓存一个未绑定的名称, 并且从不寻找更新的名称, 因此安装时看不到更新 他们自己。 运行上面的命令一次,将它们移动到被绑定的命令.
配置
需要一个东道主。 下面的前三个在同一个系统一API后面服务Jev,所以 工具的操作相同,并且只有您通过修改支付的账户; 您的网关也一样 自有能说 API(下级) (中文(简体) ). 后面两个是其他模式的答案 相同的问题:OpenAI的决定 API 和Ollama的地方决定模式 不需要钥匙.
| 东道主 | 密钥变量 | 默认模式 | 拿个钥匙 |
|---|---|---|---|
| 类型安全( 直接) | TYPESAFE_API_KEY | jev-latest | 控制台.类型安全.ai/键 |
| 打开路透社 | OPENROUTER_API_KEY | jev-latest | 开口/设置/钥匙 |
| Vercel AI 网关 | AI_GATEWAY_API_KEY | typesafe-ai/jev | AI 网关 API 密钥 |
| OpenAI 决定 API( 公共β, 选入) | OPENAI_API_KEY + 键 JEV_CODE_PROVIDER=openai | gpt-6-luna | 平台. openai.com/api-keys (中文(简体) ) |
| Ollama( 本地、 选入) | 无密钥; JEV_CODE_PROVIDER=ollama, (中文(简体) ), OLLAMA_HOST 选项 | nimble | docs.ollama.com/能力/决定 |
选择主机的方式 :
- 变相决定. 一个键被发送到它所坐的变量的主机,不管它看起来怎样
类似; 密钥形状改变( TypeSafe 既发又发)
ts_...财务报告和审定财务报表apikey_...键,所以 jev 代码永远不会 从他们猜.doctor当密钥看起来属于别处时, 添加提示 . TYPESAFE_API_KEY是Safe SDK 读取的通用变量,所以它遵循TYPESAFE_BASE_URL财务报告和审定财务报表JEV_CODE_PROVIDERsDK 的方式: 将基址指向 OpenRouter或Vercel AI Gateway发送到那里. 一个针对主机的变量从不旅行.- 当设置了数个密钥时,表的第一行获胜.
doctor说在用哪个. JEV_CODE_PROVIDER=openrouter(或typesafe, (中文(简体) ),vercel, (中文(简体) ),openai, (中文(简体) ),ollama迫使一个宿主. OpenAI 从未从环境中接取过OPENAI_API_KEY: 该变量被设置在许多外壳中 因为其他原因,所以发送代理证据 有你的决定JEV_CODE_PROVIDER=openai(或粘贴 OpenAI 键,当setup询问, 哪些同时存储 . Ollama没有钥匙可以检测,所以选择的方法也一样.- 特定主机的密钥只发送到自己的主机;拒绝异议的基址 在任何请求之前 确切的规则在 警卫。 。 。 .
| 变量 | 默认 | 目的 |
|---|---|---|
JEV_CODE_PROVIDER | 自动 | 强制 typesafe, (中文(简体) ), openrouter, (中文(简体) ), vercel, (中文(简体) ), openai,或 ollama (后二所须. |
OLLAMA_HOST | localhost:11434 | Ollama的服务器,作为一个URL, host:port或裸体主机. |
TYPESAFE_BASE_URL | 每个东道主 | 代理, 或您自己的系统之一网关; 客户端附件 /v1/systemone键,除非 JEV_CODE_PROVIDER 已经设定. |
TYPESAFE_DEFAULT_MODEL | 每个东道主 | Pin a Jev 版本 : jev-1.13 安全类型或 OpenRouter; Vercel 用途 typesafe-ai/jev。 。 。 . |
JEV_CODE_TIMEOUT_MS | 30000 | 潜入暂停. |
JEV_CODE_MAX_RETRIES | 2 | 重复429,5xx,超时,以及连接出错. |
这个 TYPESAFE_* 名字与正式的SAFE SDK相匹配,所以一个导出服务于一切.
OpenAI 决定 API (公有β)
OpenAI 的决定 API 回答相同的三个问题形状( 是/否, 选择一个, 得分在 由GPT-6 Luna提供服务。 它开放给每个开发商 在公开beta 2026年10月6日,预计在接下来的几周内普遍可用;参见OpenAI's 指南. jev 编码地图 因此,有效载荷和结果没有变化,这些差异是:
- 请求形状不同于System One。 Jev-code 翻译它,遵循 OpenAI API 参考。 。 。 .
- 是/没有问题没有单独的标准领域,所以
yes财务报告和审定财务报表no描述被折叠 输入指示。 记分传说是从你的级别重建的. - 该模型可以在回答其他问题时拒绝一个问题. 这东西会带回来的
status: "refused"(单位:千美元)review决定uncertain判决jev_check),以及jev_ask将编号列在refused。重试相同的输入不会改变它. - API也取出图像;工具只保留文本,就像它们在每个主机上一样.
- 定价是OpenAI的:在启动时,每百万个输入令牌有0.1美元,输出则无. 工具
产出携带
usage。 。 。 .
保持选择性. OPENAI_API_KEY 由于其他原因被设置在许多贝壳中,所以发送代理
给 OpenAI 的证据 JEV_CODE_PROVIDER=openai (或粘贴键当 setup 请问)。 A 类
403 来自API的简略报告 doctor --live。 。 。 .
Ollama(当地)
Ollama 0.35, 以及后来在同一个系统One API背后在当地服务决定模型,所以 没有东西离开你的机器 没有钥匙 安装 Ollama, 绘制一个模型, 并选择 :
ollama pull nimble
export JEV_CODE_PROVIDER=ollama
npx -y @french-castle/jev-code@latest doctor --live
nimble 默认; tev1, (中文(简体) ), clef,以及 clef-flash 工作也一样TYPESAFE_DEFAULT_MODEL
选一. OLLAMA_HOST 在服务器上的点数 localhost:11434在奥拉玛自己的
标注. 图像输入, 哪些 clef 支持,不会被工具所暴露. doctor --live 说
当服务器被关闭或模型未被拉动时.
你自己的门户
任何会说 System One API 的服务器(POST /v1/systemone,同一请求和答复
typeSafe SDK 已经知道.
网关的钥匙进去了 TYPESAFE_API_KEY,SDK的通用变量及其地址在
TYPESAFE_BASE_URL· ; TYPESAFE_DEFAULT_MODEL 当网关不服务时, 命名模型
jev-latest数字 :
export TYPESAFE_API_KEY=... # the gateway's key
export TYPESAFE_BASE_URL=https://gateway.example/api # the client appends /v1/systemone
export TYPESAFE_DEFAULT_MODEL=vendor/jev # when the gateway's model id differs
setup 当它询问粘贴密钥是用于哪个主机时, 它会提供同样的东西: 选择“ 其他系统 ”
一个网关,给 URL 和模型, 和三个变量去键将拥有的地方
不见了。 在发送任何信息之前检查 URL: 绝对 http(s) 没有证书的 URL,
查询或片段,在 /v1/systemone特定主机的密钥( :OPENROUTER_API_KEY
永不顺从 TYPESAFE_BASE_URL 到网关,除非 JEV_CODE_PROVIDER 名称
东道主; doctor 显示请求的去向.
安全说明
- 只有你传递给工具的有效载荷 离开你的机器 只有宿主的钥匙 属于。 您的寄存器或会话中, 没有任何内容单独读取 .
- 密钥是从环境中读取的,只发送到发布密钥的主机,并且从未
记录.
setup复制正在使用的密钥到被过滤的环境 工作;--no-env跳过. - 已有配置文件在之前已备份
setup修改它们.
主机,代理规则,什么 setup 如何报告脆弱性:
警卫。 。 。 .
如何运作
src/tools/ 持有每个工具的单一定义: zod 计划、描述和 run
函数,用于构建一个系统一请求并绘制对决定的答案。 MCP 服务器
(单位:千美元)src/mcp/),Pi扩展(integrations/pi/),OpenCode自定义工具
(单位:千美元)integrations/opencode/)),以及CLI(英语:src/cli/)是薄适配器在地层上,即
为什么所有的有效载荷和结果都是一样的. src/core/providers.ts 表格为
为Jev服务的主机; 添加一个会说 System One API 的机体是那里的一行. src/setup/ 已经知道
并且更喜欢每个带自己的CLI
编辑文件.
发展
git clone https://github.com/FrancoisChastel/jev-code && cd jev-code
npm install
npm run check # lint, typecheck, skill validation, tests with coverage, build, smoke
npm test # unit tests, no API key needed
TYPESAFE_API_KEY=... npm run test:e2e # a few live calls; any provider key works
尝试你的本地建筑 相对于一个真正的拉带 不出版:
npm run build
node dist/cli.js setup claude --command "node $PWD/dist/cli.js mcp"
node dist/cli.js setup pi --pi-source "$PWD"
见 捐款额 公约和释放程序.
相关
- 类型安全/技能: TypeSafe 自身的技能用于 大楼 jev-code上的产品是使用Jev 内部 编码代理;其 带有类型安全引用 为这个案例调整官方技能指导(MIT, TypeSafe AI).
- jkudish/jev-mcp (英语) 财务报告和审定财务报表 其最高级/ 类型安全 mcp:Jev的其他MCP服务器,有不同的工具集.
- 类型安全文件 编辑 llms.txt 指数。 。 。 .
- 捷夫开机 打开路透社 财务报告和审定财务报表 Vercel AI 网关,主机jev码 除TypeSafe外还有支持. 大赦国际 也为Jev服务,但有一个不同的请求信封;它尚未获得支持.
许可证
麻省理工学院 弗朗索瓦·查斯特尔. skills/jev/references/building-with-typesafe.md 调整
类型安全代理技能,"2026 TypeSafe AI,麻省理工学院. 贾夫和
TypeSafe是TypeSafe AI的商标;这个项目不属于TypeSafe.