Jev Filter

io.github.apixly-ai由 GitHub 帳號 apixly-ai 發布v0.4.2更新於 Oct 30, 2026

Read-only semantic filtering, code search, log triage and traceable evidence for AI agents.

概覽

AI 產生的概覽

唯讀的語意篩選 MCP 伺服器,依任務篩選記錄、程式碼候選與 JSON 事件,回傳精簡決策與證據回執。

可以做什麼
  • 依明確的任務與情境篩選傳入的記錄,回傳選中與未決的 ID 及證據回執
  • 在設定的工作區內蒐集有界的程式碼候選並判斷相關性,一律回報精確的正規表達式範圍
  • 對傳入的 JSON 事件進行去識別化與關聯,再挑出相關事件,不存取日誌檔或 shell
  • 從本次伺服器工作階段中先前產生且未變更的回執裡讀取一筆有界記錄
適用情境
當大量工具輸出、搜尋結果、程式碼符號或關聯日誌會佔滿助手的上下文,而你需要精簡且可追溯的篩選結果並保留未決項目時適用。適合 RAG 段落篩選、依行為搜尋程式碼與日誌分流,而非精確或簡短的查詢。
執行需求
透過 npx 以 stdio 在本機執行 npm 套件 @apixly/jev-filter;需要 macOS 或 Linux 上的 Node.js 22+,Windows 需使用 WSL 或原生安裝 Python。必須在 TYPESAFE_API_KEY 環境變數中提供 TypeSafe Jev API 金鑰;安裝與 doctor 檢查可離線完成,但推論需要網路存取。
安裝前請注意
推論輸入會傳送給第三方 TypeSafe,且呼叫依用量計費,金鑰務必妥善保密。回執與篩選結果不授予任何操作權限,授權與執行驗證仍由宿主程式負責。exec 指令會執行你自己信任的指令,並非沙箱。

安裝

在 SourceWeft 中

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

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

其他 MCP 客戶端

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

README

[Jev Filter: give your agent the signal. Collect once, decide with context, return the proof.]

[CI] [Latest release] [npm version] [Listed on MCP Servers] [MIT license] [M8ven Live monitoring]

简体中文 · Quick start · Documentation · Agent setup · Benchmarks

Jev Filter

Semantic filtering for AI agent tool results. Turn large tool outputs into compact, typed decisions before they enter your agent's context. Keep source records inside your program, return relevant evidence and unresolved IDs, and recover originals by ID.

  • Filter with context. Screen search results, complete code symbols and correlated logs against your task and supplied facts.
  • Keep decisions traceable. Return typed answers, source IDs and review items; preserve missing facts and partial failures.
  • Verify actions in your program. For short browser and desktop goals, Jev selects observed controls; the program owns execution, safety gates and final-state checks.

An independent MIT project maintained by Apixly. Official npm package: @apixly/jev-filter. What it does and when to use it.

Discover and connect: View the MCP Servers listing ↗ · Set up a client and four read-only tools →

Quick start

Node.js 22+ · macOS / Linux · Python included in the npm distribution. Windows: use WSL or install Python natively. Installation and doctor are offline; inference needs a TypeSafe Jev API key.

sh
npm install -g @apixly/jev-filterjev-filter doctor

Run this from any directory:

sh
export TYPESAFE_API_KEY='your-key'
jev-filter query --input - --mode choose \  --task 'Choose the CURRENT unresolved DNS failure' <<'JSON'[  {"id":"a","text":"DNS recovered; requests now succeed."},  {"id":"b","text":"DNS lookup still fails before connection."}]JSON

Expected selection, with diagnostics omitted:

json
{"selected_ids":["b"],"review_ids":[],"complete":true}

For real batches, collect and filter in one call, before raw output reaches the conversation:

sh
jev-filter exec --task 'Find unresolved network failures' \  --analysis analysis.json -- your-collector --json

Start with the copyable analysis contract. Parse the packet even on exit 2: complete=false and review_ids need attention. Small examples teach the interface; exact paths, IDs, selectors, calculations and short outputs usually belong in native tools. Installation, keys and result handling →

Practical tutorials

Copyable synthetic inputs and analysis contracts are included. Read the tutorials on the documentation site · FAQ.

Measured advantages

Paid live evidence from 2026-10-04, using synthetic inputs. Source hashes, per-run usage, timing and failures are public; each result belongs to its stated scope.

  • Returned tool context: 91.6–97.2% less across 24 real agent runs. Filtered completion was 12/12, raw completion 11/12, and all 24/24 ID sets were correct.
  • Same-output selection: Jev's batched API path screened 96 records in a median 1.313 s, versus 13.421 s for Luna and 14.543 s for Astra through signed-in Codex CLI. All 9/9 runs selected the same 48 IDs; CLI startup is included, and no primary-agent continuation follows Jev.
  • Jev-stage batching: 2 requests instead of 96, 56.5% fewer input tokens and 2.58× filtering speed versus single-record parallel Jev calls. This measures the Jev stage, not a whole-agent speedup.

