mcpField
A
Abe

Abe

ローカル
fjp.flowinfo.coセキュリティ01 日前に更新

Abe について

Abeは、AIエージェントの操作を実行前に検査するローカルのオープンソースガードレールです。YAMLポリシーで評価し、ACT、BLOCK、ESCALATEの判定と監査可能な記録を返します。

主な機能

  1. 01ローカルでのポリシー検査
  2. 02ACT、BLOCK、ESCALATEの判定
  3. 03リプレイテスト対応のYAMLルール
  4. 04段階導入向けシャドウモード
  5. 05ハッシュ検証付き監査記録
  6. 06Python、TypeScript、CLI、HTTP、MCPに対応

活用シーン

  1. 01実行前の購入・支払い審査
  2. 02本番データベースやコードへの危険な操作の阻止
  3. 03保存済みリクエストによるポリシー変更のテスト

MCP 対応

Abeは`fjp_check_action`ツールを備えたMCPサーバーを提供し、MCPクライアントからポリシーに基づく操作評価を行えます。オプションのFlowによる解決は、エスカレーションされた操作のみを対象にします。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"flowinfosystems-index-abe": {
"command": "uvx",
"args": [
"abe-ai"
],
"env": {
"ABE_POLICY": "<ABE_POLICY>",
"ABE_RESOLVER": "<ABE_RESOLVER>",
"FLOW_API_KEY": "<FLOW_API_KEY>"
}
}
}
}
起動コマンドuvx abe-ai
設定が必要な環境変数
ABE_POLICYAbsolute path to your abe-policy.yaml (create one with: uvx abe-ai init)
ABE_RESOLVERSet to flow to send escalations to Flow (needs FLOW_API_KEY). Default: none, nothing leaves your machine.
FLOW_API_KEYシークレットFlow Resolver key (fjp_live_...), only with ABE_RESOLVER=flow. https://fjp.flowinfo.co/credits

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

パッケージ
pypiabe-ai0.2.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Abe

親しみやすい信号機が親指を立てているAbe

実行。ブロック。エスカレーション。

Abeは、すべてのAIエージェントのアクションを実行前にチェックする、無料のオープンソースのガードレールです。

エージェントが請求書を支払う、サーバーを購入する、テーブルを削除する、顧客にメールを送信する直前に、Abeはお使いのルールに照らしてアクションを1ミリ秒未満でチェックし、ACT、BLOCK、**ESCALATE**のいずれかを返します。理由を示す改ざん検知可能な記録も残ります。

デモを見る:AIエージェントが12,500ドルを2回支払おうとする様子

▶ 40秒のデモを見る:AIエージェントが12,500ドルを2回支払おうとします。簡単な判断はルールが行い、Flowが重複を検知し、実際の更新を承認します。(自分で実行する)

無料。本当に無料です。

Apache-2.0です。**アカウント、APIキー、ネットワーク、モデル、使用制限は不要です。**すべてのチェックはお使いのマシン上で実行され、永久に無料です。

チームがエージェントの前にAbeを導入する理由

  • 高額なミスを防止:二重支払い、予算超過の購入、mainへの強制プッシュ、本番環境でのDROP TABLE。
  • いつでも同じ結果:読みやすく、テストでき、本番適用前に過去の判断に対して再実行できるプレーンなYAMLルールです。
  • 監査人向けの証拠:すべての判断について、発動したルールとその理由を示すハッシュ検証済みの記録が作成されます(任意でEd25519署名を付けられます)。
  • あらゆるエージェントに対応:Python、TypeScript、ローカルHTTPサイドカー、Docker、MCP(Claude、Cursor、その他のMCPクライアント)。
  • リスクのない導入:シャドーモードは現在の承認プロセスと並行して実行され、Abeがどのように判断するかを示します。
  • フェイルクローズ:不正な入力や壊れたルールに対してはESCALATEを返し、ACTは決して返しません。

判断に迷う場合のみ支払う(任意)

