Communitygithub.com

FoloToy/folotoy-toy-role-config-skill

FoloToyキャラクターパーソナ、オープニングライン、音声を安全に設定するためのインストール可能なエージェントスキル

folotoy-toy-role-config-skill とは?

このスキルは、FoloToyデバイスのキャラクター設定を安全かつ確実に行うためのAIエージェントスキルです。開発者やエンドユーザーは、電話番号とSMSコードによる認証、デバイスのペアリング状態の確認とペアリング、キャラクターパーソナ(性格設定)、オープニングライン、音声モデルの変更を、APIワークフローを通じて実行できます。このスキルは、設定変更前に必ず人間が読める差分を表示し、明示的な承認を得た上で更新を行う「安全モデル」を採用しており、機密情報(電話番号、SMSコード、ペアリングキー、アクセストークン)がプロンプトやログに漏洩することを防ぎます。また、中国本土向けと国際向けの異なるAPIエンドポイントをサポートし、設定適用後の読み出し確認や物理デバイスでのテスト手順もガイドします。このスキルはClaude Code、Cursor、CodexなどのAIエージェントプラットフォームで使用でき、FoloToyデバイスのキャラクター設定に関わるすべての操作を、安全かつ一貫したワークフローで実行可能にします。

対応~Claude Code~Codex CLI~Cursor
npx skills add FoloToy/folotoy-toy-role-config-skill

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

FoloToy キャラクター設定

FoloToy キャラクターを安全に設定し、実際のデバイスで結果を確認します。

APIコールを行う前に references/api-workflow.md を参照してください。ユーザーがパーソナやオープニングラインの設計についてヘルプを求めている場合は references/examples.md を参照してください。

サポートされているタスク

  • 電話番号とワンタイムSMSコードでサインインします。
  • 認証済みデバイスがすでにペアリングされているか確認します。
  • ペアリングされていないデバイスを、SNとペアリングキーでペアリングします。
  • 現在のデバイス、アクティブキャラクター、利用可能な音声モデルを読み取ります。
  • キャラクターパーソナ、オープニングライン、音声を変更します。
  • 保存されたキャラクターを読み戻し、物理デバイステストをガイドします。

このスキルを、デバイスのペアリング解除、メモリ消去、ネットワークリセット、アカウント削除、サービスの購入、またはユーザーが所有していない、もしくは明示的な管理権限を持たないデバイスの制御に使用しないでください。

安全モデル

秘密情報はアカウントまたは物理デバイスを識別します。これらをプロンプト、ソースファイル、スクリーンショット、URL、永続ログ、最終レポートに含めないでください。

  1. 電話番号、SMSコード、SN、ペアリングキーは、それぞれの値が必要になった時点でのみ要求します。
  2. 完全な電話番号、SMSコード、ペアリングキー、アクセストークンをエコーバックしないでください。
  3. アクセストークンは現在のタスクの間だけ保持します。メモリ内変数または保護された一時セッションを使用し、終了時に削除します。
  4. 所有権が不明確な場合、またはデバイスが別のアカウントとペアリングされている場合は停止します。
  5. 更新リクエストの前に、人間が読める差分を表示し、明示的な確認を得ます。
  6. 承認されたフィールドのみを変更します。現在のモデルIDおよびその他すべての必須フィールドは保持します。
  7. 保存後にキャラクターを読み戻します。書き込み成功のレスポンスだけでは十分な検証になりません。

ワークフロー

1. リージョンと同意の確立

アカウントが中国本土向けか国際向けかを尋ねます。

  • 中国本土: https://webapp.folotoy.cn
  • 国際: https://webapp.folotoy.com

このワークフローが1件のSMSを送信し、物理デバイスの設定を変更することを説明します。ユーザーがデバイスを所有しているか、管理権限を持っていることを確認します。

2. サインイン

国コードを含む電話番号を尋ねます。APIリファレンスに記載されたリクエストを使用して確認コードを送信します。

6桁のコードの入力を促して待機します。コードを推測したり、他のソースから取得したり、ユーザーが提供する前に処理を進めたりしないでください。

サインインし、返されたベアラートークンをこのタスクの間のみ保持します。認証に失敗した場合は、国コードとコードの有効期限を確認します。SMSメッセージを繰り返し送信しないでください。

