mcpField
O
Omneum

Omneum

ローカル
github.comAI・エージェント1今日更新

Omneum について

Omneum は、AI エージェントのパイプライン向けオープンソースのコンテキスト評価ツールで、Python SDK または MCP サーバーとして利用できます。出典情報と依存関係から主張の裏付けと出典の信頼性を評価し、生テキストの解釈や追加のモデル呼び出しを行いません。

主な機能

  1. 01主張の裏付けと出典の信頼性を評価
  2. 02出典間の依存関係を考慮
  3. 03出典と系譜のメタデータを利用
  4. 04トークン予算内でコンテキストを選択
  5. 05SQLite に永続化してローカル実行
  6. 06PostgreSQL への任意デプロイ

活用シーン

  1. 01検索後の証拠品質の評価
  2. 02共通出典による証拠の重複を削減
  3. 03予算内でコンテキストチャンクを選択
  4. 04弱い証拠を追加検証に回す

MCP 対応

Omneum は MCP サーバーとして動作し、MCP クライアントをインストール済みのローカル評価サービスに接続します。ツールを通じて、マッピング済みの観測データの評価とコンテキストチャンクの選択を行えます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbomneum-local-1.0.4.mcpb1.0.4

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Omneum とは

Omneum

AI エージェント向けのオープンソースのコンテキスト評価ツールです。

CI PyPI Python 3.11–3.14 MIT License

エージェントは、RAG パイプライン、ウェブ検索、API、データベース、ファイル、メモリシステム、他のエージェントなど、多様なソースから日常的にコンテキストを組み立てています。しかし、何十もの生データの断片を単一のコンテキストウィンドウに詰め込むと、モデルは整理されていない情報の山を扱うことになりかねません。

ほとんどのエージェントは、より多くのコンテキストを取得することに重点を置いています。Omneum は、モデルに届くコンテキストが整理され、信頼できるものになるようにすることに重点を置いています。

⚡ AI エージェント向けの高速なコンテキスト監査。

評価レイテンシの中央値は 33 ms: Apple M5 で、250 件の観測、3 つの独立したソース、84 件の主張を対象に測定しました。追加の LLM 推論やモデル判定のステップはありません。

依存関係を考慮: 複数の取得済みコンテキスト断片が、同じ上流ソースの情報を繰り返している場合に検出します。

デフォルトでローカル: 環境内で完全に実行される、内容を参照しないグラフアルゴリズムです。SQLite による永続化と、オプションの PostgreSQL デプロイに対応しています。

クイックスタート

Python パッケージをインストールします。

pip install omneum

付属のデモを実行します。

python -m omneum.demo

evaluate.py を作成し、単一の主張に対する 3 件の観測を評価します。2 つのソースは、同じ上流ドキュメントを参照しています。

import omneum
from omneum.explanations import explain_evaluation

observations = [
    {
        "url": "https://a.example",
        "value": 4200000000,
        "claim": {
            "entity_namespace": "company",
            "entity": "acme",
            "attribute": "fy2025_gross_revenue",
        },
        "upstream": ["https://sec.example"],
    },
    {
        "url": "https://b.example",
        "value": 4200000000,
        "claim": {
            "entity_namespace": "company",
            "entity": "acme",
            "attribute": "fy2025_gross_revenue",
        },
        "upstream": ["https://sec.example"],
    },
    {
        "url": "https://c.example",
        "value": 4200000000,
        "claim": {
            "entity_namespace": "company",
            "entity": "acme",
            "attribute": "fy2025_gross_revenue",
        },
        "upstream": [],
    },
]

result = omneum.evaluate(observations)
print(explain_evaluation(result))

実行します。

python evaluate.py

出力:

Omneum Evaluation
Evaluation latency: 1.6 ms

Fy2025 gross revenue

  4200000000
  Support: 0.67
  Supporting sources: 3
  Estimated independent support: 2.00
  Dependency signal coverage: 1.00

  Explanation:
    3 sources support this claim, with an estimated 2.00 independent sources. The available dependency signals indicate that some supporting sources are related.

evaluate() は Omneum のグラフベースの評価アルゴリズムをプロセス内で実行し、ソースの信頼性と主張の裏付けスコアを計算するとともに、ソース間の依存関係を考慮して調整します。

生の取得テキストを扱う場合は、オプションの extract_observations() API を使って、評価の前に LLM で構造化された主張を抽出します。Python SDK を参照してください。

