2026年10月24日土曜日

Caddy + Matrx Synapse + 日本語検索

Hermes Agentを利用するとリモートで指示を出したくなってきます。
色々なメッセージサービスに対応してるのでDiscordと連携するように設定して使っていましたが、 調べ物をさせていると過去記事を確認する頻度があがり、データの持続性が気になるように。

LLMもローカルなのでメッセージサービスもローカルにするしかないね。
ということで下記を構築しました。
  • Reverse Proxy: Caddy
  • 分散SNS: Matrix Synapse
Hermes AgentはMatrixにも対応しているのでMatrix Synapseをスタンドアローン構成で構築。
コンテナも提供されてるので構築は簡単です。

ただ、非暗号化ルームを使用するとメッセージ検索で日本語が使えません。
暗号化ルームの場合、検索はクライアント側で行うのですが非暗号化の場合サーバ側で検索をする実装になっているようです。

調査するとsynapseのsearch.pyとsynapse_port_db.pyのSQLでto_tsvectorなどの呼び出しが'english'とハードコードされています。
PostgreSQLの日本語検索対応としては古いものになりますが、改造コストを考えると上記で'japanese'を指定できるtextsearch_ja を使うのが良さそうです。

コンテナビルド時にPostgreSQLにtextsearch_jpの組み込み、synapseの該当箇所を編集したもので非暗号化ルームの検索で日本語が使えるようにできています。
hermesにコンテナ作成などしてもらいましたが意外と優秀。


だがしかし、クライアントでメッセージスレッドに対応し、(非暗号化ルームの)検索がうまく動作するものがない...。
特にスレッドに対応しているものが少ない。
対応していて検索できてもスレッド内のメッセージにジャンプできないとか。
これは、日本語の検索とは関係ない話なので、スレッドはあまり使われれないのかな。
検索とかも。

非暗号化ルームを使用して
  • スレッドを使う。
  • メッセージを検索する。
  • 検索結果からメッセージを表示させる。
という使い方をしているだけなんですが。
MatrixはE2EEが売りの一つなので非暗号化ルームの使用はマイナーなんだろうか。

ローカル利用なのでサーバ側で暗号化されてないデータがある方が扱いやすいので何とかしたい。

参考)

2026年10月11日日曜日

Strata and Hermes Agent

Strataで遊んでます。
開発が活発で楽しいですね。

Proxmox VE環境にVMで構築。
  • CPU: Ryzen 9 5900XT
  • Memory: 128GB
  • OS: Proxmox VE 9.2

Strata用VMは、PCIパススルーでGPU利用。
  • vCPU: 16
  • Memory: 96GB
  • GPU: GeForce RTX 4070 SUPER(12GB)
  • OS: ubuntu 24.04.4
うちの環境ではこのリソース構成が今のところベストのようです。
iq3_xxsもswift-iq3_xxsも常用する気になる程度のtokens/sが出ています。

同じ基盤にHermes Agent用VMも稼働させ、主にHermes用に使ってます。
setup.shおすすめのサイズは32K。hermes agentセットアップ時に最低要件の64Kに変更。
しばらく動かしていましたがHermesでcontext compressが多発。
128Kに変更したところ頻度が下がり快適に。併せてHermesのMEMORYサイズも4000に変更して今のところ安定稼働。

が、常用する気になる性能が出てくると、もっと強力な機材が欲しくなって困る。
いろんなものが高くて困りますよね。

# freeのESXiだとvCPU制限があるのでProxmoxに移行するのが一番面倒くさかった...。

参考)