n8nでLM Studio経由のローカルLLMを設定
n8nでLM Studio経由のローカルLLMを設定する場合の手順を紹介いたします。
前提は
- ローカル環境(メモリは32GB以上を推奨)にLM Studioをインストールしている。
- LM StudioでローカルLLMのモデル「openai/gpt-oss:20b」をインストールしている。
参考記事:LM Studioの導入 - n8nをローカル環境で起動している。
n8nでローカルLLMの動作は、デフォルトの状態ですと動作が遅い問題があります。
解決策としましては、当方では
https://github.com/n8n-io/n8n/issues/15263#issuecomment-2869779699
の参考記事をもとに、n8n起動時に下記のような環境変数の設定を行っています。N8N_RUNNERS_ENABLED=true N8N_DIAGNOSTICS_ENABLED=false N8N_VERSION_NOTIFICATIONS_ENABLED=false EXTERNAL_FRONTEND_HOOKS_URLS=
としています。
※他のモデルを設定の場合は、モデル名を読み替えていただければと思います。
1.LM Studioをサーバーとして起動
- LM Studioを起動して、左メニューの緑色アイコンの「Developer」をクリックします。
画面の上部にAPIサーバー起動用のトグルボタンがあります。
図. LM Studioで「Developer」をクリック - サーバー起動用のトグルをクリックします。
トグルがONの状態になって、右側に起動していることを示すサーバーのアドレスが表示されます。
図. LM StudioをAPIサーバーとして起動
2.簡易なチャットボットのワークフローを作成・ローカルLLMを設定
今回は、簡易なチャットボットのワークフローを作成しながら、
ローカルLLMを設定して動作確認をする流れで手順を紹介させていただければと思います。
- トリガーとして「On chat message」を選択
「Create Workflow」で新たにワークフローを作成し、
画面中央の「Add first step…」をクリックで右側に表示されるメニューで「On chat message」のトリガーを選択します。
選択後に出る画面では、右上の×ボタンをクリックして閉じます。
図. 「On chat message」のトリガーを選択 - アクションとして「AI」→「AI Agent」を選択
次にプラス印のボタンをクリックして、右側に表示されるメニューで「AI」→「AI Agent」のアクションを選択します。
図. 「AI Agent」のアクションを選択 - 「AI Agent」の「Chat Model」に「OpenAI Chat Model」を選択
表示されたノード「AI Agent」の左下にある「Chat Model」のプラス印のボタンをクリックします。
右側に表示されるメニューで「OpenAI Chat Model」を選択します。
図. 「On chat message」のトリガーを選択 - LLM設定画面を表示
表示された画面で、「Select Chatmodel」をクリックします。
その下に表示される「Create new credential」をクリックします。
図. LLM設定画面を表示 - LLM設定画面で設定
LLMの接続情報を入力します。項目 入力する内容 備考 API Key 必須入力項目のため、一旦適当な半角英数字を設定 Organization ID 任意入力項目のため、未設定も可能 Base URL
(dockerでローカル起動の場合)http://host.docker.internal:1234/v1固定値として反映します。
LM Studioはローカルポート1234でAPIサービスを開始します。この表を参考に入力して、「Save」ボタンをクリックします。

図. LLM設定画面で設定 ※ここで設定した情報は、トップ画面(画面左の「Overview」をクリック)の「Credentials」で確認できるようになります。
ここで修正や削除が可能になり、他のワークフローでも共通して使うことができます。
図. Credentials - LLMモデルを選択
先ほどのLLM設定が完了すると、LM Studioで登録していたモデルが選択できるようになります。
ここではモデルの一覧から「openai/gpt-oss-20b」を選択します。
図. LLMモデルを選択 - 会話の履歴を保持するノード「Simple Memory」を追加
この段階でチャットボットは試せる状態にあるのですが、
この画面では連続した発話をすると、前回の会話履歴を記憶しない状態になっています。そこで会話の履歴を保持するノードを追加しておきます。
ノード「AI Agent」の下にある「Memory」のプラス印のボタンをクリックします。
右側に表示されるメニューで「Simple Memory」を選択します。
図. LLM設定画面で設定 - チャットボットの動作確認
例えば発話で「日本の歴史を200文字で教えてください。」と入力すると、
下記のような適切な返答が返ってくることが確認できました。(返答は実行のたびに変わる場合があります。)古代は弥生・飛鳥時代に仏教が伝来し、律令制が整えられる。中世の鎌倉幕府で武士政権が確立され、戦国大名が勢力争いを繰り広げる。近世は江戸幕府による平和と鎖国政策。明治維新で西洋化が進み、帝国主義拡大。太平洋戦争終結後、敗戦・占領を経て高度成長期に入り、現在の民主国家へ発展。 
図. チャットボットの動作確認 - チャットボットの会話履歴保持の動作確認
先ほど、会話の履歴を保持するノード「Simple Memory」を設定していましたので、
例えば発話で「一つ前の質問は覚えてますか?」と入力すると、
下記のような適切な返答が返ってくることが確認できました。(返答は実行のたびに変わる場合があります。)はい、先ほど「日本の歴史を200文字で教えてください」というご要望でした。その内容に関して回答しました。もし追加で知りたいことや別の質問があれば遠慮なくどうぞ! 
図. チャットボットの会話履歴保持の動作確認
