最近、自分のPCでは機密情報を扱えるローカルAI(LLM)と、最先端のクラウド型生成AI(Claude、ChatGPT、Gemini)を使い分けています。
自作の「ローカルRAGチャットシステム」(社内文書などを読み込んで回答させる仕組み)に、最近流行りの推論(Thinking)モードを実装してみました。これは、AIが答えを出す前に「頭の中で考えている内容」を一度出力させるモードのこと。思考プロセスを経由させることで回答の論理性が爆上がりし、「これは賢い!」「報告書を書くのに使える」と感動していました。
しかし……ここで思わぬ落とし穴にハマりました。
推論を深めれば深めるほど、計算問題で盛大にミスをする(ハルシネーションを起こす)ようになってしまったのです。
今回は、この「LLMは計算が苦手問題」の原因を深掘りし、対策として「AIが自律的にPythonを呼び出して計算する仕組み(Function Calling)」を実装して、完璧なハイブリッドAIを作り上げた備忘録をまとめます。エンジニアでない方にも「そういう工夫ができるのか」とイメージを持ち帰っていただけるように書きました。
ローカルAIだからこそできるカスタマイズ

利用環境について
利用環境は LM Studio(ローカルでAIを動かす無料ソフト)上で、Google公式の最新オープンモデル Gemma 4(2026年4月にリリースされた最新版)を使用。推論モードが優秀なことで評判のモデルです。

そして、このローカルAIをブラウザで使えるようにPCにはPythonが動く小さなサーバーを立ててあります。今回のカスタマイズが可能だったのは、この「間にPythonを挟める構造」のおかげ。LM Studio単独でローカルAIとして使う場合はこのような拡張は難しく、ローカルAI環境をブラウザ経由で使えるようにしておいてよかったと心底感じました。

▼今回のカスタマイズでリニューアルした画面

