English · 快速开始 · 中文文档 · 接入 AI · Benchmark
Jev Filter
AI agent 工具结果的语义筛选。 将大量工具输出转成精简、类型化的判断,再交给主模型。原文保存在程序内部,返回相关证据与待复核 ID,完整记录仍可按 ID 回查。
- 结合上下文筛选。 根据任务与有来源的事实,筛选搜索结果、完整代码符号和关联日志。
- 每个判断都有出处。 返回类型化答案、来源 ID 与待复核项,保留缺失事实和部分失败。
- 由程序验证动作。 对短浏览器与桌面目标,Jev 选择观察到的控件;程序负责执行、安全门禁和终态检查。
由 Apixly 独立维护的 MIT 项目。官方 npm 包:@apixly/jev-filter。功能与适用条件。
发现与接入 MCP: 查看 MCP Servers 收录页 ↗ · 配置客户端与四个只读工具 →
快速开始
Node.js 22+ · macOS / Linux · npm 发行包内置 Python。 Windows 可用 WSL,或原生安装 Python 包。安装与 doctor 可离线完成;推理需要 TypeSafe Jev API key。
npm install -g @apixly/jev-filter
jev-filter doctor
在任意目录运行:
export TYPESAFE_API_KEY='your-key'
jev-filter query --input - --mode choose \
--task '选择当前仍未恢复的 DNS 故障' <<'JSON'
[
{"id":"a","text":"DNS 已恢复,请求成功。"},
{"id":"b","text":"DNS 仍失败,无法建立连接。"}
]
JSON
预期选中 b,以下省略诊断元数据:
{"selected_ids":["b"],"review_ids":[],"complete":true}
处理实际批量数据时,在原文进入聊天之前,让 CLI 在一次调用内完成采集与筛选:
jev-filter exec --task '找出尚未恢复的网络故障' \
--analysis analysis.json -- your-collector --json
从可复制的分析契约开始。退出码 2 仍需解析结果包:complete=false 与 review_ids 表示需要关注。小例子用于了解接口;精确路径、ID、selector、计算和少量短输出通常使用原生工具。安装、密钥与结果处理 →
实用教程
- RAG 与 AI agent 的搜索结果筛选:根据明确证据要求筛选段落,再交给主模型。
- 按行为搜索代码:完整代码符号、可选有界召回与语义判断相结合。
- 排查关联日志:保留请求历史,区分当前故障和已经恢复的事件。
提供可复制的合成输入与分析契约。在文档站阅读教程 · 常见问题。
实测优势
以下为 2026-10-04 使用合成输入的付费真实调用。公开源码哈希、逐次用量、耗时与失败;每个结果对应明确范围。
- 返回工具上下文: 24 次真实 agent 运行中减少 91.6–97.2%。过滤臂完整完成 12/12,原文臂 11/12,24/24 组 ID 全对。
- 同输出筛选: Jev 合批 API 路径筛选 96 条记录的耗时中位为 1.313 秒,已登录 Codex CLI 的 Luna 为 13.421 秒、Astra 为 14.543 秒。全部 9/9 次选中同样的 48 个 ID;CLI 包含启动耗时,Jev 后面没有主模型续跑。
- Jev 阶段合批: 相比单条并发 Jev 调用,96 个请求变成 2 个,输入 tokens 减少 56.5%,筛选速度为 2.58 倍。只测 Jev 阶段,不是整轮 agent 提速。
耗时和费用各有得失。 六个整段对比单元中有五个慢了 0.1–18.4%;冷输入 API 等价费用从下降 23.2% 到增加 1.1%。订阅实际账单未知。上下文变小,不保证耗时或实际账单下降。
筛选路径、实测结果与适用范围
更快的语义筛选,用相同的预期答案核验。 三条路径都按两个语义条件筛选 96 条记录,精确返回同样的 48 个匹配 ID。
| 实测路径 | 筛选耗时中位 | 精确完整结果 |
|---|---|---|
Jev jev-1.13.0 · 自动合批 API |
1.313 秒 | 3/3 |
Luna gpt-5.6-luna · 已登录 Codex CLI |
13.421 秒 | 3/3 |
Astra gpt-6-astra · 已登录 Codex CLI |
14.543 秒 | 3/3 |
这里对比可用的执行路径,包含 CLI 启动与主模型回合,没有分离模型原生延迟;主模型路径均为 medium 推理、不使用工具。每臂三次是 smoke 样本,不是整轮 agent 提速或跨任务保证。逐次证据 · 方法与复现

