mcpField
O
OpenReflex

OpenReflex

ローカル
openreflex.ccメモリ・ナレッジ32 日前に更新

OpenReflex について

OpenReflex はライフサイクルフックで作業を記録し、新しいタスクに関連する手順を注入することで、コーディングエージェントにプロジェクト固有の記憶を提供します。記憶はローカルの SQLite に保存され、MCP 診断機能は任意で有効化します。

主な機能

  1. 01タスクから再利用可能な手順を抽出
  2. 02タスクに関連する経験を注入
  3. 03失敗の反復や進捗停滞を検出
  4. 04検証結果に基づくタスク記録の完了
  5. 05ローカル SQLite へのプロジェクト記憶保存
  6. 06任意の MCP 診断・管理ツール

活用シーン

  1. 01新しいタスクで実証済みの手順を再利用
  2. 02失敗が続く際に方針を変更または停止
  3. 03判断理由と実行トレースの確認
  4. 04診断ツールによるプロジェクト経験の検索

MCP 対応

通常の作業では MCP ツールを読み込みません。任意の診断機能を有効にすると、実行コンテキスト、進捗、判断、過去の経験を照会し、プロジェクト記憶を管理する MCP ツールを利用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"vishnu-77-openreflex": {
"command": "uvx",
"args": [
"openreflex"
]
}
}
}
起動コマンドuvx openreflex

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

パッケージ
pypiopenreflex0.10.1

ツール

14

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

パラメーター型必須説明
taskstringはいタスクを通常の文で1~2文にまとめます。例:'Fix the login redirect loop after logout'。類似する過去のタスクの検索に使用されます。保存前に秘密情報はマスキングされます。
max_minutesanyいいえアクティブな作業時間の上限(分)。省略可能で、正数を指定します。デフォルト:上限なし。
max_tool_callsanyいいえこのタスクでのツール呼び出し回数の上限。省略可能で、正の整数を指定します。デフォルト:上限なし。
max_context_tokensanyいいえコンテキストに追加するツール出力のトークン数の上限。省略可能で、正の整数を指定します。デフォルト:上限なし。

詳細


OpenReflex とは

OpenReflex は、コーディング、調査、推論の作業全体で、AI コーディングエージェントにプロジェクト固有の知識を自然に身につけさせます。 ライフサイクルフックが作業の実際の進め方をひそかに記録し、繰り返されるプロジェクトの振る舞いを再利用可能な Reflex にまとめ、新しいタスクには関連するプロジェクト手順だけを挿入します。モデルが OpenReflex の呼び出しを覚えておく必要はなく、MCP の診断機能は通常のエージェントコンテキストに読み込まれず、必要な場合にのみ有効にできます。

一度インストールすれば、普段どおり作業を続けられます。中核となるメモリは、ローカルの SQLite データベースに保存され、マシンの外に出ることはありません。OpenReflex のアカウントやホスト型サービスはありません。Claude Code のトークン数は、Claude Code がローカルに書き込むセッショントランスクリプトから読み取られ、保存されるのはその数だけです。openreflex tokens enable を実行すると、オプションで Claude Code の OpenTelemetry エクスポートを通じて、ループバック接続のみを受け付けるレシーバーに推定コストを追加できます。

OpenReflex を使用した Claude Code セッションの録画:OpenReflex が簡潔な過去のコンテキストを挿入し、Claude がタスクを修正して検証を実行し、ライフサイクルフックが結果を自動的に記録します
Claude Code セッションの録画です。OpenReflex は作業の前に関連するコンテキストを簡潔に挿入します。ライフサイクルフックはツールの使用状況と検証結果を記録し、実行を自動的に完了します。通常の利用に MCP は必要ありません。手順を追った操作ガイドは docs/walkthrough.md にあります。