Omneum を選ぶ理由と仕組み

最新のエージェントパイプラインでは、モデルに渡すコンテキストを決定するために、さまざまな手法が使われています。

意味的類似性(ベクトルデータベース)。 プロンプトに最も近いように見えるテキストが選ばれます。

意味的再ランキング。 取得したコンテキストを、クエリとの関連性に基づいて並べ替えます。

LLM-as-a-Judge。 LLM が取得したコンテキストを読み、一連の指示に照らして評価するよう指示されます。

これらの手法はコンテキストの選択に非常に効果的ですが、関連性はコンテキストの品質を測る一つの側面にすぎません。

チャンクには、矛盾した情報や古い情報が含まれていることがあります。複数の取得済みチャンクが重複排除されていなかったり、同じ上流ソースを共有しているにもかかわらず、互いに独立しているように見えたりする場合もあります。これがコンテキストの肥大化につながります。品質の低い情報がコンテキストウィンドウの容量を消費し、本来ならより質の高い情報に使えたはずの領域が失われます。

Omneum は、主張とその根拠となるソースとの関係をモデル化する、グラフベースの数学的分析を用いて、こうした制約の多くに対処します。重要なのは、すべてのソースがそれぞれ独立して情報を得たと単純に仮定しない点です。同じ情報が複数のソースに広がっていることはよくあります。依存関係を追跡しなければ、エージェントは独立した5件の観察と、同じ情報を5回繰り返したものとを区別できません。

エージェントパイプラインでは、取得したコンテキストとともに、構造化されたメタデータもすでに扱われています。Omneum は利用可能な来歴とリネージのメタデータを使ってソース間の依存関係を推定し、その推定値をソースの信頼性と主張の裏付けスコアの計算に反映します。

これらのスコアは、コンテキストの意味内容を解釈せずに計算されます。たとえば、次のような主張を評価する場合:

「Acme は2025年に42億ドルの収益を報告しました。」

その裏付けスコアは、それを裏付けるソースの信頼性によって決まります。そして、そのソースの信頼性は、それらが裏付ける主張から得られます。

この定義は循環しているように見えますし、実際に循環しています。それでも、信頼性を明確に定義できるため、強く裏付けられたコンテキストと、裏付けの弱いコンテキストを区別するのに役立ちます。

Omneum の本番用推論アルゴリズムは、これらの信頼性スコアと裏付けスコアを計算します。実験と研究を見る →

Omneum の位置づけ

Omneum は Python SDK を通じてローカルで実行するか、Model Context Protocol (MCP) サーバーとして実行できます。既存の検索またはランキングスタックに、軽量な検索後評価レイヤーを追加します。推論リクエストも、追加のモデル呼び出しも必要ありません。

検索/ツール → 再ランキング(任意) → Omneum による評価 → エージェントの制御フロー → LLM

Omneum はコンテキスト品質のシグナルを返し、エージェントはワークフロー全体を通して、エビデンスを考慮した判断を行います。

アーキテクチャと設計 →

MCP のインストール

注: このチュートリアルでは Python 3.11–3.14 を前提としています。その他の言語向けの SDK は現在サポートされていません。

サポート対象プラットフォーム:

プラットフォーム対応
macOS(Apple Silicon / arm64)✅
macOS(Intel / x86_64)✅
Linux(Ubuntu 22.04+ / x86_64)✅
1. ローカル評価器をインストールする

インストーラーを実行して、ローカル評価器を設定します。

omneum install

通常のログインアカウントから omneum install を実行してください。コマンドを sudo で実行しないでください。

インストーラーは、評価器のリリースをダウンロードして検証する間、非特権で動作します。デーモンのバージョンは、インストール済みの Python パッケージのバージョンに固定されます。たとえば、Omneum 1.0.3 は v1.0.3 のデーモンアセットのみを受け付けます。latest を解決したり、別のリリースにフォールバックしたりすることはありません。

アーカイブは、インストール前にリリースの SHA256SUMS と照合して検証されます。チェックサムがない場合、ダイジェストが一致しない場合、想定外のアーカイブエントリ、リンク、またはパストラバーサルが含まれる場合、アーカイブ内のものを実行する前にインストールを中止します。

管理者アクセスが要求されるのは、マシンレベルのサービスファイルをインストールするときだけです。Ubuntu では、次の場所にある管理対象ランタイムが含まれます。

