エージェントと自動化

Home Assistantの朝のまとめ:センサー記録をローカルLLMの文で受け取る

まとめの質はモデルより、どの値を文に入れたかで決まります。

ローカルLLM1はリアルタイムのセンサー値を自分では読みません。そのため自動化がセンサーや予定の値から文を作り、conversation.processへ渡し、返ってきた答えを通知で送る形になります。どの値を入れ、失敗にどう備えるかを扱います。

実行条件と要点
  • 会話モデルはリアルタイムのセンサー値を読みません。値を文に入れて渡す必要があります。
  • conversation.processに文を渡すと、指定したエージェントが答えを作ります。
  • 答えは変数で受け取って通知し、失敗したら既定の文に置き換えます。

モデルは今の家の状態を知らない

会話モデルは文に書かれたことだけを見ます。部屋が26度か19度か、窓が開いているかも自分では分かりません。要約を頼むときは、確認した値を文の中に書いて渡します。

Home Assistantのconversation.processはその文を指定した会話エージェントへ渡し、答えを返します。自動化ではその答えを変数で受け取り、通知の文に使えます。

書類の束の横で検索システムを動かす小型PC
モデルは文に書かれた値だけを見てまとめを作ります。

文に入れる値を選ぶ

値は5つから8つで足ります。室内の温度・湿度、昨日の電力、開いているドアや窓、今日の最初の予定、空気の状態など、1日を判断するのに使う値だけを入れます。

数値には単位を付け、値のないセンサーは文から外します。空欄が残るとモデルがそこを推測し、的外れな文を作ります。

朝のまとめに入れるとよい値
値どこから取るか注意
室内の温度・湿度温湿度センサーのエンティティ単位を付けます
昨日の電力使用量電力センサーの累積値合計か瞬間値かを区別します
開いているドア・窓ドア・窓センサーの状態なければ文から外します
今日の最初の予定カレンダーのエンティティ時刻と名前だけを入れます

自動化につなぐ

トリガーは時刻です。家事が始まる7時などに合わせ、文を作る動作とconversation.processを順に入れます。答えが返ってきたら、その答えを通知で送ります。

文は短く保ちます。「次の値を見て、今日準備することを3文で教えて」のように指示と値を1段落にまとめると、形式がぶれにくくなります。

ノートPCの前の人物の周りに、文書・表計算・フォルダー・画像・設定画面と小さなロボットがつながっている
入れる値は5つから8つに絞り、単位を付けて渡します。

答えを短くする指示

会話エージェントの指示に文の数と形式を決めておきます。挨拶なし、3文、数値はそのまま繰り返す、箇条書きにしない、といった規則が通知に向いています。

指示が長いと最初の応答が遅れます。要約用の指示は会話用と分け、別のエージェントにしておくと管理しやすくなります。

失敗したときを決めておく

モデルサーバーが止まっている、または答えが空だと通知が届きません。条件を足し、答えがないときは「今日のまとめを作れませんでした。センサーの値を確認してください」のような既定の文を送ります。

1週間分の通知を集めると、どの値がよく欠けるか分かります。欠けるセンサーは文から外すか、代わりになるセンサーを探します。

マイクの横のノートPCに音声波形が表示されています
答えが空のときに備え、既定の文を用意します。

用語の注釈

  1. 大規模言語モデル — 大量のテキストデータから言語パターンを学び、文脈に沿ったテキストを処理・生成するモデルです。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
ローカルLLMはリアルタイムのセンサー値を自分では読みません。そのため自動化がセンサーや予定の値から文を作り、conversation.processへ渡し、返ってきた答えを通知で送る形になります。どの値を入れ、失敗にどう備えるかを扱います。