2025年にやったこと、使った技術を振り返る
この記事は、ispec-inc Advent Calendar 2025 15日目の記事です。
はじめに
こんにちは、ispecでSail AIという医療機関向けのAIサービスを開発している堀です。
先日、社内で今年やったこと、学んだこと、やりたかったことを振り返る会がありました。せっかくなので、その中から自分が担当したプロジェクトや使った技術をピックアップしてまとめてみたいと思います。
正直、誰得の記事なのかよく分からないですが (笑)、社内の雰囲気が少しでも伝わったら嬉しいです。あと、年末に自分のポートフォリオとしてこういうのをまとめるの、意外といいかもなと思いました。
あんまり詳しいことを書けないところもあり、曖昧な感じになっていますがご了承ください🙏
国のシステムと連携する医療系アプリケーションの開発
2025年の始まりを飾ったのは、国のシステムと連携する医療系アプリケーションの開発でした。2024年末から開発を続けていたもので、Server-Side Kotlinで実装していました。
マイクロサービスアーキテクチャで複数のサービスが複雑に絡み合うシステムとなっており、なかなか歯応えがありました。元々想定されていたアーキテクチャに対して「もっとこうした方がよくなりそう」と自分から提案して、それが採用されたときは素直に嬉しかったですね。
とはいえ、国のさまざまな制約を乗り越えながらの実装は大変でした...。動作確認を行うのに毎回申請が必要で、その時間も数時間と制限がありました。国に対しては色々と言いたいことがあります🤗
このシステム、最終的には1枚のPDFファイルが出力されたら完成、というものだったんですが、それが無事に出力された瞬間は感動しました。何年エンジニアをやっても、この「動いた!」の快感は変わらないですね。

ispecとしても初めて扱う技術も多かったので、社内のメンバーとペアプロを頻繁に行いながら、密に連携して開発を進めていました。
この辺りの話は、Noteでのインタビューにも掲載されていますので、よかったらご覧ください。
電子カルテの基盤強化プロジェクト
上のプロジェクトが少し落ち着いてきた頃、次は電子カルテの技術基盤強化を図るプロジェクトに参画しました。
自分が担当していたのは、ライブラリのアップデートや脆弱性の調査、そしてE2Eテストツールの導入検討です。
これまで新規プロダクトの開発が多かったので、すでに運用されているプロダクトの基盤強化に取り組むのは新鮮な気持ちでした。守りの開発とでも言うんでしょうか、また違った難しさがありますね。
npm auditやDevinなどのLLMを活用しながら脆弱性やパッケージのアップデートを行ったり、どのE2Eテストツールを導入するか (AutifyやMagicPodなど) の調査・比較・検討を行ったりしていました。
音声認識 × LLMサービスの開発
暖かくなってきた春頃、今度は音声認識やLLMを活用したサービスの開発を担当しました。こちらはオールTypeScriptのプロジェクトです。
まずは、どの音声認識サービスとLLMを組み合わせて使用するかの技術検証からスタートしました。音声認識の候補としては、Google Speech-to-Text、Azure Speech、Whisperなど。サービスの特性上、話者分離や認識速度も重要な評価ポイントでした。LLMはGPT、Claudeなどを検討しました。
これらの技術を組み合わせて出力した結果を定量的に比較するにはどうしたらよいか、社内のAIに詳しいメンバーに相談したところ、Accuracy、Recall、Precision、F1スコアを用いた評価方法を教えてもらいました。機械学習の分類モデルがどれだけ正確に予測できているかを測る評価指標です。
この指標に基づいて結果を評価し、最終的に使用する音声認識サービスとLLMを決定、実際の機能開発に着手しました。
LLMなどを使用するときの定量的な評価方法・比較方法を学べたのは、大きな収穫でした。
Sail AIの開発
少し暑くなってきたころ、ispecの自社プロダクト「Sail AI」の開発が始まり、開発のリードを担当することになりました。現在も継続中です。
このプロジェクトでは、本当にさまざまな経験をしました。
医療安全を学ぶ
現在は医療安全に限らない医療機関全体の文書・記録の作成をAIで支援するサービスとなっていますが、当初は医療安全の分野に絞ったサービスでした。
そこでまず、医療安全とは何かを一から学びました。事故レベルなどの基本的な知識はもちろん、実際に病院を何度も訪問して、看護師長さんや医療安全の担当者さんが集まるカンファレンスに参加させていただきました。
実際のインシデントについて真剣に話し合い、向き合う姿を目の当たりにして、この領域の重要性を肌で感じました。
医療系の学会への参加・ブース出展
医療系の学会でサービスのブースを出して展示する機会もありました。鹿児島、東京、京都、姫路……いろんな場所に行ったなぁ。
正直、そんなに話すのが得意なタイプではないんですが、会社のメンバーから「家電量販店の店員さん」と呼ばれるくらいには、ブースに来られた方にサービスの紹介をしたり、現在課題に感じているポイントをお聞きしたり会話をしていました。ぜひ使ってみたいという反応もたくさん頂いたので嬉しかったです。
Mastraを使ったマルチエージェント開発
技術的なチャレンジとしては、Mastraを使用してマルチエージェントアーキテクチャを構築しました。こちらについては、登壇の中でもご紹介しています。
医療情報を扱う際の制約との戦い
医療情報を扱うということで、個人情報保護法や医療情報ガイドラインなど、さまざまな制約と向き合う必要がありました。
これらに準拠するためには、国内のサーバでLLMの処理を行う必要があるのですが、その条件に合致する高い精度を出せるモデルは多くありませんでした。
そんな中、日本国内で推論が完結するJPクロスリージョンが登場したのは本当にありがたかったです。AWSさん、ありがとうございます!
Claude Codeでの高速プロトタイピング
Claude CodeとNext.jsを活用して、プロトタイプ開発をたくさん行いました。
病院さんに伺ってフィードバックをもらい、改善して、また次の週には見てもらう。このサイクルをひたすら繰り返していました。自宅から2〜3時間かかるような場所に毎週のように通っていた時期もありましたね...。
最近も訪問診療をされている病院さんにお伺いして、プロトタイプの改善サイクルを回しています。
おまけ
2025年は登壇や寄稿などの経験もしました。
アーキテクチャConferenceのプレイベントに登壇
「医療×AI:制約の中で試行錯誤して構築したマルチエージェントアーキテクチャ」というタイトルで登壇しました!
Findy Toolsへの寄稿
自分が書いたZennの記事をFindyさんが見てくださり、お声がけいただきました。貴重な機会をありがとうございました!
おわりに
来年は引き続き、Sail AIの開発から始まります。
どんな一年になるのか、今から楽しみです。
今年を締めくくるような内容になりましたが、自分、来週月曜のアドベントカレンダーも担当しています。また来週もお会いしましょう (笑)
それでは〜👋
Discussion