メインコンテンツまでスキップ

AIエージェントのセキュリティ

@secureAiAgent デコレーターを使用して、特定のエージェントのセキュリティを担当する関数を指定します。

Squid Client を利用して AI エージェントを作成し、チャット機能を有効にする際、データの保護は極めて重要です。AI エージェントとそれを通じて行われるチャットには機密情報が含まれる可能性があるため、不正な使用や変更を防ぐためにアクセスや更新を制限することが必須です。

AI エージェントが public に設定されていない限り、デフォルトではアクセスが制限され、アクセス権限を明示的に設定するルールがなければ機能しません。(ぜひお試しください!)

Squid は、セキュリティルールを設定するための @secureAiAgent デコレーターを提供しています。これらのルールは、不正なユーザーがエージェントを更新したり、不正なチャットを行うことを防ぎ、データの整合性を保護します。

ヒント

AI エージェントのセキュリティを試みる前に、セキュリティを確保したいエージェントの public 設定が OFF に切り替えられており、かつ set up your backend 済みであることを確認してください。これは、AI エージェントのセキュリティルールを設定するために必要です。

チャットのセキュリティ

チャットの権限を管理するには、@secureAiAgent デコレーターを使用します。すべてのユーザーが すべてのエージェント に対してチャットできるようにするには、backend に次のコードを追加してください:

import { secureAiAgent, SquidService } from '@squidcloud/backend';

export class ExampleService extends SquidService {
@secureAiAgent()
allowChat(): boolean {
return true;
}
}

チャットを認証済みユーザー専用に制限するには、Squid backend の isAuthenticated() メソッドを使用します。このメソッドは、アクションを試みるクライアントが認証済みであるかどうかを示す boolean を返します。

@secureAiAgent()
allowChat(): boolean {
return this.isAuthenticated();
}

すべてのエージェントへのアクセスを一括で開放または閉鎖するのは非常に大雑把な設定となるため、アクセスセキュリティを構成する際には Agent ID を指定することをお勧めします。これを行うには、AI エージェントの ID を @secureAiAgent デコレーターに追加します:

@secureAiAgent('AGENT_ID')

条件付きチェック

API は、クライアントがクエリとともに様々なオプションを送信できるようにしており、これがロックダウンしたい対象となる場合があります。

例えば、クエリオプションではエージェントに設定されたものとは異なる AI モデルを指定することが可能です。これを制限するため、このメソッドでは options.model に値が設定されているかどうかをチェックし、設定されている場合は失敗させます。

@secureAiAgent()
immutableModel(context: SecureAiAgentContext): boolean {
if (context.options?.model !== undefined) {
// エージェントに設定されたモデルの上書きを許可しない
return false;
}
return this.isAuthenticated();
}

他にも多くのオプションが存在します。どこから始めるべきか迷う場合、最も安全な方法は一切のオプションを許可しないことです。

@secureAiAgent()
immutableAgent(context: SecureAiAgentContext): boolean {
const options = context.options || {};
if (Object.keys(options).length > 0) {
// どのオプションも許可しない
return false;
}
return this.isAuthenticated();
}

詳細については、ブロックまたは許可可能な すべてのその他のオプション をご覧ください。