/opt/omneum

また、次の場所にあるパブリッククライアント設定も含まれます。

/etc/omneum/config.toml

評価器はシステムサービスとして動作します。これは、VOPRF 秘密鍵をログインアカウントおよび MCP プロセスから隔離するためです。macOS では launchd で、Ubuntu では別のサービス ID を使用して systemd で動作します。

omneum-server は、MCP クライアントをインストール済みのローカルサービスに接続します。インストーラーは最後に、この経路を通じて VOPRF リクエストを送信し、設定済みの公開鍵に照らして応答を検証します。サービスが起動しているだけでは、インストールが成功したことにはなりません。

サービスアカウント、ソケット、インストール先のパス、カスタムエンドポイント、障害処理については、docs/guides/installation.md を参照してください。

2. MCP クライアントを接続する

MCP クライアントの設定に Omneum を追加します。

{
  "mcpServers": {
    "omneum": {
      "command": "omneum-server"
    }
  }
}

MCP クライアントを再起動して、エージェントで Omneum のツールを使えるようにします。

MCP クライアントが omneum-server を見つけられない場合は、command に command -v omneum-server が返す絶対パスを設定してください。

3. 接続を確認する

エージェントに Omneum の ping ツールを呼び出すよう依頼してください。成功すると "status": "ok" が返され、エージェントが Omneum MCP サーバーに接続できることを確認できます。

評価の実行

Omneum の Python SDK とローカル MCP サーバーを使用して、取得したコンテキストを評価します。

1. 取得したコンテキストをマッピングする

ContextMapper を使用して、取得したレコードを Omneum の観測値にマッピングします。この例では 3 つのソースを使用し、そのうち 2 つは同じ上流のドキュメントを参照しています。

import asyncio
from datetime import datetime, timezone

from omneum.mcp import StdioServerParameters
from omneum import (
    ContextMapper,
    OmneumClientConfig,
    Source,
    open_stdio_client,
)

now = datetime.now(timezone.utc)

records = [
    {
        "id": "obs-1",
        "raw_text": "Acme reported FY2025 gross revenue of $4.2 billion.",
        "url": "https://example.com/report-a",
        "value": 4_200_000_000,
        "upstream": ["https://example.com/filing"],
        "observed_at": now,
    },
    {
        "id": "obs-2",
        "raw_text": "FY2025 gross revenue for Acme was $4.2 billion, per the filing.",
        "url": "https://example.org/report-b",
        "value": 4_200_000_000,
        "upstream": ["https://example.com/filing"],
        "observed_at": now,
    },
    {
        "id": "obs-3",
        "raw_text": "Acme's FY2025 gross revenue totaled $4.2 billion.",
        "url": "https://example.net/report-c",
        "value": 4_200_000_000,
        "upstream": [],
        "observed_at": now,
    },
]

mapper = ContextMapper(
    source=lambda r: Source(kind="web_document", identifier=r["url"]),
    entity_namespace=lambda r: "company",
    entity=lambda r: "acme",
    attribute=lambda r: "fy2025_gross_revenue",
    value="value",
    observation_id="id",
    observed_at="observed_at",
    upstream_sources=lambda r: [
        {"kind": "web_document", "identifier": url}
        for url in r["upstream"]
    ],
)

正規化は SDK が処理します。正規化を参照してください。

2. コンテキストを評価する

omneum-server に接続し、evaluate_mapped() を呼び出します。

async def main():
    config = OmneumClientConfig.from_local_deployment()
    server = StdioServerParameters(command="omneum-server")

    async with open_stdio_client(config, server=server) as client:
        evaluation = await client.evaluate_mapped(
            records,
            mapper,
        )
        print(evaluation.explanation)


asyncio.run(main())

両方の Python コードブロックを evaluate_mcp.py に保存してから、次を実行します。

python evaluate_mcp.py

評価と、ローカルに保持されているチャンクの選択を 1 回の操作で行うには、 evaluate_mapped() の呼び出しを次のように置き換えます。

from omneum import DependencyEstimatorConfig
from omneum.context_selection import claim_id

