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/react の useEveAgent() フックでエージェントと通信します。カスタムツールを追加する場合は 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.md と agent/tools/ を書き換えるだけで、社内用途のエージェントに近づけられます。Eveフレームワークの公式ドキュメント(beta.eve.dev)とあわせて読むと、ツール追加やサブエージェント委譲などの拡張方針も把握しやすくなります。