エージェントと自動化

Home AssistantにOllamaの会話エージェントを載せる:公開エンティティと指示の設計

モデルは文を解釈し、実際の実行は公開したエンティティの中でだけ行われます。

Home AssistantのOllama連携は、外部のOllamaサーバーを会話エージェントとして使います。話した文をモデルが解釈し、機器操作を有効にするとAssist API1で公開したエンティティだけを操作します。モデル・指示・公開リスト・別名をどの順で決めるかを扱います。

実行条件と要点
  • Ollama連携は会話エージェントを追加し、機器操作は実験的な機能です。
  • 操作権限の範囲はAssist APIに公開したエンティティのリストが決めます。
  • 別名を付ければ、同じ機器を複数の名前と言語で呼んでも理解します。

質問がモデルに届くまで

Assistはウェイクワードで始まり、音声を文字にして、その文を会話エージェントに渡します。Ollama連携を入れると、この位置にローカルサーバーのモデルが入ります。モデルは答えを作るか、機器操作が有効ならAssist APIを呼びます。

そのためモデルを替えても操作できる機器は変わりません。モデルはどの機器を使うかを選び文を整える役割で、実際にスイッチを押すのはHome Assistantです。

透明な箱の中のロボットの横にルーター、収納箱、書類が置かれている
話した文は家の中のサーバーのモデルが解釈し、実行はHome Assistantが担います。

モデルと指示を入れる順番

設定 > デバイスとサービスでOllama連携を追加し、サーバーのURL(例:http://192.168.0.20:11434)を入れます。APIキーはサーバーに認証を掛けた場合だけ必要で、モデル名を入れると設定中に自動でダウンロードします。

指示には応答の言語と長さ、してはいけないことを書きます。文が長いほどモデルのコンテキストを占めるので、機器名の規則と短い応答から始め、必要な分だけ足します。

Ollama連携で決める値
項目入力する値注意
URLOllamaサーバーのアドレスとポートHome Assistantから到達できる必要があります
モデル機器操作の文を扱えるサイズ大きすぎるモデルは応答が遅くなります
指示言語・長さ・禁止動作コンテキストを占めるので短く
機器操作必要なときだけ有効に

公開エンティティが権限のすべて

機器操作を有効にしても、モデルが家じゅうの機器を触れるわけではありません。設定 > 音声アシスタントの公開タブで選んだエンティティだけがAssist APIに見え、モデルはその中から選びます。

錠とガレージドアは最初から外します。照明・スイッチ・空調のように誤動作しても戻しやすい機器から入れ、センサーは読み取りだけなので値の確認用に先に足すと安全です。

書類の束の横で検索システムを動かす小型PC
公開リストにない機器は、モデルが選んでも実行されません。

別名で名前を合わせる

同じ照明を「リビングの明かり」「メインランプ」と呼ぶとモデルが迷います。公開タブでエンティティを開いて別名を足すと、Assistはその名前も理解します。

別名はエリアとフロアにも付けられます。韓国語と英語を混ぜて使う家なら、両方の名前を別名に入れておけば、どちらの言語でも同じ機器を見つけます。

うまくいかないときの確認

Ollama連携は文トリガーとはつながりません。決めた文を正確に実行するには、自動化の文トリガーを別に作ります。自由な質問は会話エージェントが担当します。

応答が遅いときはモデルサイズとサーバーの場所を先に見ます。同じネットワークに置けば往復が減り、指示が長いと最初の応答が遅れます。スマホアプリで同じ文を3回言い、結果が安定するか確認します。

ノートPCの横の机と棚に二台の金属製装置が置かれ、ケーブルが手前のスイッチボックスにつながっている
同じネットワークにモデルサーバーを置くと、往復が1回減ります。

用語の注釈

  1. API — 別のコードからプログラムの機能を呼び出すための決められたインターフェースです。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
Home AssistantのOllama連携は、外部のOllamaサーバーを会話エージェントとして使います。話した文をモデルが解釈し、機器操作を有効にするとAssist APIで公開したエンティティだけを操作します。モデル・指示・公開リスト・別名をどの順で決めるかを扱います。