Jev Filter について
Jev Filterは、大量の結果を絞り込み、根拠と未解決IDを保持する、AIエージェントやプログラム向けの読み取り専用セマンティックフィルタリングツールキットです。CLI、言語ライブラリ、MCPを通じて検索、コード、ログ、インターフェースの処理に対応します。
主な機能
- 01タスクの文脈に沿ったレコード選別
- 02根拠と未解決IDの返却
- 03動作に基づくコード検索
- 04関連ログのトリアージ
- 05ブラウザーとデスクトップのワークフロー
- 06CLI、Python、JavaScript、MCP対応
活用シーン
- 01RAG向けの根拠要件に合う文章の選別
- 02動作に合致するコードシンボルの検索
- 03現在の障害と復旧済みログの区別
- 04観測した画面コントロールの選択と検証
MCP 対応
セマンティックフィルタリング用の読み取り専用MCPツールを4つ提供します。MCP経由でもCLIや言語連携と同じコア機能を使い、根拠と部分的な結果を保持します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 6 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| task | string | はい | |
| records | array | はい | |
| analysis | object | いいえ | |
| budget_chars | integer | いいえ |
詳細
简体中文 · クイックスタート · ドキュメント · エージェントのセットアップ · ベンチマーク
Jev Filter
AI エージェントのツール結果を意味的にフィルタリングします。 大量のツール出力を、エージェントのコンテキストに渡す前に、簡潔で型付きの判断に変換します。ソースレコードはプログラム内に保持し、関連する根拠と未解決 ID を返して、ID から元のデータを取得できます。
- コンテキストに基づいてフィルタリングします。 検索結果、コードシンボル全体、関連するログを、タスクと提示された事実に照らして選別します。
- 判断の追跡可能性を保ちます。 型付きの回答、ソース ID、確認項目を返し、不足している事実や部分的な失敗もそのまま保持します。
- プログラム内でアクションを検証します。 短いブラウザーやデスクトップでの目標に対して、Jev は観測されたコントロールを選択します。実行、安全性チェック、最終状態の確認はプログラムが担います。
Apixly が保守する、独立した MIT プロジェクトです。公式 npm パッケージ:@apixly/jev-filter。機能と利用場面について。
クイックスタート
Node.js 22 以降 · macOS / Linux · Python は npm 配布物に含まれています。 Windows の場合は WSL を使用するか、Python をネイティブにインストールしてください。インストールと doctor はオフラインで実行できます。推論には TypeSafe Jev API キーが必要です。
npm install -g @apixly/jev-filter
jev-filter doctor
任意のディレクトリで次を実行します。
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
診断情報を省略した場合の選択結果:
{"selected_ids":["b"],"review_ids":[],"complete":true}
実際のバッチ処理では、未加工の出力が会話に入る前に、1 回の呼び出しで収集とフィルタリングを行います。
jev-filter exec --task 'Find unresolved network failures' \
--analysis analysis.json -- your-collector --json
まず、コピーして使える分析コントラクトを確認してください。終了コードが 2 の場合もパケットを解析してください。complete=false と review_ids は確認が必要です。小さなサンプルはインターフェースの使い方を示すものです。正確なパス、ID、セレクター、計算、短い出力には、通常ネイティブツールが適しています。インストール、キー、結果の扱い方 →
実践チュートリアル
- RAG と AI エージェント向けに検索結果をフィルタリングする:明示的な根拠要件に基づいて文章を選び、メインモデルのコンテキストに入る前に絞り込みます。
- 動作でコードを検索する:コードシンボル全体、任意の範囲指定付きリコール、意味的な判断を組み合わせます。
- 関連するログをトリアージする:リクエストの履歴を保持し、現在の障害と復旧済みのイベントを切り分けます。
コピーして使える合成入力と分析コントラクトが含まれています。ドキュメントサイトでチュートリアルを読む · FAQ。
実測された利点
合成入力を使用した、2026-10-04 時点の有料ライブ検証データです。ソースハッシュ、実行ごとの使用量、所要時間、失敗は公開されています。各結果は明記された範囲にのみ適用されます。
- 返されるツールコンテキスト: 実際のエージェント実行24件で 91.6~97.2%削減されました。フィルタリング後の完了は 12/12、フィルタリング前の完了は 11/12で、IDセットは 24/24すべて正しく一致しました。
- 同じ出力の選択: Jevのバッチ処理API経路では、96件のレコードを中央値 1.313秒でスクリーニングしました。サインイン済みのCodex CLI経由では、Lunaは 13.421秒、Astraは 14.543秒でした。実行 9/9すべてで同じ48個のIDが選択されました。CLIの起動時間を含み、Jevの後にプライマリエージェントによる継続処理はありません。
- Jev段階のバッチ処理: 単一レコードを並列処理するJev呼び出しと比べ、リクエスト数は 96件ではなく2件で、入力トークンは 56.5%削減、フィルタリング速度は 2.58倍でした。これはJev段階の測定値であり、エージェント全体の高速化を示すものではありません。
レイテンシとコストは変動します。 6つの全操作セルのうち5つでは処理が 0.1~18.4%遅くなりました。コールド状態でのAPI相当コストは 23.2%低い~1.1%高い範囲でした。サブスクリプションの課金は不明です。コンテキストが小さくなっても、レイテンシや課金が低下するとは限りません。
選択経路、測定結果、対象範囲
同じ期待される回答と照合した高速なセマンティック選択。 すべての経路で、2つのセマンティック条件に基づいて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の起動時間とプライマリエージェントのターンを含む、利用可能な実行経路です。モデル本来のレイテンシは分離していません。プライマリ経路では中程度の推論を使用し、ツールは使用していません。3回の反復はスモークテスト用のサンプルであり、エージェント全体の高速化や、任意のワークロードでの性能を保証するものではありません。実行ごとのエビデンス · 手法と再現方法

