关于 Abe
Abe 是面向 AI Agent 的本地开源护栏,供需要在操作执行前进行规则检查的团队使用。它按 YAML 策略评估操作,并返回 ACT、BLOCK 或 ESCALATE,同时生成可审计记录。
主要功能
- 01本地策略检查
- 02ACT、BLOCK 或 ESCALATE 决策
- 03支持回放测试的 YAML 规则
- 04用于渐进部署的影子模式
- 05哈希验证的审计记录
- 06提供 Python、TypeScript、命令行、HTTP 和 MCP 接口
适用场景
- 01执行前审核采购和付款
- 02拦截有风险的生产数据库或代码操作
- 03用已保存请求测试策略变更
MCP 相关
Abe 提供 MCP 服务及 `fjp_check_action` 工具,供 MCP 客户端按策略评估操作。可选的 Flow 解析仅处理升级的操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx abe-aiABE_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Abe

执行。拦截。升级处理。
Abe 是一款免费的开源护栏,会在每个 AI Agent 操作发生前进行检查。
你的 Agent 即将支付发票、购买服务器、删除表格或给客户发邮件。Abe 会在不到一毫秒内、在你的机器上根据规则检查操作,并给出 ACT、BLOCK 或 ESCALATE,同时留下可防篡改的记录,说明原因。
▶ 观看 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 |
| CLI | abe check · replay · validate-policy · validate-record · conformance · keygen |
| 本地 HTTP sidecar | abe serve --policy abe-policy.yaml → POST http://127.0.0.1:8787/v1/check(任何语言均可) |
| Docker sidecar | 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) |
| + 对升级请求使用 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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