Latency and cost vary. Five of six whole-operation cells were slower by 0.1–18.4%; cold API-equivalent cost ranged from 23.2% lower to 1.1% higher. Subscription billing remains unknown. Smaller context does not guarantee lower latency or billing.

Methods, negative results and reproduction · Per-run whole-operation data

Selection paths, measured results and scope

Fast semantic selection, checked against the same expected answer. All paths screened 96 records against two semantic conditions and returned exactly the same 48 matching IDs.

Measured pathMedian screening timeExact complete runs
Jev jev-1.13.0 · auto-batched API1.313 s3/3
Luna gpt-5.6-luna · signed-in Codex CLI13.421 s3/3
Astra gpt-6-astra · signed-in Codex CLI14.543 s3/3

This compares available execution paths, including CLI startup and the primary-agent turn; native model latency is not isolated. Primary paths use medium reasoning and no tools. Three repetitions are a smoke sample, not a whole-agent speedup or workload guarantee. Per-run evidence · Method and reproduction

[Same-output screening paths: Jev API median 1.313 s, signed-in Codex CLI Luna 13.421 s and Astra 14.543 s; every path 3/3 exact]

AdvantageObserved resultScope and trade-off
Get repeated judgments sooner2.58× filtering speed: 3.215 → 1.246 s, 61.2% less elapsed time; 56.5% fewer Jev input tokens.Single-record parallel vs automatic batch-parallel Jev, 96 synthetic records × two predicates, three repetitions per arm; all 12/12 runs exact. Jev stage only, parallel worker cap 12; not a primary-model speed comparison. Data
Keep the agent's context focused91.6–97.2% less returned tool context; filtered completion 12/12, raw 11/12; all 24/24 ID sets correct.24 real agent runs, three synthetic scenarios, two primary models, two repetitions per arm. Five/six cells slower by 0.1–18.4%; cold API-equivalent cost ranged from 23.2% lower to 1.1% higher. Subscription billing remains unknown. Data
Recover more relevant codeCorrect matches 4/12 → 10/12, zero false positives.Exact vs opt-in recall, both with native semantic filtering. Returned context grew 5,284 → 9,706 bytes; absent lexical overlap still misses. Data
Inspect the change that mattersAll 4/4 target changes selected in each repetition; returned context 23.9% lower than retaining every file.Eight synthetic files, two repetitions. Semantic triage adds model usage and increases median whole-operation time 503 → 1,465 ms. Data
Connect real interfaces13/13 paid E2E checks pass, including exact MCP evidence recovery and 64/64 survey topic labels.Python CLI, fresh npm 0.4.0 JS/native package, official MCP, local Chromium extraction and survey. Small synthetic fixtures; resolved model identity is unavailable from these public adapters. Data
Reach inside a scroll containerVerified nested-scroll completion 0/3 → 3/3 under the same strict 0.55 / 0.10 policy.Pinned browser source A/B; program adds observed container evidence. Six ordinary goal runs still need review. More successful work consumes more calls, context and time. Data

[96-record Jev filtering: 3.22 seconds to 1.25 seconds with automatic batching, 12/12 exact runs]

Whole-operation chart and reproduction

[Fresh whole-operation context reduction, API-equivalent cost and latency changes]

Method and all live results · Per-run JSON · CSV · Reproducible driver

Earlier evidence: offline contracts, batching and open-web limitations
ExperimentDated resultScope
Offline release contracts · 2026-10-043/13 → 13/13 expected behaviors; 3 → 0 false fixture actions.Scripted responses, no model calls; reviews and diagnostic context increase. Data
Jev batching · 2026-09-2256.5% fewer input tokens; batch + parallel 32.4% faster than single-record parallel.96 synthetic records × two predicates, two repetitions; Jev stage only. Data
Historical whole operation · 2026-09-2388–97% less returned tool context.48 runs over four synthetic scenarios; cost and latency vary. Data
Historical hosted fixtures · 2026-09-30Browser 15/15 Camofox, 18/18 CDP; desktop 12/12.Local fixtures under the then-current planner policy; not a current strict-policy or open-web completion guarantee. Data
Public websites · 2026-09-3016/48 read-only goals reached; 16/34 after excluding access walls and provider failures.24 goals in one environment. Custom widgets and verification were weak. Data

Full methods and historical data. The latest browser experiments retain failed pruning variants and unknown provider attempts; they do not turn a safe stop into a completed goal.