| 优势 | 实测结果 | 范围与代价 |
|---|---|---|
| 更快完成重复判断 | 筛选速度 2.58 倍:3.215 → 1.246 秒,耗时减少 61.2%;Jev 输入 tokens 少 56.5%。 | 单条并发与自动合批并发 Jev 对比,96 条合成记录 × 两个判断,每臂三次,12/12 次结果精确。只测 Jev 阶段,并发上限 12;不是与主模型的速度对比。数据 |
| 聚焦主模型上下文 | 返回工具上下文减少 91.6–97.2%;过滤臂完整完成 12/12,原文臂 11/12;24/24 组 ID 全对。 | 24 次真实 agent 运行、三个合成场景、两个主模型、每臂两次。五个单元慢了 0.1–18.4%;冷输入 API 等价费用从下降 23.2% 到增加 1.1%。订阅实际账单未知。数据 |
| 找回更多相关代码 | 正确匹配 4/12 → 10/12,误报为零。 | 精确候选与可选召回均经过原生语义筛选。返回上下文 5,284 → 9,706 bytes;词法完全无交集仍漏掉。数据 |
| 定位真正要查的变更 | 两次重复都选对 4/4 个目标变更;相比保留全部文件,返回上下文减少 23.9%。 | 八个合成文件、两次重复。语义筛选增加模型用量,整段耗时中位 503 → 1,465 ms。数据 |
| 验证实际接入链路 | 13/13 项付费 E2E 通过,包含 MCP 精确证据回查和 64/64 条 survey 主题标注。 | Python CLI、全新 npm 0.4.0 JS/原生包、官方 MCP、本地 Chromium 提取与 survey。小型合成夹具;这些公开适配层没有暴露提供方返回的实际模型 ID。数据 |
| 走进滚动容器找到目标 | 同一严格 0.55 / 0.10 策略下,嵌套滚动验证完成 0/3 → 3/3。 | 固定浏览器源码 A/B,由程序补充观察到的容器证据。六次普通目标运行仍需复核;完成更多步骤会增加调用、上下文和耗时。数据 |

