Vercel、Slack用エージェント「eve」にイベントフックとセッション制御を追加
Vercel は Slack アプリ向け AI エージェント「eve」に、スレッド内での継続的な応答機能やセッション制御、イベントフックの強化を追加したと発表した。
AI深層分析を開く2026年7月28日 09:16
AI深層分析
キーポイント
スレッド内の継続的応答機能の追加
新しい onMessage フックにより、明示的なメンションがなくてもアクティブなセッションを持つスレッド内でエージェントが自動的に返信できるようになった。
セッション制御ツールの強化
ctx.cancel() で現在の応答を停止して最新の入力に置き換えたり、ctx.reset() で会話を完全にリセットして新しいセッションを開始したりする機能が提供される。
Slack イベントへの包括的な対応
onEvent フックの実装により、リアクション追加やチーム参加など、アプリが購読したあらゆるイベントに対してエージェントが反応できるようになった。
重要な引用
Mentions no longer have to carry the conversation.
ctx.cancel() stops the current turn while keeping the session
Your agent can now react to any event your Slack app subscribes to.
編集コメントを表示
編集コメント
Slack 上で AI エージェントが自然に振る舞うための基盤機能が整いつつあり、開発者が複雑な対話ロジックを構築しやすくなった。これにより、チャットボットの導入障壁が下がり、業務自動化の範囲がさらに広がる可能性がある。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
Slack 上で動作する Eve エージェントが、繰り返しメンションしなくてもスレッド内で継続して返信できるようになりました。また、進行中の応答をキャンセルしたり、会話を完全にリセットしたりすることも可能です。さらに、Slack アプリが購読しているあらゆるイベントにも反応できるようになっています。
繰り返されるメンションなしで会話を続ける
会話の継続は、もはやメンションに頼る必要はありません。スレッド内にアクティブなセッションが存在すれば、エージェントは独自に返信を開始できます。
新しい onMessage フックが Slack からのメッセージを受信し、2 つのヘルパー関数がどのメッセージを処理するかを判断します。ctx.isBotMentioned() は明示的なメンションを検出し、ctx.isSubscribed() はそのメッセージがアクティブな Eve セッションを持つスレッドに属しているかを確認します。
スレッドへの参加者によってルーティングを分ける必要がある場合、新しい ctx.thread.listParticipants() ヘルパー関数が、初登場順で一意の人間ユーザー ID を返します。公開チャンネルからのメッセージには message.channels トリガーイベントタイプと channels:history ボットスコープが必要です。プライベートチャンネルの場合 additionally、message.groups と groups:history も必要となります。
ターンをキャンセルするか、会話をリセットする
メッセージフックは、スレッドに紐付いたセッションヘルパーも受け取ります。
ctx.cancel() を使用すると、現在のターンを停止しつつセッションは維持されます。{ auth } を返す前にこの関数を呼び出すことで、新しいメッセージを置換入力としてキューイングできます。これにより、処理途中の修正で古い作業が破棄され、エージェントが最新のメッセージに応答できるようになります。
会話の再開が必要な場合、ctx.reset() を実行すると、スレッドを所有するセッションが完全に終了します。次に配信されるメッセージから、新しい履歴と状態、サンドボックス環境を持つ新たなセッションが始まります。
onMessage のディスパッチロジック内では、リセットコマンドとして以下の 3 行を使用します:
Handle any Events API callback
これで、エージェントは Slack アプリが購読したあらゆるイベントに反応できるようになります。
新しい onEvent フックでは、reaction_added や team_join、channel_created といった生イベントを受け取ることができます。フック内では ctx.receive() を呼び出してエージェントのターンを開始し、必要に応じて複数回呼び出すことで、1 つのイベントを複数のターゲットへ展開することも可能です。例えば、team_join イベントを活用すれば、各ウェルカムチャンネルでオンボーディングプロセスを開始できます。
始め方は Slack チャンネルドキュメントを読むか、eve channels add slack コマンドでチャンネルを eve エージェントに追加してください。
Read more
原文を表示
eve agents on Slack can now keep replying in a thread without repeated mentions, cancel an in-progress response or reset a conversation entirely, and react to any event your Slack app subscribes to.
Continue conversations without repeated mentions
Mentions no longer have to carry the conversation. Once a thread has an active session, your agent can reply on its own.
The new onMessage hook receives incoming Slack messages, and two helpers decide which ones to handle: ctx.isBotMentioned() detects an explicit mention, and ctx.isSubscribed() checks whether the message belongs to a thread with an active eve session:
When routing depends on who has joined the thread, the new ctx.thread.listParticipants() helper returns unique human Slack user ids in first-appearance order. Public channel messages require the message.channels trigger event type and the channels:history bot scope; private channels also need message.groups and groups:history.
Cancel a turn or reset the conversation
Message hooks also receive two thread-bound session helpers.
ctx.cancel() stops the current turn while keeping the session: call it before returning { auth } to queue the new message as replacement input, so a mid-turn correction drops the stale work and the agent responds to the latest message.
When the conversation should start over instead, ctx.reset() terminally retires the session that owns the thread. The next delivered message begins a new session with fresh history, state, and sandbox. Inside your onMessage dispatch logic, a reset command takes three lines:
Handle any Events API callback
Your agent can now react to any event your Slack app subscribes to.
The new onEvent hook receives raw events such as reaction_added, team_join, and channel_created. Inside the hook, call ctx.receive() to start an agent turn, or call it several times to fan one event out to multiple targets. The team_join event, for example, can kick off onboarding in each of your welcome channels.
Read the Slack channel documentation to get started, or add the channel to your eve agent with eve channels add slack.
Read more
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み