Watch the program turn a goal into a verified result

[Recorded synthetic shop run: Jev selects observed controls, the program pauses before placing an order, and verification follows confirmation]

Each step observes the page or window, lets Jev choose from program-enumerated operations and controls, rechecks the target, executes and verifies. Model output never becomes a selector, coordinate, command or unvetted text. Irreversible actions pause for confirmation.

sh
jev-filter browse --url https://shop.example/ \  --goal 'Find in-stock red shoes in size 42' \  --value query='red shoes' --verify-text 'Search results'

Replace the example URL with your permitted test page and meaningful verifier. For browse and desktop, require status: done and an independent final-state check; extract and survey require ok and complete. A selected action or model-reported DONE alone is not proof of completion. A separate verified primary-planner reference reached 6/6 expected outcomes after strict review; it adds substantial model time and is not an automatic fallback shipped in the product.

Interactive replay: browser, desktop, survey · Recording method · Safety gates and limitations

One core, your existing agent

CLI · Python · JavaScript / TypeScript · MCP. Use the shell, embed jev_filter.batch.run, import createClient from @apixly/jev-filter, or expose four read-only MCP tools. Each route keeps evidence and partial results in the same core. JavaScript and MCP examples →

Install the supplied skill for Codex, Claude Code or another compatible harness:

sh
# Codex; use ~/.claude/skills for Claude Code.mkdir -p ~/.codex/skillscp -R "$(npm root -g)/@apixly/jev-filter/skills/jev-filter" ~/.codex/skills/

Give the agent one routing rule:

text
Use jev-filter for many records that need a clear semantic judgment.Pass the task, scope, exclusions, success criteria and sourced facts.Keep collection → analysis → compact output inside one tool call.Inspect unresolved IDs; use native tools for exact or short work.Do not repeat settled judgments or wrap an existing Jev workflow again.

Jev does not inherit the agent's chat. Put shared facts in context, history on each record, and declare required fields. Keep authorization and execution verification in your host program. Five-minute setup → · Full integration guide →

Find the right entrypoint for your task
TaskCommand / APIGuide
Capture a trusted command's outputexecCollector recipe
Select or classify JSON candidatesqueryContext-aware selection
Locate code behaviorcode-searchComplete code symbols
Review a bounded Git changediff-reviewCLI reference
Triage related JSON/JSONL eventstriageCorrelated logs
Select a control on a local Camofox pagelocateBrowser selection
Complete a short web goal or extract page recordsbrowse · extractHosted browser guide
Complete a Windows/macOS app goaldesktopDesktop guide
Classify and summarize many recordssurveySurvey guide
Embed typed inference in Pythonjev_filter.batch.runPython integration
Measure labeled decisions offlineevalEvaluation example
Connect a Node.js program or an MCP hostcreateClient · mcpIntegration examples

Inspectable from input to release

  • Bounded, uncached inference. Automatic batching and at most 30 requests in flight; no result cache.
  • Local evidence and numeric telemetry. Private archives support original-by-ID recovery. An optional local dashboard shows usage, unknowns and negative net values; input-equivalent estimates are not invoice savings.
  • Explicit trust boundaries. Inference inputs go to TypeSafe. exec runs your trusted command and is not a sandbox. Hosted execution keeps freshness, origin and desktop safety gates. Security policy
  • Portable, verifiable releases. Python core, bundled npm platform packages, checksums and build provenance. Distribution and recovery

The legacy jev-context command and Python imports remain compatible. Jev Filter is independently maintained by Apixly / JIA-ss and is not affiliated with TypeSafe.

Contribute

sh
git clone https://github.com/apixly-ai/jev-filter.gitcd jev-filterpython -m venv .venv && . .venv/bin/activatepython -m pip install -e '.[code,dev]'sh scripts/check.shnpm test

Contributing · Development and releases · Changelog · Report a bug · MIT license

來源:README.md,提交 4af17db

工具

4

filter_records

Filter supplied records with explicit task/context. Returns selected and unresolved IDs plus evidence receipts.

輸入參數task必填records必填analysisbudget_chars

search_code

Collect bounded code candidates inside the configured workspace and judge relevance. Exact regex scope is always reported.

輸入參數roottask必填limitquerypattern必填analysismax_filesbudget_charsexpand_callers

triage_events

Redact and correlate supplied JSON events, then select relevant incidents. No log file or shell access.

輸入參數task必填events必填analysisgroup_bybudget_chars

read_evidence

Read one bounded record from an unchanged receipt produced in this server session. A receipt never grants action authority.

輸入參數id必填archive必填budget_chars

版本歷史

1
  1. v0.4.2最新Oct 23, 2026

評分

已滿足適用檢查項的 90%

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

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

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

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分