月報 2026/04

Sat 11 Apr 2026

18:40:15

最近 Vivaldi の履歴が消えてることが多発して困る。 ブックマークじゃなくて履歴から検索するので。

18:50:50 winh

最近作ってたやつ紹介.

winh


GitHub - cympfh/winh: Reimplement of `Win+H`
Reimplement of `Win+H`. Contribute to cympfh/winh development by creating an account on GitHub.
 
github.com/cympfh/winh

最初の想定は純粋な音声文字起こし (speech-to-text) だった.

マイクで喋ったらテキストにしてくれる. テキストは勝手にクリップボードに入ったり, 他ウィンドウがアクティブだったら自動入力されたりする. Windows11 には実は Win + H で起動する音声入力機能があって, 精度も速度も本当はソッチの方が優秀. なんだけどこいつ, キーボードショートカットの Win + H 以外で起動ができない. それで何故困るかと言えば VR 中はキーボードを触れないから.

私のこれは勝手に音声を検知するモードと, コントローラの X を二回押す(VRChat でいうミュートトグルを素早く二回押す)で起動するモードがある.

で, 最近はちょっと機能を盛りすぎていて, VRChat 特化機能と AI 機能を追加した. 文字起こししたテキストを VRChat のテキストボックスに送信するモードがある. 急に無言勢を気取ることができる. AI 機能は, 後述する eliza-agent-server に送信して, 受け取った回答をまた VRChat のテキストボックスで表示する.

eliza-agent-server


GitHub - cympfh/eliza-agent-server: Eliza Agent for My Home. This is a very private project.
Eliza Agent for My Home. This is a very private project. - cympfh/eliza-agent-server
 
github.com/cympfh/eliza-agent-server

Twitter が Twitter だった時代に私は Eliza という名前でチャットボットを作っていたんだが, 久々にこの名前を再利用した. 中身は何でもいいんだが今は Grok を使ってる. プライベートで課金してるのが唯一 Grok なので. タスクをこなすという精度でいうと, 本当は Claude Code が良いんだけどね.

というわけで半分 Alexa や Siri でありつつ Claude Code っぽい Eliza Agent を作っている. 次のことができる.

API としてはよくある OpenAI API っぽく messages (複数形)を POST するんだが, コンテキストでどうせ過去の会話を入れるので, もう不要かも. 実際 winh からは常に長さが 1 の messages を送ってるだけ.

VRChatの中からSiriみたいなことをしてる絵

一応工夫があって, 使うモデル (reasoning かどうか) と何のツールを与えるかを毎回判定してる. Grok には高速な non-reasoning があって出来たらこれで済ませたい. IntentRouter と呼んでるやつ(中身は Grok non-reasoning)がユーザーの意図を次の4つに分類してる.

ChatGPT でも Grok でも web から利用すると Fast にするか Heavy にするか Auto にするか選ぶようなのがあるが, あれと同じ.

Grok の non-reasoning は本当にバカなので Trivial でしか使ってない. non-reasoning にツール使わせると意味無く同じツールを何回も呼び出すとか全然ある. 遅いしお金かかるけどツール呼び出しは reasoning にしかさせない.

あ, あと IntentRouter は判定だけじゃなくて, 次のエージェントへのヒントも出させてる. これでマジで成功率が上がった, と思ってる.

query_hint: str = Field(
    description=(
        "次のエージェントへのヒント。ユーザーの意図・背景・推奨アクションを日本語で記述する。"
        "例: 'ユーザーは文京区の天気を尋ねています。Web検索で正確なデータを返しましょう。'"
    )
)
(2026-05-04 追記) 上記の説明は古いです. 今は Trivial / Translator / Question / FullOperation の4つに変更した. Trivial と Translator も non-reasoning でやってる.

eliza-agent-app (アーカイブ済み)


GitHub - cympfh/eliza-agent-app
Contribute to cympfh/eliza-agent-app development by creating an account on GitHub.
 
github.com/cympfh/eliza-agent-app

当初は eliza-agent-server の為のクライアントアプリは必要だろうと思って開発してたが, それより前からある winh に取り込んじゃえばええかとなった.

eliza CLI コマンド


bin/eliza at master · cympfh/bin
~/bin. Contribute to cympfh/bin development by creating an account on GitHub.
 
github.com/cympfh/bin/blob/master/eliza

POST するだけですね. 普通にキーボード叩いたほうが早いときはシェルから

$ eliza "エアコン止めて"

これやってますね.

19:20:07

ていうかさ. speech-to-text 部分なんだけども. YouTube の検索って当たり前にマイクボタンがあって, そこから音声入力できるわけだが. あれ, リアルタイムすぎるし正確すぎる. あれが欲しい.

Mon 13 Apr 2026

16:47:32

eliza のアップデート.

タスクの重さで Trivial / Question / Operation / Full としてたが, 与えるツールの切り分けが上手くいってなかったし, 上手く出来る気がしなたったので Operation と Full は統合して FullOperation とした. 名前の通り全てのツールが使える.

ツールの使用をスケジュールするというツールを追加した. 例えば「朝7時に起こして」は「朝7時にある YouTube 動画のページをブラウザで開くことをスケジュールさせる」とした. また例えば「30分だけエアコンを入れて」は「エアコンを今入れて, 30分後にエアコンを切るとこをスケジュールさせる」とした.

割に上手くいってそう.

Wed 15 Apr 2026 EML

18:42:21

Twitter でもちきりの論文:


