🗨️

脳内のカオスを、創造のエネルギーへ。自律型AI秘書『nagi』

に公開

はじめに

本アプリケーションは第4回 Agentic AI Hackathon with Google Cloud提出作品です。

デモ動画

https://youtu.be/l_tFMDmQ63A

プロジェクト概要

このプロジェクトは、
「人々をタスク管理における不安と労力から解放し、創造的な仕事に注力できるようにする」
ためのものです。

ターゲットユーザー

ターゲットとなる人は基本的に仕事を持つ人全員です。
ただし、特にこのアプリによる恩恵を得るであろうターゲットユーザーとして以下のような性質を持つ人を想定しています。

  • 複数のプロジェクトを抱え、脳内が多動気味な人
  • タスク管理そのものが苦手で、自己嫌悪に陥りがちな人
  • ADHD傾向(注意欠如・多動症)を持つエンジニアやクリエイター

解決する課題

タスク管理は、すべての仕事人に降りかかる 「仕事のための仕事」 です。
これを行わないと、以下のようなデメリットがあります。

  • タスクの抜け漏れ
  • 未完了タスクが脳内に保持され、集中力を削られる
  • 整理されていないことによりタスクの切り替えが増え、そのたびにスイッチングコストが発生

尚、スイッチングコストについては一回のタスク切り替えにつき集中状態に至るまで約23分かかるという研究が存在します(カリフォルニア大学アーバイン校のグロリア・マーク教授らによる研究)。

しかし、もちろんタスク管理をすることによるデメリットも存在します。
それは、実行負荷が高いということです。
整理、優先順位付け、スケジューリングなどタスク管理に必要な行為がエネルギーを食いつぶし、肝心のタスク実行ができなくなってしまうことがあるのです。
するといずれ、タスク管理をするのが面倒になり、上記のタスク管理をしないデメリットを享受することになります。そして仕事がうまくできず自己肯定感が下がり仕事自体を忌避するようになることもあるのです。
つまり現状のタスク管理では、**「するも地獄、しないも地獄」**な人がいるのです。

そしてこの問題は「個人の辛さ」だけに留まりません。
なぜならば、本来アウトプットに使えるはずの個々の認知資源が管理に溶けているということは、その積み重ねが組織や社会の損失になっているはずだからです。

特にタスク管理の実行負荷が高いと感じられる傾向は、脳内多動というADHD的性質を持つ人に多く見られるとされています。ADHDの診断を受けている成人は日本国内で約5%ほどといわれていますが、診断を受けていない層や、傾向的には似た性質を持っている層まで合わせれば、到底無視できる人数ではありません。特にエンジニアにはそういった傾向がみられる割合が高いという調査も存在します。

私自身脳内多動な傾向を持っており、ゆえにタスク管理から解放され仕事に集中できるようにしたいというきっかけから本プロジェクトを開始するに至りました。

ソリューション:-管理しないタスク管理アプリ-

上記の課題を解決するために、私は「タスク管理のほとんどをAIに任せ、自身は仕事の実行だけに集中できるようにする」という形を目指しました。
具体的には、「タスクのもととなる情報」さえ入力すれば、
タスク化(優先度、期限などの情報を含む)→ スケジューリング → リマインド
までをAIがすべて担ってくれるようなアプリを作成しました。

これを、「脳内のカオスを凪にし創造的な仕事に集中できるようにする」というコンセプトから、「nagi」と名付けました。

特徴

このアプリには以下の特徴があります。

個人用機能

  • チャットでのタスク作成:思いついたことをチャットや音声で投げるだけ。AIが文脈を理解し、期限や優先度付きのタスクに変換します。
  • AIによるタスク分解:「ハッカソンの準備」のような大きなタスクも、AIが実行可能なマイクロステップに分解します。
  • 成長記録:完了したタスクをAIが分析し、「今週の達成要約」と「成長したスキル」を可視化。自己肯定感を高め、人事評価の資料としても使えます。
  • メモリー機能:仕事特有のコンテキストや、あなたの性質を蓄積し、それを踏まえたAIとの会話が可能です。
  • リマインド機能:進捗が厳しそうなタスクがあるとAIからリマインドしてくれます。

チーム用機能

  • プロジェクト機能:複数人をアサインできる「プロジェクト」が作成可能です。
  • ミーティング機能①:会議前にcheck-in(今の状態・困っていることや次の会議で話したいこと)を投稿でき、それを踏まえたAIによるアジェンダ生成が可能
  • ミーティング機能②:会議のトランスクリプトからタスクの生成が可能

拡張機能・Windowsネイティブアプリ連携:いつでもどこでもnagiと

WebAppだけでなく、Chrome拡張機能やWindowsネイティブアプリに対応することで、いつでもどこでもAIを呼び出し、声で指示が可能です。これにより作業中に、突発的に頭に浮かんだことなどをすぐにnagiに吐き出すことができます。

  • Windowsネイティブアプリ
    • ショートカットキーを押すことでいつでも音声入力を開始可能。いつでもどこでもシームレスにタスク化を行える。
  • Chrome拡張機能(開発中)
    • Chrome操作AI内蔵
    • 動きを見せてRPA化が可能
    • 上記二つを組み合わせることで、請求書処理など定型的な業務をAIが代行可能

