关于 SatGate – Economic Firewall for AI Agents
SatGate 是治理 AI Agent 对 API 和 MCP 工具访问的网关,通过预算、权限凭证和付费访问策略控制请求。它为允许或拒绝的请求生成签名回执,并可按单个工具归因 MCP 用量。
主要功能
- 01为 Agent 和团队设置硬性预算上限
- 02可委派的 Macaroon 凭证
- 03按 MCP 工具归因调用成本
- 04公共、受保护和付费路由策略
- 05支持 stdio 或 SSE/HTTP 的 MCP 代理
适用场景
- 01预算耗尽时阻止 Agent 请求
- 02为子 Agent 分配预算更低的凭证
- 03按 MCP 工具追踪使用成本
- 04通过付费机制控制 API 或 MCP 访问
MCP 相关
SatGate 解析 MCP JSON-RPC 调用以应用策略并按工具归因成本。其 MCP 代理支持 stdio 和 SSE/HTTP 传输,可执行预算与委派控制。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://satgate-mcp-saas.fly.dev/sseclaude mcp add --transport sse satgate-io-satgate https://satgate-mcp-saas.fly.dev/sse{"mcpServers":{"satgate-io-satgate":{"type":"sse","url":"https://satgate-mcp-saas.fly.dev/sse"}}}在 Cursor 中打开{"servers":{"satgate-io-satgate":{"type":"sse","url":"https://satgate-mcp-saas.fly.dev/sse"}}}在 VS Code 中打开{"mcpServers":{"satgate-io-satgate":{"type":"sse","url":"https://satgate-mcp-saas.fly.dev/sse"}}}{"mcpServers":{"satgate-io-satgate":{"serverUrl":"https://satgate-mcp-saas.fly.dev/sse"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://satgate-mcp-saas.fly.dev/sse需要授权工具
详细介绍
SatGate
观察、控制并准入 AI Agent 流量
每次允许或拒绝都会附带一份签名回执
原因 • 构建 • 功能 • 快速开始 • 文档 • 网站 • 博客
SatGate 是位于 API 和 MCP 工具前面的网关。它会统计 Agent 和 MCP 流量(观察)、在工作运行前执行所有者预算(控制),并在你选择的路由上向外部 Agent 收费(准入;即仪表板中的 Charge 策略)。每次允许或拒绝都会附带一份签名回执。
以 Agent 身份试用。此托管路由会返回 HTTP 402,其中包含 Lightning 发票和 macaroon。价格为 10 sats,支付一次即可访问,直到该响应中的 credential_expires_at 时间,而不仅仅是一次请求:
curl -i -H "X-SatGate-Tenant: satgate-demo" https://api.satgate.io/paid/agent-demo
Agent 使用说明见 llms.txt。
使用 SatGate 构建 Agent
SatGate 面向开发者的基本操作是三个调用:issue()、pay() 和 verify()。
import os
from satgate import SatGate
satgate = SatGate(api_key=os.getenv("SATGATE_API_KEY"))
capability = satgate.issue(
task="research market prices",
agent="research-agent",
allow=["mcp:web.search", "api:prices.read"],
budget_usd=25,
expires_in="1h",
)
receipt = satgate.pay(
upstream="https://api.example.com/search",
capability=capability,
max_usd=4.20,
)
verified = satgate.verify(receipt)
print(verified.decision, verified.evidence_pack_id)
立即安装:
pip install satgate
npm install @satgate/sdk
公共软件包现已可安装;issue/pay/verify API 命名空间目前处于私有测试版。没有私有测试版访问权限的调用会引发结构化错误,而不会返回伪造的回执:
SatGateAuthError: This API namespace requires private beta access. Visit cloud.satgate.io/docs to request access.
可运行示例:
examples/python/issue_pay_verify.pyexamples/node/issue-pay-verify.mjs
适用于:MCP · OpenAI 工具 · Anthropic 工具 · LangChain · CrewAI · 原始 HTTP
问题所在
AI Agent 正在自主调用 API。它们会创建子 Agent、调用 MCP 工具,并在你睡觉时彻夜运行。
你现有的技术栈会回答:“此请求是否经过身份验证?”
却没有人回答:“此 Agent 是否有权进行消费、委托或调用此付费资源?”
✓ Network Firewall → "Can this packet enter?"
✓ Application Firewall → "Is this request safe?"
? Economic Firewall → "Should this agent act, spend, or pay?"
这就是问题所在。SatGate 填补了这一空白。
SatGate 是什么?
SatGate 是用于 AI Agent 请求的经济防火墙。将它部署在 API 和 MCP 工具前,即可在 Agent 执行操作前,强制执行权限范围、预算、付费通道上下文,并生成 Evidence Pack 回执。
它不是另一层路由。 路由网关(Bifrost、LiteLLM、Portkey)会优化由哪个提供商处理调用。SatGate 则根据权限、策略、预算和付费通道上下文,管理是否应该进行调用。
可以组合使用:
Agent → SatGate (economic governance) → Routing Gateway → LLM Providers
功能
- 🛡️ 能力令牌(Macaroon) — 内置限制条件、委托和下次请求撤销机制的加密凭证。不是 API 密钥,而是可供 Agent 安全地向下委托的令牌。
- 🎯 支持 MCP — 解析 MCP JSON-RPC 工具调用。了解 Agent X 在
search_database上花费了 $47,在send_email上花费了 $12,而不只是知道“1,000 次请求”。 - 💰 预算强制执行 — 为每个 Agent、团队或 API 设置硬性限制。预算归零时,请求会被拦截,不会记录,也不会发出警报。
- ⚡ 付费通道治理 — 在 L402、x402、API 密钥计费和企业账本之间治理付费 API 访问,而不让任何一种通道成为控制平面。
- 🔒 默认拒绝 — 除非明确设为公开,否则所有路由都需要有效凭证。设计上遵循零信任原则。
- 🚀 开销低于 50ms — 轻量级 Go 代理。在不增加延迟的情况下实现治理。
- 📦 可自托管 — 由你掌控基础设施和规则。支持单个二进制文件、Docker 或 Kubernetes。
- 🔌 即插即用 — 适用于任何 HTTP 后端,包括 REST、GraphQL 和 MCP 服务。无需更改代码。
快速开始
60 秒演示
# Run from a clone. The example config is examples/gateway.yaml in this repo.
# macOS Apple Silicon. Other v0.5.2 assets: satgate-darwin-amd64, satgate-linux-amd64,
# satgate-linux-arm64, satgate-windows-amd64.exe
git clone https://github.com/SatGate-io/satgate.git
cd satgate
curl -L https://github.com/SatGate-io/satgate/releases/download/v0.5.2/satgate-darwin-arm64 -o satgate
chmod +x satgate
# Mock Lightning. Demo mode prints:
# SECURITY WARNING: Using ephemeral root key. Set CAPABILITY_ROOT_KEY for production use.
# That warning is expected. Tokens do not persist across restarts.
export ADMIN_TOKEN=my-secret-token
export LIGHTNING_BACKEND=mock
./satgate --config examples/gateway.yaml
试用这三种策略:
# 1. Public — no auth needed
curl http://localhost:8080/health
# 2. Protected — mint a capability token, then use it
curl -X POST http://localhost:8080/api/capability/mint \
-H "X-Admin-Token: my-secret-token" \
-H "Content-Type: application/json" \
-d '{"scope": "api:read", "duration": "1h"}'
# Use the token:
curl -H "Authorization: Bearer YOUR_CAPABILITY_TOKEN" \
http://localhost:8080/api/capability/ping
# 3. Paid — get a payment challenge (L402 today; x402/other rails as governed context)
curl http://localhost:8080/api/micro
公开 → 受保护 → 付费。三种策略,一个网关;付费通道是受治理的上下文,而不是产品边界。
托管付费演示(Admit;在仪表板中进行 Charge)。无需本地 Lightning 节点:
curl -i -H "X-SatGate-Tenant: satgate-demo" https://api.satgate.io/paid/agent-demo
未付费的调用会返回 402,并附带 Lightning 发票和 macaroon。价格为 10 sats,一次付款即可获得访问权限,直到该响应中的 credential_expires_at 时间为止,而不只是允许一次请求。对于 Lightning,请将发票展示给所有者,轮询付款状态,然后重试。轮询规则请参阅 llms.txt。
其他安装方法
# Release binary. ghcr.io/satgate-io/satgate:latest is private; anonymous pulls get 401.
# Assets: satgate-darwin-arm64, satgate-darwin-amd64, satgate-linux-amd64,
# satgate-linux-arm64, satgate-windows-amd64.exe
curl -L https://github.com/SatGate-io/satgate/releases/download/v0.5.2/satgate-darwin-arm64 -o satgate
chmod +x satgate
# Build from source
git clone https://github.com/SatGate-io/satgate.git
cd satgate && go build -o satgate ./cmd/satgate
配置
version: 1
server:
listen: ":8080"
admin:
capabilityRootKey: "${CAPABILITY_ROOT_KEY}"
lightning:
provider: "${LIGHTNING_BACKEND}"
config:
connectionString: "${NWC_CONNECTION_STRING}"
upstreams:
api:
url: "http://localhost:3000"
routes:
- name: public-health
match:
pathPrefix: /health
upstream: api
policy:
kind: public
- name: protected-api
match:
pathPrefix: /api/
upstream: api
policy:
kind: capability
scope: "api:read"
- name: premium-api
match:
pathPrefix: /premium/
upstream: api
policy:
kind: l402 # paid-rail policy; use payment_context to preserve L402/x402/ledger evidence
priceSats: 100
策略类型
| 策略 | 说明 | 用例 |
|---|---|---|
public | 无需身份验证 | 健康检查、文档、Webhook |
capability | 需要有效的 Macaroon | 受保护的 API 端点 |
l402 | 需要 Lightning 付款,并记录付费通道上下文 | 变现端点;可在 Evidence Packs 中保留 x402/账本上下文 |
有何不同
| SatGate | 路由网关 | 传统 API 网关 | |
|---|---|---|---|
| 主要关注点 | 经济治理 | 提供商路由 | 流量管理 |
| 预算强制执行 | 硬性上限(达到上限即拦截) | 仅软性警报 | ❌ |
| MCP 成本归因 | 精确到单个工具 | ❌ | ❌ |
| 凭证模型 | Macaroon(可委托) | API 密钥 | API 密钥 / OAuth |
| Agent 委托 | 预算减少的子令牌 | ❌ | ❌ |
| 付费通道治理 | L402、x402、API 密钥计费、企业账本 | ❌ | ❌ |
| 可搭配使用 | — | ✅ 可搭配使用 | ✅ 可搭配使用 |
架构
┌──────────────────────────────────────────────────┐
│ SatGate │
│ │
│ Request → Route Match → Policy Check → Proxy │
│ │ │
│ ┌──────────────┼──────────────┐ │
│ │ │ │ │
│ [public] [capability] [paid rail] │
│ pass verify token verify │
│ check budget payment │
│ log MCP tool context │
└──────────────────────────────────────────────────┘
核心概念:
- Macaroon:内嵌限制条件(有效期、范围、预算、IP)的持有者令牌。不是 API 密钥,而是无需与服务器往返通信即可支持委托的令牌。
- 委托:Agent A 向 Agent B 发放权限缩减、预算上限为 $50 的子令牌。B 无法提升权限。
- MCP 解析:SatGate 读取 MCP JSON-RPC 负载,将成本归因于具体的工具调用,而不只是 HTTP 端点。
- 付费通道上下文:SatGate 将 L402、x402、API 密钥计费和企业账本视为需要治理的通道。Evidence Packs 会保留涉及的通道信息,但不会将通道本身作为产品。
SDK
| 语言 | 软件包 | 文档 |
|---|---|---|
| Python | pip install satgate | README |
| JavaScript | npm install @satgate/sdk | README |
MCP 代理(NEW)
SatGate 现已内置原生 MCP 代理,可管理任何兼容 MCP 的 Agent 的工具调用:
# Run MCP proxy with 1000-credit budget
satgate-mcp --config satgate-mcp.yaml
- 预算执行:Agent 用尽配额时,强制返回 402
- 委派:父级 Agent 创建子 Agent 令牌,并划拨预算
- 单工具成本:
web_search: 5、dalle_generate: 50(支持通配符模式) - 两种传输方式:stdio(本地 sidecar)或 SSE/HTTP(远程多 Agent)
- 三种身份验证模式:无、静态令牌、macaroon(HMAC 链)
完整文档请参阅 pkg/mcpserver/README.md。
文档
☁️ SatGate Cloud 与企业版
不想自托管? SatGate Cloud 是全托管版本——相同的网关,无需运维。
开源网关负责防护、预算和付费通道执行。SatGate Cloud 则增加了控制平面:
- 📊 观测 — 实时仪表板、使用情况归因、成本中心标记
- 🎚️ 控制 — 在 Agent 请求执行前执行预算和策略
- 🤖 SatGate Mint — 自动化 Agent 配置(K8s、AWS、OIDC)
- 🏢 多租户 — 团队隔离、RBAC、SSO/SCIM
- 📝 审计 — 防篡改日志、合规性导出
免费开始 →(Observe 免费,受合理使用上限约束)
贡献
欢迎贡献!请参阅 CONTRIBUTING.md 了解指南。
git clone https://github.com/satgate-io/satgate.git
cd satgate
go mod download
go test ./...
go build -o satgate ./cmd/satgate
许可证
Apache License 2.0 — 详情请参阅 LICENSE。
链接
- 🌐 satgate.io — 网站
- 📝 博客 — 技术文章
- 🏢 企业治理 — CISO/CFO/CTO 使用场景
- 💰 定价 — 免费 Observe 套餐,Pro 套餐提供执行功能
- 🔒 安全模型 — 架构与合规
- 🧪 沙盒 — 无需注册即可试用
- 📊 投资回报率计算器 — 估算节省金额
- ⚖️ 比较 — SatGate 与 Zuplo、Bifrost、云原生方案的比较
- 📧 [email protected]
由 SatGate 倾力打造 ⚡ — 经济防火墙
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。