## OpenReflex を選ぶ理由
  • プロジェクトの動作を学習します。 OpenReflex は、認証の変更、Helm の設定、データベースのマイグレーション、CI の作業など、成功した作業をプロジェクト単位の Reflexes にまとめます。解決時には、意味的な意図、タスクの種類、モジュールやファイルの関連性を組み合わせるため、これまでに取り組んだことのないタスクでも、過去のタスクを繰り返すことなくプロジェクトの手順を再利用できます。
  • ループを発生時に検出します。 失敗するコマンドの繰り返し、同じ内容の再試行、進捗の停滞、コンテキストの際限ない増大を検出すると、続行するか、別の方法に切り替えるか、停止して確認を求めるかを示すアラートを1つだけ通知します。通知が何度も繰り返されることはありません。
  • タスクのたびに学習します。 ビルド作業は、テスト、lint、ビルドの証拠をもとに完了とします。調査は、複数の情報源を照合して完了とできます。推論のみの作業は、外部ツールを使わずに完了できます。シンプルな Path check は、同等の過去のタスクがよりよい選択肢を実際に裏付けている場合にのみ、その選択肢を示します。
  • プライバシーを設計段階から重視しています。 保存されるのは、大まかなプロジェクト相対のメタデータのみです。ファイルの内容、コマンド、ツールの出力、トランスクリプトは保存されません。また、プロジェクトを承認するまでは情報の記録は無効です。

タスクの前:類似する経験を取得し、候補となる進め方を評価して、コンテキストと予算を注入します。タスクの実行中:すべてのツール呼び出しを監視し、ループや停滞を検出して、続行、別の方法への切り替え、停止を提案します。タスクの後:作業に適した証拠を用いて結果を確定し、シンプルな Path check を実行して、教訓を抽出します。その教訓が Experience Graph に反映され、次のタスクに活用されます。

クイックスタート

Python 3.11 以降が必要です。

Claude Code — 推奨: プラグインをインストールして再読み込みし、現在の状態を確認した後、プロジェクトのメモリを明示的に有効にします。

/plugin marketplace add vishnu-77/openreflex
/plugin install openreflex@openreflex
/reload-plugins
/openreflex
/openreflex approve

Claude では、正規のプラグイン名前空間が /openreflex:openreflex と表示されることがあります。短縮エイリアスが利用可能な場合、どちらもユーザーが呼び出す同じ OpenReflex の操作画面を指します。引数なしのコマンドは読み取り専用で、出力は簡潔です。approve を実行すると、現在のプロジェクトでローカルメモリが明示的に有効になります。プラグインは ~/.openreflex/runtime/ に正確なバージョンのランタイムを用意します。承認後は、通常のエージェント作業がバックグラウンドで行われます。

Claude プラグインが、PATH 上のグローバルな openreflex を実行することはありません。以前にインストールした pipx/uv/pip 版と共存でき、プラグインのランタイムがそれらに置き換わることもありません。

CLI/その他のエージェント: パッケージを常時利用できるようにインストールします。

pipx install openreflex            # or: uv tool install openreflex
cd your-project
openreflex install codex           # or cursor / opencode / claude-code

いくつかのタスクを実行した後:

openreflex context "fix the login redirect bug"   # preview the context a task would receive
openreflex status                                 # what has been captured and learned
openreflex doctor                                 # installation checks and recent hook errors
openreflex update --check                         # check the latest stable release

パッケージを更新しても、ローカルメモリとプロジェクト設定は保持されます。管理対象の pipx および uv tool のインストールでは、openreflex update、openreflex update --reinstall、または openreflex self reinstall を使用できます。Claude プラグインは固定されたランタイムを自動で管理するため、これらのパッケージマネージャー用コマンドが必要なのは、単独で CLI をインストールした場合のみです。

エージェントで使用する

OpenReflex は、プロジェクトごとに openreflex install <agent> でインストールするか、プラグインとしてインストールできます。

