BUILD OR BUY
LINE Messaging APIで
AI返信を自作するときに
詰まる9つの点
詰まる
LINE Messaging APIと
MINIMUM
最小構成は単純
LINEで
- 01
Messaging APIチャネルを
作る LINE Developersで
チャネルを 作成し、 Channel secretと Channel access tokenを 取得します。 - 02
Webhook URLを
登録する HTTPSで
公開した エンドポイントを 登録します。 1つの チャネルに 対して 向き先は 1か所だけです。 - 03
受信した
イベントを LLMへ渡す メッセージ本文を
取り出し、 生成AIの APIに 投げます。 - 04
リプライトークンで
返信する Webhookで
受け取った リプライトークンを 使って 応答します。
ここまでは
PITFALLS
運用に乗せると出てくる9つの問題
- 01
署名検証を
していない Webhookエンドポイントは
公開URLです。 x-line-signatureヘッダをChannel secretで 検証しないと、 誰でも 偽の イベントを 投げられます。 最初に 実装すべき箇所ですが、 動作確認の 段階では 省略されがちです。 - 02
LLMの
応答を 待つと Webhookが タイムアウトする Webhookは
即座に 200を 返すことが 前提です。 生成AIの 応答は 数秒かかる ことが あり、 待ってから 返すと タイムアウトします。 受信したら 即ACKし、 返信は 非同期で 行う 構成が 必要です。 - 03
リプライトークンの
期限が 切れる リプライトークンは
1回しか 使えず、 有効期限が あります。 非同期に した 結果、 処理が 遅れてトークンが 失効すると 返信できません。 代わりに プッシュ送信を 使うことになりますが、 こちらは課金対象の 通数 を消費します。 設計の 失敗が、 そのまま 費用に なります。 - 04
同じイベントが
複数回届く ネットワークの
状況や 再送設定に よって、 同一イベントが 重複して 届く ことがあります。 イベントIDで 冪等性を 担保しないと、 同じ 返信が 2回送られます。 - 05
会話の
記憶を どこに 持つか 決まっていない 1往復で
完結する ボットなら 不要ですが、 会話を 続けるなら 履歴の 保持が 要ります。 全履歴を そのまま プロンプトに 積むと コンテキストが 膨らみ、 費用と 応答時間が 線形に 増えます。 要約や 長期記憶の 設計が 必要です。 - 06
ユーザーごとの
分離が 甘い 記憶を
ユーザー単位で 分けていないと、 別の ファンの 会話内容が 返信に 混ざります。 これは 一度 起きると 取り返しが つかない 種類の 事故です。 保存・検索・削除の すべての 経路で ユーザーIDに よる 絞り込みを 強制する 必要が あります。 - 07
送信量の
制御が ない 1人の
ユーザーが 延々と 話しかけると、 その 分だけAPI費用が 出ていきます。 1日あたりの 上限、 1人が 使える 月間枠の 割合、 上限到達時の 案内など、 止める 仕組みを 先に 入れて おかないと、 月末に 気づく ことになります。 - 08
公開前に
試す場所が ない プロンプトを
変えた ときの 挙動を、 本番の ファンに 届く 前に 確認できる 経路が 必要です。 テスト用の 記憶と 本番の 記憶が 同じ 場所に あると、 テストの 会話が 本番の 文脈を 汚します。 - 09
シークレットの
置き場所 Channel access tokenと
LLMの APIキーは、 コードにも 環境変数の 平文にも 置きたく ありません。 シークレット管理の 仕組みと、 漏洩時の ローテーション手順が 要ります。
DECISION
自作するべきか
上の
| 状況 | 向いている |
|---|---|
| 既存の | 自作 |
| 会話ロジック | 自作 |
| 複数の | 自作するならマルチテナント設計から。 |
| 会話の | SaaS |
| 障害対応を | SaaS |
見落と
ARCHITECTURE
AI Friend Studioがどう解いているか
参考までに、
- 即時ACKと
非同期処理の :Webhookは分離 署名検証と 受付だけを 行い、 キューへ 積んで 即座に 200を 返します。 生成は 後段の ワーカーが 担当します - 記憶の
スコープ分離 :会話の記憶を テナントと ユーザーの 組で 分離し、 他の ファンの 文脈が 混ざらないように しています - テストと
本番の :テスト用の記憶を 分ける 記憶だけを リセットでき、 本番の 会話には 影響しません - 設定は
不変バージョン :公開済みの 設定は 上書きせず、 新しい バージョンを 積みます。 会話は 「公開中の バージョン」を 参照します - 送信前チェック:
公開状態、 契約状態、 月間上限、 送信時間帯、 対象割合を 確認してから 送信します - 接続情報の
保護 :Channel secretとaccess tokenは 暗号化して 保管し、 登録後は 管理画面へ 再表示しません
TRY IT ON LINE
まず挙動を見る
実装の
FAQ
Messaging APIでの自作についてよくある質問
1つのLINE公式アカウントに複数のツールを接続できますか?
Webhookの
Webhookはどれくらいの速さで応答する必要がありますか?
即座に
リプライトークンが切れたらどうなりますか?
リプライでの
会話履歴は全部プロンプトに入れればいいですか?
会話が
署名検証は必須ですか?
Webhookエンドポイントは