あなたのワークフローを見せてください

元ワークフローのトピックで私が投稿した内容の続報です。やりたいことを実現する方法が分かりました。もちろんこれはすべてテストですが、以下のことが可能です。

これはAIを活用し、サイトが閑散としているタイミングで議論を活性化させ、再エンゲージメントを高めることを目指すシステムです。

フェーズA: 特定と要約

30日以上前の投稿で、以下の条件のいずれかに該当するものを特定します。

- しばらく投稿がない人気トピック。

  • 多くのビュー数があるが、しばらく返信がないトピック。
  • 過去1年間に一定の活動があったが、その後停滞したトピック。

該当するものを見つけると、Discourseの「AI Summary」エージェントを起動します。AIエージェントに要約を作成させます。これは、要約APIエンドポイントにHTTPリクエストをPOSTすることで行います。要約が完了すると、ワークフローの存在をデータテーブルに保存します。

(これは1時間ごとに実行されますが、より頻繁に実行される可能性もあります)。

フェーズB: フォローアップのための要約評価

別のスケジュールされたワークフローが、独自のスケジュールで独立して実行されます。データテーブルをチェックし、要約はされているが評価されていない行を探します。データテーブルから1つのトピックを取得し、そのトピックの直近5〜10件の投稿を取得します。

トリアージを担当するAIエージェントに渡します。判断を行います。このトピックは復活させるべきか?そうであれば、どのようにするか? トピックをバンプすべきか、トピックに再エンゲージメントをもたらす投稿(質問、フォローアップ、または何もしない)を行うべきかを決定します。

決定事項でデータテーブルを更新します。

(これはフェーズAと同じくらいの頻度で実行されるべきですが、フェーズAからトリガーしたり、フェーズAと組み合わせたりすることもできます)。

フェーズC: トピックへの再エンゲージメント

別のスケジュールされたワークフローが、より頻度の低い独自のスケジュールで実行されます。最初のステップは、最近フォーラムがどれだけ活発だったかをチェックすることです。これは、過去3時間の1時間あたりの平均投稿数を確認することで行います。次に、過去2ヶ月間の同じ曜日・同じ時間帯における3時間ごとのフォーラムの混雑度の平均を取ります。サイトが通常、同じ曜日・同じ時間帯よりも混雑していない場合、「今なら再エンゲージメントを実行できる」と判断します。

次に、利用可能な再エンゲージメントの機会を最大10件取得します。AIエージェントに送信し、リストの中から最も有望な再エンゲージメント候補を1つ選出するように依頼します。AIが決定し、topic_idを返します。フェーズBの分類器は3つのオプション(トピックをバンプ、フォローアップ投稿、何もしない)のいずれかを決定していました。

フォローアップが指定されていない限り、ワークフローはバンプを実行します。フォローアップが指定されている場合、トピックIDを取得し、そのトピックの最新の投稿を取得します。これをAIエージェントに引き渡し、トピックへの再エンゲージメントとして最適なレスポンスを決定させます。非常に基本的な返信であり、トピックに関連しているが、推奨やコメントを提供しないことを保証するガードレールがあります。主に更新情報の依頼や、元の投稿者が何か進展があるかどうかの質問などをします。返信を投稿した後、完了日をデータテーブルに更新します。

もし私が知らなかったDiscourseの隠し機能を重複して実装してしまっていたら困りますが、試行錯誤の末に実現できました。

「いいね!」 3