エージェント接続方法インストール検証済み
Claude Codeプラグインフック、またはプロジェクトフックclaude plugin marketplace add vishnu-77/openreflex を実行してから claude plugin install openreflex@openreflex を実行するか、openreflex install claude-code を実行ライブセッション
Codexプラグインフック、またはプロジェクトフックcodex plugin marketplace add vishnu-77/openreflex を実行するか、openreflex install codex を実行してから、/hooks でフックを一度信頼するライブセッション
Cursorライフサイクルフックopenreflex install cursorプロトコルテストとファズテスト
OpenCodeローカルライフサイクルプラグインopenreflex install opencodeプロトコルテストとファズテスト

Claude プラグインでは、/openreflex を実行すると、読み取り専用の簡潔な状態ビューが表示されます。/openreflex approve を使用して現在のプロジェクトでローカルメモリを有効にしてから、通常どおり作業してください。ほかにも、status、reflexes、memory、doctor、why、trace、revoke などの明示的な操作を利用できます。OpenReflex の制御ターンはプロジェクトの経験として学習されず、通常のタスク検証も実行されません。制御スキルはユーザーが呼び出した場合にのみ動作し、MCP 診断を有効にしたり、通常のモデルルーティングに参加したりすることはありません。Claude では、正規の名前空間付き形式である /openreflex:openreflex が表示される場合があります。エージェントごとのガイド: Claude Code、Codex、Cursor、 OpenCode。

仕組み

フックはライフサイクルイベント(プロンプト、ツールの開始、ツールの終了、コンパクション、停止)を OpenReflex エンジンに送信し、エンジンはそれらを経験グラフに保存します。

Task -caused-> Execution -used-> Context -used-> Experience
CandidatePath -recommended_for-> Task            Lesson -recommended_for-> Task
Execution -failed_with-> ToolCall -resolved_by-> ToolCall
Execution -caused-> Outcome -caused-> Experience -caused-> Lesson
  • タスク開始前: 類似した経験を検索し、OpenReflex がまず作業モードを特定します。BUILD では inspect-first、test-first、incremental を使用し、INVESTIGATE では source-first、 cross-check、broad-then-deep を使用します。THINK では reason-first、compare-options、 evidence-first を使用します。過去の根拠、推定コスト、リスク、不確実性、可逆性に基づいて経路を順位付けします。 注入されたテキストは後続の API 呼び出しごとに再度読み込まれるため、タスクに固有の場合に限ってコンテキストを注入します。 具体的には、一致する Reflex、またはこのプロジェクトですでに発生した失敗に関する教訓です。5 件に 1 件の重要なタスク (evaluation.holdout_percent ポリシー値)はホールドアウトです。OpenReflex は記録しますが、何も表示しないため、 openreflex status を使って、OpenReflex の有無によるタスクあたりのモデルのトークン数を比較できます。
  • タスク間(Claude Code): セッションにすでに大量の履歴 (context.reset_hint_tokens)がある状態で、新しい無関係なタスクが始まると、OpenReflex が /clear を提案します。 この提案がモデルに表示されることはありません。/clear の後、新しいセッションには、クリアしたタスクの全履歴ではなく、 短い要約が引き継がれます。
  • タスク実行中: すでに 2 回失敗しており、その後に編集もチェックの成功もない同一の呼び出しは、実行前に拒否されます (Claude Code)。その他のエージェントでは警告が表示されます。このプロジェクトで過去に解決済みのエラーが発生した場合は、 最初の失敗時に、その解決方法が示されます。検出器が失敗ループ、呼び出しの繰り返し、進捗の停滞、またはコンテキストの増大を 検出すると、OpenReflex は作業を続けることによる限界価値を推定します。予算超過のアラートは既定でオフです。有効にするには detectors.over_budget_tiers を設定してください。現在の経路の成功見込みは、進捗がなかった、または失敗した呼び出しごとに 更新され、残りの作業コストおよび試していない最善の代替策と比較されます。アラートの最後には、続行、別の戦略への 切り替え、または停止してユーザーに確認するという推奨が表示されます。各問題、切り替え、停止は 1 回だけ通知され、 メッセージ間にはクールダウン期間が設けられます。
  • タスク完了後: ライフサイクルフックが、作業モードに適した根拠に基づいて実行を自動的に終了するため、モデルが OpenReflex を呼び出す必要はありません。明示的な MCP の結果/経路操作は、手動または診断のワークフローでのみ引き続き 利用できます。Path check には、比較可能な完了済みタスクが根拠を示している場合は better option: <path>、そうでない場合は better option: none proven と表示されます。 推奨が実際に実行された経路として提示されることはありません。

