mcpField
A
Abe

Abe

本地服务
fjp.flowinfo.co安全01 天前更新

关于 Abe

Abe 是面向 AI Agent 的本地开源护栏,供需要在操作执行前进行规则检查的团队使用。它按 YAML 策略评估操作,并返回 ACT、BLOCK 或 ESCALATE,同时生成可审计记录。

主要功能

  1. 01本地策略检查
  2. 02ACT、BLOCK 或 ESCALATE 决策
  3. 03支持回放测试的 YAML 规则
  4. 04用于渐进部署的影子模式
  5. 05哈希验证的审计记录
  6. 06提供 Python、TypeScript、命令行、HTTP 和 MCP 接口

适用场景

  1. 01执行前审核采购和付款
  2. 02拦截有风险的生产数据库或代码操作
  3. 03用已保存请求测试策略变更

MCP 相关

Abe 提供 MCP 服务及 `fjp_check_action` 工具,供 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 Agent 操作发生前进行检查。

你的 Agent 即将支付发票、购买服务器、删除表格或给客户发邮件。Abe 会在不到一毫秒内、在你的机器上根据规则检查操作,并给出 ACT、BLOCK 或 ESCALATE,同时留下可防篡改的记录,说明原因。

观看演示:AI Agent 尝试两次花费 12,500 美元

▶ 观看 40 秒演示:AI Agent 尝试两次花费 12,500 美元。规则会处理简单的判断;Flow 会发现重复操作,并批准实际的续订。(亲自运行)

免费。真的免费。

Apache-2.0。无需账户、API 密钥、网络、模型,也没有使用限制。 每次检查都在你的机器上运行,永远免费。

团队为何在 Agent 前部署 Abe

  • 避免代价高昂的错误:重复付款、超预算采购、向 main 强制推送、在生产环境执行 DROP TABLE。
  • 每次结果都一致:使用简单易读的 YAML 规则,你可以在上线前进行测试,并针对过去的决策重放。
  • 为审计人员提供依据:每项决策都会生成经过哈希验证的记录(可选使用 Ed25519 签名),显示触发了哪条规则以及原因。
  • 适用于任何 Agent:Python、TypeScript、本地 HTTP sidecar、Docker 或 MCP(Claude、Cursor 及其他 MCP 客户端)。
  • 无风险上线:影子模式会与你当前的审批流程并行运行,并展示 Abe 会在哪些地方作出相同判断。
  • 默认拒绝:输入错误或规则出错时会返回 ESCALATE,绝不会返回 ACT。

只为难以判断的情况付费(可选)

规则无法判断时,Abe 会返回 ESCALATE。默认情况下,这会交由人工处理。添加 --resolver flow 后,只有该操作会发送到 Flow(经脱敏处理),Flow 会返回决策、理由以及可以证明其判断错误的依据,每次约需 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

此外还支持:按 Agent 授权、必需证据、风险与不可逆性阈值、最低置信度。 BLOCK 优先于 ESCALATE,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 sidecarabe serve --policy abe-policy.yaml → POST http://127.0.0.1:8787/v1/check(任何语言均可)
Docker sidecardocker 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)
+ 对升级请求使用 Flow在 check、serve、mcp 或 Docker 镜像中添加 --resolver flow(或设置 ABE_RESOLVER=flow),并配置 FLOW_API_KEY

可供审计的记录

每次调用都会返回一条记录,其中包含决策、所有匹配的规则、确切的策略哈希值、请求哈希值, 以及 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、sidecar 和 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。