発生した問題:推論させると計算を間違える!
スタートアップの経営シミュレーション(月次売上、固定費、成長率から6ヶ月後の現金残高を計算する等)をAIに解かせてみたところ、論理的な経営アドバイスは素晴らしいものの、肝心のシミュレーションの数値が全く合っていない事態になりました。
たとえば、「500万円の5%増し」を計算させると、答えが「575万円」と出てきたりします(正しくは525万円。575万円は15%増しの値)。推論能力をオンにしたことで、AIは「自分は賢いから計算もいける!」と自信満々に間違った答えを出力するようになってしまったのです。
厄介なのは、思考プロセスが立派に見えるので、中身を検算しないと誤りに気づきにくいこと。経営判断に使うなら致命的です。
原因:なぜLLMは計算が苦手なのか?
ご存知の方も多いと思いますが、LLM(大規模言語モデル)は本質的に「次に来る確率の高い単語を予測している」だけのテキスト生成器です。
- 構造的な限界: LLMの内部には電卓がありません。「12345 × 6789」のような計算も、算数として解いているのではなく、「過去の学習データからそれっぽい数字の並びを出力している」に過ぎません。桁数が増えるほど確率的な当てずっぽうに近づきます。
- 推論モードの弊害: 推論(Thinking)機能は「テキストで論理を展開する」のには最適ですが、数値シミュレーションのように「1つの計算ミスが最後まで連鎖する」タスクでは、途中で間違えた数値を元に堂々と間違った結論を導き出してしまいます。考えれば考えるほど、間違いの上塗りが起きるのです。
これはGemma 4に限らず、ChatGPTでもClaudeでも、素の状態で複雑な計算をさせると同様のリスクがあります。
対策:LLMに計算をさせず、Pythonに「外部委託」する
結論として、「AIには一切計算させず、Pythonに計算させる」仕組みを導入することにしました。イメージは「AIが会議の進行役、Pythonが手元の電卓」という役割分担です。
最近の賢いモデルには 「Function Calling(ツール呼び出し)」 という機能があります。これは、AIに「あなたは『Python実行ツール』を持っています。計算が必要な時はこれを使ってね」と教えておくことで、AI自身がプログラムを生成し、システム側で実行した結果をAIに返すことができる機能です。ChatGPTのコードインタープリターと同じ発想を、ローカルで自作した、と思っていただければほぼ正解です。
実装ステップ1:システムの裏側にPython実行環境を用意
まずはバックエンド(Pythonサーバー)に、AIから渡されたPythonコードを実行し、その結果(printされた内容)を返す関数を実装しました。コードの中身は、ざっくり「受け取った文字列をPythonとして実行し、出力結果を文字列で返す」だけ。イメージとしては次の3行に集約できます。
# AIから渡された計算コードをその場で実行する
exec(code_str)
# 実行結果(printの出力)をAIに返す
return captured_output
たった数行ですが、これが「AIの暗算」を「電卓による正確な計算」に差し替える変換器になります。エンジニアでない方は「AIの答えを鵜呑みにせず、裏で電卓を叩いて検算するアシスタントを挟んだ」と捉えていただければOKです。
実装ステップ2:AIへの強力なプロンプト指示
ツールを用意しただけでは、AIは「面倒だから自分で暗算しよう」とサボることがあります(そして間違えます)。そこで、システムプロンプトに強力な禁止令を追加しました。
【厳守事項】 数値シミュレーションや計算を行う場合は、必ず提供されているPythonツール(execute_python)を使用し、自力で暗算・計算しないでください。結果を表示させるためには必ず print() 関数を使用してください。
この「サボらせない仕掛け」が意外と重要で、ツールを与えるだけでなく「使いなさい」と強く指示するのがコツです。これはプロンプト設計全般に応用できる教訓でもあります。
開発中にぶつかった「2つの壁」
すんなり完成とはいかず、実装中にいくつかエラーに直面しました。これも良い知見なので残しておきます。
壁1:単純な数式しか扱えない問題
最初はシンプルな数式だけを評価する仕組みで作っていました。しかしAIは気を利かせて、for ループや変数を多用した本格的なプログラムを書いて渡してきます。これだとエラーが頻発するため、複数行のプログラムをまるごと実行できる仕組み(`exec`関数)にアップグレードし、print結果を拾えるように改修しました。
壁2:Markdown記法によるSyntax Error
AIはコードを出力する際、親切にバッククォート3つ(“`python)で囲んで送ってきます。これをそのまま実行しようとすると構文エラーになってしまいます。バックエンド側で、コードを実行する前にMarkdown記法をクリーニングする処理を入れることで解決しました。「AIは丁寧すぎて逆に困る」という、生成AI実装あるあるです。
完成!「論理的推論 × 正確な計算」を持つ最強のエージェント
最終的に出来上がったAIに、先ほどの「スタートアップの6ヶ月後の財務シミュレーション」を再度お願いしてみました。
すると、AIは自ら裏でPythonコードを書き出し、システム側で実行。コードのイメージは以下のようにシンプルなループ計算です。
# 6ヶ月分、売上を1.15倍しながら現金残高を更新
for month in range(1, 7):
sales = sales * 1.15
cash += sales - fixed_cost
print(month, sales, cash)
そして、Pythonが算出した「1円の狂いもない正確なシミュレーション結果」を受け取り、それに基づいて見事な経営アドバイスを回答してくれました。数字は電卓、判断と文章はAI──この役割分担が決まった瞬間、生成AIの信頼性は一段上がります。
まとめ:非エンジニアにも持ち帰れる3つの教訓
LLMの推論能力は凄まじいですが、計算能力には致命的な弱点があります。しかし、「思考はAIに、計算はPythonに」と役割分担(Function Calling)をさせることで、この弱点は完全に克服できました。
ローカル環境でも、工夫次第で商用サービス顔負けの自律型AIエージェントを作ることができます。中小企業の業務にAIを導入する立場からも、以下3点は汎用的な教訓として押さえておきたいところです。
- AIに数字の最終責任を負わせない。計算・集計・シミュレーションはExcelやPython、専用ツールに任せる。
- AIには「役割」を明示する。ツールがあっても使わせる指示を出さないと、暗算でサボり始める。
- 推論が深いAIほど検算が重要。論理的に見える出力ほど、中身が間違っていても気づきにくい。
もし「AIの計算ミス」に悩んでいる方がいれば、ぜひPythonや表計算ツールへの「外部委託」を試してみてください。
ローカルAIは安全安心
ローカルAIはネット接続しなくても使えるので情報漏洩リスクを最小化できるのが最大のメリットです。ぜひ企業でセキュリティ情報を扱うような場合はローカルAI導入を考えてみてください。

なお、ここであらためて申し添えておきますが、私(遠田幹雄)はエンジニアではありません。この記事でもっともらしいコードのことやPythonの処理のことを書いていますが、これはすべて生成AIとの対話によって実現できたことです。
私は一行のコードも書かない(書けない)のですが、このようなことが非エンジニアでもできるということをお伝えしておきます。

この記事を書いた遠田幹雄は中小企業診断士です
遠田幹雄は経営コンサルティング企業の株式会社ドモドモコーポレーション代表取締役。石川県かほく市に本社があり金沢市を中心とした北陸三県を主な活動エリアとする経営コンサルタントです。
小規模事業者や中小企業を対象として、経営戦略立案とその後の実行支援、商品開発、販路拡大、マーケティング、ブランド構築等に係る総合的なコンサルティング活動を展開しています。実際にはWEBマーケティングやIT系のご依頼が多いです。
民民での直接契約を中心としていますが、商工三団体などの支援機関が主催するセミナー講師を年間数十回担当したり、支援機関の専門家派遣や中小企業基盤整備機構の経営窓口相談に対応したりもしています。
保有資格:中小企業診断士、情報処理技術者など
会社概要およびプロフィールは株式会社ドモドモコーポレーションの会社案内にて紹介していますので興味ある方はご覧ください。
お問い合わせは電話ではなくお問い合わせフォームからメールにておねがいします。新規の電話番号からの電話は受信しないことにしていますのでご了承ください。

【反応していただけると喜びます(笑)】
記事内容が役にたったとか共感したとかで、なにか反応をしたいという場合はTwitterやフェイスブックなどのSNSで反応いただけるとうれしいです。
本日の段階で当サイトのブログ記事数は 7,007 件になりました。できるだけ毎日更新しようとしています。
遠田幹雄が利用しているSNSは以下のとおりです。
facebook https://www.facebook.com/tohdamikio
ツイッター https://twitter.com/tohdamikio
LINE https://lin.ee/igN7saM
チャットワーク https://www.chatwork.com/tohda
また、投げ銭システムも用意しましたのでお気持ちがあればクレジット決済などでもお支払いいただけます。
※投げ銭はスクエアの「寄付」というシステムに変更しています(2025年1月6日)
※投げ銭は100円からOKです。シャレですので笑ってご支援いただけるとうれしいです(笑)
株式会社ドモドモコーポレーション
石川県かほく市木津ロ64-1 〒929-1171
電話 076-285-8058(通常はFAXになっています)
IP電話:050-3578-5060(留守録あり)
問合→メールフォームからお願いします
法人番号 9220001017731
適格請求書(インボイス)番号 T9220001017731

