Fable Mode について
Fable Modeは、AIコーディングエージェント向けのオープンソース制御プレーンです。ワークスペースへの書き込みを許可する前に、時間制限付きの検討、証拠の提示、敵対的レビューを求めます。MCPサーバーと任意のAgent Skillを備え、同じパッケージで直接JSON転送も利用できます。
主な機能
- 01書き込み前の時間制限付き検討
- 02証拠レシートと不変条件の記録
- 035方向のレッドチームレビュー
- 04検証記録の封印
- 05任意のAI証拠判定
活用シーン
- 01コーディング作業中の書き込み制御
- 02エージェントの主張への証拠要求
- 03変更許可前のコードへのレッドチームレビュー
MCP 対応
stdio MCPサーバーにより、クライアントは`fable_session`などのツールでセッション管理や状態確認を行えます。MCPホストを使わない直接JSON転送にも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
14掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| tag | enum | いいえ | 真偽の較正に使う認識論的分類タグ。PROVEN | HYPOTHESIS | UNKNOWN |
| code | string | いいえ | anti-slop ゲートに照らして監査または検証するソースコード(HTML、JSX、CSS、または TSX)。 |
| name | string | いいえ | 自動化パイプライン仕様の名前識別子。 |
| tree | object|array|string | いいえ | 双曲埋め込み用のツリー階層隣接リストまたはネストされた辞書。 |
| claim | string | いいえ | 認識論的台帳で追跡する事実、仮説の記述、または未知のパラメーター。 |
| edges | array|string | いいえ | Causal DAG の構築に使う、有向エッジ辞書のリスト。 |
| gamma | number | いいえ | Active Inference softmax の方策精度の逆温度 gamma(デフォルトは 16.0)。 |
| label | string | いいえ | 圧縮された CAS ノードの任意のラベルまたは説明。 |
| nodes | array|string | いいえ | Causal DAG の構築に使うノード辞書のリスト。 |
| action | enum | はい | 実行する 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 |
| axioms | array|string | いいえ | 証明オラクル用の参照公理名または文字列のリスト。 |
| domain | string | いいえ | 不変条件または皮質可塑性の固定化における領域境界。 |
| states | array|string | いいえ | アクティブ推論 POMDP の隠れ状態識別子のリスト。 |
| target | string | いいえ | 調査スクレイピング操作の対象 URL、ID、subreddit、repo、論文 ID、ハンドル名、または検索クエリ文字列。 |
| worlds | array|string | いいえ | Kripke 構造の世界/状態定義のリスト。 |
| actions | array|string | いいえ | アクティブ推論 POMDP の制御アクション識別子のリスト。 |
| cas_ref | string | いいえ | CAS 参照 URI(cas://<sha256_hex>)または 64 文字のハッシュ。 |
| content | string | いいえ | コンテンツアドレスストレージ(CAS)に保存/圧縮する生テキスト内容またはペイロード。 |
| context | object|string | いいえ | 証明オラクルの仮説型コンテキスト辞書 {name: type}。 |
| d_prior | array|string | いいえ | アクティブ推論の事前初期状態信念分布 D。 |
| formula | string | いいえ | Kripke 構造に対して検証する CTL/モーダル論理式文字列(例:'AG(safe)'、'EF(goal)')。 |
| mockups | array|string | いいえ | ビジュアルモックアップの記録用コンセプト辞書のリスト。 |
| payload | string | いいえ | 適応型バッチアキュムレーターまたは CAS ストレージ用のマイクロペイロードテキスト。 |
| root_id | string | いいえ | 双曲木埋め込みまたは初期世界のルートノード ID。 |
| task_id | string | いいえ | 皮質可塑性の固定またはセッション系譜のタスク識別子。 |
| a_matrix | array|string | いいえ | アクティブ推論の観測尤度行列 A [O x S]。 |
| criteria | array|string|object | いいえ | 目標スコア評価用の基準ポインターのリスト、または評価基準項目の JSON 文字列。 |
| end_line | integer | いいえ | ウィンドウ化された行スライス表示の終了行番号(1 始まり、指定行を含む)。 |
| evidence | string | いいえ | 主張を裏付けるソースファイル、コマンド出力、行番号、または URL。 |
| metadata | object | いいえ | 累積されたマイクロペイロードに添付する任意のメタデータ辞書。 |
| policies | array|string | いいえ | 期待自由エネルギー評価用の候補アクションシーケンスポリシーのリスト。 |
| archetype | enum | いいえ | デザイントークンまたはスキャフォールディング用のハイエンドな美的アーキタイプ識別子。cyber_obsidian_monolith | haute_editorial_modernism | swiss_precision_vignelli | kinetic_spatial_hud | neo_nordic_warmth | cold_chromatic_luxury |
| base_step | number | いいえ | 双曲木埋め込みの基本測地ステップ距離(デフォルトは 1.0)。 |
| curvature | number | いいえ | ポアンカレ多様体の断面曲率 c > 0(デフォルトは 1.0)。 |
| dimension | integer | いいえ | ポアンカレ球多様体の次元(デフォルトは 2)。 |
| file_path | string | いいえ | ファイル変更の追跡または証明検証の対象ファイルパス。 |
| objective | string | いいえ | 推論セッションの高レベルな目標または問題の説明。 |
| rationale | string | いいえ | 認知ゲートを満たした後にコード実行を解除する根拠。 |
| rubric_id | string | いいえ | 目標ルーブリックの識別子。 |
| b_matrices | object|string | いいえ | アクティブ・インference用の状態遷移行列 B [Action -> S x S]。 |
| focus_area | string | いいえ | 批判的に再評価する特定のサブシステム、コンポーネント、アルゴリズム、またはインターフェース。 |
| model_name | string | いいえ | System 3 シミュレーションにおける因果 DAG モデルの名前。 |
| next_phase | enum | いいえ | セッションを進める対象フェーズ。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_type | enum | いいえ | 決定論的な証明タイプ。ast | receipt | file_sha256 | formal_logic | vector_coordinates |
| start_line | integer | いいえ | ウィンドウ表示する行スライスの開始行番号(1 始まり、開始行を含む)。 |
| change_type | enum | いいえ | ファイル変更の分類。modified | created | deleted | slated |
| evaluations | array|object|string | いいえ | item_evaluations の別名:基準評価更新のリストまたは辞書。 |
| force_flush | boolean | いいえ | バッファリングされたマイクロペイロードを複合フレームに直ちに強制フラッシュします。 |
| generations | integer | いいえ | 実行する進化世代数(デフォルトは 3)。 |
| node_labels | object|string | いいえ | ノード ID を読みやすいラベルに対応付ける任意のマッピング。 |
| observation | string | いいえ | アクティブ・インferenceの信念更新に使用する現在の感覚観測。 |
| target_code | string | いいえ | ソースコード文字列の入力。ソースコード文字列からのターゲットの動的実行は無効であり、別個のサンドボックス実行環境が必要です。 |
| target_name | string | いいえ | レッドチームレビューの対象となるモジュール、クラス、または関数の識別子または名前。 |
| transitions | array|object|string | いいえ | Kripke 構造の遷移リストまたは隣接辞書。 |
| user_prompt | string | いいえ | prompt の別名:望ましい Web エクスペリエンスを記述する高レベルの設計プロンプト。 |
| code_snippet | string | いいえ | ソースコード文字列入力の代替エイリアス。ソースコード文字列からのターゲットの動的実行は無効になっており、別個のサンドボックス実行器が必要です。 |
| diff_summary | string | いいえ | ファイル変更、差分、または予定されている編集の簡潔な要約。 |
| observations | array|string | いいえ | Active Inference POMDP の観測識別子のリスト。 |
| prior_report | object|string | いいえ | 修正内容の検証に使用する、以前のレッドチーム障害レポートの辞書または JSON 文字列。 |
| session_name | string | いいえ | Fable セッションの一意の識別子または名前。 |
| target_score | number | いいえ | 目標とする複合目標スコアのしきい値(デフォルトは 0.95、最小値は 0.0、最大値は 1.0)。 |
| thesis_title | string | いいえ | System 3 の弁証法的統合に用いる論題パラダイムのタイトル。 |
| artifact_path | string | いいえ | 改善内容を記録する、ブループリント成果物、証明、またはベンチマークスクリプトの絶対ファイルシステムパス。 |
| c_preferences | array|string | いいえ | Active Inference における観測の事前選好分布 C。 |
| evaluator_cmd | string | いいえ | evaluator_command の別名:候補評価器のシェルコマンドまたはツール呼び出し。 |
| failure_count | integer | いいえ | 3段階の認知ギア調停における過去の失敗回数。 |
| failure_modes | array|string | いいえ | 批評で特定された敵対的な失敗モードのリスト。 |
| generator_cmd | string | いいえ | generator_command の別名:候補生成器のシェルコマンドまたはツール呼び出し。 |
| initial_world | string | いいえ | Kripke モデル検査の初期世界 ID。 |
| interventions | object|string | いいえ | Pearl の do-operator による介入の辞書:{node_id: value}。 |
| mutation_rate | number | いいえ | 遺伝的突然変異率の確率(デフォルトは 0.15)。 |
| phase_summary | string | いいえ | 前のフェーズで完了した調査結果または成果物の簡潔な要約。 |
| pipeline_name | string | いいえ | 自動化パイプライン名の代替エイリアス。 |
| pipeline_type | string | いいえ | 自律型パイプラインの種類(デフォルトは 'closed_loop')。 |
| target_metric | string | いいえ | 感度および構造的脆弱性分析の対象となる KPI ノード ID。 |
| contradictions | array|string | いいえ | TRIZ 原理を用いて解決するパラメーターのトレードオフ/矛盾のリスト。 |
| crossover_rate | number | いいえ | 遺伝的交叉率の確率(デフォルトは 0.80)。 |
| dials_override | object | いいえ | 任意の離散ダイヤル上書き値:分散(1-10)、動き(1-10)、密度(1-10)。 |
| invariant_name | string | いいえ | 形式的不変条件の識別子またはタイトル(例:'INV-01: Zero-Deadlock Ring Buffer')。 |
| max_iterations | integer | いいえ | 停止までの最大閉ループ反復回数(デフォルトは 10)。 |
| seed_paradigms | array|string | いいえ | 遺伝子プールの初期化に使用する、任意の初期パラダイム定義のリスト。 |
| task_objective | string | いいえ | 目標スコアリング基準のタスク目標または達成目標。 |
| population_size | integer | いいえ | 進化的遺伝子プールの集団サイズ(デフォルトは 12)。 |
| refinement_type | string | いいえ | 再考・改良サイクルの種類(例:'archetype_exploration'、'triz_resolution'、'adversarial_falsification'、'benchmark_probe'、'failure_mode_analysis')。 |
| remediated_code | string | いいえ | 修正済みソースコード文字列の入力。ソースコード文字列からのターゲットの動的実行は無効であり、別途サンドボックス実行環境が必要です。 |
| subagent_prompt | string | いいえ | 検証対象のサブエージェントへの委任プロンプトまたは契約テキスト。 |
| target_resource | string | いいえ | 証明検証の対象リソース(ファイルパス、レシート ID)。 |
| task_complexity | number | いいえ | 三段階の認知的調停に用いるタスク複雑度指数 [0.0, 1.0]。 |
| antithesis_title | string | いいえ | アンチテーゼ/敵対的批評のタイトル。 |
| broken_scenarios | array|string | いいえ | レッドチームレビュー中に見つかった、破綻した攻撃シナリオのリストまたは JSON 文字列。 |
| formal_statement | string | いいえ | 決して違反してはならない数学的または形式的な契約仕様。 |
| item_evaluations | array|object|string | いいえ | pointer_id、satisfied、score、evidence_receipt_id を含む、項目評価のマッピング、リスト、または JSON 文字列。 |
| selected_concept | string | いいえ | 選択したビジュアルコンセプトのアーキタイプの識別子。 |
| target_threshold | number | いいえ | パイプラインの反復を終了するための目標しきい値スコア(デフォルトは 0.95)。 |
| custom_hypotheses | array|string | いいえ | カスタムの敵対的仮説/攻撃ベクトルのリストまたは JSON 文字列。 |
| evaluator_command | string | いいえ | 候補評価器用の Shell コマンドまたはツール呼び出し。 |
| generator_command | string | いいえ | 候補生成器用の Shell コマンドまたはツール呼び出し。 |
| max_debate_rounds | integer | いいえ | 統合のための弁証法的議論の最大ラウンド数(デフォルトは 4)。 |
| objective_weights | object|string | いいえ | 10 個のパレート次元にまたがる任意の重み辞書。 |
| archetype_override | string | いいえ | Haute の美学的アーキタイプに対する任意の上書き値。 |
| auto_log_epistemic | boolean | いいえ | 取得した研究結果を、後続の相互検証に備えて Fable Session の認識論的台帳に [HYPOTHESIS] 候補項目として自動記録するかどうか。 |
| proof_or_rationale | string | いいえ | 不変条件を確立するための証明の概略、根拠、または帰納的論証。 |
| thesis_description | string | いいえ | 論文候補のコアアーキテクチャの説明と前提。 |
| affected_invariants | array|string | いいえ | このファイル変更の影響を受ける不変条件名のリストまたは文字列。 |
| time_budget_minutes | number | いいえ | 変更不可の外部権限時間予算(分)。set_timer で変更できるのは内部のペース配分タイマーのみです。 |
| include_line_numbers | boolean | いいえ | 行スライスに行番号を付けるかどうか。 |
| contradiction_density | number | いいえ | 認知モード切り替えのための矛盾密度指数 [0.0, 1.0]。 |
| epistemic_uncertainty | number | いいえ | 調停のための認識論的不確実性指数 [0.0, 1.0]。 |
| critique_or_bottleneck | string | いいえ | 精査対象となる重大な欠陥、脆弱性、エッジケース、メモリ/レイテンシのボトルネック、または前提。 |
| terminal_probe_results | string | いいえ | 改良を裏付けるライブの実証プローブ出力、ベンチマーク値、レイテンシ値、またはプロファイリング統計。 |
| architectural_refinement | string | いいえ | 批評に基づく具体的なアーキテクチャの進化、最適化、またはアルゴリズムの変更。 |
| target_residual_threshold | number | いいえ | 収束のための目標残余矛盾スコアのしきい値(デフォルトは 0.15)。 |
詳細
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
クイックスタート
セッションはロックされた状態で始まります。自信があってもロックは解除されません。
- 以下のいずれかの方法で MCP サーバーをインストールします。
- 完全なワークフローを使う場合は、オプションの Agent Skill を追加します。
- エージェントに具体的なコーディングタスクを依頼し、時間の上限を指定して 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"]
}
}
}
インターネット接続可能なシェルサンドボックス、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 も、それだけでワークスペースに指示を書き込むことはありません。
仕組み
- 思考 — 時間制限付きの検討を行います。タイマーが終了するまで、エージェントは書き込みできません。
- 証明 — 主張には実際の証拠(ツールの受領記録、ハッシュ、不変条件)が必要です。
- 攻撃 — レッドチームの群れがコードを破ろうとします。
- 書き込み — その後に限り、ワークスペースのロックが解除されます。
オプション:AI による証拠の判定
セッション内の証拠は AI エージェントが記述するため、Fable ではオプションで、ワークスペースのロックを解除する前に外部のレビューモデルに証拠の監査を依頼できます。標準ライブラリのみを使用し、上限付きの HTTPS 呼び出しを 1 回行います。ローカルモデルは不要で、RAM の追加消費もほとんどありません。デフォルトでは無効で、適用時はフェイルクローズです。捏造された証明のコストを引き上げますが、欺瞞を不可能にするものではなく、機械的なゲートが引き続き主な権限を担います。設定方法と誠実な制約については、AI による証拠の判定をご覧ください。
これは何ではないか
- 完璧なコードを主張するものではありません。保証ではなく、検証可能なワークフローです。
- より大きなプロンプトではありません。ロックは文言ではなく、エンジンによって適用されます。
- フレームワークへのロックインではありません。MCP と連携し、現在のエージェントと並行して動作します。
ドキュメント
コントリビューション
イシューやプルリクエストを歓迎します。CONTRIBUTING.mdをご覧ください。
MIT License · REX によって構築
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。