Vercelのエージェント基盤「Eve」に、実装のたたき台として使える公式テンプレートが公開されました。

この記事では、2026年6月22日にAllen Zhou氏が発表したeve Chat Template(リファレンスエージェントテンプレート)の全体像と、サポート対応や調査エージェントを素早く立ち上げる手順を解説します。

この記事でわかること

  • eve Chat Templateが何を提供するか
  • Next.js・Slack・Notionを1つのコードベースで動かす仕組み
  • ローカル開発とVercelへのデプロイ手順
  • 他のEveテンプレートとの使い分け

https://github.com/vercel-labs/eve-chat-template

AIエージェント開発で毎回ゼロから組む負担

社内サポートボットやインシデント対応エージェントを作るとき、認証・チャットUI・外部サービス連携・会話の永続化を毎回一から実装するのは手間がかかります。SlackとWebの両方に対応し、Notionのナレッジを参照し、会話履歴を残す——この組み合わせだけでも、複数のライブラリとインフラ設定が必要になります。

eve Chat Templateは、この課題を「1リポジトリで全部そろう」形で解消するリファレンス実装です。Vercel Labsが2026年6月11日に公開し、デモサイト chat.eve.dev で動作を確認できます。

Eve上に載ったリファレンス実装とは

Eveは、Vercelが提供するエージェント向けフレームワークです。指示文やスキルをMarkdownで書き、ツールをTypeScriptで定義し、Vercel Workflowsによる耐久実行(クラッシュ後も再開できる処理)を標準で備えています。Webアプリ開発にNext.jsを使うのと同様に、エージェント開発の基盤として位置づけられています。

Allen Zhou氏は2026年6月22日の投稿で、このテンプレートを「reference agent template」と呼び、サポート・インシデント対応・深掘り調査など幅広い用途の出発点になると紹介しました。リンク先はデモサイト chat.eve.dev で、GitHubリポジトリは vercel-labs/eve-chat-template です。

含まれる機能と技術スタック

このテンプレートは、次の要素を1つのNext.jsアプリに統合しています。

チャットUI(Next.js)

ブラウザからEveエージェントと会話するWebチャット画面です。shadcn/uiとTailwind CSSでUIを構成し、Streamdownでマークダウン表示と推論過程のレンダリングに対応します。会話はNeon(Postgres)に保存され、ページを更新しても /chat/[id] で同じセッションを再開できます。EveのストリームイベントとセッションカーソルをDBに記録する設計で、中断した応答の再開にも対応しています。

Slackボット

Vercel Connect経由でSlackコネクタを設定すると、/eve/v1/slack ルートでSlackからのメンションやDMを受け付けます。Webチャットと同じエージェント定義(agent/ ディレクトリ)を共有するため、チャネルごとに別コードを書く必要がありません。

認証(Better Auth)

Better AuthとSign in with Vercelでユーザー認証を行います。認証済みユーザーのみがチャットを送信でき、Upstash Redisによる固定ウィンドウ型のレート制限も組み込まれています。

外部サービス連携(Vercel Connect + MCP)

Notion・Linear・Sentryへの接続をMCP(Model Context Protocol、AIモデルが外部ツールを呼び出すための標準プロトコル)経由で利用できます。コンポーザー画面の接続メニューから、会話ごとに連携先を切り替えられます。Notionコネクタはセットアップスクリプトで自動設定も可能です。

データ層

Drizzle ORMでスキーマとマイグレーションを管理し、Neonにチャット履歴・認証情報・Eveセッション状態を保存します。Upstash Redisはレート制限専用で、チャット本文の保存には使いません。

意図的に含まれていないものも明確です。ファイルアップロード、Vercel Blob、ゲストモード、NextAuth/Auth.js、AI Elementsは対象外とされています。

エージェント本体のカスタマイズ方法

エージェントの振る舞いは agent/ ディレクトリで定義します。

  • agent/agent.ts — モデル選択とランタイム設定
  • agent/instructions.md — システムプロンプト(役割・制約の記述)
  • agent/tools/ — TypeScriptで定義するツール群
  • agent/channels/slack.ts — Slackチャネル設定
  • agent/connections/notion.ts など — 外部サービス接続

ブラウザ側は eve/reactuseEveAgent() フックでエージェントと通信します。カスタムツールを追加する場合は agent/tools/ にTypeScriptファイルを置くだけで、ファイル名がそのままツール名として登録されます。

セットアップとデプロイ

導入方法は2通りあります。

ワンクリックデプロイ

READMEの「Deploy with Vercel」ボタンから、NeonとUpstash Redisを自動プロビジョニングしてデプロイできます。初回デプロイ後に vercel env run -e production -- pnpm db:migrate で本番DBのマイグレーションを実行します。

ローカルセットアップスクリプト

./scripts/setup.sh を実行すると、Vercelプロジェクトのリンク、Neonのプロビジョニング、Sign in with VercelのOAuthアプリ登録、環境変数の設定、マイグレーション、Notionコネクタの設定までを一括で行います。Node.js 24以上、pnpm、Vercel CLI、opensslが必要です。

手動で進める場合は、NeonとUpstash Redisの統合追加、BETTER_AUTH_SECRET の生成、Sign in with VercelのクライアントID/シークレット設定、pnpm db:migrate の実行、pnpm dev での起動という流れになります。SlackやNotionの連携は任意で、Vercel Connect CLIからコネクタを作成して環境変数にUIDを設定します。

他のEveテンプレートとの違い

Vercelは用途別に複数のEveテンプレートを公開しています。

テンプレート 主な用途
eve Chat Template(本記事) Webチャット+Slack+MCP連携の汎用リファレンス
eve Slack Agent Slack専用の最小構成スターター
eve Content Agent Slack上でNotionの素材からブログ等を執筆
eve Personal Agent Web・Slack・長期記憶・Linear連携の個人アシスタント

サポート対応や調査エージェントのように、WebとSlackの両方に対応しつつNotionやLinearのデータにアクセスしたい場合は、eve Chat Templateが最も近い出発点です。Slackだけで十分なら eve Slack Agent、コンテンツ制作特化なら eve Content Agentを選ぶと、不要な機能を削った状態から始められます。

実用性が高い理由

このテンプレートの価値は、個別機能の新しさより「本番運用を想定した設計が最初から入っている」点にあります。会話の永続化、認証、レート制限、マルチチャネル対応、MCP連携、中断再開——これらはエージェントを社内で使い始めるときに必ず必要になる要素です。

Allen Zhou氏が「reference agent template」と呼んだ理由もここにあります。ゼロから設計するのではなく、動く実装をフォークして agent/instructions.mdagent/tools/ を書き換えるだけで、社内用途のエージェントに近づけられます。Eveフレームワークの公式ドキュメント(beta.eve.dev)とあわせて読むと、ツール追加やサブエージェント委譲などの拡張方針も把握しやすくなります。