本記事は 2026/02/01 ~ 2026/03/02 の間毎日 AI アプリケーション開発(AI を搭載したアプリ開発 or AI を使用した開発)をテーマに 30 days AI challenge を行う 19 日目のブログポストです。
今日の AI アプリは “引っ越しタスク管理 AI アプリ” です。
住居の引っ越しを行う際に、住所変更、転出/転入届け、会社への提出書類など多くのタスクが襲い掛かりますよね。そんな時に必要なタスクや手続きを管理できるアプリです。
アプリ概要
まず必要な手続きを確認するため AI がいろいろとヒアリングをしてくれます。
家族の有無や住居形態、ライフライン契約状況など、必要な情報を AI が聞き出してくれます。ユーザーは自然言語で AI に回答すれば OK です。
※デモ画面上の住所は適当(特定の誰かの住所とかでは無い)なのでご安心ください


この質問は多ければ多いほど TASK の精度が上がりますが、細かすぎると AI からの質問攻めが終わらないこともあります。。笑
抜け漏れをしたくないのであれば AI にヒアリングをまかせ、途中で中断したい場合は、現状のヒアリング情報で TASK を作成することもできます(あとから手動で TASK を追加、削除も可能です)。
ヒアリングをもとに AI が自動で TASK を洗い出してくれます。ここからは一般的な TASK 管理ツールと同じように、進捗管理や TASK 管理を行います。

また TASK の内容や重要度をもとに AI が自動でスケジュールを組んでくれる機能もあります。
引っ越し日から逆算して、いつその TASK を完了させるか AI がカレンダーを作成してくれます。

技術要素
主に AI を使用している箇所は以下の通りです。ヒアリングの質問生成、TASK 生成、スケジュール生成の 3 箇所です。
タスク生成は最新の行政手続きなどの情報を取得するために Grounding 検索(最新のソースをもとに検索)を使用しています。
| 箇所 | Grounding | 入力 | 出力 |
|---|---|---|---|
| 質問生成 | なし | ユーザー情報 + QA履歴 | テキスト(質問リスト) |
| タスク生成 | あり | 全情報 + QA全文 | JSON配列(タスク15〜30件) |
| スケジュール | なし | タスク一覧 + 日程制約 | JSON配列(ID+日付のペア) |
TASK の生成はこんな感じです。
なお、ユーザーとのやり取りや TASK 情報など SQL Server にデータが保存される仕組みとしています。そのため、TASK の状況も随時保存→再開できます。
public async Task<List<MoveTask>> GenerateTasksAsync(MoveSession session)
{
// DB保存されたQA履歴をデシリアライズしてプロンプトに展開
var qaHistory = "";
if (!string.IsNullOrEmpty(session.QaHistory))
{
var qaList = JsonSerializer.Deserialize<List<QaItem>>(session.QaHistory);
foreach (var qa in qaList)
qaHistory += $"質問: {qa.Question}n回答: {qa.Answer}nn";
}
var prompt = $@"引っ越しに必要なすべての手続き・タスクを網羅的にリストアップしてください。
最新の行政手続きや規制についても検索して考慮してください。
【ユーザー情報】
- 現住所: {session.CurrentAddress}
- 引っ越し先: {session.NewAddress}
- 引っ越し予定日: {session.MoveDate:yyyy年M月d日}
【ヒアリング結果】
{qaHistory}
【出力形式】JSON配列のみ
[
{{
""title"": ""タスク名"",
""description"": ""詳細な説明"",
""category"": ""カテゴリー名"",
""priority"": 1, // 1=最重要 〜 4=低
""difficulty"": 2, // 1=簡単 〜 4=難しい
""deadline"": ""引っ越しXX日前まで"",
""deadlineDaysBeforeMove"": 14 // 負の値=引っ越し後
}}
]";
//Grounding Search を使用
var (response, sources) = await _geminiService.GetChatResponseWithGroundingAsync(prompt);
return ParseTasksFromResponse(response, session.MoveDate);
}
終わりに
実際に引っ越しをしてみないとこのアプリの有益さが分かりませんが、私は以前引っ越しの際自分でやることリストをメモ帳アプリに書き出して管理していました。
結局自分で管理すると抜け漏れが無いか不安になりますが、これは AI タスク管理を使ったとしても変わらないですね。
今回のアプリには実装されていませんが、TASK に抜け漏れがあるかのダブルチェックの機構を作成してもよかったかもしれません。改善の余地はまだまだありますね。次引っ越すまでには改善しておきましょう。
今日はここまで、閲覧いただきありがとうございました!

コメント