3. ターゲットデバイスの解決

デバイスのSNを尋ね、ペアリング状態を確認します。

  • 現在のアカウントにすでにペアリングされている場合は続行します。
  • ペアリングされていない場合は、ペアリングキーを尋ね、ペアリング前に確認を得ます。
  • 他の場所でペアリングされている場合は停止し、現在の所有者がサポートされているプロダクトフローを通じてペアリングを解除する必要があることを説明します。

アカウントのデバイスを読み取り、SNで正確なターゲットを特定します。表示名だけが似ているという理由でデバイスを選択しないでください。

4. 設計前に読み取り

デバイスの詳細、オンライン状態、プロダクトID、アクティブキャラクター、現在の完全なキャラクターオブジェクトを読み取ります。プロダクトの利用可能なTTSモデルを取得し、IDを読み取り可能な音声名にマッピングします。

対象ユーザー、シナリオ、性格、トーン、応答の長さ、行動ルール、安全境界、音声の好みを尋ねます。ユーザーが漠然としたアイデアしか持っていない場合は、ブロックするのではなく簡潔なドラフトを提案します。

5. 変更のプレビュー

以下のコンパクトなプレビューを表示します。

Device: [マスクされたSNと表示名]
Character: [名前]

Persona:     現在 -> 提案
Opening line: 現在 -> 提案
Voice:        現在の名前 -> 提案の名前

Unchanged: STTモデル、LLMモデル、メモリ、ネットワーク、ペアリング、およびその他すべてのフィールド

この変更を表示されているFoloToyデバイスに適用しますか? と尋ねます。

明示的な確認があった場合のみ続行します。

6. 安全に適用

サービスから返された完全なキャラクターオブジェクトを起点とします。承認されたパーソナ、オープニングライン、音声IDのみをマージします。speech_to_text_id、language_model_id など、既存の必須値およびその他のプロダクト固有フィールドは保持します。

マージされた完全なオブジェクトをキャラクター更新エンドポイントに送信します。サービスが完全な設定を期待している場合に、推測された最小限のペイロードを送信しないでください。

7. 確認とテスト

キャラクターリストを再度読み取り、返された custom_ability、start_text、text_to_speech_id を承認された提案と比較します。音声IDを読み取り可能な名前にマッピングします。

デバイスがオンラインであることを確認します。ユーザーに新しい会話を開始し、以下をテストするよう依頼します。

  1. オープニングライン。
  2. 通常のキャラクターに沿ったシナリオ1つ。
  3. 安全または不確実性の境界1つ。

保存された設定が正しいが動作が変わっていない場合は、アクティブキャラクターを確認し、さらにフィールドを変更する前に新しい会話を開始します。

8. 報告とクリーンアップ

キャラクター名、最終的なオープニングライン、最終的な音声名、読み戻しステータス、物理テストステータス、および推奨される次のイテレーションを1つ報告します。デバイスの識別情報をマスクし、一時的な認証データを消去します。

障害処理

  • SMSが届かない: 国コードを確認し、再送タイマーを待ち、繰り返し送信しないでください。
  • 401 または 403: セッションを期限切れとして扱い、再度サインインします。古いトークンは再利用しないでください。
  • ペアリング拒否: SNとペアリングキーを確認し、デバイスが別のアカウントに属している場合は停止します。
  • 音声ルートが見つからない: mod_type=tts を指定してプロダクトモデルエンドポイントを使用し、レガシーな /v1/voices ルートに依存しないでください。
  • コンテンツレビューエラー(例: 10500): パーソナまたはオープニングラインを短く簡略化します。新しいドラフトが承認されるまで、現在の設定はそのまま保持します。
  • 保存されたが音声が出ない: アクティブキャラクター、デバイスのオンライン状態、新しく開始された会話を確認します。

完了基準

次のすべてが満たされた場合にのみタスクは完了します。

  • ターゲットデバイスが認証され、SNで解決された。
  • 秘密情報が埋め込まれたり、マスクされずに表示されたりしなかった。
  • ユーザーが表示された差分を明示的に承認した。
  • 承認されたフィールドのみが変更された。
  • APIの読み戻しが提案と一致した。
  • デバイスが一時的にオフラインであっても、ユーザーが物理テストスクリプトを受け取った。

関連スキル