メインコンテンツへスキップ

概要

Channels API を使用すると、Shannon を外部メッセージングプラットフォームと統合できます。Channel を作成して Slack ワークスペースや LINE アカウントに接続すると、Shannon が Agent システムを通じて受信メッセージを自動的に処理します。

機能

  • Slack 統合 — イベントサブスクリプションと Bot メッセージングに対応
  • LINE 統合 — Webhook ベースのメッセージ処理
  • HMAC 署名検証 — インバウンド Webhook のセキュリティを確保
  • Agent ルーティングagent_name 設定でメッセージを特定の Agent に転送
  • ユーザー分離 — ユーザーごとに type + name の組み合わせがユニーク
  • 認証情報の保護 — 認証情報は API レスポンスに含まれません

Channel の作成

新しいメッセージング Channel を作成します。

リクエストボディ

レスポンス

セキュリティのため、credentials フィールドは API レスポンスに含まれません。認証情報はご自身のシステムで安全に保管してください。

Channel の一覧取得

認証済みユーザーの全 Channel を一覧表示します。

レスポンス

Channel の取得

特定の Channel の詳細を取得します。

レスポンス

Channel の更新

既存の Channel を更新します。すべてのフィールドはオプションです — 指定されたフィールドのみ更新されます。

リクエストボディ

レスポンス

更新された Channel オブジェクトを返します(Channel の取得と同じスキーマ)。

Channel の削除

Channel を完全に削除します。

レスポンス

Response
(HTTP 200 OK with JSON body)

インバウンド Webhook

外部プラットフォームからのメッセージを受信します。ユーザーが Slack や LINE でメッセージを送信すると、プラットフォームがこのエンドポイントを呼び出します。
このエンドポイントは認証不要です。各プラットフォーム固有の HMAC 署名検証により、リクエストの正当性を確認します。

レスポンス

Webhook はインバウンドリクエストを検証し、メッセージを抽出して、Shannon の Agent システムに非同期でディスパッチします。レスポンスは即座に返されます。

認証情報のフォーマット

Slack 認証情報

LINE 認証情報

Webhook の動作

Slack

  • 署名検証:Channel の signing_secret を使用して HMAC-SHA256 で X-Slack-Request-TimestampX-Slack-Signature ヘッダーを検証
  • クロックスキュー:5 分以上経過したリクエストは拒否されます
  • URL 検証:アプリ設定時に Slack の url_verification チャレンジに自動応答
  • Bot フィルタリング:ループ防止のため Bot からのメッセージは無視されます
  • 対応イベントmessageapp_mention

LINE

  • 署名検証:Channel の channel_secret を使用して HMAC-SHA256(base64 エンコード)で X-Line-Signature ヘッダーを検証
  • 返信動作:Reply Token を使用して即座に “Thinking…” 返信を送信
  • メッセージ処理:イベントペイロードの最初のテキストメッセージを処理

Agent ルーティング

Channel の configagent_name フィールドを設定して、受信メッセージを特定の Agent にルーティングします:
agent_name が未設定の場合、メッセージは Shannon のデフォルト Agent ルーティングで処理されます。

Channel レスポンスオブジェクト

エラーレスポンス

すべてのエラーは標準フォーマットに従います:

次のステップ

タスクの送信

API から直接タスクを送信

エージェント

Channel ルーティング用の Agent を設定