【google ai agent hackathon】AIエージェントが大学生の機会損失を防ぐ「きっかけハブ」開発ログ
1. はじめに 🚀
こんにちは!ハッカソンが趣味の大学生エンジニアです。
この記事は、先日参加したAgentハッカソンで開発したプロダクト「きっかけハブ (Kikkake Hub)」の技術的な裏側と、開発を通じて得られた学びをまとめたものです。
以下の文章はgemini-2.5 proを使用して作成し、内容を適宜修正したものです。
- ハッカソンや個人開発で、AIを使ったサービス開発に挑戦したい学生・エンジニアの方
- Next.js, Firebase, Gemini APIを使ったモダンな開発に興味がある方
- 「セレンディピティ」をテクノロジーでどう実現するかにワクワクする方
こんな方々に、少しでも楽しんでいただければ幸いです。
私たちが開発した「きっかけハブ」は、AIエージェントがあなたの代わりにWeb上を探索し、あなたの興味に合ったイベントや機会を届けてくれるサービスです。情報収集に追われる多忙な大学生の「機会損失」をなくし、偶然の素敵な出会い(セレンディピティ)を創出することを目指しています。
2. なぜ作ったのか? - 溢れる情報と「見つけられない」課題 💡
私たちのチームメンバーは全員、知的好奇心が旺盛な大学生です。新しい技術の勉強会、面白そうな企業のインターン、学生向けのハッカソンなど、自分の世界を広げてくれる「きっかけ」には常にアンテナを張っていたいと考えています。
しかし、現実は厳しいものです。
- 有益な情報は、X (旧Twitter)、Connpass、企業の採用ページ、大学のキャリアセンターなど、Web上の至る所に散らばっている。
- 毎日大量の情報が流れ着くSNSのタイムラインでは、本当に価値ある情報が埋もれてしまう。
- 授業やアルバイトで忙しく、能動的に情報収集する時間を確保するのが難しい。
この「見つけられない」という課題は、深刻な「機会損失」や「情報格差」につながります。実際、大学生の情報収集チャネルは非常に多様化・複雑化しています。株式会社マイナビの調査によると、就職活動だけでも学生は「就職情報サイト」に次いで「企業のホームページ」「大学のキャリアセンター」「LINE(オープンチャット含む)」など、複数の情報源を併用していることがわかります(※1)。
情報が多すぎることが、かえって選択を難しくし、ストレスや不安につながる「情報過多」の状態は、多くの現代人が抱える課題です(※2)。私たちは、このペインをテクノロジー、特にAIの力で解決できないかと考えました。
3. 課題へのソリューション:「きっかけハブ」
そこで私たちが提案するのが、AIエージェントによるセレンディピティ創出プラットフォーム「きっかけハブ」です。
コンセプト: "ユーザーの代わりにAIエージェントがWebを探索し、偶発的な出会いを届ける"
(画像はイメージです)
プロダクトの主な特徴は以下の3つです。
-
シンプルなUI:
ユーザーが行う操作は、興味のある分野(例:AI
,デザイン
,国際交流
)のタグと、探したい期間(例:今週末
,来月
)を選ぶだけ。面倒なアカウント登録は不要で、すぐに使い始められます。 -
AIによる自律的な情報収集:
入力された情報に基づき、Gemini APIを活用したAIエージェントが自律的にWeb全体を探索します。最新のイベント、勉強会、インターン情報をリアルタイムで収集し、タイムライン形式で表示します。 -
プッシュ型の情報提供(今後の展望):
MVPでは未実装ですが、将来的にはXやDiscordのBotと連携し、ユーザーが何もしなくても待っているだけでパーソナライズされた情報が届く仕組みを目指しています。
4. 技術スタックとアーキテクチャ選定の理由 🔧
今回のハッカソンでは、スピード感と拡張性を重視して、以下の技術スタックを選定しました。
- フロントエンド: Next.js (React)
- バックエンド/DB: Firebase (Firestore, Authentication)
- AI: Google AI (Gemini API)
- ホスティング: Vercel
シンプルなアーキテクチャは以下のようになっています。
[ユーザーブラウザ]
↑↓
+-----------------------+ +---------------------+
| Next.js on Vercel | ----> | Firebase |
| (Frontend/Backend API)| | (Firestore, Auth) |
+-----------------------+ +---------------------+
↑↓
+-----------------------+
| Gemini API |
| (AI Agent for Web) |
+-----------------------+
Next.js
チームメンバー全員がReactの開発経験があり、学習コストが低かったのが一番の理由です。フロントエンドとAPIルートを一つのプロジェクトで管理できるため、開発体験が非常に良く、短期間でのプロトタイピングに最適でした。
Firebase (Firestore / Authentication)
「とりあえず動くものを作る」ハッカソンにおいて、Firebaseはまさに神ツールでした。手厚い無料枠があり、Firestoreを使えばDBのスキーマ設計で悩む時間を削減できます。Authenticationも数行のコードで実装できるため、認証機能の省略という割り切りはしつつも、将来的な拡張を見据えて導入しました。
Gemini API
今回のプロダクトの心臓部です。単なるテキスト生成だけでなく、自然言語の指示でWebを探索し、情報を要約・構造化するエージェントとしての能力に注目しました。柔軟なプロンプト設計により、多様なユーザーの要求に応えられると考えました。
Vercel
Next.jsとの親和性は言わずもがな。GitHubリポジトリを連携させるだけで、CI/CDパイプラインが自動で構築され、git push
するだけでデプロイが完了する手軽さは、ハッカソンにおいて絶大な安心感をもたらしてくれました。
5. ハッカソンで工夫した3つのポイント ✅
短期間でAIエージェントを動かすために、特に以下の3点に注力しました。
① プロンプトエンジニアリング
ユーザーが入力するのは["AI", "ハッカソン"]
のようなシンプルなタグの組み合わせです。これを、Gemini APIが最大限のパフォーマンスを発揮できるような詳細な指示(プロンプト)に動的に変換する処理がキモでした。
例えば、以下のようなプロンプトテンプレートを用意しました。
あなたは優秀なリサーチャーです。
以下の条件に合致する、大学生向けの最新のイベント情報をWeb全体から5つ検索し、指定されたJSON形式で出力してください。
# 条件
- キーワード: {keywords}
- 期間: {period}
- ターゲット: 大学生、大学院生
- 除外キーワード: 採用直結、長期有給インターン
# 出力形式
[
{
"eventName": "イベント名",
"eventDate": "YYYY-MM-DD HH:MM",
"url": "イベントのURL",
"summary": "イベントの簡単な概要"
}
]
ユーザーの入力に応じて{keywords}
と{period}
を動的に埋め込むことで、AIエージェントの探索精度をコントロールしました。
② AIからの応答データの整形
AIからの応答は、常に完璧なJSON形式で返ってくるとは限りません。時々、JSONの前後に解説文がついてしまったり、形式が崩れたりすることがありました。
そこで、応答テキストからJSON部分を正規表現で抽出し、JSON.parse()
をtry-catch
ブロックで囲むことで、パースエラーが発生してもシステムがクラッシュしないように堅牢性を高めました。エラーが起きた場合は、再度AIにリクエストを投げるリトライ処理も実装しました。
// AIからの応答テキストからJSON部分を抽出する簡易的な例
function parseJsonFromAiResponse(text) {
try {
const jsonMatch = text.match(/\[.*\]/s); // [...] の部分を抽出
if (jsonMatch) {
return JSON.parse(jsonMatch[0]);
}
} catch (error) {
console.error("JSONのパースに失敗しました:", error);
return null; // パース失敗時はnullを返す
}
}
③ スピード開発のための割り切り
ハッカソンは時間との勝負です。私たちはMVP(Minimum Viable Product)のスコープを「ユーザーがタグと期間を入力すると、AIが収集したイベントリストが表示される」と明確に定義しました。
- 役割分担: 「フロントエンド担当」「バックエンド・Firebase担当」「AIプロンプト担当」のようにページや機能単位で明確に分担し、並行して作業を進めました。
- 機能の省略: アカウント登録や検索結果の保存など、コア価値に直結しない機能は思い切ってスコープから外しました。これにより、メイン機能である「AIによる情報収集」の実装に集中できました。
6. ユーザーからのリアルな声と学び 🗣️
開発最終日、ターゲットユーザーである現役大学生5名にMVPを実際に触ってもらう簡単なユーザーテストを実施しました。
協力してくれたのは、情報系の学部に所属する3名と、文系の学部に所属する2名です。「普段興味があること(プログラミング、デザイン、国際協力など)をタグとして入力し、イベントを探してみてください」とお願いし、その様子を観察しました。
結果として、非常にポジティブなフィードバックを多数得ることができました。
「全然知らなかったハッカソンの情報が見つかった!Xだと見逃してたかも…ありがたいです!」 (情報学部3年)
「いつもは複数のサイトを見て回ってたけど、これ一つで済むのは本当に楽。まさに『タイパ』が良いですね。」 (経済学部2年)
「UIがシンプルで直感的に使えるのがいい。アカウント登録なしですぐ試せるのもハードルが低くて嬉しい。」 (情報学部4年)
簡単な5段階評価の満足度アンケートでは、平均で4.2という高い評価をいただきました。
一方で、貴重な改善要望も得られました。
「IT系のイベントは多いけど、もっと文化系のサークルイベントとか、マイナーな分野の情報も探せると嬉しいです。」 (文学部3年)
「『オンライン』とか『渋谷』みたいに、開催場所で絞り込める機能が欲しいです。」 (情報学部3年)
このユーザーテストを通じて、「多忙な学生が、自分では見つけられない価値ある情報に偶然出会う」というプロダクトのコア価値が、確かに存在することを再確認できました。同時に、検索精度の向上や絞り込み機能など、今後の改善点も明確になりました。
7. 今後の展望
今回のハッカソンではMVPの開発にとどまりましたが、ユーザーからのフィードバックを元に、以下のような機能拡張を考えています。
-
パーソナライズ機能の強化:
ユーザーの閲覧履歴やクリップしたイベントをAIが学習し、より個人の興味に最適化された情報を推薦する機能。 -
検索条件の保存と通知:
よく使う検索条件を保存し、新しいイベントが見つかった際にDiscordやLINEでプッシュ通知を受け取れるようにする。 -
イベントのトレンド可視化:
「今、学生の間でどんな分野のイベントが盛り上がっているのか」を可視化し、新たな興味の「きっかけ」を創出する。
将来的には、大学生にとって「何か面白いことないかな?」と思った時に、一番最初にアクセスするようなプラットフォームに育てていきたいです。
8. まとめ
今回のハッカソン開発を通じて、技術的な学びはもちろん、チームで一つのプロダクトを短期間で作り上げる楽しさと難しさを改めて実感しました。特に、Gemini APIのような強力なAIツールをどう使いこなし、ユーザーの課題解決に繋げるかという点では、非常に多くの試行錯誤がありました。
この記事が、これからAIを使ったサービス開発に挑戦する方や、ハッカソンに参加する学生エンジニアの皆さんにとって、何かの「きっかけ」になれば、これほど嬉しいことはありません。
最後まで読んでいただき、ありがとうございました!
参考文献
(※1) 株式会社マイナビ, 「2024年卒大学生活動実態調査 (6月)」, https://career-research.mynavi.jp/wp-content/uploads/2023/07/gakuseichosa_2024_6.pdf
(※2) 電通総研, 「ウェルビーイング社会に向けた情報環境の現状と課題」, https://institute.dentsu.com/articles/2199/
Discussion