すべての推奨は、Reflex Score(0~100)を含む意思決定スナップショットとして保存されます。このスコアは推奨の確度を示すもので、 タスクの成功見込みとは別のものです。openreflex why では直近の判断の理由を確認でき、openreflex trace では時系列を確認できます。 Claude Code では、タスク開始時、OpenReflex が切り替えまたは停止を推奨したとき、問題を検出したとき、タスク完了時に短い要約が表示されます。

OPENREFLEX_BUDGET を設定すると、すべてのタスクに任意の上限を設定できます。たとえば calls=40,minutes=20,tokens=60000 のように指定します。 ルーティング、スコアリング、予算、要約の設定は、バージョン管理されたポリシーに従います。パッケージに含まれる既定値に、 ~/.openreflex/config.toml、続いてプロジェクトの .openreflex.toml の設定が上書きされます。

通常の作業では OpenReflex MCP ツールは読み込まれません。プロジェクトでモデル向けのイントロスペクションを明示的に利用するには、 openreflex diagnostics enable <agent> で有効にしてください。無効にするには openreflex diagnostics disable <agent> を実行します。単体の MCP Registry パッケージは、OpenReflex を MCP サーバーとして 意図的にインストールするユーザー向けに引き続き利用できます。

任意の MCP 診断/管理ツール | ツール | 機能 | |---|---| | `get_execution_context` | タスクを計画します。類似する過去のタスク、代替案を含む推奨戦略、予算、関連する可能性のあるファイル、教訓を提示します。オプションで `max_tool_calls`、`max_minutes`、`max_context_tokens` を指定できます。 | | `check_progress` | 現在の方針で作業を続ける価値があるかを判断します。続行、方針転換、停止のいずれかを提示します。 | | `choose_path` | 推奨と異なる場合に、採用する戦略を宣言します。 | | `record_outcome` | 確認済みの結果(テスト/ビルド、相互検証済みの調査、ユーザーの確認、失敗)を記録し、そこから学習します。 | | `explain_decision` | 最新の推奨の理由(Reflex Score、シグナル、確信度、次善の方針)を説明します。 | | `get_execution_trace` | 直近のタスクの意思決定のタイムラインを表示します。 | | `get_reflex_score` | 最新の Reflex Score とその構成要素を JSON 形式で表示します。 | | `search_experience` | 説明の類似度に基づいて、プロジェクト内の過去のタスクとその教訓を検索します。 | | `explain_node` | Experience Graph のノード 1 つとその関係を説明します。 | | `get_project_insights` | プロジェクトで記録、再利用、学習された内容を表示します。 | | `approve_project` | ユーザーが明示的に依頼した場合に限り、記録を有効にします。 | | `forget_experience` | ユーザーが明示的に依頼した場合に限り、過去のタスクの記憶を 1 つ削除します。 |

CLI

