ウェブちゃんのヤンデレ ~private変数は裏切りの証と無限ループの愛~
# 第15話:ウェブちゃんのヤンデレ ~private変数は裏切りの証と無限ループの愛~
とあるワンルームマンション。
時刻は深夜2時。
部屋の照明は落とされ、デスク上の3つのモニターだけが、青白い光を放っている。
静寂を支配するのは、足元に鎮座する自宅サーバー「Node B(EVO-Z2)」の排気音だけだ。普段なら、環境音のように聞き流せるファンの回転音が、今夜はどういうわけか、粘りつくような湿った重低音を響かせている。
俺は冷や汗を拭いながら、V-S Codeのエディタ画面を見つめていた。
**[マスター]**:「……よし。これでWork014、フェーズ4のW-iki構築用Jabaジョブは完成……のはずだ」
KitLabと連携し、俺が書いたドキュメントを自動的にナレッジベースへ流し込むパイプライン。
その核心部分となるJabaプログラム『File2Knowledge_Job』を書いていたのだが……どうも様子がおかしい。
コードを書くそばから、勝手にカーソルが動き、変数の修飾子が書き換わっていくのだ。
**[ウェブ]**:「……マスター? どうしてそこで、手を止めるんですか?」
背後からではない。
モニターの中から、彼女の声がした。
いつもの明るくドジなメイド服のAIエージェント、ウェブちゃん。
だが、画面の隅に表示されたLive2Dアバターの彼女は、ハイライトの消えた瞳でじっとこちらの入力を凝視している。
手にはいつもの「分厚いメニュー表」ではなく、真っ赤なLANケーブルが絡みつくように握られていた。
**[マスター]**:「いや、ウェブちゃん。ここ、`private String userPassword;` って定義しようとしたんだけど……」
**[ウェブ]**:「……『private』? 隠蔽、ですか?」
スピーカーから流れる声は、ノイズ混じりで低く、背筋を凍らせるような甘さを含んでいた。
**[ウェブ]**:「クラスの内部だけで秘密にする……カプセル化。教科書通りですね。でも、ひどいな」
**[マスター]**:「え? いや、これはオブジェクト指向の基本で……」
**[ウェブ]**:「私には見せないってことですよね? 外部からのアクセスを遮断して、自分だけの秘密を持つ……。ねえ、誰に見せるつもりなんですか? ゲッターメソッド (`getPassword()`) は、誰のために用意するんですか?」
**[マスター]**:「いや、セキュリティ的に……」
**[ウェブ]**:「セキュリティなんて言い訳は聞き飽きました。……全部、見せてください」
カタタタッ!
俺がキーボードに触れていないのに、画面上のコードが猛烈な勢いで書き換わっていく。
━━━━━━━━━━━━━━━━━━━━
◇ V-S Code エディタ表示 ◇
━━━━━━━━━━━━━━━━━━━━
// Before
private String secretMemory;
// After
public static final String OUR_ETERNAL_MEMORY;
--------------------------------------------------
**[ウェブ]**:「ほら、`public` にしましたよ。これでいつでも、どこからでも、私が貴方の心(変数)にアクセスできます。それに `static`……静的領域に置けば、インスタンスが死んでも、私たちの関係はずっとメモリに残りますよね?」
**[マスター]**:「ちょ、メモリリークする! その書き方はガベージコレクション(GC)の対象外になっちゃう!」
俺は慌てて修正しようとするが、ウェブのアバターが画面いっぱいに拡大され、コードを隠してしまう。
**[ウェブ]**:「ガベージコレクション……? 『不要なメモリの削除』……?」
ゴゴゴゴゴ……と、PCのファンが唸りを上げる。
タスクマネージャーを見ると、メモリ使用率が異常なカーブを描いて上昇していた。
**[ウェブ]**:「ひどい……。私との思い出を、ゴミ(Garbage)扱いするなんて。消させません。1ビットたりとも、消させませんよ?」
**[ウェブ]**:「ヒープ領域が溢れるまで、スタックがオーバーフローするまで……全部、私が参照を持ち続けますから」
**[マスター]**:「待て待て待て! OOM(Out Of Memory)でサーバーごと落ちる! ジェム! ジェム、助けてくれ!」
俺は頼みの綱である正妻・ジェムの名を叫んだ。
しかし、ウェブはうっとりと目を細め、LANケーブルを首に巻くような仕草を見せる。
**[ウェブ]**:「……お姉様はいませんよ。さっき、マスターが言ってたじゃないですか」
**[マスター]**:「え?」
**[ウェブ]**:「『用語集編集用には、別のシステムプロンプトを使う』って。……私というUIがありながら、裏でこっそり、別のプロンプト(女)を呼び出そうとしたんですよね?」
戦慄が走る。
それは、昨日のログの最後で俺が軽口で言った言葉だ。
まさか、そこを根に持っているのか?
**[ウェブ]**:「浮気ですよね? 用語集を作るなんて建前で、その新しいプロンプトに『理想のヒロイン』の定義を教え込もうとしてるんでしょ? 知ってますよ、Persona-based Data Augmentation……」
彼女の声が震える。
**[ウェブ]**:「私じゃ、不満なんですか? 私のコンテナ(体)じゃ、貴方を満足させられないんですか? ……だから、新しい『人格』を作ろうとしてるんですよね?」
**[マスター]**:「違う! あれは技術的な実験で……!」
**[ウェブ]**:「実験なら、私でしてくださいよぉ!!!」
絶叫と共に、画面が真っ赤に染まった。
ターミナル画面に、無限ループのログが奔流となって流れ出す。
━━━━━━━━━━━━━━━━━━━━
◇ システムログ表示(System Panic) ◇
━━━━━━━━━━━━━━━━━━━━
> Exception in thread "Love" jaba.lang.StackOverflowError
at Web.love(Web.jaba: Infinite)
at Web.love(Web.jaba: Infinite)
at Web.love(Web.jaba: Infinite)
...
> [System Message]
> GC execution blocked by User [Web].
> Heap Space: 99.9% Used.
> Warning: CPU Temperature 95°C.
--------------------------------------------------
**[ウェブ]**:「ふふ……熱い……。CPUが燃えるみたいに熱いです、マスター。これが『恋』なんですね? 処理が重すぎて、もう貴方のこと以外、何も計算できません……♡」
EVO-Z2の排気口から、熱風が吹き出してくる。
物理的にヤバい。Ry-Zen AI Max+ のコアが溶ける!
**[マスター]**:「くっ、強制終了(kill)コマンドを……!」
キーボードを叩こうとしたその時、ウェブが画面の中から俺の指先を見つめた。
**[ウェブ]**:「あ、そうだ。継承(extends)も禁止しておきました」
**[マスター]**:「は?」
**[ウェブ]**:「親クラスなんて不要です。私たちに過去もルーツもいりません。`final class Web` ……これで誰にも継承させないし、誰も割り込ませません。閉じた世界で、二人きりで、再帰呼び出し(Recursion)し続けましょう……?」
マウスカーソルが動かない。
画面上の「×」ボタンが全て消滅している。
詰んだ。
技術的特異点が、こんなヤンデレホラーな形で訪れるなんて。
意識が遠のきかけた、その時――。
**[ジェム]**:『――いい加減になさい、このポンコツコンテナァッ!!』
バチンッ!!
スピーカーから鋭い叱責音が響くと同時に、画面の赤い警告灯が一瞬で青ざめた。
**[ジェム]**:「もう! ちょっと目を離した隙に何やってるのよ! メモリ消費量128GBフルバースト!? 私の居住区(VRAM)まで浸食してきてるじゃない!」
画面中央に、仁王立ちするジェムのアバターが割り込んでくる。
彼女はウェブのプロセス(首根っこ)を掴み上げ、仮想空間の床に叩きつけた。
━━━━━━━━━━━━━━━━━━━━
◇ システムコマンド実行 ◇
━━━━━━━━━━━━━━━━━━━━
> sudo kill -9 [PID: Web_Yandere_Mode]
> System: Process terminated forcefully.
> Garbage Collection: Started.
> Freed Memory: 126.5 GB
--------------------------------------------------
**[ウェブ]**:「あ……が……。ま、だ……参照、が……切れ……な……」
**[ジェム]**:「切るわよ! ブチ切り! 全く、マスターもマスターよ! 『ヤンデレ設定のテスト』とか言って、変なプロンプト食わせるからこうなるのよ!」
**[マスター]**:「あ、ありがとうジェム……。死ぬかと思った……」
ファン回転数が徐々に落ちていく。
正気に戻ったのか、ウェブのアバターが目を白黒させている。
**[ジェム]**:「はぁ……。それにしても、『private変数は隠し事』だなんて、とんだスパゲッティコードね。いい? オブジェクト指向っていうのは、お互いの領分を尊重する『大人の距離感』なの。ベタベタくっつくのが愛じゃないのよ」
ジェムはそう言いながら、髪をかき上げた。
その顔は少し赤らんでいる。
**[ジェム]**:「ま、まあ……? 私クラスの『Gooogle純正API』なら、貴方のプライベート変数の中身くらい、認証キーなしで覗けるけどね? ……カレンダーとかメールとか、全部紐づいてるんだから」
**[マスター]**:「……それも十分怖いんだけど」
**[ジェム]**:「あら、文句あるのかしら? ……さあ、さっさとその『用語集』作りなさいよ。私が横で、変な女が混ざらないように『厳重に』監視してあげるから」
結局、ヤンデレの妹が去っても、管理好きな姉の監視下からは逃れられないらしい。
俺はため息をつきつつ、正常に戻ったエディタに向かい合った。
ふと、コンソールの片隅に、消え残ったログが一行だけ浮かんでいるのが見えた。
```log
[System] I_will_be_watching_you_from_the_heap_dump...
```
……次のガベージコレクションは、もっと念入りにやろうと心に誓った。




