AI Connect/Get started/Vinkius AI Connect
Vinkius AI Connect
AI構築者のためのコネクティビティレイヤー:1つのApplicationで無制限のユーザー、各ユーザーが自分のコネクタと認証情報を持ち、分離され、Vinkiusに実ユーザーを公開することなく、初日から数千のコネクタを利用可能。
Vinkius Connect(@vinkius/connect)は、構築中の AI アプリケーションを、あなたのユーザーのためのコネクティビティプラットフォームに変えます。バックエンド API は 1 つ。ユーザー一人ひとりが自分のコネクタ、自分の認証情報、自分の AI ケイパビリティを持ち、エージェントはどのモデルランタイムからでもそれらを呼び出せます。Vinkius はこれらのケイパビリティの背後にある接続、認証、権限、プロトコル、実行を担います。ユーザーを識別するのはあなたのアプリケーションです。この役割分担こそが製品です。
AIプロダクトを届ける人のために
あなたが構築しているのは、コパイロット、エージェントプラットフォーム、バーティカルアシスタントのいずれかです。ユーザーには、現実の世界で動く AI が必要です。issue を起案し、メッセージを送信し、データベースを照会し、チケットを登録する。コネクティビティレイヤーがなければ、すべての統合を自分で構築することになります。プロバイダごとの OAuth フロー、認証情報の暗号化保存、プロトコル処理、絶え間ない API の変更、セキュリティレビュー。製品が何かを実現するまでに数ヶ月の配管工事がかかり、その攻撃対象領域は会社の存続期間ずっとあなたのものです。
この作業こそが統合税です。Vinkius Connect はそれを取り除きます。コネクタはすでに構築・保守されており、認証情報はユーザーごとの分離で扱われ、エージェントが呼び出すケイパビリティは 1 つのバックエンド API を通じて届きます。競争するのはあなたのプロダクトです。配管は終わっています。
以下の 3 つの決定がそれを可能にしています。プラットフォームがユーザーには見えないままでいられるのも、顧客はあなたのビジネスに残るのも、そのためです。
アカウントは 1 つ。ユーザーは多数。露出はゼロ。
Vinkius Cloud のダッシュボードで Application を 1 つ作成します。その配下で、バックエンドは製品に必要なだけユーザーをプロビジョニングでき、ユーザーごとにあなた自身の external_id でアドレス指定します。alice_123、データベースのキー、不透明なハッシュ。あなたの認証システムがすでに使っているものなら何でも構いません。
この設計には、ほとんどの統合プラットフォームが提供していない帰結があります:
- ユーザーごとの分離。 各ユーザーは自分のコネクタを接続し、自分の認証情報を保存します。2 人のユーザーが同じ GitHub 統合を接続しても、接続状態、認証情報、ケイパビリティは完全に分離されたままです。境界を越えるものは何もありません。
- 実際のユーザーが Vinkius に公開されることはありません。 SDK はメールアドレスも名前もプロフィールも要求しません。Vinkius が知っているのは、バックエンドが渡す不透明な識別子と、あなたが添付することを選んだ機密性のないメタデータだけです。顧客との関係、ユーザーベース、製品データはすべてあなたの側に残ります。Vinkius は製品の下にある見えないインフラであり、あなたとユーザーの間に立つもう一つのプラットフォームではありません。
- 認証情報は書き込み専用のまま。 バックエンドはユーザーのコネクタ認証情報を設定し、どのフィールドが設定済みかを確認できますが、誰も(あなたのコードも、モデルも、ダッシュボードも)読み戻すことはできません。
この背後にあるセキュリティ保証については Security を、ルートスコープのルールについては Authentication and scope を参照してください。
初日から数千のコネクタ
AI で何かを構築する人なら誰でも、Vinkius を実装すれば初日からカタログを利用できます。GitHub、Slack、Notion、データベース、社内 API など、すでにメンテナンスされ、日々拡大しているコネクタです。統合を構築する必要も、トークンを保存する必要も、OAuth の配線に触れる必要もありません。ユーザーは製品の中でアカウントを一度接続するだけで、出荷初日からすべてのエージェントのターンがそのまま動作します。
import { Vinkius } from '@vinkius/connect';
const vinkius = new Vinkius({
appId: process.env.VINKIUS_APP_ID!,
apiKey: process.env.VINKIUS_APP_KEY!,
});
async function configureAndListActions(
externalId: string,
credentials: Record<string, string>,
) {
const user = vinkius.user(externalId);
const connector = user.connector('github');
const schema = await connector.credentials.schema();
await connector.connect();
const credentialState = await connector.credentials.set(credentials);
const capabilities = await user.capabilities({ include: ['github'] });
return {
schema,
configured: credentialState.configured,
actions: capabilities.map(({ name, description }) => ({ name, description })),
};
}コネクタ、接続、ケイパビリティ
| 用語 | 意味 | 例 |
|---|---|---|
| コネクタ | カタログで利用できる統合 | github |
| 接続 | アプリケーションユーザーに対して設定された 1 つのコネクタ | Alice の GitHub 接続 |
| ケイパビリティ | 接続が公開する実行可能なアクション | github__create_issue |
vinkius.user('alice_123') と .connector('github') はハンドルです。作成してもリクエストは発生しません。connect()、credentials.set()、capabilities()、execute() などの操作がネットワークを越えます。
1 つの認証情報の上にある 2 つのプレーン
SDK は、同じ vk_app_sk_* 認証情報の上に 2 つのプレーンに分かれています:
- コントロールプレーン、プロビジョニングと状態:
users、connectors、credentials、catalog。 - 実行プレーン、ランタイム:
capabilities()とexecute()。
user.capabilities() が主な契約です。そのユーザーが利用できる AI ケイパビリティを、実行可能でフレームワークに依存しないオブジェクトとして返します。コネクタはケイパビリティではありません。1 つのコネクタが多数のケイパビリティを提供できます:
GitHub connector
│
├── list repositories
├── create issue
├── create pull request
├── review code
└── search codeconst capabilities = await vinkius.user('alice_123').capabilities();
// the capabilities available to this userユーザースコープはルートの一部です
ユーザー操作はすべて、アプリケーションの認証情報とバックエンドが渡す externalId の両方でアドレス指定されます。2 人のユーザーが同じコネクタを接続しても、接続状態と認証情報は分離されたままです。
externalId を無制限なクライアント入力として受け付けてはいけません。ハンドルを作成する前に、セッションから解決するか、呼び出し者がそのユーザーのために行動する権限を持つことを確認してください。詳細は Authentication and scope を参照してください。
ケイパビリティは実行の境界です
Capability には、モデル向け検索のための名前空間付き表示名、実行に使われるコネクタアクションの生の名前、説明と JSON Schema の入力契約、リクエストのルーティングに必要なコネクタと接続 ID、そして execute(args, { signal, idempotencyKey }) が含まれます:
const capabilities = await vinkius.user('alice_123').capabilities();
for (const capability of capabilities) {
console.log(capability.name, capability.inputSchema);
}空の CapabilitySet は正常な結果です。ケイパビリティの可用性はランタイムのデータとして扱い、すべてのユーザーが同じツールを持つと想定してはいけません。
アダプタはモデル境界にとどまります
コアのケイパビリティはモデルプロバイダに依存しません。アダプタのサブパスは、名前、説明、スキーマを構造的なプロバイダやフレームワークの形式にマッピングします。OpenAI、Anthropic、Gemini、Vercel AI SDK、LangChain、LlamaIndex、Cloudflare Workers AI、そして OpenAI 互換の任意のランタイムです。アダプタパッケージにはこれらの外部フレームワークへのランタイム依存がないため、互換性のあるフレームワークバージョンの選択と検証は引き続きアプリケーションの責任です。詳細は Framework adapters を参照してください。
今すぐ始める
- npm: npmjs.com/package/@vinkius/connect
- GitHub: github.com/vinkius-labs/ai-connect-sdk、リポジトリの examples ディレクトリに実行可能な例があります
- Issues: github.com/vinkius-labs/ai-connect-sdk/issues