| メリット | 確認された結果 | 範囲とトレードオフ |
|---|---|---|
| 繰り返しの判定をより早く得る | フィルタリング速度が2.58倍:3.215 → 1.246 s、経過時間が61.2%短縮、Jev の入力トークンが56.5%減少。 | 単一レコードの並列処理と、自動バッチ並列処理の Jev を比較。合成レコード96件 × 2つの述語、各条件で3回実行。12/12回すべてで完全一致。Jev の段階のみ、並列ワーカー上限は12。プライマリモデルの速度比較ではありません。データ |
| エージェントのコンテキストを適切に保つ | 返されるツールコンテキストが91.6~97.2%減少。フィルタリングありの完了率は12/12、未加工では11/12。ID セットは24/24件すべて正解。 | 実際のエージェント実行24回、合成シナリオ3件、プライマリモデル2種類、各条件で2回実行。5/6の条件では0.1~18.4%遅くなりました。コールド状態での API 相当コストは23.2%低下から1.1%増加の範囲でした。サブスクリプションの課金額は不明です。データ |
| 関連性の高いコードをより多く見つける | 正しい一致が4/12 → 10/12に増加し、偽陽性はゼロ。 | どちらもネイティブのセマンティックフィルタリングを使用し、完全一致とオプトインの再現率を比較。返されるコンテキストは5,284 → 9,706 bytesに増加しました。語彙上の重複がない場合は、依然として見落としが発生します。データ |
| 重要な変更を確認する | 各反復で対象の変更4/4件すべてを選択。返されるコンテキストは、すべてのファイルを保持する場合より23.9%少ない。 | 合成ファイル8件、2回実行。セマンティックトリアージによりモデルの使用量が増え、操作全体の中央値は503 → 1,465 msに増加します。データ |
| 実際のインターフェースに接続する | 有料の E2E チェック13/13件に合格。MCP のエビデンスの正確な復元と、アンケートのトピックラベル64/64件を含みます。 | Python CLI、新規の npm 0.4.0 JS/ネイティブパッケージ、公式 MCP、ローカルの Chromium 抽出、アンケートを使用。小規模な合成フィクスチャを使用しており、これらの公開アダプターでは解決されたモデルの識別情報を取得できません。データ |
| スクロールコンテナ内に到達する | 同じ厳格な0.55 / 0.10ポリシーのもと、入れ子のスクロール完了を0/3 → 3/3で確認。 | 固定したブラウザーソースによる A/B 比較。プログラムは観測したコンテナのエビデンスを追加します。通常の目標に対する実行6回は、引き続きレビューが必要です。成功する処理が増えると、呼び出し回数、コンテキスト、時間も増加します。データ |

