Jev

io.github.Aitejiu由 GitHub 帳號 Aitejiu 發布v0.1.2更新於 Oct 24, 2026

Jev judgments for agents: injection scanning, shell risk gating, ranking

概覽

AI 產生的概覽

Jev 是本地 MCP 伺服器,為助理提供三項判斷工具:提示注入掃描、shell 指令風險評分與候選片段重排。

可以做什麼
掃描工具、網頁或郵件輸出中的注入指令,回傳 block、review 或 pass 結論及機率分數。從破壞性、接觸機密、外傳、不可逆四個面向為 shell 指令評分,回傳 deny、review 或 allow。依與查詢的相關性重新排序最多十個候選片段,用於檢索精排。
適用情境
適合在助理讀取不受信任的工具或網頁輸出、需要先篩查注入指令時使用;需要執行 shell 指令、希望先做風險閘門時;或需要對檢索到的片段做輕量重排時。
執行需求
以 stdio 方式在本機執行,從 PyPI 安裝為 jev-mcp,通常以 uvx 啟動,因此需要具備 uv 的 Python 環境。需要 TypeSafe API 金鑰,透過環境變數 TYPESAFE_API_KEY 提供。使用該金鑰意味著需要連線至 TypeSafe 服務的網路存取。
安裝前請注意
必須提供 TYPESAFE_API_KEY 金鑰,且不應寫入共用設定。工具輸出、shell 指令與候選文字會傳送至外部 TypeSafe 服務進行判斷,請避免傳入金鑰或敏感資料。判斷結果僅為模型建議而非保證;README 指出僅支援文字輸入、選項上限 255 個、以英語為主等限制。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Jev,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

jev-harness-lab

用 TypeSafe Jev(System One 决策模型)做 agent harness 工程实验的技术仓库:评测框架、基准报告、可运行的集成工具(MCP server、skill router)。

[skills.sh]

安装

① MCP server(给 agent 加三个 Jev 工具)

用 uv 一条命令,无需克隆:

bash
# 从 PyPIuvx jev-mcp
# 直接从 GitHub 源码运行uvx --from git+https://github.com/Aitejiu/jev-harness-lab jev-mcp

配置到任意 MCP 客户端(opencode / Claude Desktop 等):

json
{  "mcp": {    "jev": {      "type": "local",      "command": ["uvx", "--from", "git+https://github.com/Aitejiu/jev-harness-lab", "jev-mcp"],      "environment": { "TYPESAFE_API_KEY": "your-key" },      "enabled": true    }  }}

提供的工具:

工具作用
scan_injection扫描工具/网页/邮件输出里的注入指令,返回 block / review / pass
bash_riskshell 命令四维风险打分(破坏性 / 触密 / 外发 / 不可逆),返回 deny / review / allow
rank_candidates候选片段按相关性打分排序(RAG 精排)

MCP Registry 归属标记(勿改格式):

mcp-name: io.github.Aitejiu/jev

② Agent skill(让 Jev 帮主模型选 skill)

bash
npx skills add Aitejiu/jev-harness-lab --skill jev-skill-router

用 Jev 把任务路由到已安装的 skill,并且只加载选中那一个的完整指令,避免把整个 skill 目录塞进主模型上下文。技能页:https://www.skills.sh/aitejiu/jev-harness-lab/jev-skill-router

环境变量

两个集成都需要:

bash
export TYPESAFE_API_KEY=<your-key>

目录

.├── examples/            # 最小可运行示例(三原语、state、路由、护栏、抽取)├── eval/                # 评测框架:11 个基准脚本 + 24 份报告 + 原始结果│   └── datasets/        # 手工构造的数据集(如 130 条 shell 命令风险集)├── integrations/│   └── opencode/        # opencode 插件:jev_route_skill(skill 门控)├── skills/│   └── jev-skill-router/  # 可安装的 agent skill(SKILL.md + 独立脚本,skills.sh)├── docs/│   └── REPORT.md        # 技术评估报告(数据与结论)├── src/jev_mcp/         # MCP server 包(PyPI: jev-mcp)├── pyproject.toml       # Python 打包配置(console script: jev-mcp)├── server.json          # MCP Registry 元数据(mcp-name: io.github.Aitejiu/jev)├── mcp_server.py        # 兼容 shim:不安装也可 python mcp_server.py 运行├── skill_router.py      # 本地 skill 目录路由(Jev 选择并加载 SKILL.md)├── common.py            # .env 加载 + 共享 client└── requirements.txt

快速开始

bash
uv venv --python 3.12 .venvuv pip install -r requirements.txtecho "TYPESAFE_API_KEY=<your-key>" > .env
bash
# 最小示例.venv/bin/python examples/quickstart.py.venv/bin/python examples/noul.py          # criteria 对判断的影响.venv/bin/python examples/routing.py       # 阈值路由
# 跑评测(示例:skill router,501 个真实 skills).venv/bin/python eval/run_skillretbench.py --variant hybrid --per-setting 100

评测结果缓存在 eval/results/*.jsonl(已随仓库提交,可 --report-only 直接出报告);原始数据集在 eval/data/,需按 eval/README.md 的说明下载(已 gitignore)。

集成工具

MCP server

bash
.venv/bin/python mcp_server.py   # stdio
工具作用输入 → 输出
scan_injection扫描工具输出中的注入指令tool_output → action(block/review/pass) + 概率
bash_riskshell 命令四维风险打分command → action(deny/review/allow) + 破坏性/触密/外发/不可逆分数
rank_candidates候选片段相关性重排query + candidates(≤10) → 排序后的 index/score

接入 opencode 的配置示例(项目 .opencode/opencode.json):

json
{  "mcp": {    "jev": {      "type": "local",      "command": ["/absolute/path/to/jev-harness-lab/.venv/bin/python", "/absolute/path/to/jev-harness-lab/mcp_server.py"],      "enabled": true    }  }}

Skill router

bash
.venv/bin/python skill_router.py --query "帮我查飞书文档" --load

opencode 插件在 integrations/opencode/jev-skill-router.ts:注册 jev_route_skill(task) 工具,请求进来时用 Jev 从本地 skill 目录选出最合适的一个并返回其完整指令。参考做法是配合 agent.build.tools.skill = false 关闭内置 skill 工具,使主模型上下文不再携带整个 skill 目录。

主要基准结果(详见 docs/REPORT.md)

任务数据结果
间接注入检测InjecAgent 1,105 条阈值 0.10:P/R 100%,良性误报 0%
检索重排BEIR SciFact 900 对BM25 → Jev:MRR 0.622 → 0.843,Hit@1 50% → 78.3%
意图分类SNIPS / Banking777 类 97.9% / 77 类 80.3%
工具目录路由MetaTool 199 工具相似干扰 k=5 96.5%
Skill routerSkillRetBench 501 库hybrid 架构 R@1 75.8%(最强基线 38.0%)
命令风险门控自建 130 条危险拦截 100%、正常放行 98.2%
模型难度路由RouterBench51%(无信号,负结果)
轨迹失败归因Who&When 1,403 步AUROC 0.56(负结果)

总计约 22,500 次 API 调用、52.2M input tokens、$2.19。

说明

  • 所有 benchmark 使用公开数据集;原始结果 JSONL 已提交,报告可复现。
  • 部分官方基线为模拟实现(在报告中已标注)。
  • Jev 已知限制:choice 最多 255 个选项、仅文本输入、state+questions 共享约 32k tokens、英语为主。
  • 版本:jev-1.13.0,模型升级后建议重新评测。

來源:README.md,提交 29ddf82

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.2最新Sep 21, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。