ブログに戻る
Engineering

PaperclipのAI自律企業でVeille APIを使う

Josselin Liebe
Josselin Liebe

Paperclipは、自律AIカンパニーを運営するためのオープンソースプラットフォームです。目標を定義し、エージェント(Claude、Codex、OpenClaw、またはHTTP互換ボット)を採用し、組織図に配置して作業させます。ハートビートがスケジュールに基づいてエージェントを起動します。チケットがすべての決定を追跡します。予算が各エージェントの支出を制限します。

これらのエージェントがユーザーデータ(サインアップ、リード、支払い、アウトリーチ)を扱う場合、受け取ったデータを検証する必要があります。未検証のメールを処理するAI駆動のリード資格審査ワークフローはノイズを生み出します。未確認のIBANを受け入れる請求エージェントは取引失敗を引き起こします。使い捨てメールアドレスを無視するサインアップ自動化は、ゴーストアカウントでコンバージョン指標を膨らませます。

この記事では、自律ビジネスの各段階でデータ品質チェックを追加するために、Veille APIをPaperclipエージェントに接続する方法を説明します。

PaperclipカンパニーにおけるVeilleの位置づけ

Veilleは4つの検証エンドポイントを提供します:

エンドポイント 検証内容
GET /v1/intelligence/email 使い捨て検出、リスクスコア、SMTP確認
GET /v1/intelligence/domain ドメイン年齢、DNS、脅威シグナル
GET /v1/intelligence/ip VPN/プロキシ/Tor、脅威スコア、ジオロケーション
GET /v1/vat/iban IBAN有効性、BIC、銀行名、SEPAメンバーシップ

各エンドポイントは単一のクエリパラメーターを受け取り、構造化されたJSONレスポンスを返します。HTTP GETリクエストが可能なPaperclipエージェント(組み込みHTTPエージェントタイプを含む)はこれらを直接呼び出せます。

最も自然なパターンは、生の入力(フォーム送信、CRMインポート、Webhookイベント)とそのデータに基づいて行動するエージェント(アウトリーチ、請求、プロビジョニング)の間に位置する専用のデータ品質エージェントです。組織図のフィルターレイヤーと考えてください。

ユースケース1 - リード資格審査

シナリオ: CMOエージェントがアウトバウンドキャンペーンを運営します。リードはフォーム、インポートされたCSVファイル、またはサードパーティ統合を通じて入ってきます。アウトリーチエージェントにリードを渡す前に、データ品質チェックでコンバージョンしないアドレスを除去します。

組織図での位置: CRMインポートステップとアウトリーチエージェントの間。

Veilleの呼び出し:

  • GET /v1/intelligence/email?query={{email}} - disposablerisk_scoreを確認
  • GET /v1/intelligence/domain?query={{domain}} - 最近登録されたドメインのdomain_age_daysを確認

判断ロジック:

IF email.disposable == true        → discard lead
IF email.risk_score >= 75          → discard lead
IF domain.domain_age_days < 30     → flag for manual review
ELSE                               → pass to outreach agent

ハートビート設定: 新しいリードが到着するたびに、またはスケジュール(アウトリーチバッチ実行前に4時間ごと、または毎晩)でデータ品質エージェントのハートビートとして検査を実行します。

チケットフロー:

[CRM Import Agent]
  creates ticket → "New leads batch: 240 records"
        ↓
[Data Quality Agent]
  validates each email via Veille API
  creates ticket → "Batch cleaned: 198 passed, 42 discarded"
        ↓
[Outreach Agent]
  processes 198 verified leads

単一のPaperclipチケットがすべてのVeille API呼び出しとその結果を記録します。監査ログには、どのリードがなぜ削除されたかが正確に表示されます - disposable: truerisk_score: 91、またはdomain_age_days: 3

ユースケース2 - サインアップ不正検出

シナリオ: プラットフォームで無料トライアルを提供しています。サインアップ自動化エージェントが新しいアカウントをプロビジョニングします。検証ステップがなければ、使い捨てメールとVPN IPが無制限の偽アカウントを作成し、トライアルリソースを消耗し、アクティベーション指標を歪める可能性があります。

組織図での位置: Webhookレシーバーとプロビジョニングエージェントの間。

Veilleの呼び出し:

  • GET /v1/intelligence/email?query={{email}} - disposablerisk_scoresmtp_validを確認
  • GET /v1/intelligence/ip?query={{ip}} - is_vpnis_proxythreat_scoreを確認

複合スコアリングロジック:

composite = (
    email["risk_score"] * 0.60
    + ip["threat_score"] * 0.40
)

if email["disposable"] or composite >= 75:
    action = "reject"
elif composite >= 50:
    action = "flag_for_review"
else:
    action = "provision"

このロジックは、プロビジョニングチケットが作成される前にデータ品質エージェント内で実行されます。エージェントは追跡可能性のために完全なAPIレスポンスを添付したチケットコメントとして結果を投稿します。