コマンド目的
install <agent> [--dry-run]フックのみのアンビエントランタイムをインストールし、プロジェクトを有効にします
diagnostics enable/disable <agent>モデル向け MCP 診断を明示的に有効/無効にします
uninstall <agent> [--dry-run]OpenReflex の統合エントリを削除します。記録済みのメモリは保持されます
update [--check] [--reinstall]管理対象の pipx/uv-tool インストールを確認または更新します。オプションで再インストールを強制できます
self reinstallメモリ/設定を保持したまま、管理対象の OpenReflex パッケージを修復/再インストールします
self uninstall --yes管理対象の OpenReflex パッケージのみを削除します。メモリ/設定はディスク上に残ります
approve / revoke現在のプロジェクトで記録を有効または無効にします
context "<task>"タスクに提供される Execution Context をプレビューします
status [--json]記録、再利用、学習された内容と、モデルのトークン使用量の比較を表示します
why / trace最新の推奨の理由を説明するか、意思決定のタイムラインを表示します
doctorインストール、プロジェクトの解決、最近のフック動作を確認します
forget --yesプロジェクトのデータを削除します
tokens enable / tokens status / tokens disableトークン数の確認にセットアップは不要です。ローカルの Claude Code テレメトリによる推定コストを有効にする、確認する、または OpenReflex が管理するテレメトリ設定を削除します
benchmarkシミュレーションベンチマークを実行します
hook <agent> <event>アンビエントエージェント統合で使用されます
mcpオプションの診断/管理用 MCP サーバーを明示的に実行します

プライバシー

保存される情報保存されない情報
ツール名と大まかなカテゴリ(read、edit、search、test、...)ファイルの内容
引数のフィンガープリントコマンドのテキスト
プロジェクト相対のファイルパスツールの出力
成功または失敗、所要時間、出力サイズトランスクリプトとモデルの出力
ローカルの Claude トランスクリプトから読み取った API 呼び出しごとのモデルのトークン数、モデル/ソースのラベル、任意の推定コストトランスクリプトまたは Claude のテレメトリに含まれるプロンプト/応答/ツールの内容
マスキングされた 1 行のエラーシグネチャプロジェクト外のパス
タスクの説明としてのプロンプト(最大 1,000 文字、シークレットはマスキング)OpenReflex がホストするサービスに送信される情報(そのようなサービスはありません)

データは ~/.openreflex/projects/<hash>/experience.sqlite3 に保存されます。保存先を変更するには OPENREFLEX_HOME を設定し、 すべての記録を無効にするには OPENREFLEX_DISABLE=1 を設定します。プロジェクトのデータを削除するには openreflex forget --yes を実行するか、 エージェントに forget_experience を使って 1 つのタスクを忘れるよう依頼してください。

研究

OpenReflex は、予算を考慮した実行に関する研究プロジェクトでもあります。成功を単なる「はい」か「いいえ」として扱うのではなく、エージェントが実行経路をどのように選択し、ツール呼び出し、モデルのトークン、コンテキストをどのように使い、不確実性にどう対処するのか、また、過去の作業によって成果の質を落とさずに同様の将来の作業をより低コストで実行できるのかを研究します。このループは、経験の検索、根拠を考慮した経路選択、予算を考慮した実行、作業モードに応じた完了、平易な言葉での経路比較で構成されます。サイトの研究者向けビューでは、この考え方を説明し、グラフ内でひとつの反射が形成される過程をたどり、関連研究と並べて確認できます。

再現可能な評価プロトコル、固定された実エージェントのコーパス、正確なプロンプト、主張の範囲については、docs/evaluation.mdに記載されています。

コミュニティとコントリビューション

  • 課題やアイデア: GitHub Issues

  • プロジェクトを支援: コーヒーをおごる

  • ローカルで開発:

    git clone https://github.com/vishnu-77/openreflex && cd openreflex
    pip install -e ".[dev]"
    pytest && ruff check src tests scripts
    
コントリビューター

OpenReflex は、MCP Registryにio.github.vishnu-77/openreflexとして登録されており、Glamaにも掲載されています。

OpenReflex MCP サーバー:Glama の品質およびメンテナンススコア

ライセンス

OpenReflex はMIT Licenseの下で公開されています。

コメント

MCP は初めてですか?

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

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