kepil について
Kepilは、監督と監査が必要な自動化向けに、AIエージェントの身元、権限、アクション検査、検証可能な記録を提供します。補償アクションによる取り消しにも対応し、不可逆な操作は人の確認に回します。
主な機能
- 01エージェント版ごとの不変なパスポート
- 02権限外のアクションを拒否
- 03エラー時に拒否するアクションゲート
- 04ハッシュチェーン付き追記型ジャーナル
- 05補償ステップによるアクションの取り消し
- 06パネルまたはTelegramでの人間確認
活用シーン
- 01エージェントが扱えるシステム、操作、支出の制限
- 02不可逆な操作への人間承認の要求
- 03ジャーナルの整合性検証と改ざん検知
- 04定義済みの補償ステップによる操作の取り消し
MCP 対応
KepilのMCPサーバーは、職務の参照、注文の作成と実行、状態や確認待ちの確認、ジャーナルの検証、エージェントパスポートの参照を行う7種類のツールを提供します。人間確認と取り消しはMCPから実行できません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Kepil
AI エージェントの説明責任レイヤーです。 すべてのエージェントにパスポートを与え、すべてのアクションを単一のゲートに通し、後から書き換えられないログを保ちます。
組織の53%が、AI エージェントに意図した権限を超えた行動を取られた経験があります。 本番環境で稼働するエージェントの48%は、まったく監視されていません。エージェントを独自のアイデンティティを持つ存在として扱っている組織は、わずか22%です。 — Cloud Security Alliance and State of AI Agent Security, 2026
Kepil は、残りの78%に欠けているものを提供します。アイデンティティ、権限、強制、証拠、そして他の誰も実現していない取り消しです。
pip install kepil
python -m kepil.admin # http://localhost:7317
ロシア語版:README.ru.md
できること
パスポート。 エージェントの各バージョンに、誰が構築したか、誰が実行するか、何を行うか、何を決して行わないか、リスククラス、自律性クラス、制限事項、リスクの見直し時期を記した変更不可能なカードが作成されます。新しいバージョンには新しいカードが作られ、古いカードは永久に保存されます。
権限。 1つの業務に対する機械可読な委任状です。許可されたアクション、許可されたシステム、支出上限、有効期間、そして人間の確認が必要なアクションの種類を定めます。明示的に許可されていないものはすべて拒否されます。
ゲート。 エージェントが外部に働きかける際に必ず通る唯一の場所です。モデルが呼び出される前に、すべてのアクションが権限に照らして確認されます。フェイルクローズ方式です。確認中にエラーが発生した場合は、許可せず必ず拒否します。
ジャーナル。 追記専用の JSONL 形式で、各レコードには直前のレコードのハッシュが含まれます。レコードの編集や削除は、独立した実装を使えば誰でも検出できます。
npx proofbyte-agent-trace verify data/journal.jsonl
取り消し。 ジャーナルはアクションのグラフであり、それぞれの職務には補償アクションが定義されています。Kepil はグラフを逆にたどり、取り消せない最初のステップで、正直に処理を止めます。エージェントプラットフォームは何が起きたかを記録しますが、Kepil はそれを元に戻します。
スマートフォンでの確認。 取り消せないアクションが Telegram に2つのボタン(承認または差し戻し)とともに届くため、説明責任を果たすためにノートパソコンの前に座っている必要はありません。
未回答のカードも放置されません。 アクションをブロックすればアクション自体は保護できますが、確認する人は保護できません。誰も開いていないカードは、送信されたばかりのカードと見分けがつきません。そのため、待機には期限があります(既定では4時間)。期限を過ぎると、同じボタンと待機時間を表示したカードが再度届き、パネルにも表示されます。延期はできますが、理由と、最長72時間の終了時刻が必要です。スヌーズは人間の判断としてジャーナルに記録され、期限が切れるとカードが再び届きます。MCP 経由ではスヌーズできません。エージェントが自分のカードを無効にすることはできません。
任意の MCP クライアントから利用する
Kepil には MCP サーバーが含まれているため、エディター、アシスタント、または別のエージェントから操作できます。その場合も、すべてのアクションは同じゲートを通り、同じジャーナルに記録されます。
{
"mcpServers": {
"kepil": { "command": "python", "args": ["-m", "kepil.mcp"] }
}
}
ツールは7つです。職務の一覧表示、オーダーの作成、ステップの実行、オーダーの状態の確認、人間の対応待ちの確認、ジャーナルの検証、エージェントのパスポートの閲覧ができます。
意図的に用意されていないツールが1つあります。それは確認です。 モデルが取り消せないアクションを承認できるなら、人間がプロセスから外れ、設計全体が意味をなさなくなります。確認カードはパネルまたは Telegram を通じて人間に届き、どの MCP クライアントからも操作できません。これを強制するテストもあります。
既存の自動化を保護する
Kepil にはシンプルな JSON API があり、n8n のワークフロー、Make のシナリオ、または独自のスクリプトから、実行前に許可を求めることができます。
curl -X POST http://localhost:7317/api/check -H "Authorization: Bearer $KEPIL_API_TOKEN" -H "Content-Type: application/json" -d '{"order_id":"ord-0042","action":"send:message","system":"whatsapp.local"}'
{ "decision": "await_human", "allowed": false, "needs_human": true,
"reason": "необратимое действие: требуется подтверждение человека" }
結果はジャーナルに記録されるため、後から自動化が何を根拠に実行したのか、または実行しなかったのかを示すことができます。n8n 向けには、すぐに使えるノードがあります:n8n-nodes-kepil。
トークンを設定するまで、API は無効です(パネル → Settings、または
KEPIL_API_TOKEN)。localhost にバインドされたパネルはバインド設定によって保護されますが、プログラムから利用するインターフェースにはその保護がないため、既定では無効になっています。
ここでエージェントが完全に自律することはありません
AgentPassport は、人間が判断を取り消せなくなる自律性クラスでの構築を拒否します。これは機能の不足ではなく、意図的なアーキテクチャ上の制限です。ADR-0002 を参照してください。このゲートは、職務定義の内容にかかわらず、同じルールを適用します。
職務:コードではなくデータで振る舞いを定義
エージェントの仕事は、順序付きの手順、境界、制限、取り消せない操作のパターン、ロールバック規則を記述した JSON です。新しい種類の仕事を追加するには、ファイルを追加するか、パネルでフォームに入力します。危険な部分はコード内に残り、テストの対象となります。
プロジェクトには、インバウンドリード、プロセス自動化、簿記書類、AI 導入監査、公共調達パッケージの 5 種類が付属します。
正直に止まる取り消し
注文のジャーナルは一連のアクションで構成され、各職務ではそれぞれのアクションを補償するアクションを宣言します。そのため、パネルでは逆順にたどれます。対象範囲を選ぶと、処理は最後のアクションから前のアクションへと進み、取り消せない最初のアクションで停止します。何が起こるかはボタンを押す前に表示され、処理がどの手順で停止するかも示されます。取り消しの約束がひそかに果たされないのは、取り消し機能がまったくないよりも悪いことです。結果はオペレーターの判断として記録されます。これが、MCP サーバーも JSON API もロールバックを実行できない理由です。エージェントが自分のアクションを取り消すことは、他人の名義で署名することになるからです。
パネル
python -m kepil.admin を実行すると、注文、職務、エージェントパスポート、メーター(アクション数、トークン数、コスト、代替された人間の作業時間)、コンプライアンス生成機能、チェーン検証とアンカリングに対応したジャーナル、設定を備えたオペレーターコンソールが開きます。
状態は KEPIL_DATA 配下(デフォルトは ./data)の通常の JSON ファイルに保存されます。データベースはありません。ファイルを開いて読み取ることができ、紛争時の証拠として添付できます。
確認の往復がログの証人になります
ハッシュチェーンは、残っている記録同士が一致していることを証明します。削除されたものについては何も示しません。記録 3 でジャーナルを切り詰め、その後のすべての記録を正しい prev_hash 値で書き換えると、検証では「整合性を確認しました」と表示されます。より短い履歴が、それ自体とは完全に整合しているためです。
この修正は、設計にはすでに含まれていたものの、使われていませんでした。確認カードは書き込みプロセスを離れ、パネルまたは Telegram を介して人に届きます。この往復が、書き込みプロセスの外部で生成される唯一の証跡です。そこでカードに現在のチェーンヘッドを載せ、返される判断には確認したチェーンヘッドを引用させ、ジャーナルにもそれを記録するようになりました。
これで、書き換えられたプレフィックスは、書き込みプロセスがアクセスできない場所にあるメッセージと矛盾せざるを得ません。検証は自己整合性の確認ではなく、ある時点でログがどのように見えていたかについての第三者の証言になります。
chain against itself: Integrity confirmed
witnessed head: confirmation at record 0 refers to root sha256:a3d124b9…,
which is no longer in the chain: the history was cut or
rewritten (3 such confirmations)
最後に証人が確認したチェーンヘッド以降に書き込まれた記録は、保護されません。保証はそこで終わり、そのことも明示されています。
この機能は、読者である ANP2 Network の指摘をきっかけに生まれました。攻撃と修正の両方を、ひとつのコメントで説明していました。
調査:インストールから何が確認でき、人が何に答える必要があるか
コンプライアンス調査は、法的規範に紐づいた質問の一覧です。回答の一部はすでにインストール内にあります。パスポートに記載されたリスククラスと自律性クラス、パック内の文書の完全性、ジャーナル内の確認と停止記録などです。残りの質問には人が答える必要があります。トレーニングデータの出所、モデルの機能一覧、保険契約などです。
パネルはチェックリストを実行し、各項目を3つに分類します。インストールから得られる証拠で確認済み、ギャップあり、または人による確認が必要です。実際のインストールで自動的に確認できるのは約5分の1です。それを大幅に上回る項目を確認できるなら、チェックリストが不完全ということになります。
明記しておくべき特性が2つあります。リゾルバーが返すのは事実です。「高い自律性は申告されていない」「ジャーナル内の停止記録はゼロ」などであり、コンプライアンスの判定ではありません。結論と署名は人が担います。また、チェックリストファイルが参照するのはコード内で宣言されたリゾルバーの名前だけで、実行可能なものは一切含みません。そうでなければ、外部から持ち込まれた JSON ファイルを使って、ジャーナルを保持するマシン上でコードを実行できてしまうためです。
整合性リゾルバーは、システム自体の弱点を報告します。チェーンのルートが一度も固定されていない場合、またはジャーナルの隣に署名なしで固定されている場合、外部の証人は存在せず、履歴全体が書き換えられる可能性があります。
8.2 needs a human anchors exist, but 1 of 1 is unsigned and stored next to
the journal — there is no outside witness
コンプライアンスパック
文書要件は国ごとに異なり、コードよりも速く変わるため、文面はエンジンの外部に置かれています。ここに同梱されている中立的なパックは、国際的な慣行(ISO/IEC 42001、EU AI Act の趣旨に沿った記録保持)に従っています。管轄区域別のパック(たとえばカザフスタンの AI 法 No. 230-VIII と命令 No. 95/НҚ)は、ファイルとして $KEPIL_DATA/packs に配置します。
設計ルール
- 依存関係ゼロ。 コアは Python 3.11 以降の標準ライブラリで動作し、サードパーティのインポートが現れると CI がビルドを失敗させます。これにより、Kepil をエアギャップ環境内にインストールでき、あらゆるアクションを確認するツールのサプライチェーン攻撃対象領域をゼロに保てます。
- 値がジャーナルに入ることはありません — 記録されるのは型、件数、ハッシュのみです。
- 検証器は別の言語で実装された独立の実装です。 作者本人しか検証できない証明は、証明とはいえません。
関連プロジェクト
| プロジェクト | 役割 |
|---|---|
| agent-trace | 独立したジャーナル検証と証拠パック(MIT) |
| AI-Gateway | アプリと外部モデルの間での PII およびシークレットのマスキング |
| AutoGov | シャドーオートメーションと、それらがアクセスできる認証情報の検出 |
ステータス
アルファ版、テスト数191件です。インターフェースは今後変更される可能性があります。ここに記載されている内容は法的見解ではありません。生成された文書に依拠する前に、管轄区域の弁護士に確認してもらってください。
ライセンス
AGPL-3.0-or-later。Kepil をベースにしたネットワークサービスを実行する場合、自身のソースコードも同じ条件で公開するか、商用ライセンスを取得する必要があります。NOTICE.md をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。