mcpField
F
Fable Mode

Fable Mode

ローカル
github.com/REX-codebaseAI・エージェント246 週間前に更新

Fable Mode について

Fable Modeは、AIコーディングエージェント向けのオープンソース制御プレーンです。ワークスペースへの書き込みを許可する前に、時間制限付きの検討、証拠の提示、敵対的レビューを求めます。MCPサーバーと任意のAgent Skillを備え、同じパッケージで直接JSON転送も利用できます。

主な機能

  1. 01書き込み前の時間制限付き検討
  2. 02証拠レシートと不変条件の記録
  3. 035方向のレッドチームレビュー
  4. 04検証記録の封印
  5. 05任意のAI証拠判定

活用シーン

  1. 01コーディング作業中の書き込み制御
  2. 02エージェントの主張への証拠要求
  3. 03変更許可前のコードへのレッドチームレビュー

MCP 対応

stdio MCPサーバーにより、クライアントは`fable_session`などのツールでセッション管理や状態確認を行えます。MCPホストを使わない直接JSON転送にも対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"rex-codebase-fable-mode": {
"command": "uvx",
"args": [
"fable-engine"
]
}
}
}
起動コマンドuvx fable-engine

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypifable-engine1.3.5

ツール

14

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
tagenumいいえ真偽の較正に使う認識論的分類タグ。PROVEN | HYPOTHESIS | UNKNOWN
codestringいいえanti-slop ゲートに照らして監査または検証するソースコード(HTML、JSX、CSS、または TSX)。
namestringいいえ自動化パイプライン仕様の名前識別子。
treeobject|array|stringいいえ双曲埋め込み用のツリー階層隣接リストまたはネストされた辞書。
claimstringいいえ認識論的台帳で追跡する事実、仮説の記述、または未知のパラメーター。
edgesarray|stringいいえCausal DAG の構築に使う、有向エッジ辞書のリスト。
gammanumberいいえActive Inference softmax の方策精度の逆温度 gamma(デフォルトは 16.0)。
labelstringいいえ圧縮された CAS ノードの任意のラベルまたは説明。
nodesarray|stringいいえCausal DAG の構築に使うノード辞書のリスト。
actionenumはい実行する Fable セッション操作。create_session | set_timer | get_status | telemetry | advance_phase | log_epistemic_item | record_invariant | log_refinement_cycle | unlock_execution | checkpoint_session | restore_session | list_sessions | compile_delegation_contract | compress_payload | decompress_payload | view_slice | accumulate_payload | flush_accumulator | get_compression_stats | system3_dialectical_synthesis | system3_causal_simulate | system3_evolve_paradigms | system3_induce_axioms | system3_meta_reflect | system3_tri_level_orchestrate | system3_hyperbolic_embed | system3_kripke_verify | system3_active_inference | system3_proof_oracle | track_file_change | get_session_lineage | inspect_plan | verify_proof | record_visual_mockups | validate_event_history | set_goal_rubric | evaluate_goal_rubric | get_goal_rubric | register_automation_pipeline | red_team_code_review | record_breakage_report | verify_red_team_remediation | cortical_define_lobe | cortical_list_lobes | check_auto_update | apply_auto_update | evolve_cortex | audit_anti_slop | infer_design_brief | generate_design_tokens | generate_awwwards_scaffold | validate_preflight_design | list_design_archetypes | scrape_web | scrape_youtube | scrape_reddit | scrape_x | scrape_github | scrape_arxiv
axiomsarray|stringいいえ証明オラクル用の参照公理名または文字列のリスト。
domainstringいいえ不変条件または皮質可塑性の固定化における領域境界。
statesarray|stringいいえアクティブ推論 POMDP の隠れ状態識別子のリスト。
targetstringいいえ調査スクレイピング操作の対象 URL、ID、subreddit、repo、論文 ID、ハンドル名、または検索クエリ文字列。
worldsarray|stringいいえKripke 構造の世界/状態定義のリスト。
actionsarray|stringいいえアクティブ推論 POMDP の制御アクション識別子のリスト。
cas_refstringいいえCAS 参照 URI(cas://<sha256_hex>)または 64 文字のハッシュ。
contentstringいいえコンテンツアドレスストレージ(CAS)に保存/圧縮する生テキスト内容またはペイロード。
contextobject|stringいいえ証明オラクルの仮説型コンテキスト辞書 {name: type}。
d_priorarray|stringいいえアクティブ推論の事前初期状態信念分布 D。
formulastringいいえKripke 構造に対して検証する CTL/モーダル論理式文字列(例:'AG(safe)'、'EF(goal)')。
mockupsarray|stringいいえビジュアルモックアップの記録用コンセプト辞書のリスト。
payloadstringいいえ適応型バッチアキュムレーターまたは CAS ストレージ用のマイクロペイロードテキスト。
root_idstringいいえ双曲木埋め込みまたは初期世界のルートノード ID。
task_idstringいいえ皮質可塑性の固定またはセッション系譜のタスク識別子。
a_matrixarray|stringいいえアクティブ推論の観測尤度行列 A [O x S]。
criteriaarray|string|objectいいえ目標スコア評価用の基準ポインターのリスト、または評価基準項目の JSON 文字列。
end_lineintegerいいえウィンドウ化された行スライス表示の終了行番号(1 始まり、指定行を含む)。
evidencestringいいえ主張を裏付けるソースファイル、コマンド出力、行番号、または URL。
metadataobjectいいえ累積されたマイクロペイロードに添付する任意のメタデータ辞書。
policiesarray|stringいいえ期待自由エネルギー評価用の候補アクションシーケンスポリシーのリスト。
archetypeenumいいえデザイントークンまたはスキャフォールディング用のハイエンドな美的アーキタイプ識別子。cyber_obsidian_monolith | haute_editorial_modernism | swiss_precision_vignelli | kinetic_spatial_hud | neo_nordic_warmth | cold_chromatic_luxury
base_stepnumberいいえ双曲木埋め込みの基本測地ステップ距離(デフォルトは 1.0)。
curvaturenumberいいえポアンカレ多様体の断面曲率 c > 0(デフォルトは 1.0)。
dimensionintegerいいえポアンカレ球多様体の次元(デフォルトは 2)。
file_pathstringいいえファイル変更の追跡または証明検証の対象ファイルパス。
objectivestringいいえ推論セッションの高レベルな目標または問題の説明。
rationalestringいいえ認知ゲートを満たした後にコード実行を解除する根拠。
rubric_idstringいいえ目標ルーブリックの識別子。
b_matricesobject|stringいいえアクティブ・インference用の状態遷移行列 B [Action -> S x S]。
focus_areastringいいえ批判的に再評価する特定のサブシステム、コンポーネント、アルゴリズム、またはインターフェース。
model_namestringいいえSystem 3 シミュレーションにおける因果 DAG モデルの名前。
next_phaseenumいいえセッションを進める対象フェーズ。Phase 1: Epistemic Grounding & Live Research | Phase 2: Invariant Specification & Blueprint | Phase 3: Adversarial Red-Teaming & Falsification | Phase 4: Subagent Fleet Delegation | Phase 5: Multi-Tier Verification & Gatekeeping | Phase 6: Final Walkthrough & Reporting
proof_typeenumいいえ決定論的な証明タイプ。ast | receipt | file_sha256 | formal_logic | vector_coordinates
start_lineintegerいいえウィンドウ表示する行スライスの開始行番号(1 始まり、開始行を含む)。
change_typeenumいいえファイル変更の分類。modified | created | deleted | slated
evaluationsarray|object|stringいいえitem_evaluations の別名:基準評価更新のリストまたは辞書。
force_flushbooleanいいえバッファリングされたマイクロペイロードを複合フレームに直ちに強制フラッシュします。
generationsintegerいいえ実行する進化世代数(デフォルトは 3)。
node_labelsobject|stringいいえノード ID を読みやすいラベルに対応付ける任意のマッピング。
observationstringいいえアクティブ・インferenceの信念更新に使用する現在の感覚観測。
target_codestringいいえソースコード文字列の入力。ソースコード文字列からのターゲットの動的実行は無効であり、別個のサンドボックス実行環境が必要です。
target_namestringいいえレッドチームレビューの対象となるモジュール、クラス、または関数の識別子または名前。
transitionsarray|object|stringいいえKripke 構造の遷移リストまたは隣接辞書。
user_promptstringいいえprompt の別名:望ましい Web エクスペリエンスを記述する高レベルの設計プロンプト。
code_snippetstringいいえソースコード文字列入力の代替エイリアス。ソースコード文字列からのターゲットの動的実行は無効になっており、別個のサンドボックス実行器が必要です。
diff_summarystringいいえファイル変更、差分、または予定されている編集の簡潔な要約。
observationsarray|stringいいえActive Inference POMDP の観測識別子のリスト。
prior_reportobject|stringいいえ修正内容の検証に使用する、以前のレッドチーム障害レポートの辞書または JSON 文字列。
session_namestringいいえFable セッションの一意の識別子または名前。
target_scorenumberいいえ目標とする複合目標スコアのしきい値(デフォルトは 0.95、最小値は 0.0、最大値は 1.0)。
thesis_titlestringいいえSystem 3 の弁証法的統合に用いる論題パラダイムのタイトル。
artifact_pathstringいいえ改善内容を記録する、ブループリント成果物、証明、またはベンチマークスクリプトの絶対ファイルシステムパス。
c_preferencesarray|stringいいえActive Inference における観測の事前選好分布 C。
evaluator_cmdstringいいえevaluator_command の別名:候補評価器のシェルコマンドまたはツール呼び出し。
failure_countintegerいいえ3段階の認知ギア調停における過去の失敗回数。
failure_modesarray|stringいいえ批評で特定された敵対的な失敗モードのリスト。
generator_cmdstringいいえgenerator_command の別名:候補生成器のシェルコマンドまたはツール呼び出し。
initial_worldstringいいえKripke モデル検査の初期世界 ID。
interventionsobject|stringいいえPearl の do-operator による介入の辞書:{node_id: value}。
mutation_ratenumberいいえ遺伝的突然変異率の確率(デフォルトは 0.15)。
phase_summarystringいいえ前のフェーズで完了した調査結果または成果物の簡潔な要約。
pipeline_namestringいいえ自動化パイプライン名の代替エイリアス。
pipeline_typestringいいえ自律型パイプラインの種類(デフォルトは 'closed_loop')。
target_metricstringいいえ感度および構造的脆弱性分析の対象となる KPI ノード ID。
contradictionsarray|stringいいえTRIZ 原理を用いて解決するパラメーターのトレードオフ/矛盾のリスト。
crossover_ratenumberいいえ遺伝的交叉率の確率(デフォルトは 0.80)。
dials_overrideobjectいいえ任意の離散ダイヤル上書き値:分散(1-10)、動き(1-10)、密度(1-10)。
invariant_namestringいいえ形式的不変条件の識別子またはタイトル(例:'INV-01: Zero-Deadlock Ring Buffer')。
max_iterationsintegerいいえ停止までの最大閉ループ反復回数(デフォルトは 10)。
seed_paradigmsarray|stringいいえ遺伝子プールの初期化に使用する、任意の初期パラダイム定義のリスト。
task_objectivestringいいえ目標スコアリング基準のタスク目標または達成目標。
population_sizeintegerいいえ進化的遺伝子プールの集団サイズ(デフォルトは 12)。
refinement_typestringいいえ再考・改良サイクルの種類(例:'archetype_exploration'、'triz_resolution'、'adversarial_falsification'、'benchmark_probe'、'failure_mode_analysis')。
remediated_codestringいいえ修正済みソースコード文字列の入力。ソースコード文字列からのターゲットの動的実行は無効であり、別途サンドボックス実行環境が必要です。
subagent_promptstringいいえ検証対象のサブエージェントへの委任プロンプトまたは契約テキスト。
target_resourcestringいいえ証明検証の対象リソース(ファイルパス、レシート ID)。
task_complexitynumberいいえ三段階の認知的調停に用いるタスク複雑度指数 [0.0, 1.0]。
antithesis_titlestringいいえアンチテーゼ/敵対的批評のタイトル。
broken_scenariosarray|stringいいえレッドチームレビュー中に見つかった、破綻した攻撃シナリオのリストまたは JSON 文字列。
formal_statementstringいいえ決して違反してはならない数学的または形式的な契約仕様。
item_evaluationsarray|object|stringいいえpointer_id、satisfied、score、evidence_receipt_id を含む、項目評価のマッピング、リスト、または JSON 文字列。
selected_conceptstringいいえ選択したビジュアルコンセプトのアーキタイプの識別子。
target_thresholdnumberいいえパイプラインの反復を終了するための目標しきい値スコア(デフォルトは 0.95)。
custom_hypothesesarray|stringいいえカスタムの敵対的仮説/攻撃ベクトルのリストまたは JSON 文字列。
evaluator_commandstringいいえ候補評価器用の Shell コマンドまたはツール呼び出し。
generator_commandstringいいえ候補生成器用の Shell コマンドまたはツール呼び出し。
max_debate_roundsintegerいいえ統合のための弁証法的議論の最大ラウンド数(デフォルトは 4)。
objective_weightsobject|stringいいえ10 個のパレート次元にまたがる任意の重み辞書。
archetype_overridestringいいえHaute の美学的アーキタイプに対する任意の上書き値。
auto_log_epistemicbooleanいいえ取得した研究結果を、後続の相互検証に備えて Fable Session の認識論的台帳に [HYPOTHESIS] 候補項目として自動記録するかどうか。
proof_or_rationalestringいいえ不変条件を確立するための証明の概略、根拠、または帰納的論証。
thesis_descriptionstringいいえ論文候補のコアアーキテクチャの説明と前提。
affected_invariantsarray|stringいいえこのファイル変更の影響を受ける不変条件名のリストまたは文字列。
time_budget_minutesnumberいいえ変更不可の外部権限時間予算(分)。set_timer で変更できるのは内部のペース配分タイマーのみです。
include_line_numbersbooleanいいえ行スライスに行番号を付けるかどうか。
contradiction_densitynumberいいえ認知モード切り替えのための矛盾密度指数 [0.0, 1.0]。
epistemic_uncertaintynumberいいえ調停のための認識論的不確実性指数 [0.0, 1.0]。
critique_or_bottleneckstringいいえ精査対象となる重大な欠陥、脆弱性、エッジケース、メモリ/レイテンシのボトルネック、または前提。
terminal_probe_resultsstringいいえ改良を裏付けるライブの実証プローブ出力、ベンチマーク値、レイテンシ値、またはプロファイリング統計。
architectural_refinementstringいいえ批評に基づく具体的なアーキテクチャの進化、最適化、またはアルゴリズムの変更。
target_residual_thresholdnumberいいえ収束のための目標残余矛盾スコアのしきい値(デフォルトは 0.15)。

詳細


Fable Mode

Fable Mode

書き始める前に考えるエージェント。


Python 3.10+   MIT   MCP   依存関係ゼロ   490 件のテストに合格





Fable Mode は、AI コーディングエージェント向けのオープンソースの制御プレーンです。

エージェントが慎重に判断し、証拠を提示し、敵対的なレビューを乗り越えてから 初めてワークスペースへの書き込みを許可されるようにします。ゲートは プロンプト上の助言ではなく、機械的に制御されます。タイマーがなければ、証明がなければ、書き込みアクセスはありません。


考える → 証明する → 攻撃する → 書き込む
デモ

KERR // ORRERY

自己完結型の HTML ファイルが 1 つ。生の WebGL、ライブラリゼロ、外部アセットゼロ、 ビルド手順もありません。

https://github.com/user-attachments/assets/8287bbfe-e3ee-4dcf-ba0f-f9ff22ae79bd

最終版の前に 7 件のレンダリングを却下 · 2 件のバグを検出 · レッドチームのプローブ 10 件すべてに合格


Fable Mode の概要

https://github.com/user-attachments/assets/27f4f8a2-b1bb-4398-a08c-bc9fd93d69d7


クイックスタート

セッションはロックされた状態で始まります。自信があってもロックは解除されません。

  1. 以下のいずれかの方法で MCP サーバーをインストールします。
  2. 完全なワークフローを使う場合は、オプションの Agent Skill を追加します。
  3. エージェントに具体的なコーディングタスクを依頼し、時間の上限を指定して Fable Mode を使うよう指示します。

新しいセッションは実行がロックされた状態で始まります。

{
  "action": "create_session",
  "session_name": "demo-refactor",
  "objective": "Refactor the parser without changing public behavior",
  "time_budget_minutes": 2
}

その後、エージェントは証拠と不変条件を記録します。早すぎる unlock_execution リクエストは、権限タイマーと証明の前提条件を満たすまで拒否されます。 いつでも get_status を使って、アクティブなフェーズ、残り時間、証拠の 件数、ロック状態を確認できます。

同じゲートがすべてのフェーズを保護します。主張には証拠レシート、コードには 5 つのベクトルを使ったレッドチームスウォーム、検証内容には封印された記録を適用します。


1 つのパッケージ、2 つのエージェント環境

Fable は 1 つの PyPI パッケージとして配布されます。同じパッケージにランタイム、stdio MCP サーバー、完全な Agent Skill が含まれています。MCP サーバーのインストールによってワークスペースの指示が暗黙に有効にならないよう、セットアップは明示的に行います。

エージェントが作業するプロジェクトからセットアップを実行します。

uvx --from fable-engine==1.3.9 fable-mode setup --yes

これにより、分離された uv 環境で固定バージョンのパッケージが解決され、バンドルされたスキルが .agents/skills/fable-mode にコピーされます。プレビューするには --dry-run を、 別のスキルディレクトリを指定するには --target <dir> を使います。永続的にインストールするには、次を使います。

python -m pip install fable-engine
fable-mode setup --yes

次に、エージェント環境に合った呼び出し方法だけを選んでください。

ネイティブ MCP クライアント

fable-engine を stdio サーバーとして実行します。例:

// Claude Code: claude mcp add fable-engine -- uvx --from fable-engine==1.3.9 fable-engine
// Cursor or another JSON-configured client:
{
  "mcpServers": {
    "fable-engine": {
      "command": "uvx",
      "args": ["--from", "fable-engine==1.3.9", "fable-engine"]
    }
  }
}

VS Code に MCP サーバーをインストール

インターネット接続可能なシェルサンドボックス、MCP ホストなし

同じパッケージは、直接 JSON トランスポートも提供します。fable-mode call に fable_session 引数オブジェクトを 1 つパイプで渡します。

printf '%s\n' '{"action":"create_session","session_name":"demo","objective":"Verify this change","time_budget_minutes":2}' \
  | uvx --from fable-engine==1.3.9 fable-mode call

このコマンドでは JSON Lines を使用します。入力行ごとに fable_session 引数オブジェクトを 1 つ、出力行ごとに JSON の結果を 1 つ渡します。権限のタイマーとセッションが同じ信頼されたランタイム内にとどまるよう、ワークフロー全体を通してプロセスを開いたままにしてください。1 行のパイプは、単一の確認呼び出しに便利です。各 uvx コマンドは分離された環境を解決できます。サンドボックスで呼び出し間も Python 環境が保持される場合は、pip install のほうが適しています。セッションデータは、その環境の外にある Fable のデータディレクトリに保持されます(FABLE_DATA_DIR で上書きできます)。

Python 3.10 以降、実行時の依存関係はありません。PyPI で fable-engine として公開されています。

スキルの有効化は引き続き明示的に行います

統一された方法は setup です。以前からある install-skill コマンドも、スキルのみをインストールする互換性のあるエイリアスとして引き続き利用できます。fable-engine も pip install fable-engine も、それだけでワークスペースに指示を書き込むことはありません。


仕組み
  1. 思考 — 時間制限付きの検討を行います。タイマーが終了するまで、エージェントは書き込みできません。
  2. 証明 — 主張には実際の証拠(ツールの受領記録、ハッシュ、不変条件)が必要です。
  3. 攻撃 — レッドチームの群れがコードを破ろうとします。
  4. 書き込み — その後に限り、ワークスペースのロックが解除されます。

オプション:AI による証拠の判定

セッション内の証拠は AI エージェントが記述するため、Fable ではオプションで、ワークスペースのロックを解除する前に外部のレビューモデルに証拠の監査を依頼できます。標準ライブラリのみを使用し、上限付きの HTTPS 呼び出しを 1 回行います。ローカルモデルは不要で、RAM の追加消費もほとんどありません。デフォルトでは無効で、適用時はフェイルクローズです。捏造された証明のコストを引き上げますが、欺瞞を不可能にするものではなく、機械的なゲートが引き続き主な権限を担います。設定方法と誠実な制約については、AI による証拠の判定をご覧ください。


これは何ではないか
  • 完璧なコードを主張するものではありません。保証ではなく、検証可能なワークフローです。
  • より大きなプロンプトではありません。ロックは文言ではなく、エンジンによって適用されます。
  • フレームワークへのロックインではありません。MCP と連携し、現在のエージェントと並行して動作します。

ドキュメント

コントリビューション

イシューやプルリクエストを歓迎します。CONTRIBUTING.mdをご覧ください。



MIT License · REX によって構築

コメント

MCP は初めてですか?

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

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