早期证据:离线契约、合批与开放网站限制
| 实验 | 对应日期的结果 | 范围 |
|---|---|---|
| 离线发版契约 · 2026-10-04 | 预期行为 3/13 → 13/13;错误夹具动作 3 → 0。 | 构造响应,未调用模型;复核与诊断上下文增加。数据 |
| Jev 合批 · 2026-09-22 | 输入 tokens 减少 56.5%;合批并发比单条并发快 32.4%。 | 96 条合成记录 × 两个判断,每臂两次;只测 Jev 阶段。数据 |
| 历史整段任务 · 2026-09-23 | 返回工具上下文减少 88–97%。 | 四个合成场景、48 次;费用与耗时各有得失。数据 |
| 历史托管夹具 · 2026-09-30 | 浏览器 15/15 Camofox、18/18 CDP;桌面 12/12。 | 当时的 planner 策略与本地夹具;不能作为当前严格策略或开放网页的完成保证。数据 |
| 公开网站 · 2026-09-30 | 只读目标完成 16/48;去掉访问墙与提供方失败后为 16/34。 | 一个环境、24 个目标;自定义控件与验证偏弱。数据 |
完整方法与历史数据。最新浏览器实验保留失败的候选裁剪变体与未知提供方尝试;安全停下不等于目标已完成。
看程序如何把目标变成可验证的结果
每一步先观察页面或窗口,让 Jev 在程序枚举的操作与控件里选择,重新核对目标,再执行和验证。模型输出不会变成 selector、坐标、命令或未经检查的文字。不可逆动作会暂停等待确认。
jev-filter browse --url https://shop.example/ \
--goal 'Find in-stock red shoes in size 42' \
--value query='red shoes' --verify-text 'Search results'
把示例网址替换成允许测试的页面,并提供有意义的校验条件。browse、desktop 必须同时满足 status: done 与独立终态验证;extract、survey 要求 ok 且 complete。选中动作或模型单独返回 DONE 都不是完成证明。独立的主模型接管参考 在严格复核后达成 6/6 个预期结果;它增加明显的主模型耗时,属于参考集成,不是产品内置自动回退。
交互式回放:浏览器、桌面、调研 · 录制方法 · 安全门禁与限制
一套核心,接入现有 AI
CLI · Python · JavaScript / TypeScript · MCP。 可以调用 shell、嵌入 jev_filter.batch.run、从 @apixly/jev-filter 导入 createClient,或向 MCP host 提供四个只读工具。每条接入路线复用同一核心,保留证据与部分结果。JavaScript 与 MCP 示例 →
配套 skill 支持 Codex、Claude Code 或兼容的工具框架:
# Codex;Claude Code 使用 ~/.claude/skills。
mkdir -p ~/.codex/skills
cp -R "$(npm root -g)/@apixly/jev-filter/skills/jev-filter" ~/.codex/skills/
给 agent 一段明确的使用规则:
大量记录需要标准明确的语义判断时使用 jev-filter。
传入任务、范围、排除条件、成功标准和有来源的已知事实。
让采集 → 分析 → 精简输出在一次工具调用内部完成。
复核未确定的 ID;精确查询和少量短结果使用原生工具。
不重复已完成判断,不再次封装已有 Jev 流程。
Jev 不会自动继承聊天历史。共享事实放 context,历史随各记录传入,并声明必要字段。授权与执行验证继续由现有程序负责。五分钟接入 → · 完整接入指南 →
按任务选择入口
| 任务 | 命令 / API | 指南 |
|---|---|---|
| 采集可信命令的输出 | exec |
采集命令 |
| 筛选或分类 JSON 候选 | query |
结合上下文选择 |
| 定位代码行为 | code-search |
完整代码符号 |
| 检查有界 Git 变更 | diff-review |
命令参考 |
| 归类关联的 JSON/JSONL 事件 | triage |
关联日志 |
| 选择本地 Camofox 页面控件 | locate |
网页选择 |
| 完成短网页目标或采集页面记录 | browse · extract |
浏览器托管执行 |
| 完成 Windows/macOS 应用目标 | desktop |
桌面 |
| 对大量记录分类汇总 | survey |
大量记录 |
| 在 Python 中嵌入类型化推理 | jev_filter.batch.run |
Python 接入 |
| 离线评测标注判断 | eval |
评测示例 |
| 接入 Node.js 程序或 MCP host | createClient · mcp |
接入示例 |
从输入到发行,每一步都可核对
- 有界推理,无结果缓存。 自动合批,最多 30 个请求并发;不缓存判断结果。
- 本地证据与数值统计。 私有原文可按 ID 回查;可选本地看板展示用量、未知项和负净值,输入等价值估算不作为账单节省。
- 明确的信任边界。 推理输入会发送到 TypeSafe;
exec执行你的可信命令,不是沙箱。托管执行保留新鲜度、来源和桌面安全门禁。安全策略 - 可移植、可核验的发行包。 Python 核心、内置运行时的 npm 平台包、校验和与构建来源。发行与恢复
旧 jev-context 命令与 Python imports 保持兼容。Jev Filter 由 Apixly / JIA-ss 独立维护,与 TypeSafe 无隶属关系。
参与开发
git clone https://github.com/apixly-ai/jev-filter.git
cd jev-filter
python -m venv .venv && . .venv/bin/activate
python -m pip install -e '.[code,dev]'
sh scripts/check.sh
npm test