システムアーキテクチャ

今回は以下のようなシステムアーキテクチャとなっています。

レイヤー 技術
フロントエンド React 19 + TypeScript + Vite
バックエンド FastAPI (Python) + Google ADK
データベース SQLite (aiosqlite)
LLM Gemini API (gemini-3-pro/flash-preview)
音声認識 Google Cloud Speech-to-Text v2
インフラ Google Compute Engine + Nginx
TLS Let's Encrypt (certbot)

1. クライアント層

ユーザーとの接点は上記でも示した通り3つあります。

Webアプリ (React 19)

メインのUIです。ダッシュボード、チャット、タスク管理、ガントチャートなどを提供します。AIとの対話はSSE (Server-Sent Events) でストリーミング表示しています。

Chrome拡張機能

サイドパネルからチャットでき、ブラウザ操作の自動化 (RPA) もAIに委任できます(現在β版)。手動操作を記録してスキルとして再利用する「Demo-to-RPA」機能も備えています。

Native PTTアプリ (Windows)

グローバルホットキー (F8など) で音声入力できるデスクトップアプリです。Push-to-Talkで話しかけると、文字起こし→AI応答まで一気通貫で処理します。

2. サーバー層 (GCE)

1台のVMインスタンス上で、Nginx + フロントエンド + バックエンドを動かしています。

nagiai.dev (HTTPS :443)

    ├─ / → フロントエンド (ポート 5173)
    └─ /api → バックエンド (ポート 8000)

バックエンドの内部構造

app/
├── api/             # FastAPI Router (REST + SSE)
├── agents/          # Google ADK エージェント定義
├── tools/           # エージェントが使う70+のツール
├── services/        # ビジネスロジック (30+サービス)
├── interfaces/      # 抽象インターフェース
└── infrastructure/
    ├── local/       # SQLite・ローカルストレージ実装
    └── gcp/         # Firestore・GCS実装 (将来切替可)

今回、認証機能やDBについてマネージドサービスを使っていませんが、本サービスを大規模化していく際にはより拡張性が高く堅牢なアーキテクチャに移行予定です。

3. Google Cloud サービス層

Gemini API

本アプリケーションのAIは完全にAgenticな振る舞いを行います。

ワークフローではなくエージェントを選択した理由としては、ユーザーが何も考えずに送るチャットに対しても、その意図を察して適切な行動をしてもらう必要があったためです。

Google ADK (Agent Development Kit) を通じて、70以上のツール(タスク作成、プロジェクト管理、会議設定など)を呼び分けながらユーザーと対話します。

Geminiは画像理解・長文脈・コストのすべてが非常に優秀であり、タスクを雑に投げて管理してもらうための「外付け脳」として最適でした。

# Google ADKによるエージェント定義(イメージ)
agent = Agent(
    model="gemini-3-pro-preview",
    tools=[create_task, update_task, list_projects, ...],
    instruction=core_prompt + skill_prompts,
)

Google Cloud Speech-to-Text v2

Native PTTアプリやWebからの音声入力を文字起こしします。Chirp 3モデルで日本語を含む多言語に対応しています。

エージェント構築における工夫について

エージェントのプロンプトを「コアプロンプト」と「スキルプロンプト」に分離しています。

  • コアプロンプト: 安全性・トーン・出力ルールなど普遍的な原則のみ
  • スキルプロンプト: タスク管理・会議運営など用途別の手順。ランタイムで動的に読み込む

すなわち、いわゆる「skills」を採用しています。こうすることで、以下のようなメリットがあります。

  • プロンプトを動的に読み込むことで、トークン数=コスト低減が可能に
  • コンテキストウィンドウを圧迫しない
  • 新機能追加時にコアを変更せず、スキルプロンプトの追加だけで対応可能

スキルプロンプトにおいては、例えば「タスク追加時にはこういう順序で行ってくれ」などの指示が書いてあります。できるだけ正しく仕事のコンテキストを持っているAIと会話がしたいという想いから、タスク化の時などは必ずプロジェクトコンテキストを読んでから会話をしてくれるようにしています。

今後の展望

今後の展望を記します。

  • プロジェクト機能の強化
  • 拡張機能:定型業務委託機能の強化
  • ネイティブアプリ:MacOS対応
  • ネイティブアプリ:チャットだけでなく、全機能をWebアプリ同様に使えるように
  • モバイルアプリ対応
  • 完全マネージド化: Cloud Run / Firestoreへの移行によるServerless化。
  • 本格SaaS化

nagiは単なるタスク管理アプリではありません。
現代の知的労働者が抱える「認知的な限界」を、Google CloudのAI技術で拡張する**「人間拡張」**への挑戦です。

本アプリケーションが、タスク管理で困る人々を一人でも多く救えるように、今後もブラッシュアップし、展開していきたいと考えています。

Discussion