All elementary functions from a single binary operator
A single two-input gate suffices for all of Boolean logic in digital hardware. No comparable primitive has been known for continuous mathematics: computing elementary functions such as sin, cos, sqrt, and log has always required multiple distinct operations. Here I show that a single binary operator, eml(x,y)=exp(x)-ln(y), together with the constant 1, generates the standard repertoire of a scientific calculator. This includes constants such as e, pi, and i; arithmetic operations including addition, subtraction, multiplication, division, and exponentiation as well as the usual transcendental and algebraic functions. For example, exp(x)=eml(x,1), ln(x)=eml(1,eml(eml(1,x),1)), and likewise for all other operations. That such an operator exists was not anticipated; I found it by systematic exhaustive search and established constructively that it suffices for the concrete scientific-calculator basis. In EML (Exp-Minus-Log) form, every such expression becomes a binary tree of identical nodes, yielding a grammar as simple as S -> 1 | eml(S,S). This uniform structure also enables gradient-based symbolic regression: using EML trees as trainable circuits with standard optimizers (Adam), I demonstrate the feasibility of exact recovery of closed-form elementary functions from numerical data at shallow tree depths up to 4. The same architecture can fit arbitrary data, but when the generating law is elementary, it may recover the exact formula.
 
arxiv.org/abs/2603.21852

\(\def\eml{\mathrm{eml}}\) 全ての初等関数や定数は, 定数 \(1\) と \(\eml(x,y)=\exp(x) - \log(y)\) という二項演算子だけで表現可能.

やってみる. 論文にも書いてあるが, 作れる式の文法 \(S\) は \(1\) または \(\eml(S, S)\) という形式しかないから, 作れるもの作ってくしかない.

指数関数は簡単に取り出せる

対数関数は取り出すのちょっと面倒

\[e - \log(y) = \eml(1, y)\] \[\eml(\eml(1, y), 1) = \exp(e - \log(y))\] \[\eml(1, \eml(\eml(1, y), 1)) = \exp(1) - \log \left( \exp( e - \log(y) ) \right) = e - (e - \log(y)) = \log(y)\]

というわけで

ようやく \(0\) が作れる

また対数関数と指数関数を今はもう持っているので打ち消して eml に入れれば

が得られる. そして \(0\) も持ってるので

ここで気付いたが \(\log(0)\) が登場する. 上手に打ち消せるのか?

Sat 18 Apr 2026 Quest3 コントローラのジョイスティックを交換した

20:23:49

Quest3コントローラ右手のジョイスティックを交換した.

これと


Quest3およびQuest3Sのジョイスティックのドリフトを完全に直す(ジョイスティック交換)|mmtg03@グラップラーモモタンゴミミツグ
ジョイスティックにエレクトリッククリーナーやら接点復活剤やらを吹くのをやめろ 交換しろ 安いから 保証期間内ならMetaのサポートに連絡するのもアリ サポート | Metaストア さいしょに ぼくはジョイスティックにエレクトリッククリーナーやら接点復活剤を吹くのは嫌いです(思想強め、アブラマシマシ、声ネチャネチャ) 根本解決になってないし、おそらくジョイスティックの中にはグリスなりなんなりが入ってるだろうからそれを洗い流して、しかも基板を汚すのはどうなの?っておもってる できることなら交換で直すのがいいと思う Quest3コントローラーの分解動画もある これ見ろ全部わかる
 
note.com/mmtg03/n/n6dee21d15d6a

これを

見ながら何とかやった. 一個目の記事に互換品のアリエクをショップページのリンクがあったので素直にそのまま買った. 10個セットで3000円くらい. 結果的に, 一回目の交換では交換したばかりなのに常に上方向に入力されている状態になってしまった. 10個セットなのには理由があるね. 二回目の交換では完全に治った. ただバイブ振動が亡くなってることに気づいたのでもう一度分解し, 抜けっばなしだったケーブルをつなぎ直す羽目になった. こちらは割りと手前にアクセスポイントがあるのでまだマシだった.

ていうか, もういっそジョイスティックはユーザーが交換すること前提に作ってほしいわ.

Tue 21 Apr 2026

12:12:19

Netflix 入っちゃってるので見れるもの見とこう強化月間.

九条の大罪 グロかった.

パーフェクト・ブルー 分かりやすいパプリカ. 推しが武道館の「チャムジャム」ってここの「チャム」から来てる?(たぶん関係ない)

Thu 23 Apr 2026

19:59:58 ゲーミングチェアを買った

ゲーミングチェアを家に置くとゲームオタクみたいだし, オフィスチェアを置くと家が仕事場になるし, そもそも大きい椅子置くと家が狭くなるしでずっと買わないでいたんだが, 特に VRChat してる間に適当な椅子だと腰を痛めそうで. 観念して買った.

椅子は試しに実際に座らずに買うのは絶対嫌だったんだが, ヨドバシカメラで休憩もとい試座してみたら, Andaseat ってメーカーの Kaiser Frontier XL というゲーミングチェアが良かった. 色も, 茶色のような赤色のようなこれが良かった. 布製はどこにも使われて無くてプラスチックと合成皮革のものにした. 特に頭を乗せる部分が布製だと, 気になって毎日洗いたくなりそうだったので. 7万円くらいだったかな.

対応してくれたヨドバシカメラの店員がびっくりするくらいタメ口で, 「なになにっすよ」 みたいな「敬語風タメ口」とかでもなくで本当は友達だったかなと勘違いするところだった. 素直に「在庫あったらラッキーなんだけどねえ, 取り寄せとかになると面倒なんだよねえ」みたい.


https://www.amazon.co.jp/dp/B0C5QVCXR8/

 
www.amazon.co.jp/dp/B0C5QVCXR8/

Amazon 探したら全然在庫あるね.

買ったのが 4/19 で昨日の 4/22 に届いた. 組み立ては思ってた5倍は大変だった. 一箇所, 無理に座面を引っ張ってネジを締めるところがあって, 人間一人で組み立てするのは無理なのでは? なんとかしたけど.