人間の承認で止める
重要な操作はHuman Gateで停止し、承認されるまで外部作用を始めません。誰が解除できるかも記録します。
MIT License · Public Alpha 0.1.0a2
RPRは、AIエージェントや自動処理がファイル、API、メッセージ、業務システムを変更するときに、誰の権限で実行したか、何が起きたか、結果をどう確かめたか、失敗後に誰が修復し、どこから再開するかを一つの経路として残すPython Runtimeです。
RPRが扱うこと
外部システムへの書き込みは、通信が切れた瞬間に成功か失敗か分からなくなることがあります。RPRは、その不確実さを消さずに保持し、二重実行を避けながら確認・修復・再開へつなぎます。
重要な操作はHuman Gateで停止し、承認されるまで外部作用を始めません。誰が解除できるかも記録します。
操作ごとに実行試行と識別子を保存します。再起動や再試行が起きても、同じ操作を無自覚に二重実行しません。
関数の戻り値やHTTP応答だけで完了にせず、変更先を読み直して、本当に期待した結果になったか確認します。
書き込み後に通信が切れた場合はwrite_status_unknownとして保存し、根拠のない成功判定や自動再送を防ぎます。
一部だけ進んだ処理は、通常実行とは別の修復経路へ返します。再開条件が整うまで勝手に先へ進みません。
元に戻せない影響が残る場合も、監視、説明、次の判断を担う担当者を消さずに保持します。
RPRと導入側の役割
RPRは、外部操作の状態、権限、証拠、結果不明、修復、再開を管理します。一方、認証、資格情報、ネットワーク、保存先、業務ルール、承認者の選定、結果確認に使うデータ源は、導入するシステム側で設計する必要があります。
この役割分担を明示することで、RPRが保証する範囲と、導入側が責任を持つ範囲を混同しないようにしています。
現在のMCP対応
RPRは、Host ApplicationとLocal MCP Serverの間に置けます。現在のPublic Alphaでは、Subprocess起動、stdio Transport、JSON-RPC framing、ServerとToolのbinding、Execution Attemptの継続、送信済みかもしれないCallのfail-closed処理を実装しています。
変更を伴うToolでは、MCPの成功応答だけを完了証拠にせず、必要に応じて独立readbackを要求します。結果を確認できない場合は、write_status_unknownとして保持します。
Public Alphaへの参加
Windows、macOS、各種Linux、コンテナ、proxy/TLS、企業内認証、remote MCP、外部サービス連携、フレームワーク統合など、開発チームだけでは確認できない環境の報告を募集しています。
不具合だけでなく、導入で迷った点、状態名が分かりにくかった箇所、足りない例も歓迎します。
導入方法
公開リポジトリ、GitHub Prerelease、PyPIパッケージ、製品サイト、ブラウザデモを公開しています。Public Alphaなので、最初は隔離した使い捨て環境で確認してください。
python3.11 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install responsibility-pathway-runtime==0.1.0a2
rpr --help