以前のエビデンス:オフラインのコントラクト、バッチ処理、オープンウェブの制限
| 実験 | 日付付きの結果 | 範囲 | |---|---|---| | オフラインリリース契約 · 2026-10-04 | 期待される動作は **3/13 → 13/13**、誤ったフィクスチャアクションは **3 → 0** でした。 | モデル呼び出しなしのスクリプト化された応答です。レビューと診断コンテキストが増加します。[データ](benchmarks/results/2026-10-04-decisions.json) | | Jev のバッチ処理 · 2026-09-22 | **入力トークンを56.5%削減**、バッチ処理+並列処理は単一レコードの並列処理より **32.4%高速** でした。 | 96件の合成レコード × 2つの述語、2回の反復です。Jev のステージのみが対象です。[データ](benchmarks/results/2026-09-22-live.json) | | 過去の全体操作 · 2026-09-23 | **返されるツールコンテキストを88~97%削減** しました。 | 4つの合成シナリオで48回実行しました。コストとレイテンシーは変動します。[データ](benchmarks/results/2026-09-23-operations.json) | | 過去のホスト型フィクスチャ · 2026-09-30 | ブラウザーは **Camofox 15/15**、**CDP 18/18**、デスクトップは **12/12** でした。 | 当時のプランナーポリシーに基づくローカルフィクスチャです。現在の厳格なポリシーや、オープンウェブでの完了を保証するものではありません。[データ](benchmarks/results/2026-09-30-hosted.json) | | 公開ウェブサイト · 2026-09-30 | 読み取り専用の目標は **16/48** を達成し、アクセス制限とプロバイダーの障害を除外すると **16/34** でした。 | 1つの環境で24の目標をテストしました。カスタムウィジェットと検証は不十分でした。[データ](benchmarks/results/2026-09-30-real-world.json) |[手法と過去のデータの全体](docs/benchmarks.md)。最新のブラウザー実験では、失敗した枝刈りのバリエーションと不明なプロバイダーへの試行も保持されています。安全のために停止した処理を、目標達成済みとして扱うことはありません。
プログラムが目標を検証済みの結果に変える様子を見る
各ステップでページまたはウィンドウを観測し、Jev がプログラムによって列挙された操作とコントロールから選択して、対象を再確認し、実行して検証します。モデルの出力がセレクター、座標、コマンド、または審査されていないテキストとして使われることはありません。不可逆な操作は確認のために一時停止します。
jev-filter browse --url https://shop.example/ \
--goal 'Find in-stock red shoes in size 42' \
--value query='red shoes' --verify-text 'Search results'
例の URL を、許可されたテストページと意味のある検証処理に置き換えてください。browse と desktop では status: done と独立した最終状態の確認 を必須にしてください。extract と survey では ok と complete が必要です。選択されたアクションや、モデルが報告する DONE だけでは完了の証明になりません。別個の[検証済みプライマリープランナーのリファレンス](docs/benchmarks.md)では、厳格なレビュー後に期待される結果 6/6 を達成しました。ただし、モデルの処理時間が大幅に増加し、製品に同梱される自動フォールバックではありません。
[インタラクティブなリプレイ:ブラウザー、デスクトップ、survey](https://apixly-ai.github.io/jev-filter/docs/assets/showcase/index.html) · [記録方法](docs/showcase.md) · [安全ゲートと制限事項](docs/hosted-execution.md)
1つのコアを、既存のエージェントで
CLI · Python · JavaScript / TypeScript · MCP. シェルを使う、jev_filter.batch.run を埋め込む、@apixly/jev-filter から createClient をインポートする、または読み取り専用の MCP ツールを4つ公開する方法があります。どの方法でも、証拠と部分的な結果は同じコアで保持されます。JavaScript と MCP の例 →
Codex、Claude Code、その他の互換性のあるハーネス向けに、付属のスキルをインストールします。
# Codex; use ~/.claude/skills for Claude Code.
mkdir -p ~/.codex/skills
cp -R "$(npm root -g)/@apixly/jev-filter/skills/jev-filter" ~/.codex/skills/
エージェントには、次のルーティングルールを1つ設定します。
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 はエージェントのチャットを引き継ぎません。共有する事実は context に、各レコードの履歴はそれぞれのレコードに入れ、必須フィールドを宣言してください。認可と実行の検証はホストプログラムで行ってください。5分で始める → · 統合ガイド全文 →
タスクに合ったエントリーポイントを探す
| タスク | コマンド / API | ガイド |
|---|---|---|
| 信頼できるコマンドの出力を取得する | exec | コレクターのレシピ |
| JSON 候補を選択または分類する | query | コンテキストを考慮した選択 |
| コードの動作を特定する | code-search | コードシンボル全体を検索 |
| 範囲を限定した Git の変更をレビューする | diff-review | CLI リファレンス |
| 関連する JSON/JSONL イベントをトリアージする | triage | 相関ログ |
| ローカルの Camofox ページでコントロールを選択する | locate | ブラウザーでの選択 |
| 短いウェブ上の目標を達成する、またはページのレコードを抽出する | browse · extract | ホスト型ブラウザーガイド |
| Windows/macOS アプリ上の目標を達成する | desktop | デスクトップガイド |
| 多数のレコードを分類・要約する | survey | サーベイガイド |
| Python に型付き推論を組み込む | jev_filter.batch.run | Python 統合 |
| ラベル付きの判断をオフラインで測定する | eval | 評価の例 |
| Node.js プログラムまたは MCP ホストに接続する | createClient · mcp | 統合例 |
入力からリリースまで検証可能
- 範囲を限定した、キャッシュされない推論。 自動バッチ処理により、同時進行のリクエストは最大30件です。結果キャッシュはありません。
- ローカルの証拠と数値テレメトリー。 プライベートアーカイブでは、IDを指定して元データを復元できます。任意で利用できるローカルダッシュボードには、使用状況、不明な値、負の純値が表示されます。入力と同等の推定値は、請求額の節約を示すものではありません。
- 明確な信頼境界。 推論の入力は TypeSafe に送信されます。
execは信頼できるコマンドを実行するものであり、サンドボックスではありません。ホスト型実行では、鮮度、オリジン、デスクトップの安全性に関するゲートが維持されます。セキュリティポリシー - 移植可能で検証可能なリリース。 Python コア、同梱の npm プラットフォームパッケージ、チェックサム、ビルドの来歴情報を提供します。配布と復旧
従来の jev-context コマンドと Python のインポートは、引き続き互換性があります。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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。