observations = mapper.map_many(records)
chunks = [
    {"chunk_id": record["id"], "raw_text": record["raw_text"],
     "claim_ids": [claim_id(observation.claim)]}
    for record, observation in zip(records, observations)
]
estimator = DependencyEstimatorConfig(
    upstream_weight=1.0, citation_weight=0.0, assertion_lineage_weight=0.0,
    ownership_weight=0.0, temporal_weight=0.0, graph_weight=0.0,
    temporal_window_seconds=7200.0,
)
result = await client.evaluate_context_with_chunks(
    observations, chunks, estimator=estimator, token_budget=200,
    strategy="coverage_support",
)
evaluation = result["evaluation"]
selected_chunks = result["chunks"]
context = result["context"]

evaluation には、ソースの信頼性、主張の裏付け、評価テレメトリが保持されます。 chunks には、選択された {chunk_id, score, raw_text} レコードのみが効用の高い順に含まれます。context も同じ順序でレンダリングされます。生テキストはクライアントのメモリ内にとどまり、MCP リクエストには含まれません。利用するエージェントが独自にモデルリクエストを組み立てます。

デフォルトの予算では、チャンクヘッダーを含め、Unicode の単語と句読点を数えます。モデル固有の計算を行うには、count_tokens=your_token_counter を渡してください。戦略は retrieval、max_support、mean_support、coverage_support です。カバレッジ選択では、最終的なチャンク効用とは別に限界利得が記録されます。

3. 評価結果

evaluation.explanation は、確認用に評価結果をフォーマットします。

Omneum Evaluation
Evaluation latency: 10.6 ms

Fy2025 gross revenue

  4200000000
  Support: 0.67
  Supporting sources: 3
  Estimated independent support: 2.00
  Dependency signal coverage: 1.00

  Explanation:
    3 sources support this claim, with an estimated 2.00 independent sources. The available dependency signals indicate that some supporting sources are related.

3 つのソースが同じ値を報告していますが、そのうち 2 つは共通の上流ドキュメントを参照しています。Omneum はこの依存関係を特定し、3 つすべてを独立した証拠として扱うのではなく、独立した支持ソースの数を 2.00 と推定します。

エージェントはこの結果を使用して、追加の情報取得を開始したり、応答を生成する前に実行を検証ステップに戻したりできます。

結果のフィールドについては、評価スキーマを参照してください。

統合

Python SDK と ContextMapper を使用して、Omneum をエージェントに追加します。

フレームワークの例:

フレームワークに依存しないワークフローの全体例については、 エンタープライズポリシーの例を参照してください。

オプション:Omneum Network への貢献(クローズドベータ)

Omneum はデフォルトでローカルに動作します。生のコンテキストをアップロードすることなく、共有 Omneum Context Graph に観測データを提供することを選択できます。

ネットワークへの貢献は、エージェントの各デプロイメントにまたがる共有の証拠ベースの構築に役立ち、単一のインストールにとどまらない Context Graph の拡張につながります。

貢献では、RFC 9497 VOPRF を介したプライバシー保護型の暗号リンクを使用します。ネットワークへの貢献はデフォルトで無効です。ローカル評価には不要です。

ホスト型 Network への登録は現在、承認済みのベータ参加者に限定されています。

開始するにはネットワークへの貢献を有効にする(MCP)を、技術的な詳細についてはネットワークへの貢献の仕組みを参照してください。

データモデルと評価

観測データ

コンテキストは単なるテキストチャンクの集まりではありません。Omneum は、エージェントが遭遇した情報を観測データとして表現します。観測データは、構造化データとその来歴を保持する不変のレコードです。最初にサポートされる型である主張観測データは、主張、そのソース、および評価に必要なメタデータを記録します。

Observation(
    observation_id="obs-1",
    source=source,
    claim=claim,
    observed_at=datetime.now(timezone.utc),
)

観測データは、ソースの所有者、タイムスタンプ、引用、上流ソースとの関係、主張の系譜など、利用可能な来歴とメタデータを保持します。複数の主張観測データが同じ主張を裏付けたり、値の不一致を報告したりしても、統合または上書きされることはありません。観測データは、何が真実かについて生成された判断ではなく、報告された証拠を保持します。

観測データのドキュメント →

ソース

ソースは、主張の発生元を示します。各ソースには、複数の観測データにわたって同じソースを識別するための kind と正規化された identifier があります。ソースは、ウェブドキュメント、データベース、内部サービス、その他の情報プロバイダーを表すことができます。

Source(
    kind="web_document",
    identifier="https://example.com/acme-filing",
)

ソースのドキュメント →

クレーム

