
事務・管理職種別2024-12
補助金申請AIエージェント
補助金申請自動化AI Agent
[{"id":"1bc2aea9-d8e1-4a51-b027-d7629aefe081","type":"heading","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":2,"isToggleable":false},"content":[{"type":"text","text":"概要","styles":{}}],"children":[]},{"id":"baad3968-4118-4154-8447-88288cfd1da8","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"補助金は条件が複雑で、 「自分に合うものがどれか分からない」と感じる場面が多くあります。","styles":{}}],"children":[]},{"id":"cda1be0e-7abc-4c31-bedd-acade8838f21","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"本プロジェクトでは、 ","styles":{}},{"type":"text","text":"自然言語で質問すると、条件に合う補助金を対話的に提案してくれるAIエージェント","styles":{"bold":true}},{"type":"text","text":" を開発しました!","styles":{}}],"children":[]},{"id":"78efb80c-5d81-406a-8630-4dd22cd759f0","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Jグランツ API、MCP、Strands Agents、Claude を組み合わせ、 検索結果だけでなく ","styles":{}},{"type":"text","text":"エージェントの動作過程そのものを可視化","styles":{"bold":true}},{"type":"text","text":" することを重視しています。","styles":{}}],"children":[]},{"id":"4be9f4bc-b6c6-4957-8fbb-7afdb0e91806","type":"divider","props":{},"children":[]},{"id":"f1336911-2b3f-451e-b4d1-3abcc6e3f5c9","type":"heading","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":2,"isToggleable":false},"content":[{"type":"text","text":"主な機能","styles":{}}],"children":[]},{"id":"a11478e1-392e-4531-af67-ccf51bd31b88","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"自然言語による補助金検索","styles":{}}],"children":[]},{"id":"13d2c9f8-1457-4ada-aae6-5a0f8697f6f6","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"補助金の詳細情報取得","styles":{}}],"children":[]},{"id":"1f0dc684-4558-4a24-a05e-5b5ae7e5a51f","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"条件に基づいた補助金フィルタリング","styles":{}}],"children":[]},{"id":"db9ec129-d0e7-4455-a37a-7c850fa9a6f7","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"対話を通じた補助金提案","styles":{}}],"children":[]},{"id":"ee71aae5-bf1d-4db2-ab47-095b37bbde9f","type":"divider","props":{},"children":[]},{"id":"42042329-febc-4743-bc21-02febacf1ad8","type":"heading","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":2,"isToggleable":false},"content":[{"type":"text","text":"このプロジェクトで重視した点","styles":{}}],"children":[]},{"id":"5fdd6cae-61db-49d2-b0c8-50ef29884c6e","type":"heading","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":3,"isToggleable":false},"content":[{"type":"text","text":"エージェントの挙動をブラックボックスにしない","styles":{}}],"children":[]},{"id":"40fc891d-4fd2-4e7e-9230-0476e983f5de","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"LLMを使ったアプリケーションでは、 「裏側で何が起きているのか分からない」という不安が生まれやすいと感じています。","styles":{}}],"children":[]},{"id":"fa4e06dd-80fd-44a6-ab22-716e3be389f6","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"そのため今回は、","styles":{}}],"children":[]},{"id":"c7d7dd6b-67cb-402f-886e-35e8024a5421","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"どのツールが呼び出されたのか","styles":{}}],"children":[]},{"id":"754e70ac-84f0-4a4f-b730-ad0f493c99d8","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"現在実行中か、完了したのか","styles":{}}],"children":[]},{"id":"0ced71cc-16cf-4e76-99e6-3506eff1c64e","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"実行にどれくらい時間がかかったのか","styles":{}}],"children":[]},{"id":"7e263f59-c377-4d48-ba66-df645ba08ae6","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"といった情報を ","styles":{}},{"type":"text","text":"リアルタイムで画面上に表示","styles":{"bold":true}},{"type":"text","text":" する設計としました。","styles":{}}],"children":[]},{"id":"3a2d6710-8260-4be5-96ba-ffb675e25817","type":"codeBlock","props":{"language":"text"},"content":[{"type":"text","text":"Tool #1: search_subsidies(実行中) Tool #1: search_subsidies(完了 / 1.2秒)","styles":{}}],"children":[]},{"id":"a49a9688-3a86-4569-841d-58549a5948ed","type":"divider","props":{},"children":[]},{"id":"8f7011d3-ceb5-4fbb-afbd-3e309a66d637","type":"heading","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":2,"isToggleable":false},"content":[{"type":"text","text":"Web UIの特徴","styles":{}}],"children":[]},{"id":"c10af668-93bd-44f9-a559-6117a1a12291","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"WebSocketによるリアルタイムストリーミング","styles":{}}],"children":[]},{"id":"ba0408fe-e0a4-4793-abfa-7739df4b4970","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"レスポンスを文字単位で表示するタイピング表現","styles":{}}],"children":[]},{"id":"de6ad784-18e7-4b4c-8198-2f53d1434483","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"ツール実行中・完了状態の明確な可視化","styles":{}}],"children":[]},{"id":"fe88ce92-947e-43a0-8a3f-3cfab9def9ac","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"実行時間の計測と表示","styles":{}}],"children":[]},{"id":"607305da-9d16-4157-bb36-10a328b0aa69","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Markdown対応の回答表示","styles":{}}],"children":[]},{"id":"599dfc20-b022-4867-b045-2cdc2655cd63","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"ユーザーが「待たされている」と感じにくいUXを意識して実装しています。","styles":{}}],"children":[]},{"id":"e61a2097-048f-4060-b0f8-7612414a7ab0","type":"divider","props":{},"children":[]},{"id":"282aaf33-0a52-4964-8999-1719bf72c4c1","type":"heading","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":2,"isToggleable":false},"content":[{"type":"text","text":"技術スタック","styles":{}}],"children":[]},{"id":"dbc7deba-faf4-48c9-af45-5032a7d5a8a2","type":"heading","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":3,"isToggleable":false},"content":[{"type":"text","text":"バックエンド","styles":{}}],"children":[]},{"id":"63661a61-1850-47ab-8543-ec53d07fabb6","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"FastAPI","styles":{}}],"children":[]},{"id":"e79b7ad2-8834-417f-8522-b0084c3995cb","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"WebSocket","styles":{}}],"children":[]},{"id":"304de56a-e7c0-45f8-b5ca-2f5df89928f3","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Strands Agents(AWS)","styles":{}}],"children":[]},{"id":"7a84ce07-8fb0-4a37-91c8-f353cd53653f","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Claude 3.5 Sonnet","styles":{}}],"children":[]},{"id":"6e053bbe-9d7a-44e3-b91c-e570093a6fde","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Jグランツ API(MCP経由)","styles":{}}],"children":[]},{"id":"35e82fe1-c0d7-40d6-8ed3-2e83e7729026","type":"heading","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":3,"isToggleable":false},"content":[{"type":"text","text":"フロントエンド","styles":{}}],"children":[]},{"id":"320278da-6663-4e0d-b61d-802c877b0934","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Next.js","styles":{}}],"children":[]},{"id":"8afef842-1b1a-46bb-867e-451e0b1a4ddc","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"TypeScript","styles":{}}],"children":[]},{"id":"90306cd8-0c33-4d9b-a9a9-f3942ed5f96a","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Tailwind CSS","styles":{}}],"children":[]},{"id":"a3247718-b1ac-4d34-a739-df40ef23cfa9","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"React Markdown","styles":{}}],"children":[]},{"id":"f2ce6299-d226-4d5a-9ee9-d60b7c2a417f","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Anthropic API / AWS Bedrock の両方に対応しています。","styles":{}}],"children":[]},{"id":"6b871ce5-7841-4a3e-add3-032cf3095a63","type":"divider","props":{},"children":[]},{"id":"0b56ed1a-eb39-45d9-8cf3-2e46f2ae875a","type":"heading","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":2,"isToggleable":false},"content":[{"type":"text","text":"アーキテクチャ設計の意図","styles":{}}],"children":[]},{"id":"552c4c4d-08ea-4c00-9df9-f67dce6875f3","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"MCPを用いて、LLMと外部APIの責務を明確に分離","styles":{}}],"children":[]},{"id":"f6aaa3c6-a0b4-4958-93a0-9debb5ee4743","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"Agentのツール実行を観測可能な構造にする","styles":{}}],"children":[]},{"id":"f67e6ab3-d459-4416-a461-be87c9138be6","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"実験用途だけでなく、実運用も想定した構成にする","styles":{}}],"children":[]},{"id":"65ca9fe8-95e5-44ec-a71c-f6a81486b05a","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"技術的な検証とユーザー体験の両立を意識しています。","styles":{}}],"children":[]},{"id":"21b59cfa-3a1a-40b3-9e40-9d3a01e0710e","type":"divider","props":{},"children":[]},{"id":"ac12c9c9-9d57-4d5b-a971-37c41d1fcc65","type":"heading","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":2,"isToggleable":false},"content":[{"type":"text","text":"想定ユースケース","styles":{}}],"children":[]},{"id":"07ad9802-b670-4a2e-a8fd-1e790b108212","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"補助金情報を効率的に探したい事業者の方","styles":{}}],"children":[]},{"id":"c9760185-ea91-4951-915d-0f53f7a62e5e","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"行政API × AIの実装サンプル","styles":{}}],"children":[]},{"id":"3579284c-74cb-4251-9f69-1ac32c048c13","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"MCP / Agent / ストリーミングUIの参考実装","styles":{}}],"children":[]},{"id":"40fcf2f0-f71e-4f6c-94b1-0cb7a0a50805","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"AIの挙動を可視化するUXの検証","styles":{}}],"children":[]},{"id":"f4041ae9-34a7-4701-8043-640220aafa93","type":"divider","props":{},"children":[]},{"id":"567ae3f8-a0f4-4049-a23b-d09f9240ed4f","type":"heading","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":2,"isToggleable":false},"content":[{"type":"text","text":"今後の展望","styles":{}}],"children":[]},{"id":"1ef99f7e-325d-4ce2-8f74-20172faec100","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"ユーザー条件の永続化","styles":{}}],"children":[]},{"id":"df9410e1-cbd0-4a2c-a676-de9c53e4c772","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"提案理由の構造化出力","styles":{}}],"children":[]},{"id":"e8a55197-db2b-4477-8cc4-d5d0baf5bf87","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"応募スケジュール管理機能","styles":{}}],"children":[]},{"id":"3261241b-ce85-4665-96f8-ca51c1dd5ed9","type":"bulletListItem","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"他行政APIとの連携","styles":{}}],"children":[]},{"id":"efd03802-ff11-4a04-a48a-cfdb56c39e2f","type":"divider","props":{},"children":[]},{"id":"516d98cb-fe06-4df2-9cdc-68a3d9c4853c","type":"heading","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left","level":2,"isToggleable":false},"content":[{"type":"text","text":"まとめ","styles":{}}],"children":[]},{"id":"4a9178d7-1f6c-4cd6-82c2-14dbe80f6383","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"本プロジェクトでは、 ","styles":{}},{"type":"text","text":"「AIが何をしているのか分かること」","styles":{"bold":true}},{"type":"text","text":"を大切にして設計・実装を行いました。","styles":{}}],"children":[]},{"id":"c58c2c1d-4474-432d-87cf-9cf9d421d747","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[],"children":[]},{"id":"92c1348d-af99-4d85-9286-a53ac3f98b2a","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"補助金検索という実用的なテーマを通じて、 MCP・Agent・ストリーミングUIを組み合わせた 現実的なAIアプリケーションの一例になれば嬉しいです。","styles":{}}],"children":[]},{"id":"ccea7d84-5048-4f2e-b65c-bcd3d8db1638","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[],"children":[]},{"id":"cbc68129-2540-4d25-8079-1998b1887493","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[{"type":"text","text":"最後まで読んでいただきありがとうございました。","styles":{}}],"children":[]},{"id":"9aa244af-24f3-410d-9c14-74308d39adfc","type":"paragraph","props":{"backgroundColor":"default","textColor":"default","textAlignment":"left"},"content":[],"children":[]}]