frisk
AI エージェントが自分で支払う前に、相手を審査する。
個人開発。設計・実装・SDK・CI まで一人で担当。
GitHub ↗npm: frisk-screen ↗PyPI: frisk-screen ↗
- MIT
- TypeScript / Python
- ランタイム依存ゼロ
- 2026年
解こうとしている問題
AI エージェントが人間を介さずに支払いを行う時代が、実際に始まりつつあります。 x402 は HTTP の 402 Payment Required を実際に使えるようにした決済プロトコルで、 エージェントが API やサービスに対してリクエスト単位で自動的に支払えるようになります。
ここで抜け落ちているのが「支払う前に、相手が信用できるかを確認する」という工程です。 人間なら当たり前にやっている与信判断を、エージェントは誰も代わりにやってくれません。 相手が詐欺のエンドポイントでも、アドレスが壊れていても、 自分のポリシーに違反する金額でも、エージェントはそのまま払ってしまいます。
frisk は、その一手前に入る審査レイヤーです。
何をするか
支払い先・金額・資産種別などを渡すと、allow / review / block の いずれかの判定と、信頼スコア、そして人間が読める理由を返します。 不正なアドレス、安全でないエンドポイント、ポリシー違反などを支払い前に検出します。
重要なのは、frisk が助言に徹することです。 最終的に払うかどうかを決めるのはエージェント側であり、frisk が取引を止めることはありません。 判断材料を出すところまでが責任範囲だと考えています。 自動化されたシステムに強制力を持たせると、 誤検知がそのまま業務停止に直結するためです。
2つのモード
Lite
外部通信なしで動きます。ランタイム依存ゼロなので、 エージェントの実行環境に何も足さずに組み込めます。 形式的な検証とポリシー照合はここで完結します。
Hosted
レピュテーショングラフ、学習済みモデル、脅威インテリジェンスのフィードを利用します。 「このアドレスは他所で何をしたか」という、 手元のデータだけでは分からない情報を判断に加えます。
設計上の判断
- ランタイム依存をゼロにした。TypeScript 版はプラットフォームの
fetchのみ、Python 版は標準ライブラリのみで動きます。 セキュリティを名乗るライブラリが依存関係を大量に持ち込むのは、 それ自体が攻撃面になるためです。 - 2言語で同一の API にした。エージェント開発の現場は TypeScript と Python に割れています。 どちらからでも
Client.screen()という同じ形で呼べます。 - 判定に理由を必ず添える。スコアだけを返すブラックボックスは、運用時に誰も信用しません。 なぜ止めたのかが読めなければ、閾値の調整すらできません。
状況
開発中です。MIT ライセンスで公開しており、CI、コントリビューションガイド、 セキュリティポリシーを整備しています。 エージェント決済まわりで課題をお持ちの方、 あるいは組み込みを検討されている方はお気軽にご連絡ください。