クレームは、取得したコンテキスト(テキストチャンクやツールの出力など)から抽出された具体的な主張を表します。各クレームは、entity_namespace、entity、attribute、value で構成されます。統合エージェントまたは検索パイプラインがこれらのフィールドを抽出し、ContextMapper が Omneum のデータモデルにマッピングします。

Claim(
    entity_namespace="company",
    entity="acme",
    attribute="fy2025_gross_revenue",
    value=4_200_000_000,
)

クレームのドキュメント →

ソースの依存関係

複数のソースが同じクレームを報告しても、それぞれが独立した裏付けを提供しているとは限りません。Omneum は、上流の系譜、引用、主張の系譜、所有者の共有、タイムスタンプ、グラフ構造に基づいて、ソースの依存関係を推定します。

推定されたソースの依存関係は、各クレームに対する独立した裏付けを算出する際に、関連するソースの寄与度を調整します。

ソース依存関係のドキュメント →

ContextMapper

ContextMapper は、エージェントおよび検索パイプラインの構造化データを Omneum の観測モデルにマッピングします。既存のレコードから、ソース識別子、クレームフィールド、タイムスタンプ、出所メタデータを読み取る方法を定義します。

ContextMapper のドキュメント →

ContextEvaluation

ContextEvaluation は、ソースの依存関係を考慮して調整したソースの信頼性スコアとクレームの裏付けスコアを、競合情報および出所情報とともに返します。

evaluation = await client.evaluate_mapped(
    records,
    mapper,
)
print(evaluation.explanation)

ContextEvaluation のドキュメント →

パフォーマンスと精度

コーディングエージェント、エンタープライズ RAG、調査・分析エージェント、マルチエージェントシステム、データ分析エージェント、サポート・運用エージェントの6つの領域にわたる、24件のホールドアウトケースで評価しました。

セマンティックリランカー

多様なエージェントのワークフローにおいて、セマンティックリランカーと組み合わせた場合に、Omneum がエビデンスの選択をどの程度改善するかを測定します。

セマンティックリランカーの選択精度

構成精度 ↑再現率 ↑回答精度 ↑選択 p50 ↓E2E p50 ↓生成トークン数 ↓生成コスト ↓
BGE Reranker v2-m369.44%47.46%91.67%201 ms2.467s11,941$0.074618
BGE + Omneum85.51%59.31%87.50%660 ms3.020s11,595$0.070662
Cohere Rerank v4.0 Pro77.78%53.99%87.50%151 ms2.634s11,577$0.071242
Cohere + Omneum82.64%55.72%79.17%624 ms3.176s11,535$0.070654

コストには、下流の生成 API の推定使用料のみが含まれます。リランカー API の料金とローカルの計算コストは含まれません。どちらの比較でも、Omneum は選択精度と再現率を向上させます。

最先端 LLM の判定モデル

各 LLM 判定モデルは、同じモデル固有のベンチマーク設定で Omneum と比較して評価されます。

最先端 LLM 判定モデルの選択レイテンシ

設定適合率 ↑再現率 ↑回答精度 ↑選択 p50 ↓E2E p50 ↓生成トークン数 ↓生成コスト ↓
BGE + Claude Sonnet 5.5 判定モデル92.36%65.24%95.83%1.831s4.165s11,356$0.068208
BGE + Omneum86.11%59.34%91.67%0.697s3.141s11,811$0.072822
BGE + GPT-6 Astra 判定モデル92.78%65.45%92.50%3.421s5.849s111,247$0.658998
BGE + Omneum86.11%59.34%91.67%0.641s2.983s115,119$0.698310
BGE + Gemini 3.8 Flash 判定モデル94.44%66.28%95.83%2.487s4.924s114,250$0.686916
BGE + Omneum86.11%59.34%91.67%0.639s3.130s115,535$0.702470

コストには、下流の生成 API の推定利用料のみが含まれます。LLM 判定モデルの推論コストとローカルのコンピューティングコストは含まれません。Omneum は、最先端の LLM 判定モデルに対して、選択の品質と下流の回答精度で競争力を保ちながら、選択レイテンシを 2.6~5.3 倍低減し、追加の LLM 推論ステップも必要としません。

詳細な評価: 手法 · コーディングエージェント · エンタープライズ RAG · リサーチエージェント · マルチエージェントシステム · データ分析 · サポート業務

本番環境

Omneum は、デフォルトのローカルストレージバックエンドとして SQLite を使用します。外部データベースを使用するデプロイでは、PostgreSQL もサポートされています。

