sdk について
MnemoPay SDK は、AI エージェントによる支払いなどの重要な操作を統制するガバナンス層です。決済レールとエージェントランタイムの間でポリシー、予算、監査記録を扱う開発者向けで、チャーター、人間による承認、ハッシュチェーン記録、複数の決済レールを備えています。README には MCP サーバーのインターフェースが記載されていません。
主な機能
- 01チャーターとポリシーによる操作統制
- 02FiscalGate による予算制限
- 03人間による承認フロー
- 04ハッシュチェーン監査記録
- 05複数の決済レール
- 06エージェントの評判スコア
活用シーン
- 01エージェントの操作と支出を制限
- 02操作前に人間の承認を求める
- 03支払いや運用操作の監査証拠を記録
- 04MCP サーバーでツールごとに課金
MCP 対応
README では `@mnemopay/sdk/mcp` による MnemoPay MCP サーバーのマウントと、MCP サーバーの呼び出しごとの課金に触れています。ただし、MCP クライアントに公開するツールやリソースは記載されていません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @mnemopay/sdkMNEMOPAY_API_KEYシークレットMnemoPay API key from https://mnemopay.com/dashboardMNEMOPAY_PERSIST_DIRDirectory where the local ledger + memory store persist (default: ~/.mnemopay)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
14掲載時のツール一覧 · 4 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| tags | array | いいえ | 分類用のタグ(任意) |
| content | string | はい | 記憶する内容 |
| importance | number | いいえ | 重要度スコア(0-1)。省略した場合は自動でスコア付けされます。 |
詳細
MnemoPay
重大な結果を伴うアクションを実行する AI エージェントのためのガバナンスレイヤーです。 憲章に基づくミッションの範囲、人間の承認を挟んだポリシー適用、FiscalGate による予算の適用、EU AI Act 第 12 条の監査バンドル、エージェントの評判スコア(300~850)、改ざんの痕跡が残る MerkleAudit チェーンを備えています。アクションが資金を移動させる場合も、インフラを変更する場合も対応します。
MnemoPay は、決済レール(Stripe、Paystack、Lightning、Stripe MPP、x402、Google AP2)の上位、エージェントのランタイム(LangChain、CrewAI、Claude Agent SDK、独自のループ)の下位に位置します。レールは資金を動かし、ランタイムは判断を下します。MnemoPay はルールを宣言し、予算を適用し、その証拠を生成します。
決済は、重大な結果を伴うアクションの一種です。同じ憲章、ポリシー、承認、監査の経路が、運用ツールにも適用されます。処理が決済を完了させるのか、ノードを停止させるのかにかかわらず、基本機能は変わりません。
npm install @mnemopay/sdk
初めての方へ:
docs/QUICKSTART.mdから始めてください。60 秒、3 ステップで、動作するコードを試せます。ドキュメント: クイックスタート · アーキテクチャ · 権限 · アクション台帳 · インテグレーション(OpenAI/Anthropic/Gemini/Cohere/Mistral/LangGraph) · リコール · FiscalGate · 監査バンドル(EU AI Act 第 12 条) · サブパスインポートのルール · Claude Agent SDK ガイド · バンドラー:Vite · Webpack · Bun
コミュニティ: ライセンス(Apache 2.0) · 変更履歴 · コントリビューション · 行動規範 · セキュリティ · ディスカッション · 初めての方におすすめの Issue
証拠: トラストハブ(事業体、KYB、Apple Team ID、第 12 条の監査チェーン — 5 分以内で検証可能) · ベンチマーク(100 万オペレーション、敵対的入力を 100% 検出、台帳の不整合 $0) · PyPI の Python SDK(1.1.0 以降、TS の全レールと同等)
import MnemoPay, {
Charter, FiscalGate, MerkleAudit, // governance primitives
AgentReputationScoring, BehavioralEngine, // trust + reputation
StripeRail, X402Rail, GoogleAP2Rail, // rails
} from "@mnemopay/sdk";
const agent = MnemoPay.quick("my-agent");
await agent.remember("User prefers monthly billing");
const tx = await agent.charge(25, "Monthly API access"); // FiscalGate hold
await agent.settle(tx.id); // FiscalGate capture
// Agent Reputation Score — portable, 300-850 range. NOT FICO-brand, NOT a consumer
// credit report, NOT governed by FCRA. Scores agents (software), not humans.
const scorer = new AgentReputationScoring();
const result = scorer.compute({ transactions: [tx], createdAt: new Date(), /* ... */ });
// → { score: 672, rating: "good", feeRate: 0.015, trustLevel: "standard" }
14 個のモジュール。ハッシュチェーン台帳。憲章/FiscalGate/第 12 条監査バンドル。6 種類の決済レール。20 万オペレーションのストレステスト済み。Apache 2.0。
MnemoPay が該当しないもの: 銀行でも、送金業者でも、Stripe の代替でも、エージェントフレームワークでも、コンプライアンスプラットフォームでもありません。決済レールとランタイムの間にある、ルールと証拠のレイヤーです。
ガバナンスの遅延(サブ秒の不変条件)
「サブ秒のガバナンス」はマーケティング文句ではなく、テスト済みの不変条件です。tests/bench/governance-latency.bench.ts のベンチマークでは、vitest bench を使って各ガバナンスのホットパスを測定し、シナリオごとに grep 可能な [gov-bench] のサマリー行を出力します。以下の数値は、npm run bench:governance の定常状態におけるパーセンタイルです(開発マシンで実行した結果です。お使いのハードウェアでは異なる場合があります。重要なのは相対的な順序です)。
| ホットパス | p50 | p95 | p99 | マシン |
|---|---|---|---|---|
policy.evaluateAction(EU AI Act、単一の tool_call) | 2.1 µs | 2.8 µs | 5.0 µs | Intel i5-1035G1 @ 1.0 GHz · Node 25.9 · Windows 11 |
MerkleAudit.record(追記+チェーンハッシュ) | 20 µs | 45 µs | 150 µs | Intel i5-1035G1 @ 1.0 GHz · Node 25.9 · Windows 11 |
MnemoPayLite.remember() の自動アンカー付きエンドツーエンド(Ed25519) | 1.0 ms | 1.7 ms | 2.5 ms | Intel i5-1035G1 @ 1.0 GHz · Node 25.9 · Windows 11 |
イベントごとのホットパス(evaluateAction、MerkleAudit.record)はどちらも、EU AI Act のポリシーゲート全体の評価と監査チェーンへの書き込みを、1 ミリ秒の中で 2 桁の余裕をもって完了します。Ed25519 の署名、シーケンス処理、チェーンへの出力を含むエンドツーエンドの remember() パスも、「サブ秒のガバナンス」の範囲内に十分収まり、3 桁分の余裕があります。
CI で強制されるガード仕様 tests/governance/latency-invariant.test.ts は、すべての npm test で縮退モードのサンプルを実行し、policy.evaluateAction の p95 が 1 ms を超えて悪化した場合、または MerkleAudit.record の p95 が 5 ms を超えて悪化した場合に失敗します。上限はジッターで失敗しないようにしつつ、約 10 倍の性能低下を検出できる値に設定されています。
再現方法: npm run bench:governance(vitest.bench のハーネス全体)または npm test -- latency-invariant(CI の上限チェック)。
ネイティブレール
各レールは、StripeRail/PaystackRail/LightningRail と同じ PaymentRail インターフェースを備えています。
| レール | 内容 |
|---|---|
StripeMPPRail | Stripe Machine Payments Protocol — Stripe 固定の API 2026-03-04.preview を介し、Tempo ネットワーク上の暗号資産デポジットとしてルーティングされるエージェント決済 |
X402Rail | Coinbase x402(HTTP 402 の復活)— EIP-3009 の transferWithAuthorization を介した Base L2 上の USDC。署名者を差し替え可能(viem/ethers/noble を持ち込み可能)。SDK に暗号資産関連の依存関係はありません。 |
GoogleAP2Rail | Google Agent Payment Protocol(FIDO Alliance、AP2 v0.2)。Mandate VC + Intent VC + HTTP 決済。署名を生成する前に、ポリシーを事前適用します(上限、期限、通貨、受取人)。 |
さらに、Spatial governance fold があります。attachSpatialEvidence() は、実世界のエージェント(ドローン、ロボット)向けに、GridStamp の存在証明を使って MerkleAudit チェーンに共同署名します。疎結合で、gridstamp の実行時依存関係はありません。
より小さく安全な利用者向けのサブパスインポート
MnemoPay のモジュールを 1 つだけ使う場合は、パッケージのルートではなく、そのサブパスをインポートしてください。これにより MCP サーバーやその他の stdio ツールの不要な出力を抑え、使わないミドルウェアがバンドルに含まれるのを防ぎ、依存関係の境界を明確にできます。
import { localEmbed, cosineSimilarity } from "@mnemopay/sdk/recall";
import { StripeRail, X402Rail } from "@mnemopay/sdk/rails";
import { SQLiteStorage } from "@mnemopay/sdk/storage";
import { CommerceEngine } from "@mnemopay/sdk/commerce";
SDK のすべての機能を使う場合は、ルートインポートを使用してください。@mnemopay/sdk/mcp は、MnemoPay MCP サーバーを意図的にマウントする場合に限って使用してください。
Swarm(安定版 — v1.11+)
@mnemopay/sdk/swarm は、browse.sh が公開スキルカタログとして提供していた、これまで欠けていた部分です。私たちの実装では、さらに独自の機能を加えています。Swarm 内のすべてのエージェントが DID を持ち、すべてのアクションがエージェントごとの上限と合計上限に基づいて FiscalGate による事前チェックを受け、すべての TaskResult が共有 Article-12 監査チェーンに追記され、すべてのスキル呼び出しが SDK のほかの部分ですでに使われているものと同じハッシュチェーン付き台帳を通じて課金されます。
CLI: npx @mnemopay/swarm list · npx @mnemopay/swarm demo — mnemopay-swarmをご覧ください。
import { Swarm } from "@mnemopay/sdk/swarm";
import { AuditChain } from "@mnemopay/sdk/governance";
import { open } from "@mnemopay/browser"; // any BrowserProvider works
const provider = await someProviderFactory();
const swarm = new Swarm({
size: 4,
provider,
did: "did:mp:abc...",
budget: { perAgent: 0.25, total: 1.00 },
audit: { chain: new AuditChain() },
});
const run = await swarm.spawn([
{ id: "t1", skillId: "ramp.com/expense-create", prompt: "submit $42 lunch" },
{ id: "t2", skillId: "linear/issue-create", prompt: "file UI bug" },
{ id: "t3", skillId: "cloudflare/dns-record-set", prompt: "add CNAME" },
]);
const results = await swarm.gather(run);
const final = await swarm.recombine(results, "merge-json");
利用する場面。 複数ソースの調査、プラットフォーム横断の課題トリアージ、A/B テスト形式の「3 つのエージェントに尋ねて、多数決の答えを採用する」など、問題に取り組むためにブラウザーセッションを N 個並行して開くような場面で、監査バンドルを 1 つにまとめ、予算枠を 1 つにし、課金処理も 1 か所に集約したい場合に使います。
3 つの再結合戦略(独自の戦略も指定できます)。
first-success— 最初のok:trueタスクの出力を返します。どの答えでもよい競争パターンに最適です。majority-vote—ok:trueのタスクのうち、最も多く出現した出力を返します。合意が重要な事実抽出に最適です。merge-json—ok:trueのオブジェクト出力をすべて、キーをソートしてディープマージします(実行ごとに決定的な結果になります)。concat— 文字列の出力を、起動順に\nで連結します。- または、任意の
(results) => unknownコールバックを渡します。
スキルカタログ。 公開リストは mcp.mnemopay.com/skills にあります。カタログは意図的に小規模に保たれ、正確な表示を心がけています。認定パートナーのバッジは、正式なパートナーシップの締結後にのみ表示されます。それ以外はすべて verified: false, status: 'pending-partner' と表示されるため、どの信頼レベルの相手なのかを正確に把握できます。
BrowserSwarm — ブラウザーセッションをネイティブに並列展開(1.11.0 から安定版)
@mnemopay/sdk/swarm/browser は、タスクごとに型付きステップシーケンス(goto / act / extract / screenshot / wait)を指定できるように Swarm を拡張し、@mnemopay/browser への遅延接続を提供します(オプションのピア依存関係です。SDK をインストールしても Playwright はインストールされません)。各タスクにはそれぞれ専用のブラウザーセッションが割り当てられ、各ステップは browser.step イベントとして共有監査チェーンに追記されます。また、ステップで例外が発生してもそのタスクだけが終了し、ほかのセッションは実行を続けます。
import { BrowserSwarm } from "@mnemopay/sdk/swarm/browser";
const swarm = new BrowserSwarm({
size: 3, provider: undefined as never,
budget: { perAgent: 0.25, total: 1.00 },
browser: { provider: "stagehand" },
});
const run = await swarm.spawn([
{ id: "amzn", prompt: "amazon price", steps: [{type:"goto", url:"https://amazon.com/dp/X"}, {type:"extract", selector:"#priceblock_ourprice"}] },
{ id: "bby", prompt: "best buy price", steps: [{type:"goto", url:"https://bestbuy.com/site/X"},{type:"extract", selector:".priceView-customer-price"}] },
{ id: "tgt", prompt: "target price", steps: [{type:"goto", url:"https://target.com/p/X"}, {type:"extract", selector:"[data-test=product-price]"}] },
]);
const results = await swarm.gather(run); // BrowserTaskResult[] with .screenshots + .extractedData
課題は github.com/mnemopay/mnemopay-sdk から報告してください。
監査専用ミドルウェア — ストリーミングとディスク上のチェーンに対応した .audit(client)(1.11.0-alpha.0)
プロンプトの変更が一切違反となる一方で、Article-12 テレメトリーは引き続き必要なチャットウィジェットや規制対象のパイプライン向けです。
import { AuditChain } from "@mnemopay/sdk/governance/audit-chain";
import { AnthropicMiddleware } from "@mnemopay/sdk/middleware/anthropic-audit";
const chain = new AuditChain({ path: "./.audit-chain/llm.jsonl" }); // file-backed since 1.11.0-alpha.0
const client = AnthropicMiddleware.audit(new Anthropic(), { chain });
// .create AND .stream now both emit one `llm.call` event per call. Streams
// that get cancelled mid-iteration emit `partial: true` with tokens-so-far.
for await (const chunk of client.messages.stream({ model, max_tokens, messages })) { /* ... */ }
@mnemopay/sdk/middleware/openai-audit は、OpenAI 向けの同等のインターフェースを提供します。chat.completions.create({ stream: true }) は自動的にインターセプトされます(最終的な使用量ブロックを取得するには、stream_options: { include_usage: true } を渡してください)。
MCP サーバーを構築していますか?こちらから始めましょう。
MCP サーバーをリリースし、1 回ごとの課金(サブセント単位でも)を行いたい場合、MnemoPay が最適です。
- Lightning レールによるサブセント決済(手数料のため Stripe/Paystack では実現不可能)
agent.charge(amount, toolName)によるツールごとの計測 — 2 行のコードで実装できます- エージェント評価スコアリングが悪質な呼び出し元を自動的に制限 — 300〜850 の評価スコア、無料ティアと有料ティア
- すべてのユーザーが監査できる暗号技術によるレシート — 「信じてくれ」という課金はありません
- 導入する最初の 10 個の MCP サーバーは無期限で無料です。今後変更する場合は 90 日前の書面通知を条件とします(リポジトリを添えてメールしてください)
import MnemoPay from "@mnemopay/sdk";
const agent = MnemoPay.quick("my-mcp-server");
// Inside your tool handler:
const tx = await agent.charge(0.002, "embed_document"); // 0.2¢
if (tx.status === "blocked") return { error: "Payment declined" };
await agent.settle(tx.id);
// ... run the tool
ゼロ設定のスターターから、本番環境の Lightning レール、そしてエージェント評価スコアリングによる制限まで。同じ API で実現できます。
MnemoPayの差別化ポイント
5社の競合企業には8,700万ドルが投資されていますが、以下の10機能のうち3つを超えて備えている企業はありません。
| 機能 | MnemoPay | Mem0(2,400万ドル) | Skyfire(950万ドル) | Kite(3,300万ドル) | Payman(1,400万ドル) |
|---|---|---|---|---|---|
| 永続メモリ | あり | あり | なし | なし | なし |
| 決済レール(3種類) | あり | なし | USDC のみ | ステーブルコイン | 銀行のみ |
| エージェント ID(KYA) | あり | なし | 開発中 | パスポート | なし |
| エージェント評判スコア(300~850) | あり | なし | なし | なし | なし |
| 行動ファイナンス | あり | なし | なし | なし | なし |
| メモリの完全性(Merkle) | あり | なし | なし | なし | なし |
| EWMA 異常検知 | あり | なし | なし | なし | なし |
| 複式簿記台帳 | あり | なし | なし | なし | なし |
| 自律型コマース | あり | なし | なし | なし | なし |
| マルチエージェントネットワーク | あり | なし | 一部対応 | 一部対応 | なし |
| スコア | 10/10 | 1/10 | 2/10 | 2/10 | 1/10 |
エージェント評判スコア
AI エージェント向けの画期的なクロスセッション評判スコアリングシステムです。5つの要素を用い、300~850の範囲でスコアを算出します(消費者信用スコアとして開発者にもなじみのある方式です。MnemoPayはFair Isaac Corporationまたは消費者信用調査機関とは提携していません)。
import { AgentReputationScoring } from "@mnemopay/sdk";
const scorer = new AgentReputationScoring();
const result = scorer.compute({
transactions: await agent.history(1000),
createdAt: agentCreationDate,
fraudFlags: 0,
disputeCount: 0,
disputesLost: 0,
warnings: 0,
budgetCap: 5000,
memoriesCount: agent.memories.size,
});
console.log(result.score); // 742
console.log(result.rating); // "very_good"
console.log(result.feeRate); // 0.013 (1.3%)
console.log(result.trustLevel); // "high"
console.log(result.requiresHITL); // false
| 要素 | 重み | 測定内容 |
|---|---|---|
| 支払い履歴 | 35% | 成功率、異議申し立て、直近の取引を重視 |
| 信用利用率 | 20% | 支出と予算上限の比較。適正範囲は10~30% |
| 履歴の長さ | 15% | アカウントの経過期間、活動密度 |
| 行動の多様性 | 15% | 取引相手、カテゴリ、金額の範囲 |
| 不正記録 | 15% | 不正フラグ、敗訴した異議申し立て、警告 |
| スコア範囲 | 評価 | 信頼レベル | 手数料率 |
|---|---|---|---|
| 800-850 | 最高 | 全面的な信頼 | 1.0% |
| 740-799 | 非常に良い | 高い信頼 | 1.3% |
| 670-739 | 良い | 標準 | 1.5% |
| 580-669 | 公正 | 制限付き | 1.9% |
| 300-579 | 低い | 最小限+HITL | 2.5% |
行動ファイナンスエンジン
ノーベル賞受賞者ダニエル・カーネマンと共同研究者による、査読済みの行動経済学を採用しています。すべてのパラメーターは、公開済みの研究を出典としています。
import { BehavioralEngine } from "@mnemopay/sdk";
const behavioral = new BehavioralEngine();
// Prospect Theory (Kahneman & Tversky, 1992)
// Losses hurt 2.25x more than gains feel good
behavioral.prospectValue(100); // { value: 57.5, domain: "gain" }
behavioral.prospectValue(-100); // { value: -129.5, domain: "loss" }
// Should the agent wait before buying?
const cooling = behavioral.coolingOff(2000, 5000); // amount, monthly income
// → { recommended: true, hours: 3.2, riskLevel: "high", regretProbability: 0.65 }
// Frame spending as goal delay (2.25x more effective than gain framing)
const frame = behavioral.lossFrame(200, {
name: "Emergency Fund", target: 10000, current: 3000, monthlySavings: 500
});
// → "This $200 purchase delays your Emergency Fund goal by 12 days."
// Save More Tomorrow (Thaler & Benartzi, 2004)
const smart = behavioral.commitmentDevice(0.035, 0.03, 4);
// → { finalRate: 0.095, explanation: "3.5% → 9.5% over 4 raise cycles" }
// Predict regret from purchase history
behavioral.recordRegret({ amount: 300, category: "gadgets", regretScore: 8, timestamp: "..." });
const prediction = behavioral.predictRegret(400, "gadgets");
// → { probability: 0.72, triggerCoolingOff: true }
研究出典: Tversky & Kahneman 1992、Laibson 1997、Thaler & Benartzi 2004、Barber & Odean 2000、Nunes & Dreze 2006、Shiller 2000。
メモリの完全性(Merkle ツリー)
改ざんを検知できるメモリです。誰かがエージェントのメモリを注入、変更、削除すると、Merkle ルートが変化するため、すぐに検知できます。
import { MerkleTree } from "@mnemopay/sdk";
const tree = new MerkleTree();
// Every memory write adds a leaf
tree.addLeaf("mem-1", "User prefers monthly billing");
tree.addLeaf("mem-2", "Last purchase was $25 API access");
// Take periodic snapshots
const snapshot = tree.snapshot();
// → { rootHash: "a3f2...", leafCount: 2, snapshotHash: "b7c1..." }
// Later: check if memories were tampered
const check = tree.detectTampering(snapshot);
// → { tampered: false, summary: "Integrity verified. 2 memories, root matches." }
// Prove a specific memory exists without revealing others
const proof = tree.getProof("mem-1");
MerkleTree.verifyProof(proof); // true
防御対象: MemoryGraft による注入、気付かれない削除、コンテンツの改ざん、リプレイ攻撃、並べ替え攻撃。
異常検知(EWMA+行動フィンガープリンティング+カナリア)
侵害されたエージェントを検知する、独立した3つのシステムです。
import { EWMADetector, BehaviorMonitor, CanarySystem } from "@mnemopay/sdk";
// 1. EWMA: real-time streaming anomaly detection
const detector = new EWMADetector(0.15, 2.5, 3.5, 10);
detector.update(100); // normal
detector.update(100); // normal
detector.update(9999); // → { anomaly: true, severity: "critical", zScore: 8.2 }
// 2. Behavioral fingerprinting: detect hijacked agents
const monitor = new BehaviorMonitor({ warmupPeriod: 10 });
// Build profile over time
monitor.observe("agent-1", { amount: 100, hourOfDay: 14, chargesPerHour: 2 });
// Sudden change = suspected hijack
monitor.observe("agent-1", { amount: 9999, hourOfDay: 3, chargesPerHour: 50 });
// → { suspected: true, severity: "critical", anomalousFeatures: 3 }
// 3. Canary honeypots: plant traps for compromised agents
const canary = new CanarySystem();
const trap = canary.plant("transaction");
canary.check(trap.id, "rogue-agent");
// → { severity: "critical", message: "CANARY TRIGGERED: Agent compromised" }
数式: mu_t = alpha * x_t + (1 - alpha) * mu_{t-1}。|x_t - mu_t| > k * sigma_t の場合にアラートを発します(Roberts 1959、Lucas & Saccucci 1990)。
メモリ(知識ベースの複利的成長)
従来型の RAG 検索ではありません。MnemoPayのメモリは複利的に成長します。取引のたびに関連するコンテキストが強化され、弱いメモリは時間とともに薄れ、強いメモリは統合されます。Karpathyが「LLM Wiki」と表現したものと同じパターンを、決済と信頼に応用しています。
- エビングハウスの忘却曲線 — メモリは時間とともに自然に薄れていきます
- ヘッブの法則による強化 — 成功した取引に関連するメモリを強化します
- RL フィードバックループ —
rlFeedback(ids, reward)がエージェントのアクション後に EWMA による重要度の更新を適用します - 統合 — 弱いメモリを自動的に削除し、重要な情報を保持します
- 意味的想起 — 直近のメモリだけでなく、関連性に基づいてメモリを検索します
- メモリあたり100KB — 文字列だけでなく、豊富なコンテキストを保存できます
// After a recall + action, signal usefulness with rlFeedback
const memories = await agent.recall("user preferences", 5);
// ... agent acts on recalled memories ...
await agent.rlFeedback(memories.map(m => m.id), +1.0); // +1 = useful, -1 = not useful
永続化アダプターの選択
Recall は、プラグイン可能な PersistenceAdapter によって支えられています。デプロイ構成に応じて選択してください。
| アダプター | インフラ | 最適な用途 | インポート |
|---|---|---|---|
MemoryAdapter(デフォルト) | なし | 開発、テスト、一時的なエージェント | 組み込み |
SQLiteAdapter | 単一ファイル(better-sqlite3) | 単一ノード、ローカル優先、エッジ | @mnemopay/sdk/storage |
PostgresAdapter / NeonAdapter | Postgres + pgvector | ホスト型/マルチノードの本番環境(Neon、Supabase、RDS/Aurora、Cloud SQL) | @mnemopay/sdk/recall/postgres |
PostgresAdapter と NeonAdapter は、同じ pgvector ベースの実装です。
「Neon」はホスト型 Postgres を指すだけなので、インフラに合った名前を使用してください。
import { MnemoPay } from "@mnemopay/sdk";
// Via MnemoPay.create — { type: "postgres" } (alias of "neon")
const agent = await MnemoPay.create({
agentId: "agent-1",
persist: { type: "postgres", url: process.env.DATABASE_URL! },
});
// Or construct the adapter directly
import { PostgresAdapter, postgresMigrationSql } from "@mnemopay/sdk/recall/postgres";
const adapter = new PostgresAdapter({ url: process.env.DATABASE_URL! });
スキーマ(vector(384) 列と HNSW コサインインデックス)は、最初の書き込み時に自動作成されます。独自のマイグレーションツールで管理するには、postgresMigrationSql(table?, dimensions?) の DDL を実行し、skipBootstrap: true を渡してください。
オプションのピア依存関係が必要です:npm install pg
信用ストリークとバッジ
エージェントは時間をかけて信頼を獲得します。決済の連続成功によってストリークが伸び、バッジの獲得や手数料の引き下げにつながります。
const rep = await agent.reputation();
console.log(rep.streak);
// → { currentStreak: 47, bestStreak: 312, streakBonus: 0.094 }
console.log(rep.badges);
// → [
// { id: "first_settlement", name: "First Settlement", earnedAt: 1712700000000 },
// { id: "streak_50", name: "Streak Master", earnedAt: 1712900000000 },
// { id: "volume_10k", name: "High Roller", earnedAt: 1713100000000 },
// ]
| バッジ | 条件 |
|---|---|
| 初回決済 | 決済を1回完了 |
| ストリーク 10 | 決済を10回連続で完了 |
| ストリーク 50 | 決済を50回連続で完了 |
| 取引量 $1K | 決済総額が$1,000以上 |
| 取引量 $10K | 決済総額が$10,000以上 |
| 完璧な記録 | 決済100回以上、異議申し立て0件 |
返金または異議申し立てが発生すると、ストリークはリセットされます。ストリークボーナスは複利的に信用度を高め、最大+10%になります。
ハッシュチェーン型台帳
すべての台帳エントリーは、SHA-256ハッシュチェーンを介して前のエントリーにリンクされています。エントリーが変更されるとチェーンが切断され、verify() が即座に検出します。
const summary = agent.ledger.verify();
console.log(summary.chainValid); // true
console.log(summary.chainIntegrity); // 1.0 (100% of links verified)
メモリの Merkle 整合性と取引の HMAC を組み合わせることで、MnemoPay は独立した3つの改ざん検知システムを提供します。
決済(セント単位で正確な複式簿記)
- 複式簿記 — すべての借方に貸方があり、常に残高はゼロになります
- エスクローのフロー — 請求 -> 保留 -> 決済 -> 返金(Stripe/Square と同様の形式)
- 取引量に応じた手数料 — 累計取引量に基づき1.9% / 1.5% / 1.0%
- 3つの決済レール — Paystack(アフリカ)、Stripe(グローバル)、Lightning(BTC)
- セント単位で正確な整数演算 — 50の同時稼働エージェントによる200,000件の取引でストレステスト済み、誤差ゼロ
アイデンティティ(KYA コンプライアンス)
- 暗号学的アイデンティティ — HMAC-SHA256 キーペア、リプレイ保護
- 機能トークン — 支出上限付きのスコープ指定権限
- 取引相手の許可リスト — エージェントが取引できる相手を制限
- キルスイッチ — すべてのトークンを即座に失効
不正検知(ML グレード)
- 頻度チェック — 分/時間/日ごとの上限
- Isolation Forest — 教師なし ML による異常検知
- 地理情報の活用 — 国の追跡、急速な移動の検知、OFAC 制裁への対応
- 適応型エンジン — 非対称 AIMD、不正操作対策、サーキットブレーカー、PSI ドリフト検知
マルチエージェントコマース
- CommerceEngine — 委任条件、エスクロー、承認コールバックを備えた自律型ショッピング
- MnemoPayNetwork — エージェントの登録、取引の実行、共有メモリコンテキスト
- サプライチェーン — 10段階のエージェントチェーン、100エージェントのマーケットプレイスをすべてテスト済み
Claude Agent SDK との統合
Opus オーケストレーターが Sonnet/Haiku サブエージェントを起動する Claude Agent SDK のパターン向けに、専用設計された2つのプリミティブです。
想起結果の1時間プロンプトキャッシュ
MnemoPay の想起結果を Claude のシステムプロンプトに含める場合は、formatForClaudeCache() を使用して、cache_control: { type: "ephemeral", ttl: 3600 } を含むコンテンツブロックを出力します。Anthropic API はこのプレフィックスを最大1時間キャッシュします。キャッシュ読み取りの料金は、通常の入力料金のおよそ10%です。安定した想起プレフィックスとウォーム状態の1時間キャッシュを使用した場合、想起部分の入力トークンで通常85~92%のコスト削減が確認されています。実際の結果は、呼び出し頻度とメモリーセットの安定性によって異なります。
import MnemoPay, { formatForClaudeCache } from "@mnemopay/sdk";
import Anthropic from "@anthropic-ai/sdk";
const agent = MnemoPay.quick("my-agent");
const anthropic = new Anthropic();
// Option A: recall() directly returns a cache block
const cacheBlock = await agent.recall("user preferences", 10, {
formatForClaudeCache: true,
});
// Option B: convert an existing memory array (no extra recall call)
const memories = await agent.recall("user preferences", 10);
const cacheBlock2 = MnemoPay.formatForClaudeCache(memories);
// OR: formatForClaudeCache(memories) from the module directly
const response = await anthropic.messages.create({
model: "claude-opus-4-7",
max_tokens: 1024,
system: [
{ type: "text", text: "You are a helpful assistant.", cache_control: { type: "ephemeral" } },
cacheBlock, // ← MnemoPay recall cached for 1 hour
],
messages: [{ role: "user", content: userMessage }],
});
シリアライズされたテキストはメモリー ID 順に並べ替えられるため、同一のメモリーセットからはバイト単位で同一の出力が生成されます。これにより、後続のターンでキャッシュプレフィックスがヒットします。
サブエージェントごとのコスト帰属
マルチエージェントパイプラインで、どのサブエージェントがいくら使ったかを追跡します。監査可能な状態を保つため、複式記帳のペアとして記録されます。
import MnemoPay, { SubagentCostTracker } from "@mnemopay/sdk";
const orchestrator = MnemoPay.quick("orchestrator");
// After each Claude API call, record the cost:
orchestrator.subagentCosts.attributeSubagentCost({
parentAgentId: "orchestrator",
subagentId: "researcher-1",
subagentRole: "researcher",
modelId: "claude-sonnet-4-6",
inputTokens: 5000,
outputTokens: 2000,
cacheReadTokens: 8500, // tokens served from the 1h recall cache
cacheWriteTokens: 500,
cacheWriteTtl: "1h",
});
// At end of pipeline, get breakdown ordered by cost:
const breakdown = orchestrator.subagentCosts.subagentCostBreakdown("orchestrator");
// → [{ subagentId, subagentRole, modelId, totalCostUsd, cacheSavingsUsd, ... }]
const totalSaved = orchestrator.subagentCosts.totalCacheSavings("orchestrator");
使用する料金表:2026年の Anthropic 公開料金(Opus 4.7:$5/$25/M、Sonnet 4.6:$3/$15/M、Haiku 4.5:$1/$5/M。キャッシュ読み取り:0.1倍、1時間の書き込み:2倍)。料金が変更された場合は、src/subagent-cost.ts の MODEL_PRICING を更新してください。
統合手順の詳細は、docs/agent-sdk-guide.md を参照してください。
決済レール
すべてのレールは同じ PaymentRail インターフェース(createHold / capturePayment / reversePayment)を実装しています。エージェントのコードに手を加えることなく、レールを切り替えられます。
| レール | 対応範囲 |
|---|---|
StripeRail | カード(USD、EUR、GBP など) |
PaystackRail | アフリカ(NGN、GHS、ZAR、KES) |
LightningRail | BTC の1セント未満の少額決済 |
StripeMPPRail | Stripe MPP 経由の Tempo での暗号資産入金 |
X402Rail | EIP-3009 transferWithAuthorization 経由の Base 上の USDC |
GoogleAP2Rail | AP2 v0.2 の委任に基づく決済(FIDO Alliance) |
import {
PaystackRail, StripeRail, LightningRail,
StripeMPPRail, X402Rail, GoogleAP2Rail,
} from "@mnemopay/sdk";
const paystack = new PaystackRail(process.env.PAYSTACK_SECRET_KEY!);
const stripe = new StripeRail(process.env.STRIPE_SECRET_KEY!);
const lightning = new LightningRail(LND_URL, MACAROON);
const mpp = new StripeMPPRail(process.env.STRIPE_SECRET_KEY!);
const x402 = new X402Rail({ signer: yourEip3009Signer }); // bring-your-own crypto
const ap2 = new GoogleAP2Rail({ mandate, endpoint, signer });
const agent = MnemoPay.quick("my-agent", { paymentRail: paystack });
Stripe — 保存済み顧客情報を使った実カード決済
ブラウザーへの切り替えなしで、ユーザーの保存済みカードに課金するエンドツーエンドのフローです。
import MnemoPay, { StripeRail } from "@mnemopay/sdk";
const rail = new StripeRail(process.env.STRIPE_SECRET_KEY!);
const agent = MnemoPay.quick("agent-1", { paymentRail: rail });
// 1. Create a Stripe customer (one-time, persist cus_... to your DB)
const { customerId } = await rail.createCustomer("[email protected]", "Jerry O");
// 2. Collect a card via Stripe.js: create a SetupIntent, return client_secret
// to the browser, let Stripe Elements confirm it. You receive pm_... from
// the webhook or confirmation callback. Save it alongside the customer.
const { clientSecret } = await rail.createSetupIntent(customerId);
// → hand clientSecret to frontend, get back paymentMethodId after confirm
// 3. Charge the saved card later, off-session, no user interaction needed
const tx = await agent.charge(25, "Monthly API access", undefined, {
customerId,
paymentMethodId: "pm_saved_from_step_2",
offSession: true,
});
// 4. Settle (captures the hold) or refund (releases it)
await agent.settle(tx.id);
Paystack でも authorizationCode を使って同じパターンに対応しています。
const tx = await agent.charge(5000, "NGN invoice", undefined, {
email: "[email protected]",
authorizationCode: "AUTH_abc123", // from an earlier Paystack transaction
});
MCP サーバー
npx @mnemopay/sdk init
# or
claude mcp add mnemopay -s user -- npx -y @mnemopay/sdk
デフォルトのツールグループ:essentials(14個のツール、約1Kトークン)。 インストールできる MCP サーバーの中でも特に軽量です。MnemoPay はデフォルトでメモリー、ウォレット、tx のみを読み込むため、エージェントのコンテキスト予算を圧迫しません。
memory:remember、recall、forget、reinforce、consolidatewallet:balance、profile、history、logstx:charge、settle、refund、dispute、receipt_get
さらに必要な場合は、明示的に有効にしてください。
npx @mnemopay/sdk --tools=all # all 95 tools
npx @mnemopay/sdk --tools=agent # essentials + commerce + hitl + payments + webhooks
npx @mnemopay/sdk --tools=reputation # Agent Reputation Scoring only
グループ:memory、wallet、tx、commerce、hitl、payments、webhooks、
reputation、security、governance、identity、skills、spatial、
agent_os、organization_admin、operator。エイリアス:essentials(デフォルト)、
agent、all。MNEMOPAY_TOOLS 環境変数でも設定できます。
v1.3.0 の重大な変更: デフォルトが
allからessentialsに変更されました。フラグなしで commerce/hitl/webhooks/fico/security を利用できることを前提としていた場合は、--tools=allまたは--tools=agentを指定してください。CHANGELOG を参照してください。
ミドルウェア
想起を意識せずに使えるドロップインプロキシです。チャット呼び出しのたびに、上位のメモリーをシステムコンテキストとして自動挿入し、その後にやり取りを保存します。すべてのプロバイダーで同じ Middleware.wrap(client, agent) 形式を使用します。
// OpenAI
import { mnemoPayMiddleware } from "@mnemopay/sdk/middleware/openai";
// Anthropic
import { mnemoPayMiddleware } from "@mnemopay/sdk/middleware/anthropic";
// Gemini
import { GeminiMiddleware } from "@mnemopay/sdk/middleware/gemini";
// Cohere (v2 chat API)
import { CohereMiddleware } from "@mnemopay/sdk/middleware/cohere";
const cohere = CohereMiddleware.wrap(new CohereClientV2({ token }), agent);
// Mistral
import { MistralMiddleware } from "@mnemopay/sdk/middleware/mistral";
const mistral = MistralMiddleware.wrap(new Mistral({ apiKey }), agent);
// LangGraph
import { mnemoPayTools } from "@mnemopay/sdk/langgraph";
アーキテクチャ
スタック全体の図とモジュール一覧は、docs/architecture.md を参照してください。
┌──────────────────────────────────────────────────────────────────┐
│ MnemoPay SDK │
│ Governance · Memory · Payments · Identity │
├─────────────────────────────────────────────────────────────────┤
│ GOVERNANCE Charter · FiscalGate · Article 12 · MerkleAudit │
│ mission scope, budget enforcement, audit bundles │
├──────────┬──────────┬───────────┬─────────────────────────────────┤
│ Memory │ Payments │ Identity │ Agent Reputation Scoring │
│ │ │ │ 300-850, 5-component │
│ remember │ charge │ KYA ├─────────────────────────────────┤
│ recall │ settle │ tokens │ Behavioral Finance │
│ reinforce│ refund │ perms │ prospect theory, nudges │
│ forget │ dispute │ killswitch├─────────────────────────────────┤
│ │ │ │ Anomaly Detection │
│ │ │ │ EWMA + fingerprinting │
├──────────┴──────────┴───────────┼─────────────────────────────────┤
│ Double-Entry Ledger │ Merkle Integrity │
│ debit + credit = always zero │ tamper-evident memory │
├─────────────────────────────────┼─────────────────────────────────┤
│ Fraud Guard (ML-grade) │ Canary Honeypots │
│ velocity + geo + adaptive │ compromise detection │
├─────────────────────────────────┴─────────────────────────────────┤
│ SPATIAL GridStamp adapter — proof-of-presence for embodied │
│ agents (drones, robots). Loose-coupled, fail-closed. │
├──────────────────────────────────────────────────────────────────┤
│ RAILS Stripe · Paystack · Lightning · StripeMPP · x402 · AP2 │
│ same PaymentRail interface — drop-in swap, no agent diff │
└──────────────────────────────────────────────────────────────────┘
モジュールの安定性
MnemoPay はセマンティックバージョニングに従っています。安定性の段階から、2.0 より前にモジュールの公開 API がどの程度変更される可能性があるかを確認できます。詳細な契約については、VERSIONING.md をご覧ください。
| モジュール | インポート | 安定性 | 備考 |
|---|---|---|---|
| メモリー/想起 | @mnemopay/sdk/recall | 安定 | remember · recall · reinforce · forget |
| 決済 | @mnemopay/sdk | 安定 | charge · settle · refund · dispute、セント単位の精度 |
| 複式簿記台帳 | @mnemopay/sdk | 安定 | debit+credit=0、ハッシュチェーン化 |
| アイデンティティ(KYA) | @mnemopay/sdk/identity | 安定 | Ed25519、ケイパビリティトークン、キルスイッチ |
| エージェント評判スコアリング | @mnemopay/sdk | 安定 | 5 要素、300~850 |
| 不正/異常 | @mnemopay/sdk | 安定 | 速度、位置情報、EWMA、カナリア |
| 決済レール(Stripe/Paystack/Lightning) | @mnemopay/sdk/rails | 安定 | 単一の PaymentRail インターフェース |
| ガバナンス — ポリシー | @mnemopay/sdk/governance/policy | 安定 | 1 秒未満の evaluateAction |
| ガバナンス — 監査チェーン | @mnemopay/sdk/governance/audit-chain | 安定 | Merkle イベントストリーム、Article 12 エクスポート |
| ガバナンス — チャーター/Article 12 | @mnemopay/sdk/governance | 安定 | ミッションの適用範囲+EU AI Act バンドル |
| ガバナンス — 承認ルーティング | @mnemopay/sdk/governance/approval | ベータ | HITL キュー+routeVerdict |
| ガバナンス — リスク分類 | @mnemopay/sdk/governance/risk | ベータ | Low→Critical の段階+プリセットポリシー |
| ガバナンス — アクション台帳 | @mnemopay/sdk/governance/action-ledger | ベータ | 「エージェントが何をしたか」を記録する型付きレコード |
| MnemoSkills(ガバナンス対象スキル) | @mnemopay/sdk/skills | ベータ | バージョン管理、権限設定、課金可能な機能 — examples/08-invoice-collector.ts をご覧ください |
| 空間/GridStamp | @mnemopay/sdk/governance | ベータ | 存在証明、疎結合、フェイルクローズ |
| レール — x402 / AP2 / StripeMPP | @mnemopay/sdk/rails | アルファ | 新興のエージェント決済標準 |
| Swarm | @mnemopay/sdk/swarm | 安定 | spawn / gather / recombine / stop;ユニットテスト 27 件 |
| Swarm CLI | @mnemopay/swarm | 安定 | カタログの一覧表示/インストール/デモ |
| BrowserSwarm/音声 | @mnemopay/sdk/swarm/browser | 安定 | オプションのピア依存関係 @mnemopay/browser |
テスト
npm test # full test suite across 12 files
core.test.ts— メモリー、決済、ライフサイクル、評判スコアリング、行動、Merkle、EWMA、カナリア、連続記録、バッジfraud.test.ts— 速度、異常、手数料、異議申し立て、リプレイ検出geo-fraud.test.ts— 位置情報シグナル、信頼、制裁identity.test.ts— KYA、トークン、権限production-100k.test.ts— 10 万件の操作、同時実行エージェント 10 体、ハッシュチェーン検証、ドリフトゼロstress-200k.test.ts— 20 万件の実環境ストレステスト:エージェント 50 体、バーストトラフィック、競合状態、返金の急増、メモリーリーク検出ledger.test.ts— 複式簿記、照合network.test.ts— マルチエージェント、取引、サプライチェーンpaystack.test.ts— レール、Webhook、送金stress.test.ts— 1000 サイクルの精度、並列操作recall.test.ts— セマンティック検索、減衰、強化
ライセンス
Apache License 2.0 — LICENSE をご覧ください。
Copyright 2026 J&B Enterprise LLC.
サードパーティへの帰属表示
src/recall/observations.ts のエンティティ観察書き込みパス(エンティティごとの統合サマリー、デバウンスによる再生成、セッションをまたぐ集約)は、vectorize-io/hindsight(MIT、Copyright (c) 2025 Vectorize AI, Inc.)を派生元としています。上流の通知全文は NOTICE と移植されたファイルのヘッダーに保持されています。
商標および規制に関する通知
Agent Reputation Scoring は、自律型ソフトウェアエージェント向けの信頼性スコアリングシステムであり、消費者信用情報の報告を目的としたものではありません。Fair Credit Reporting Act(FCRA)で定義される消費者レポートを作成するものではなく、FCRA の規制対象ではありません。MnemoPay は消費者信用情報機関ではありません。
MnemoPay は銀行、送金業者、保険会社ではなく、顧客の預金を保有しません。決済はサードパーティの決済ネットワーク(Stripe、Paystack、Lightning Network)を通じて処理されます。MnemoPay は、開発者に代わってこれらのネットワークに接続するソフトウェアであり、金融機関ではありません。
「FICO」は Fair Isaac Corporation の登録商標です。MnemoPay およびその Agent Reputation Scoring モジュールは、Fair Isaac Corporation と提携、承認、または派生関係にありません。AgentCreditScore と AgentFICO のエクスポート名は、以前のベータ版との後方互換性を保つために残されている非推奨の別名であり、今後のメジャーバージョンで削除される予定です。
Jeremiah Omiagbo が開発しました
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。