>_tech-draft
Vercelのアイコン
Vercel
動画公開日
タイトル

Ship 26 NYC - Workshop - Build an Agent with Eve: The Open Agent Framework

再生時間

39分 50秒

Eveフレームワーク徹底解説:Vercelと連携する次世代AIエージェント開発

ポイント

  • Eveフレームワークは、宣言的かつファイルシステムベースで次世代AIエージェントを構築したい開発者向けです。
  • Vercelと連携し、Web検索やSlack連携などの基本機能を備え、多様なチャネルでの対話を容易にします。
  • Vercelの強力なオブザーバビリティ機能で詳細な監視・デバッグが可能で、外部データ連携によりエージェント機能を強化できます。

Eveフレームワーク徹底解説:Vercelと連携する次世代AIエージェント開発\n\n## はじめに\nこんにちは、皆さん。本日はEveフレームワークのご紹介にお越しいただきありがとうございます。私はEveのテクニカルリードの一人であるアンドリューです。もう一人のテクニカルリードであるケーシーと共に、過去4ヶ月にわたりこのエージェントフレームワークの開発を進めてきました。数週間前のShip Londonでリリースする機会を得て以来、私たちはフレームワークの洗練に努め、本日皆さんに完全なデモをお見せできることを嬉しく思います。\n\nEveは、宣言的でファイルシステムベースのエージェントを構築するための新しいフレームワークです。本記事では、Eveの基本的なセットアップから、Vercelとの連携、Slackチャネルを通じたエージェントとの対話、そして強力なオブザーバビリティ機能まで、その全貌を詳しく解説します。AIエージェント開発の最前線に興味のある方は、ぜひ最後までご覧ください。\n\n## Eveとは?宣言型ファイルシステムベースのエージェントフレームワーク\n\nEveの核心は、「宣言的(declarative)」で「ファイルシステムベース(file system-based)」のエージェントにあります。これは、エージェントの動作や機能をコードではなく、シンプルなファイル構成によって定義できることを意味します。デフォルトでは、エージェントは「instructions」ファイルとそれ以外の何も持たない状態から始めることができます。これにより、開発者は複雑な設定に煩わされることなく、エージェントのロジックに集中できるよう設計されています。\n\n## Eveアプリケーションの初期設定\n\nそれでは、実際にEveアプリケーションを構築する手順を見ていきましょう。\n\n### 1. プロジェクトの初期化\nまず、コマンドラインから以下のnpx initコマンドを使用して、新しいEveアプリケーションをスキャフォールドします。これは、最も基本的なEveアプリケーションの骨格を生成します。\n\nbash\nnpx init eve@latest my-eve-app\ncd my-eve-app\n\n\nこのコマンドが完了すると、Eveアプリケーションの基本的なディレクトリ構造が作成されます。特に注目すべきは、agentディレクトリです。このディレクトリが、エージェントの定義と動作の中心となります。\n\n### 2. モデルプロバイダとの接続と認証\n次に、エージェントが言語モデルと対話できるように、モデルプロバイダとの認証を設定します。以下のコマンドを実行すると、セットアッププロセスが開始されます。\n\nbash\neve dev\n\n\nこのプロセスでは、どのモデルプロバイダに接続するかを選択できます。本デモでは、Vercelが提供する最上位のゲートウェイ製品である「AI Gateway」を使用し、Vercelへのデプロイも行います。もちろん、ご自身のAPIキーを持ち込み、任意のプロバイダと接続することも可能です。\n\nEve Devコマンドは、ローカルの状態をAI Gatewayと認証し、Vercelプロジェクトを自動的に作成します。この段階で、すでにエージェントとの対話を開始する準備が整います。\n\n## エージェントとの対話:初期動作とWeb検索\n\n初期設定が完了したEveエージェントは、まるで「箱の中のChatGPT」のように機能します。特別な設定なしに、一般的な質問に答えることができます。\n\nたとえば、コマンドラインからエージェントに次のような質問を投げかけることができます。\n\n\n> 2026年のNBAファイナルで優勝したのは誰ですか?\n\n\nエージェントはこの質問に対し、内部的にWeb検索機能を起動し、情報を見つけて回答を試みます。Eveは、開発者が設定する必要のない、Web検索のような一般的な「ハーネスタイプ」の機能を多数組み込んでいます。これにより、エージェントはすぐに実用的なタスクを実行できるようになります。\n\n## Slack連携によるエージェントチャネルの拡張\n\nコマンドラインでの対話も便利ですが、実際のビジネス環境では、より多様なチャネルでのエージェントとの対話が求められます。Eveは「チャネル(channels)」という概念を提供しており、これはエージェントとの対話の最上位レイヤーを定義します。デフォルトのHTTPチャネルに加えて、様々なプラットフォームと連携することが可能です。\n\n本デモでは、Slackとの連携を通じて、エージェントをクラウドにデプロイし、より実践的な利用シナリオを体験します。\n\n### 1. Slackワークスペースへの接続\nVercel Connectを活用して、EveエージェントをSlackワークスペースに接続します。\n\n1. eve devプロセス中に表示される指示に従い、Vercel Connectを使用してSlackワークスペースに接続します。\n2. 既存のSlackワークスペース(例: shipNYC)を選択し、連携を承認します。\n\n### 2. VercelへのデプロイとSlackでの対話\nSlackとの連携が完了すると、EveはエージェントをVercelにデプロイするよう促します。デプロイが完了次第、Slackチャネル内でエージェントと直接対話できるようになります。\n\nSlackチャネルに参加し、エージェントのユーザー名(例: @shipNYC)をタグ付けしてメッセージを送信します。例えば、「Hello」と送信すると、エージェントが応答します。\n\nSlackのような異なるチャネルでは、EveはUIの特性に合わせて情報を提示します。ターミナルでの対話とは異なり、Slackではエージェントが「考えている」ことを示すインジケーターや、内部で行われた「ツール呼び出し」の詳細が表示されることがあります。これにより、ユーザーはエージェントの動作をより直感的に理解することができます。Eveは、これらのデフォルトUIをチャネルごとに自動的に最適化し、開発者がこれらを再構築する手間を省きます。\n\n## Vercelでの強力なオブザーバビリティ\n\nEveフレームワークは、Vercelプラットフォームと深く統合されており、エージェントの動作を詳細に監視・デバッグするための強力なオブザーバビリティ(可観測性)機能を提供します。\n\nVercelのプロジェクトダッシュボードにアクセスすると、Eveエージェントのすべての実行履歴を確認できます。誰かがメッセージを送信したり、エージェントと対話したりするたびに、その実行に関する詳細なログが記録されます。\n\nデモ中には、Slackからの質問に対するエージェントの応答が失敗する場面がありました。このような場合でも、Vercelのオブザーバビリティ機能を使って、何が問題だったのかを簡単に特定できます。\n\n* 実行ログの確認: 特定のメッセージ送信や対話に対応する「実行(run)」を開くと、エージェントがどのように処理を進めたか、どのツールが呼び出されたか、そしてどこでエラーが発生したかを確認できます。\n* エラー原因の特定: デモでは、「何らかのスキルをロードしようとしたが、問題が発生した」というエラーメッセージが表示されました。これにより、開発者はどのスキル設定に問題があるのかを迅速に特定し、デバッグ作業を行うことができます。\n\nこのアウトオブザボックスで提供されるオブザーバビリティ機能は、エージェントの信頼性とパフォーマンスを確保するために不可欠です。\n\n## データ連携によるエージェント機能の強化\n\n初期状態のEveエージェントは、一般的な知識やWeb検索能力を持っていますが、特定のビジネスデータと連携することで、その価値は飛躍的に向上します。Eveは、多様なデータソースとの連携を容易にするための機能を提供します。\n\n### 外部データソースとの接続\nEveエージェントは、以下のようなさまざまな外部データソースに接続できます。\n\n* OpenAPIスペック: 既存のAPI定義を読み込み、エージェントがそのAPIを介してデータにアクセスしたり、操作を実行したりできるようにします。\n* Postgresデータベース: データベースから直接データを取得し、エージェントの回答生成や意思決定に活用します。\n* その他のデータソース: 皆さんがデータを保持している場所であればどこでも、比較的簡単に接続できるよう設計されています。\n\n### connectionプリミティブの活用\nEveフレームワークでは、「connection」がファーストクラスのプリミティブ(基本的な要素)として扱われます。これにより、Eveエージェントを構築する際に、データ連携が非常に効率的かつ信頼性の高いものになります。\n\nたとえば、node_modules/eve-docs内には、Eveエージェントが「connection」の概念を理解し、OpenAPI接続の追加のようなタスクを適切に処理できるようにするための特別なドキュメントが同梱されています。これにより、エージェントは新しいデータソースがどのように機能するかを自動的に学習し、それに応じて動作を調整することができます。\n\nデモでは、エージェントにOpenAPI接続を追加するよう指示すると、エージェントはeve-docs内部の情報を参照し、適切な呼び出しを行いました。これは、Eveがデータ連携をスムーズに行うためのインテリジェンスを内蔵していることを示しています。\n\n## まとめ\n\n本記事では、宣言的でファイルシステムベースのAIエージェントフレームワーク「Eve」について、その基本的な機能からVercel、Slackとの連携、強力なオブザーバビリティ、そしてデータ連携機能までを網羅的に解説しました。\n\nEveは、開発者がAIエージェントを迅速かつ信頼性高く構築できるよう、多くの「アウトオブザボックス」機能を提供します。これにより、Web検索やチャネルごとのUI最適化、詳細なデバッグ情報といった一般的な要件を、開発者が一から実装する必要がなくなります。Vercelとの深い統合により、デプロイから運用、監視までがスムーズに行える点も大きな魅力です。\n\nAIエージェント開発の複雑さを解消し、より本質的なロジックに集中したい開発者にとって、Eveは非常に強力なツールとなるでしょう。今後のさらなる進化にも期待が寄せられます。\n\n## 参考動画\nhttps://www.youtube.com/watch?v=eD8pV7nSIxY