コンポーネント実装
MCP サーバーローカルの omneum-server プロセス
評価器管理対象のローカルデーモン
ローカルデータベースSQLite
グラフモデルsource、claim、observation、dependency のリレーショナルテーブル
外部データベースPostgreSQL
グラフ拡張機能Apache AGE
サービスマネージャーmacOS では launchd、Ubuntu では systemd
暗号技術RFC 9497 VOPRF、Ristretto255-SHA512

ローカルインストールでは、context.db が自動的に作成されます。

macOS
~/Library/Application Support/Omneum/context.db

Linux
~/.local/share/omneum/context.db

安全でないデータディレクトリの祖先を持つ新しいデフォルトグラフの場合、Omneum は ~/.omneum/data/context.db を使用します。既存のグラフと明示的に指定されたパスが、 通知なく移動されることはありません。共有ディレクトリの権限も保持されます。

外部データベースを使用するデプロイでは、PostgreSQL を設定できます。PostgreSQL のデプロイでは、Apache AGE がグラフ投影を提供します。

ストレージスキーマとデプロイオプションについては、docs/storage.md を参照してください。

セキュリティとプライバシー

Omneum はコンテキストをローカルで評価します。omneum-server、評価デーモン、および context.db はローカル環境内で実行されます。

コンポーネント境界
コンテキストローカル評価パスに渡されます
コンテキストグラフローカルの context.db に保存されます
VOPRF 秘密鍵評価デーモンが保持します
MCP プロセス評価器の秘密鍵を読み取ることはできません
ソースペイロードグラフ内に格納する必要はありません
Omneum Network取り込み API を通じた任意の提供

Omneum は MCP セッションをまたいで、ローカルのコンテキストグラフを保持します。

application data
      │
      ▼
  omneum-server
      │
      ├── evaluator daemon
      │
      └── context.db

ローカルでの永続化と Omneum Network への提供は、個別に設定します。

オプション動作
ローカルでの永続化観測データを context.db に書き込みます
ネットワークへの提供取り込み API を通じて、仮名化された観測データを Omneum Network に送信します

ネットワークへの提供については Omneum Network を、コンテキストグラフの保存については Local Persistence をご覧ください。

外部評価

外部評価は、テスト入力と Omneum の出力とともに evals/ で公開されています。

SearchTS。 SearchTS 0.13.0 は、curl_cffi 経由の thenewstack.io と stealth-browser 経由の go.dev から、同じ Go 1.22 に関する主張を取得しました。Omneum は両方の取得データについて、元の final_url と fetched_at の値を受け取りました。評価では、独立したサポートの推定値 2.00、ペアごとの依存度 0.0000、依存シグナルのカバレッジ 0.25 が返されました。結果 →

Jawz。 5 つのソースと 10 件の主張にまたがる、14 件の金融観測データを用いた Omneum 1.0.3 の独立評価です。FRED の系譜を宣言した場合、依存度スコアは 1.00 になりました。系譜を省略すると、平均依存度は 0.70 から 0.42 に低下し、推定器 v4 は共有系列のペア間に部分的な依存関係(0.10)を検出しました。無関係な対照データは 0.00 のままでした。実行は、ネットワークから隔離された Linux Docker 環境で決定論的でした。結果 →

Bastra Recall。 Recall は、30 件のメモリを用いた合成ハーネスに対して、Omneum 1.0.3 の dependency-estimator-v4 を実行しました。1 つの上流ソースを共有する 4 件のメモリは、実効的な独立サポート 1.0 に集約され、独立した 3 つのソースは 3.0 のままでした。時間のみを変化させたテストでは、タイムスタンプが同一の場合の実効ソース数 2.5 から、48 時間後の 3.0 まで連続的に変化しました。また評価では、v1 → v2 → v3 → v4 の場合に依存関係が 1.0 ではなく 1.6 となる、未解決の系譜チェーンのケースも明らかになりました。これは、現在、依存関係が直接の系譜エッジ間でのみ計算されるためです。結果 →

コントリビューション

コントリビューションを歓迎します。CONTRIBUTING.md をご覧ください。

セキュリティ上の問題を発見した場合は、公開の Issue を作成せず、SECURITY.md に記載された非公開の報告手順に従ってください。

ライセンス

Omneum は、MIT License の下でオープンソースとして公開されています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。