本記事では、LLMをソフトウェアシステムに組み込む際に問題となりやすい五つの「コードスメル」を検出する方法を紹介します。
LLMのAPIを自社のサービスに取り入れる企業が急速に増えていますが、LLMは使い方によって振る舞いが大きく変わるため、コードの書き方を誤ると、システムの保守性や信頼性を損ねてしまうおそれがあります。

背景
ここ数年でLLMは急速に広まり、私たちの日常生活や仕事の進め方に大きな影響を与えるようになりました。それに合わせて、LLMのAPIを自社のソフトウェアシステムに組み込み、実際の業務で活用する企業も増えています。
ただし、LLMは何にでも使える万能な存在ではありません。同じモデルを利用していても、呼び出し方や設定の違いによって、出力の質や安定性が大きく変わることがあります。そのため、LLMをシステムに組み込む際にコードの書き方を誤ると、保守しにくくなったり、信頼性が下がったりするリスクが生じます。
ここで重要になるのが「コードスメル」という考え方です。コードスメルとは、ソフトウェア開発の分野で使われる言葉で、すぐにバグを引き起こすわけではないものの、そのままにしておくとシステムの品質を徐々に悪化させてしまうような、好ましくない書き方や習慣を指します。たとえば、同じ処理を何度もコピーして使っているコードは、修正が必要になったときに見落としが起きやすく、典型的なコードスメルの例とされています。
コードスメルという考え方そのものは従来のソフトウェア開発では広く知られており、機械学習の分野でも似たような問題パターンが整理されてきました。しかし、LLMをシステムに組み込む場合に特有の「悪い習慣」については、これまで十分に体系化されていません。
そこで本記事では、LLMを統合する際に陥りがちな「悪い習慣」を整理した事例をもとに、体系的にまとめました。実際に200件のオープンソースプロジェクトが調査された結果、6割以上のシステムで何らかの問題パターンが確認されています。
LLMのAPIを使った開発に関わる人にとって、自分のコードを見直すための実践的なチェックリストとして参考になる内容を目指します。