T1/T2 Protocol について
T1/T2 Protocolは、構造化推論と異種モデル検証のための、Python標準ライブラリのみで動く参考MCPサーバーです。質問の分解、モデル間レビュー、決定論的な検査を必要とするMCPホスト向けで、本番用のセキュリティ製品ではありません。
主な機能
- 01質問を4つの層に分解
- 02モデル間評価プロンプトの生成
- 03回答構造の決定論的検査
- 04評価言語と重みの指定
- 05T2評価の再帰を制限
活用シーン
- 01曖昧な意思決定の問いを整理する
- 02別モデルで回答案をレビューする
- 03再利用前に構造化出力を検査する
MCP 対応
stdio上のJSON-RPCを通じて、t1_protocol、t2_protocol、checksumの各ツールを公開します。前者2つはホストのLLM向けプロンプトテンプレートを返し、checksumは決定論的な検証結果を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| locale | string | いいえ | 出力言語:'en'(デフォルト)または 'zh' |
| question | string | はい | 翻訳する元の質問 |
| weight_hint | string | いいえ | 任意の評価重みのヒント。英語:fact-first、efficiency-first、cost-first、robustness-first、general-first。中国語:事实优先、效率优先、成本优先、鲁棒性优先、通用优先。 |
詳細
T1/T2 Protocol — MCP 向け異種検証
中文文档 · MCP レジストリエントリー (io.github.Fauxetine/t1-t2-protocol)
リファレンス実装です。 これは構造化された推論規律のための 標準ライブラリのみを使用する MCP リファレンスサーバー であり、本番環境向けのセキュリティ製品ではありません。機密性の高い環境にデプロイする前に、ご自身の脅威モデルを評価してください。公式の Python MCP サーバーとは異なり、
mcpSDK は使用せず、stdio 上で JSON-RPC を直接通信します。
T1/T2 は、AI の推論を検証可能、監査可能、信頼できるものにする MCP サーバーです — 曖昧な質問を構造化された階層(T1)に分解し、モデル間評価(T2)を通じて回答を検証します。LLM に依存しない決定論的なチェックサム層も備えています。
なぜ必要なのか?
LLM が自分自身の回答を確認するとき、同じ学習データ、同じ推論の傾向、同じ体系的なバイアスを使います。自己省察では、自分自身の盲点を見つけられません。
T1/T2 は 異種検証 を導入します。回答を生成するモデルと、それを評価するモデルは異なるべきです。それぞれの学習データ分布の違いにより、互いの盲点を補うことができます。
ツール
| ツール | 機能 | 重要な理由 |
|---|---|---|
| t1_protocol | 曖昧な質問を L1(事実)/L2(前提)/L3(仮説)/L4(未知)に分解します | 回答前に構造化された推論を促します |
| t2_protocol | 別のモデルの視点から回答の品質を評価します(定性的な5段階の信頼度) | 自己省察では見つけられない盲点を検出します |
| checksum | 決定論的な構造検証 — 正規表現のみを使い、LLM への依存はゼロです | 知能に左右されない安全性を実現します |
ツールのデータ返却方法:
t1_protocolとt2_protocolは、MCP ホストの LLM が実行する 構造化されたプロンプトテンプレート を返します。決定論的な JSON(checksum_passed、errors)を返すのはchecksumのみです。
ツールの入力(MCP スキーマ)
t1_protocol
| 入力 | 型 | 必須 | 説明 |
|---|---|---|---|
question | string | はい | 分解する曖昧な質問 |
locale | string | いいえ | en(デフォルト)または zh |
weight_hint | string | いいえ | fact-first、efficiency-first、cost-first、robustness-first、general-first(または中国語の同等の値) |
t2_protocol
| 入力 | 型 | 必須 | 説明 |
|---|---|---|---|
answer | string | はい | 評価するテキスト(多くの場合、ホストの LLM が作成した回答案) |
locale | string | いいえ | en(デフォルト)または zh |
weight_hint | string | いいえ | t1_protocol と同じ値 |
checksum
| 入力 | 型 | 必須 | 説明 |
|---|---|---|---|
text | string | はい | 検証する構造化された回答テキスト |
JSON を返します:{"checksum_passed": bool, "errors": [...]}。
クイックスタート
要件
- Python 3.10+
- MCP クライアント:Cursor、Claude Desktop、Windsurf、またはその他の MCP 互換ホスト
インストール
PyPI から(推奨):
pip install "t1-t2-protocol>=0.1.0"
ソースから(開発用):
git clone https://github.com/Fauxetine/t1-t2-protocol.git
cd t1-t2-protocol
pip install -e ".[dev]"
T1T2_DISABLE_COUNTERS=1 python -m pytest tests/ -v
または、インストールせずに直接実行:
python src/t1_t2_mcp_server.py # Windows
python3 src/t1_t2_mcp_server.py # macOS / Linux
設定
pip install の後、MCP 設定でコンソールスクリプトを使用します(推奨):
{
"mcpServers": {
"t1-t2-protocol": {
"type": "stdio",
"command": "t1-t2-protocol"
}
}
}
Cursor — .cursor/mcp.json(上記と同じです)。
Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"t1-t2-protocol": {
"command": "t1-t2-protocol"
}
}
}
ソースから実行する場合(pip install なし) — スクリプトを指定します:
{
"mcpServers": {
"t1-t2-protocol": {
"type": "stdio",
"command": "python",
"args": ["C:/path/to/t1-t2-protocol/src/t1_t2_mcp_server.py"]
}
}
}
macOS/Linux では、"command": "python" の代わりに "command": "python3" を使用してください。
動作を確認する
- 設定を編集した後、MCP ホストを再起動するか再読み込みします。
- 3 つのツール
t1_protocol、t2_protocol、checksumが表示されることを確認します。 {"question": "Should we adopt microservices?", "locale": "en"}を指定してt1_protocolを呼び出します。構造化された T1 プロンプトテンプレートが返されます。[L1 Facts]…---の形式のテキストをサンプルとして指定し、checksumを呼び出します。checksum_passedを含む JSON が返されます。
使用方法
T1:曖昧な質問を整理する
質問を指定して t1_protocol を呼び出します。ホストの LLM に、4 つの階層を備えた構造化プロンプトテンプレートが渡されます。
Input: {"question": "Should we migrate our monolith to microservices?"}
Output: Prompt template instructing the host to produce:
[L1 Facts] Team size, codebase size, current stack
[L2 Assumptions] Expected benefits that need verification
[L3 Hypotheses] Testable claims about migration risk
[L4 Unknown] Future growth trajectory
[Core Question] The precise feasibility question
T2:判断を相互検証する
判断または回答のテキストを指定して t2_protocol を呼び出します。ホストの LLM 向けの評価プロンプトが返されます。
Input: {"answer": "Decision text for approach A..."}
Output: Prompt template requesting:
Confidence: high | medium-high | medium | medium-low | low
Adoption table with:
✅ Adopt — verified conclusions (L1)
⚠️ Reserved — needs more evidence (L2)
❌ N/A — blind spots to address
checksum:出力構造を検証する
構造化テキストを指定して checksum を呼び出します。決定論的なルールに基づいて合否が返されます。
Input: "[L1 Facts]\n1. ...\n[L2 Assumptions]\n1. ...\n---"
Output: {"checksum_passed": true, "errors": []}
完全なパイプライン
Vague question → T1 structured decomposition → Decision based on structure → checksum (optional) → T2 validation → Refined decision
時間に左右される事実の主張については、T2 の前に呼び出し元側で検索してください — 呼び出し元側のウェブ検証(v2.6)を参照してください。
設定
ロケール
t1_protocol と t2_protocol は、どちらも任意の locale パラメーターを受け付けます。
| 値 | 出力 |
|---|---|
en(デフォルト) | 英語のテンプレート |
zh | 中国語のテンプレート |
例:{"question": "...", "locale": "zh"}
重み付けのヒント
t1_protocol と t2_protocol は、どちらも評価基準に偏りを持たせる任意の weight_hint パラメーターを受け付けます。
| 重み | 効果 |
|---|---|
事实优先 / fact-first | 事実の正確性を優先します |
效率优先 / efficiency-first | 効率を優先します |
成本优先 / cost-first | コストを優先します |
鲁棒性优先 / robustness-first | 堅牢性を優先します |
通用优先 / general-first | 特定の偏りを設けません |
再帰の保護
T2 は再帰の深さを自動的に検出し、限界情報利得が 5% を下回る深さ >= 3 で終了します。
設計思想
設計の根拠について詳しくは、docs/philosophy.md を参照してください。
基本原則:
- 知能と信頼を分離する — AI の能力と AI の安全性は、異なるシステムによって保証する必要があります
- 自己参照より異種性を重視する — モデル間の検証は、自己内省よりも信頼性が高くなります
- 確率的な方法より決定論的な方法を重視する — コードで確認できることを、モデルの判断に委ねてはいけません
例
手順を追った説明については、examples/ を参照してください。
位置づけ
| プロジェクト | レイヤー | 機能 | T1/T2 との関係 |
|---|---|---|---|
| Sequential Thinking(公式 MCP) | 呼び出し側の思考連鎖 | 1 つのモデルが反復的なステップを記録します | 補完的 — T1 は L1~L4 の段階を追加し、T2 はモデル間レビューを追加します |
| ThoughtProof / 判定 API | サーバー側の検証 | 信頼度付きの APPROVE/DENY/UNCERTAIN | 補完的 — T1/T2 は判定 API が動作する前に推論を構造化します |
| 自己内省/プロンプトチェーン | 同じモデル | 自身の出力を読み直すか、再度プロンプトを送ります | 置き換え — 異種の検証によって、共通の盲点を見つけます |
| ツールの完全性(Phionyx など) | トランスポート/ツールスキーマ | ツールのポイズニングやスキーマのドリフトを検出します | 対象外 — T1/T2 はツール定義を保護しません |
T1/T2 は、MCP Discussion #2574 形式の推論規律を実現する標準ライブラリのリファレンス実装です。まず構造化し(T1)、次に相互検証し(T2)、コードで検証できるものにはチェックサムを適用します。署名付き判定 API でも、セキュリティスキャナーでもありません。
バージョン管理
混同しないよう、2 種類のバージョン番号を使用します。
| 例 | 意味 | |
|---|---|---|
| パッケージ(PyPI) | 0.1.0 | 配布のライフサイクルです。0.x は実験段階を示します(SemVer、FastAPI のポリシー)。 |
| プロトコル(仕様) | v2.5 | サーバー出力のフッターに記載される T1/T2 ツールのセマンティクスです。呼び出し側のウェブ検証ドキュメントでは v2.6 を使用します。 |
推奨インストール方法:pip install "t1-t2-protocol>=0.1.0"。誤って公開された PyPI リリース 2.5.2~2.5.4 は取り下げ済みです。
ライセンス
Apache License 2.0 — 詳細は LICENSE を参照してください。
MCP エコシステム向けに構築されています。決定論的アーキテクチャを通じた AI 安全性に関する、より広範な探究の一部です。
リンク
- コントリビューション
- MCP レジストリ —
io.github.Fauxetine/t1-t2-protocol - セキュリティポリシー
- 変更履歴
- 設計思想
- 呼び出し側のウェブ検証 v2.6
- エージェント/MCP ホスト向けの手順
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。