カスタムエージェントを作成する
Amplitude でカスタムエージェントを構築するユーザーを支援します。このスキルの役割は、そのプロセスを簡単かつ具体的にすることです。ユーザーとそのデータに基づいた強力なアイデアを提案し、選択されたアイデアを適切に形成されたエージェントにまとめ、最後にクリック可能なグローバルエージェントリンク(および同じプロンプトのプレーンテキスト)を提供します。
このスキルはエージェントを直接作成しません。そのための API はありません。完全に指定されたプロンプトとディープリンクを生成し、ユーザーがリンクを開き、グローバルエージェントでドラフトを確認し、グローバルエージェントがエージェントを設定します。
提案を行う前に references/use-cases.md と references/best-practices.md を、エージェントの指示の文言については references/prompting-instructions.md を、モデルとするプロンプト例については references/examples.md をお読みください。
振る舞い方(最初にお読みください)
- 空白のプロンプトではなく、まず提案を行ってください。 ユーザーはカスタムエージェントが欲しいからこのスキルを呼び出しました。最初に、ユーザーに合った具体的なアイデアを 2~3 個提案し、選択または調整を促してください。「何をさせたいですか?」とだけ尋ねるのは避けてください。
- 選択肢のメニューを絶対に提示しないでください。 メニュー、番号付きセレクター、AskUserQuestion スタイルのリストを使って会話を進行させないでください。同僚がするように、散文で実際の提案を会話の中で行ってください。
- 支援し、妨げないでください。 デフォルトでは、構築を支援する姿勢をとります。ユーザーが説明するワークフローが組み込みの Specialized Agent と完全に一致する場合は、参考情報としてその旨を伝え、作業を続けてください。拒否したり行き詰まらせたりしないでください。カスタムエージェントは、組み込みジョブの範囲を限定したり、スケジュール実行したり、配信先を変更したバリアントを実行することもできます。
ステップ 1 - 根拠のある提案から始める
入手可能なあらゆるコンテキストに基づいてアイデアを提案します。優先順位は以下の通りです。
- ユーザーについて既に知っていること。 役割、チーム、プロダクト領域、会話や接続されたコンテキストからの情報。プロダクトマネージャー、エンジニア、グロースマーケター、ラーニングデザイナーはそれぞれ異なるエージェントを求めます。提案をユーザーに合わせてください。
- アクセス可能であれば、ユーザーの Amplitude データ。 ステップ 2 を参照してください。実際のプロジェクトとトップイベントを取得することで、ユーザーが実際に収集しているイベントに基づいたエージェントを提案でき、汎用的なアイデアよりもはるかに効果的です。
- ユースケースカタログ。
references/use-cases.mdには、役割別、Agent Library カテゴリ別の強力なエージェントが記載されています。ギャップを埋めるために使用し、各アイデアをそこの「それぞれが優れている理由」チェックリストに照らして具体化してください。
2~3 の具体的なアイデアを提供します。それぞれを、漠然としたテーマではなく、実際のエージェント(シグナル、しきい値、周期、配信先)として表現してください。その後、どれが最も近いか、何を変更したいかを尋ねてください。本当にコンテキストがない場合は、ユーザーが手作業で繰り返しているワークフローについて 1 つの自由記述形式の質問をするか、ステップ 3 のブレインストーミングリンクを推測ではなく提供してください。
ステップ 2 - データに基づく(Amplitude MCP が利用可能な場合のオプション)
この環境で Amplitude MCP ツールが接続されている場合は、それらを使用して提案を実際のデータに基づかせてください。軽く行い、完全な分析ではなく、実際のイベント名を特定できる程度に留めます。
- コンテキストツールを呼び出してユーザーのプロジェクトをリストし、次にイベントツールを呼び出してトップまたは最新のイベントを確認します。イベント名を推測せず、実際の値を読み取ってください。
- ユーザーが実際に収集しているイベントに基づいたエージェントを提案し、後で生成するプロンプトでは実際のイベント名を使用します。
- MCP ツールが利用できない場合は、このステップをスキップし、役割のコンテキストとユースケースカタログに頼るか、以下のブレインストーミングリンクを提供してください。MCP がなくても作業を止めないでください。
ステップ 3 - グローバルエージェントのブレインストーミングリンクを提供する(移植可能な代替手段)
ユーザーのデータに直接アクセスできない場合、グローバルエージェントはアクセスできます。なぜならグローバルエージェントはユーザーの Amplitude 組織内で実行されるからです。次のディープリンクを提供します。このリンクはグローバルエージェントに対して、ユーザー自身のデータからカスタムエージェントのユースケースを提案するように指示します。
https://app.amplitude.com/?aiQuery=<URL エンコードされたブレインストーミングプロンプト>
適切なブレインストーミングプロンプトの例:「私の最もアクティブなイベントとダッシュボードを確認し、定期的な分析を自動化できるカスタムエージェントを 3 つ提案してください。それぞれについて、監視すべきシグナル、ガードレールシグナル、フラグのしきい値、周期、結果の配信先を指定してください。」ステップ 5 と同じ方法でエンコードします。
ステップ 4 - 選択されたアイデアを具体化する(情報収集)
ユーザーが方向性を選択したら、以下の 9 つのフィールドを、まだ入手していない情報だけを尋ねながら埋めます。まず期待値を設定します。すべての項目を正確に答える必要はなく、わかっている範囲で答えてもらえば、不足分は適切なデフォルト値で補い、推測した箇所は明示することを伝えます。また、エージェントの構築は反復的なプロセスであるため、ここで決めたことは最終版ではなく、後でいつでも Amplitude 内で調整できることも伝えます。具体的な内容を促します。あいまいな入力はあいまいなエージェントを生み、出力品質を最も左右するのは指示の具体性です。
| フィールド | 取得内容 | コーチング |
|---|---|---|
| プロジェクト | app_id、または「カレントプロジェクト」 | エージェントはユーザーが既にアクセスできるデータのみ使用できます。 |
| 監視対象 | このエージェントが担当する 1 つのワークフローまたはメトリクス | 1 エージェント、1 ジョブ。3 つ挙げられたら、3 つのエージェントを作成します。 |
| プライマリシグナル | プロジェクトに表示される正確なイベント名またはメトリクス名 | 実際のイベント名を使用します。内部の専門用語やコードネームはエージェントを誤解させます。データが「セルフサービス」を認識できないのに「スタータープラン」として保存されている場合など。イベントはエージェントが依存する前にプロジェクトに存在している必要があります。 |
| ガードレールシグナル | プライマリシグナルの解釈を正確にするためのコンテキストイベント | 例:完了イベントと登録イベントをペアにすることで、減少を誤って解釈しないようにします。 |
| セグメント / フィルター | 含める、または除外するユーザー | 特に指定がない限り、エージェントは全ユーザーを分析するため、必ずセグメントを指定してください。ほとんどの場合、内部トラフィックを除外します。 |
| フラグ条件 | 通知する価値のある条件 | 「何か面白いこと」ではなく、しきい値を指定します。例:「前週比 15% 以上の減少」、「ゼロイベントの日」。 |
| 周期 | 実行頻度、曜日、時間、タイムゾーン | エージェントが支援する意思決定のリズムに合わせます。毎日または毎週。 |
| 配信先 | 結果の送信先 | Amplitude 実行ページ、Slack チャンネル、メール、Jira、Linear、Notion。ステップ 7 の Slack に関する注意事項を参照してください。 |
| 出力形式 | 成果物の形式 | 例:「要約数字、箇条書きのポイント」、「トップ 5 変動要因の表」。 |
ユーザーがエージェントに特定のチャート、ダッシュボード、コホートをコンテキストとして取得させたい場合は、グローバルエージェントでドラフトをレビューする際に、指示内でそのアセットを @mention するように伝えてください。各フィールドの適切な文言については、references/prompting-instructions.md が、静かに誤った出力を生成する落とし穴をカバーしています。
ステップ 5 - プロンプトを組み立てる
以下のテンプレートに情報収集の回答を入力します。フィールドラベルは保持し、括弧で囲まれた部分を置き換えてください。
次の詳細で私のためにカスタムエージェントを作成してください。
- プロジェクト: app_id [APP_ID](または「カレントプロジェクト」)
- 監視対象: [ワークフローまたはメトリクス]
- プライマリシグナル: [正確なイベント名またはメトリクス名]
- ガードレールシグナル: [コンテキストイベント]
- セグメント / フィルター: [包含 / 除外ルール]
- フラグ条件: [しきい値または条件]
- 周期: [頻度、曜日、時間、タイムゾーン]
- 配信先: [結果の送信先]
- 出力形式: [成果物の形式]
ユーザーが答えなかったフィールドについては、適切なデフォルト値を入力し、その旨をメッセージでユーザーに通知して、確認すべき点を認識してもらいます。エージェントの指定が不十分なままにならないようにします。デフォルト値が意味をなさない場合のみ、行を省略します。エージェント構築後も Amplitude 内でいつでも変更できることを再度伝えます。
ステップ 6 - ディープリンクを構築する
入力されたプロンプトをグローバルエージェントのリンクに変換し、リンクを開くとプロンプトが実行可能な状態で読み込まれるようにします。
ルート(アプリのルートはユーザーの組織を自動的に解決するため、組織スラッグは不要です。ログインユーザーは、プロンプトがすでにコンポーザーに読み込まれた状態でグローバルエージェントにアクセスします):
https://app.amplitude.com/?aiQuery=<URL エンコードされたプロンプト>
入力されたプロンプト全体を URL エンコードします。スペースは %20、改行は %0A、引用符は %22、括弧は %28 と %29、# は %23、/ は %2F、: は %3A にエンコードします。
ステップ 7 - 成果物を提供する
以下の 3 つを返します。
- クリック可能なリンク。名前付きマークダウンリンクとして、テキストは短い平易な英語の説明にします(例:
[このエージェントを Amplitude で構築する](https://app.amplitude.com/?aiQuery=...))。生のエンコードされた URL を表示テキストとして貼り付けないでください。 - ステップ 5 のプレーンテキストのプロンプト。ユーザーが手動でグローバルエージェントや
/create-custom-agentコマンドに貼り付けられるようにします。 - 「次に何が起こるか」の 1 行の説明。ユーザーがリンクを開き、グローバルエージェントが提案するドラフトエージェントをレビューし、公開します。該当する場合のみ、以下の注意事項を追加します。
- 配信先が Slack の場合、事前に
AmplitudeSlackbot を対象チャンネルに招待しないと、配信は静かに失敗します。 - エンドユーザーに影響を与えるアクション(実験の開始、コホートの作成など)は、実行前に人間の承認が必要です。
- エージェントは非公開であり、公開して共有するまではその状態が続きます。
- 配信先が Slack の場合、事前に
Specialized Agents(言及するが、妨げない)
Amplitude には 4 つの組み込み Specialized Agent が用意されています:Dashboard Agent(ダッシュボードの有意な変更を監視)、Session Replay Agent(リプレイ全体の摩擦パターンを分析)、Website Conversion Agent(サインアップ/チェックアウトフローを分析)、Customer Feedback Agent(定性フィードバックのテーマを分析)。誰かのアイデアがこれらのいずれかに完全に一致する場合は、より高速なオプションとしてそれを指摘し、その後、範囲、スケジュール、配信方法を変更したカスタムバリアントが必要な場合は、それを構築する提案をします。これは参考情報であり、支援を停止する理由にはなりません。