mcpField
V
vantic

vantic

本地服务
github.com/vanticlabs安全013 周前更新

关于 vantic

vantic 是面向支付型 AI Agent 的 TypeScript 授权层。签名授权书会在支付调用执行前检查预算和收款方名单,并为获准操作生成可审计的签名凭证。

主要功能

  1. 01签名支出授权书
  2. 02单笔及滚动预算限制
  3. 03收款方白名单
  4. 04防篡改签名凭证
  5. 05W3C DID 与凭证身份

适用场景

  1. 01限制 Agent 的支付权限
  2. 02为现有支付工具加设防护
  3. 03审计获准的支付操作

MCP 相关

提供 `wrapMcpTool`,可为现有 MCP 工具添加检查。其 MCP 服务提供无状态的授权书、凭证链、凭证及 DID 验证工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ai-vanticlabs-vantic": {
"command": "npx",
"args": [
"-y",
"@vantic/sdk"
]
}
}
}
启动命令npx -y @vantic/sdk

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@vantic/sdk0.1.2

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
actionobject是候选操作:{ type, counterparty, amount (minor units), currency }。
action.typestring是
action.amountnumber是
action.currencystring是
action.counterpartystring是
envelopeobject是已签名的委托信封。
priorReceiptsarray否此信封下已签发的收据(按顺序排列)。

详细介绍

Vantic

面向 AI Agent 的支出防火墙和权限层。 为你的 Agent 提供一个无法超出的签名预算——即使它遭遇提示词注入也不例外,并为它执行的所有操作生成防篡改收据。

零依赖 · TypeScript · Ed25519 + W3C DIDs · 适用于 MCP、LangChain 或任何调用工具的 Agent。


问题所在

你的 AI Agent 可以持有钱包并调用支付 API。这很有用——也很危险。恶意网页中的一次提示词注入、一次幻觉、一个错误,都可能让你的 Agent 向错误的对象付款。这是一种有记录且正被积极利用的故障模式:Agent 受骗,将资金汇给攻击者控制的账户。

Vantic 的作用

你向 Agent 签发一个签名授权——其中包含预算、单笔交易上限、允许的操作,以及它可以付款对象的允许列表——并为它所有会转移资金的调用(购买、订阅、转账、按次付费、付款、退款——任何会转移价值的操作)加上保护。从此,超出授权范围的付款不可能发生:检查会在资金转移代码运行之前执行,因此,即使模型被完全攻破,也无法执行此类付款。每项获准操作都会生成一份签名的防篡改收据——形成清晰的审计记录,也可作为费用争议的证据。

安装

npm install @vantic/sdk

只需约 5 行代码即可保护你的 Agent

import { generateKeyPair, issueMandate, AgentWallet } from "@vantic/sdk";

const owner = generateKeyPair();   // you (the principal)
const agent = generateKeyPair();   // your autonomous agent

// Authorize the agent: what it may pay for, ≤ $200 each, ≤ $500/week, only these counterparties.
const mandate = issueMandate({
  agent: agent.publicKey,
  principal: owner.publicKey,
  principalPrivateKeyPem: owner.privateKeyPem,
  ttlSeconds: 7 * 24 * 3600,
  scope: {
    budget: { currency: "USD", amount: 50000, windowSeconds: 7 * 24 * 3600 }, // $500 / 7 days
    maxPerTransaction: 20000,                                                  // $200
    allowedActions: ["purchase", "subscribe"], // any money-moving action: transfer, payout, refund, …
    allowedCounterparties: ["etsy.com", "*.shop.example"],
  },
});

const wallet = new AgentWallet(mandate, agent.privateKeyPem);

// Your real payment call goes inside the executor. The guard runs FIRST;
// if the action is out of scope, the executor is never called.
await wallet.spend(
  { type: "purchase", counterparty: "etsy.com", amount: 4500, currency: "USD" },
  async (action) => ({ outcome: "settled", result: await pay(action) }),
);

// A prompt-injected wallet.spend({ counterparty: "attacker.xyz", ... })
// throws GuardViolation — before any money moves.

运行 npm run guard-demo,观察它实时拦截攻击者的付款。

已有支付工具?只需封装一次。

对于 MCP / LangChain / 函数调用类 Agent,无需重构即可为现有工具设置关卡:

import { wrapMcpTool } from "@vantic/sdk";

const guardedPurchase = wrapMcpTool(purchaseTool, {
  wallet,
  toAction: (args) => ({ type: "purchase", counterparty: args.merchant, amount: args.amountCents, currency: args.currency }),
});
// Register `guardedPurchase` instead of `purchaseTool`. A blocked call comes back as a tool
// error the model can read and recover from; the real charge never fires.

框架指南(OpenAI、LangChain、Vercel AI SDK、MCP、原始方式):docs/integrations.md。

你将获得

  • 严格的支出上限 — 单笔交易上限和滚动预算窗口,均以确定性方式执行。
  • 交易对象允许列表 — Agent 只能向你允许的对象付款(精确匹配或通配符域名)。
  • 提示词注入防护 — 授权在模型之外执行,因此 Agent 即使遭到攻破,也无法超出授权范围支出。
  • 防篡改收据 — 每项操作都有签名且经哈希链串联的记录;可离线验证;可作为争议证据。
  • 标准身份 — Agent 和所有者使用 W3C did:key/did:web DIDs,所有者→Agent 关系则由 W3C 可验证凭证表示。
  • MCP 服务 — npx vantic-mcp 可向任何 MCP 主机提供验证工具。
  • 零依赖 — 仅使用 Node 内置的加密功能。Ed25519 + SHA-256。

工作原理

两个基本构件(完整规范见 spec/SPEC.md):

  • 授权 — 所有者签署的声明,授权 Agent 在指定范围内行动(预算、限制、交易对象、有效期、撤销)。
  • 收据 — 经签名且通过哈希链串联的记录,将每项操作与授权及其结果关联起来。可检测篡改。

所有操作都以确定性方式执行,且运行在 Agent 的模型之外。

从 MCP 主机使用

npm run mcp        # or, once published: npx vantic-mcp

提供无状态验证工具(不需要私钥):mandate_authorize、mandate_verify_chain、mandate_verify_credential、mandate_resolve_did。

身份

Agent 和所有者可以使用原始密钥(key:<x>)或 W3C did:key DID 标识——两者可互换,均可用于验证。generateKeyPair() 会同时返回两者。DID 可离线解析为标准 DID 文档(resolveDidKey);同一密钥也可通过 did:web 发布(buildDidWebDocument);所有者→Agent 关系则由可移植的 W3C 可验证凭证表示(issueSponsorCredential / verifySponsorCredential)。参见 npm run identity-demo。

开发

cd sdk
npm install
npm test          # 39 tests
npm run demo      # end-to-end walkthrough

了解更多

状态与安全

v0.1 — 还处于早期阶段,我们对此坦诚相告。 代码达到了生产级质量(Ed25519 + SHA-256 + 规范化 JSON;did:key/did:web + 可验证凭证身份;运行时零依赖),但尚未经过审计,线格式也尚未定稿。

  • ROADMAP.md — 明确说明哪些内容已加固、哪些尚未加固,以及迈向 v1.0 的路径。
  • SECURITY.md — 如何报告漏洞(请不要公开提交 issue)。
  • spec/SPEC.md §8 — 威胁模型与非目标。

欢迎反馈和 PR。Apache-2.0。

评论

支持 Markdown

第一次接触 MCP?

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

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