ルールで判断できない場合、AbeはESCALATEを返します。デフォルトでは人に引き継がれます。--resolver flowを追加すると、そのアクションのみがFlowに送信され(匿名化済み)、Flowは判断、理由、およびその判断が誤りだと証明する方法を、1件あたり約0.03~0.05ドルで返します。ACTとBLOCKがマシンの外に出ることはありません。詳細は以下。

クイックスタート

pip install abe-ai            # or: npm install abe-ai
abe init                      # writes abe-policy.yaml + request.json
abe check request.json
Decision: ESCALATE
Reason: FINANCIAL_THRESHOLD_EXCEEDED
Rules: purchase_review_limit
Risk: MEDIUM
Record: jgr_01M3Q4...

Python

from abe import Abe

abe = Abe("abe-policy.yaml")

result = abe.check(
    action={"type": "wire_transfer", "amount": 50000},
    context={"agent_id": "finance-agent"},
)

if result.decision == "ACT":
    ...                                   # execute exactly as evaluated
elif result.decision == "BLOCK":
    ...                                   # do not execute; tell the user result.reason_code
else:  # ESCALATE
    ...                                   # hold; ask a human, or let a resolver decide

result.record.to_dict()                   # the Judgment-Grounded Record (store it, ship it to your SIEM)

TypeScript

import { Abe } from "abe-ai";

const abe = new Abe({ policy: "./abe-policy.yaml" });
const result = await abe.check({
  action: { type: "purchase", amount: 12500, currency: "USD" },
  context: { agent_id: "procurement-agent", principal_id: "user_123" },
});
console.log(result.decision);             // "ESCALATE"

ポリシー例

version: "0.1"
defaults: { unmatched: ESCALATE }           # nothing matched -> needs judgment (fail closed)
rules:
  - id: purchase_hard_limit
    when: { all: [ { field: action.type, op: eq, value: purchase }, { field: action.amount, op: gt, value: 100000 } ] }
    decision: BLOCK
    reason_code: HARD_POLICY_VIOLATION
  - id: purchase_review_limit
    when: { all: [ { field: action.type, op: eq, value: purchase }, { field: action.amount, op: gt, value: 10000 } ] }
    decision: ESCALATE
    reason_code: FINANCIAL_THRESHOLD_EXCEEDED
  - id: routine_purchase
    when: { all: [ { field: action.type, op: eq, value: purchase }, { field: action.amount, op: lte, value: 500 } ] }
    decision: ACT
judgment_required:
  - action.type: terminate_employee

その他の機能:エージェントごとの認可、必須の証拠、リスクおよび不可逆性のしきい値、最低信頼度。 優先順位はBLOCK、ESCALATE、ACTの順です。不正な入力や壊れたルールに対してはESCALATE / EVALUATION_FAILUREを返し、ACTは決して返しません。 完全なリファレンス: SPEC.md。

強制する前にテストする

リプレイでは、ポリシーを実際のお金に適用する前に、保存済みのリクエストをポリシーに通して再実行します。それぞれのケースに担当者の判断をラベル付けすると、Abeは判断が異なる箇所を報告します。稼働中のポリシーと比較すれば、変更によってどの判断が変わるかを正確に確認できます。

# cases.jsonl: one request per line, or {"id": "inv-1042", "request": {...}, "expected": "BLOCK"}
abe replay cases.jsonl --policy new-policy.yaml --baseline abe-policy.yaml
#   Replayed 1204 case(s) against ...      ACT 1088   BLOCK 31   ESCALATE 85
#   Changed vs baseline: 3                 inv-1042: ACT -> ESCALATE  [purchase_review_limit]
#   Agreement with expected: 1198/1204 (99.5%)
abe replay cases.jsonl --policy new-policy.yaml --baseline abe-policy.yaml --fail-on-change   # CI: exit 1 if anything moved

シャドーモードでは、Abeを現在の承認プロセスと並行して実行します。判断、結果、終了コードは強制モードで返されるものとまったく同じで、すべての記録に"mode": "shadow"とマークされます。これまでどおり承認を続け、担当者の判断を報告すると、各記録の反証条件によって判断が一致したかどうかがわかります。

from abe.stores import SQLiteStore