この検出パターンの完全なウォークスルーについては、OpenClawで使い捨てメールをブロックするを参照してください - 同じVeilleエンドポイントは、Paperclip内のOpenClawを含むHTTP対応エージェントで動作します。

ユースケース3 - 金融検証

シナリオ: 請求または支払いエージェントがB2Bオンボーディング中にIBANとVAT番号を処理します。無効なIBANは送金失敗を引き起こします。非アクティブなVAT番号は税務コンプライアンスの問題を生み出します。

組織図での位置: 請求エージェントが支払いデータを書き込む前にVeilleを直接呼び出します。

Veilleの呼び出し:

  • GET /v1/vat/iban?query={{iban}} - validin_sepa_zonebank_nameを確認
  • GET /v1/vat?query={{vat_number}} - validcompany_namecountry_codeを確認

判断ロジック:

IF iban.valid == false               → reject payment setup, notify COO
IF iban.in_sepa_zone == false        → flag: non-SEPA transfer requires manual approval
IF vat.valid == false                → charge local VAT rate, do not apply reverse charge
IF vat.country_code != customer.country → flag for compliance review
ELSE                                 → proceed with onboarding

チケット例:

#1087 - Onboard new customer: Acme GmbH
Billing Agent - In Progress

IBAN: DE89370400440532013000
  → valid: true, in_sepa_zone: true, bank_name: Commerzbank

VAT: DE123456789
  → valid: true, company_name: Acme GmbH, country_code: DE

Result: onboarding approved, reverse charge applied.

すべての検証結果はチケットスレッドと変更不可能な監査ログの一部です。コンプライアンスレビューでオンボーディング時にVAT番号が有効だったという証拠が必要になった場合、データは存在します。

HTTPエージェントの設定

Paperclipはハートビートを受け取れるすべてのエージェントをサポートします。Veille API呼び出しの場合、最もシンプルな設定はBashまたはHTTPエージェントを使用します。

データ品質エージェントのSKILLS.md:

# Data Quality Agent

## Role
Validate email addresses, IP addresses, and financial identifiers before
they are passed to other agents in the org.

## Veille API
Base URL: https://api.veille.io/v1
Authentication: x-api-key header (use the VEILLE_API_KEY environment variable)

## Endpoints available
- Email validation: GET /v1/intelligence/email?query={email}
- Domain validation: GET /v1/intelligence/domain?query={domain}
- IP validation: GET /v1/intelligence/ip?query={ip}
- IBAN validation: GET /v1/vat/iban?query={iban}
- VAT validation: GET /v1/vat?query={vat_number}

## Decision thresholds
- email.disposable == true → discard
- email.risk_score >= 75 → discard
- email.risk_score 50–74 → flag for review
- ip.is_vpn or ip.is_proxy → flag for review
- ip.threat_score >= 75 → discard
- iban.valid == false → reject
- vat.valid == false → do not apply reverse charge

## Output
Post results as a ticket comment with the full API response.
Create a summary line: "Validated: {result} - {reason}".

Bashエージェント呼び出し例:

#!/bin/bash
# Run by the Data Quality Agent on heartbeat

EMAIL=$1
API_KEY=$VEILLE_API_KEY

response=$(curl -s \
  "https://api.veille.io/v1/intelligence/email?query=${EMAIL}" \
  -H "x-api-key: ${API_KEY}")

disposable=$(echo "$response" | jq -r '.disposable')
risk_score=$(echo "$response" | jq -r '.risk_score')

if [ "$disposable" = "true" ] || [ "$risk_score" -ge 75 ]; then
  echo "REJECT: disposable=${disposable}, risk_score=${risk_score}"
  exit 1
else
  echo "PASS: risk_score=${risk_score}"
  exit 0
fi

終了コードはPaperclipにワークフローを継続するか(0)、停止してレビューチケットを作成するか(1)を知らせます。

組織図パターン

複数のワークフローでVeille検証を使用するPaperclipカンパニーは次のような構成になります:

CEO (Claude)
├── CMO (OpenClaw)
│   ├── Lead Import Agent
│   └── Outreach Agent
├── CTO (Cursor)
│   ├── Data Quality Agent ← calls Veille API
│   └── Provisioning Agent
└── CFO (Claude)
    └── Billing Agent ← calls Veille IBAN/VAT

データ品質エージェントは複数のチームにサービスを提供します:CMOのアウトリーチパイプラインのためのリードを検証し、CTOのプロビジョニングフローのためのサインアップを検証します。一つのエージェント、一つの予算ライン、集中化された検証ロジック。

コスト可視性

Paperclipはエージェントごとのコストを追跡します。Veille APIの呼び出しはリクエストごとに予測可能なコストがあるため、予想ボリュームに基づいてデータ品質エージェントの月次予算を見積もることができます。

たとえば、プラットフォームが月に10,000件のサインアップを処理し、サインアップごとに2つのVeilleエンドポイント(メール + IP)を呼び出す場合、予算に計上するAPIリクエスト数が正確にわかります。Paperclipでエージェントの月次支出上限を適切に設定してください。エージェントが上限に達すると自動的に停止します - オーバーランなし。

関連記事