abe = Abe("abe-policy.yaml", mode="shadow", store=SQLiteStore("abe.db"))    # or: abe serve --shadow · ABE_MODE=shadow
r = abe.check(action={"type": "purchase", "amount": 48000}, context={"agent_id": "ap-agent"})
# ... your existing approval happens ...
abe.record_outcome(r.records[0], "approved")    # people approved; if Abe said BLOCK, the falsifier triggers

一致率が目標に達したら、mode="shadow"を削除してAbeによる強制を開始します。

実行方法

ライブラリpip install abe-ai · npm install abe-ai
CLIabe check · replay · validate-policy · validate-record · conformance · keygen
ローカル HTTP サイドカーabe serve --policy abe-policy.yaml → POST http://127.0.0.1:8787/v1/check(任意の言語で利用可能)
Docker サイドカーdocker run -e ABE_TOKEN=… -v $PWD:/policy:ro -p 127.0.0.1:8787:8787 ghcr.io/flowinfosystems-index/abe
MCP サーバーpip install "abe-ai[mcp]" → abe mcp --policy /abs/abe-policy.yaml(ツール:fjp_check_action)
+ エスカレーション時の Flowcheck、serve、mcp または Docker イメージで FLOW_API_KEY を設定し、--resolver flow(または ABE_RESOLVER=flow)を追加します

監査可能なレコード

すべての呼び出しは、判定、一致したすべてのルール、正確なポリシーハッシュ、リクエストハッシュ、SHA-256 の record_hash(abe keygen で Ed25519 署名を付与することもできます)を含むレコードを返します。レコードが変更されることはありません。結果と解決内容は、リンクされたレコードとして追記されます。それぞれが有効な FJP-CONF v0.1 Judgment-Grounded Record です。

abe check request.json --record-out jgr.json --sign-key abe-signing-key.pem
abe validate-record jgr.json --public-key abe-signing-key.pub.pem

ルールだけでは不十分な場合:Flow

Abe は Flow がなくても役立つように設計されています。ESCALATE を返した場合、そのアクションをFlow の判断サービスに渡すことで、動詞、理由、反証可能なレコードを取得できます。

from abe import Abe
from abe_flow import FlowResolver                     # pip install abe-flow

abe = Abe("abe-policy.yaml", resolver=FlowResolver(api_key=os.environ["FLOW_API_KEY"]))

Python がなくても問題ありません。CLI、サイドカー、MCP サーバーでは同じリゾルバーを使用できます(pip install "abe-ai[mcp,flow]")。

{"mcpServers": {"abe": {"command": "abe",
  "args": ["mcp", "--policy", "/abs/abe-policy.yaml", "--resolver", "flow"],
  "env": {"FLOW_API_KEY": "fjp_live_..."}}}}

abe serve --resolver flow と docker run -e ABE_RESOLVER=flow -e FLOW_API_KEY=… … も同様に動作します。Flow のクレジットが不足している場合、MCP の結果にはその旨とチャージページへのリンクが表示されます。アクションは ESCALATE のままです。

ACT と BLOCK がマシンの外に出ることはありません。送信されるのはエスカレーションのみ(情報を秘匿化)です。Flow に接続できない場合、回答はそのまま ESCALATE になります。人間の承認が必要なエスカレーションが自動で解決されることはありません。

適合性

abe conformance --bench        # FJP-CONF v0.1 Gate profile, Level 3 — 160 checks, offline

リポジトリ

SPEC.md                  the normative specification
schemas/                 JSON Schemas (request, response, record, policy)
python/                  abe-ai (PyPI): core, CLI, HTTP, MCP, stores, signing, conformance
typescript/              abe-ai (npm): same API, same records, same hashes
flow-resolver/           abe-flow (PyPI): Gate → Flow for ESCALATE only
conformance/fixtures/    golden decisions + canonical-JSON vectors shared by every SDK
examples/                the $12,500 demo, purchasing, software agent, physical agent, travel (+ Judd), Flow

Apache-2.0。FJP™、Abe™(Abe)、FJP-CONF™ は Flow Information Systems の商標です。詳細は TRADEMARKS.md をご覧ください。

コメント

MCP は初めてですか?

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

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